Adding photo upload to an iPhone App that's mostly HTML5/JS - iphone

I'm working on an iPhone App that's HTML5/JS displayed in a single UI Webview. I'd like to add photo upload capabilities, and I'm wondering what the best approach would be to extend the iPhone app with the necessary classes to pick a photo and upload via an API. I'd also like to trigger the display of the photo picker via JS if that's possible.
I know it's possible to use a framework like PhoneGap to do this, but I don't want to migrate the whole app to a new framework yet. Also, sorry for the "how to" type question - I normally ask about specific problems after I've exhausted my efforts, but I'm pretty new to Objective C, so I'd appreciate some guidance, even if it's just a simple design explanation.

the image picker (UIImagePicker) is fairly straightforward to work with: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html
and for an API, are you sending it to an existing system? or creating your own. You just need to craft an NSMutableURLRequest with POSTED data in a multi-part format, and then handle the image portion appropriately in your server.
this might help: upload image from iPhone application

Related

Personalized Video / Facebook App - What is the best approach?

I want to build a facebook app featuring a personalized video which imports content assets from the user's facebook profile and their extended social graph and integrates these assets within the timeline. I am thinking of using Flash however a key stipulation is that the app works on mobile - and so I would need to use HTML5. My question is: Can I use Flash to build the application and then compile the app as HTML5 - or is there an alternative solution in the form of a HTML5 video toolkit with a programming layer that would allow me to build a web app / access the Facebook API?
I have done this a few times over the years and yes flash was the easiest however there are a few options which you have available to you that I know of which will be purely HTML5 based, personally I'd stay away from flash here as it will end up just getting int he way:
1- The cleanest method is to use a video compositing tool on the server side which can be programmed to accept variables. Personally I have only ever done this using ffmpeg however there a couple of alternatives which are out there.
The basic process would be to grab the media from FB then to composite them at certain point on top/below/around a base video which is sitting on the server using a shell script which you then pass the media assets to as variables. There are so many options as to how you might want this to be done, probably best id to have a look at some of these examples:
http://broadcasterproject.wordpress.com/2010/05/18/how-to-layerremix-videos-with-free-command-line-tools/
http://graphcomp.com/ffmpeg/
ffmpeg watermark without vhook?
note that last time I did this I used vhooks and custom filters, vhooks are now deprecated
This method will mean a reasonably heavy server load if your app is popular but it's probably the most robust across devices etc.
2- Use Popcorn.js, and let the processing be done on the client side. you could hard code it using css/js/html but popcorn is pretty stable although I havent seen how it runs on devices but in theory it should work (all standardized technologies). Basically the process would be to use javascript to fire the display of images overlayed on the video base file at preset cue points. Popcorn has all of the methods and means for you to do this already.
Hope this helps a bit. Good luck, sounds fun.
we realised some interactive video apps and one recent project was quite like your question describes.
We used adobe flash to track the motion - and published the project via create.js. You could have an image sequence from within create.js or put a video in a layer behind. This video would then control the player head time of the create.js motion tracked sequence via jquery.
worked fine - here a link to a testsetup with an image sequence.
Video Integration would be the next step.
http://www.jungeroemer.net/projekte/testpersvid/elftest01.html
(German text, sorry but it's nothing important to read there.
Just click the images and go for it)
you can download the sources from the link, if you need i can also upload the flash file to show you the motion tracking.

How to incorporate YouTube into iPhone app

We are developing an iPhone app where we need to allow users to search and see videos within the app itself.
I have seen this link
How to incorporate youtube into iPhone app? but I have a doubt. Why can’t we simple use NSURLResponse object to retrieve the response and parse it.?
Are they any other easier approaches to implement this functionality?
You CAN just hit a search URL for youtube and parse the data that you get back. The only problem with that is the app would not remain stable. IF youtube were to change the layout of the page, or the names of the tags your app would more than likely crash or become unresponsive.
Using the API's that YouTube has created for your specific needs, would make the app much more stable.
Its unlikely the API would change without YouTube giving you prior notice which will allow you to make the changes need to your app before the update happens.
Do it right the first time. Heres the API link! :)
http://code.google.com/apis/youtube/getting_started.html#data_api
Query the server, get the response, and parse the data into a UITableView.

creating iphone app for existing site. need advice about the data I'm downloading

I'm building an iPhone app for existing site (a local news site)
Main page with articles headers, when click on them you move to the article page. Simple.
This is the first time I'm building such type of app.
I have 3 general questions, just to make sure :
For the iphone, Do we need to
re-create the website article's
pictures for the iphone ? or there
is some programming tool that on the
fly make the files looks better on
the iphone ? or maybe, there is some
technique that creates one artice
picture that looks right both for
the server and the iphone ?
Usually, Do you need to create
special data channels from the
iPhone webservice ? or programmers
just use the existing rss channels
of the webserver ?
If someone know nice artice about
this stuff, It will help a lot. just
see what other are doing.
thanks.
You can see the intent Media apps, these apps are working like what you want your app to.
1) You're better off creating mobile versions of the images. You can do image processing on the iPhone, but you'll have to have the original and that makes the whole thing pointless (ie. you have to download the whole thing.) Generate a mobile thumbnail when those are uploaded on the server.
2) RSS will do. There's a very good tutorial at cocoadevblog.com about approaching such a task (I guess this covers 75% of the work you have to do)
3) Check 2) ;-)
if your download image is bigger the the thumbnail you are trying to display,
then the problem is in your code that change the image size. check carefully what are you doing to the image after downloading it.
I would recommend to create square thumbnails of your pictures at the server level. This will allow you to easily position in the iPhone screen, plus you will not need to download the whole image from the server.
nnahum

how would i implement the image processing technology within this iphone application?

Just a quick question on the iphone technology within this business card reader
http://www.youtube.com/watch?v=F8z6pcxdrPo
as we can see this video allows users to take a photo of a business card, i have an idea where i would take a photo of some text , and that photo could then be turned into text on the iphone. how would i be able to implement this using the iOS API ?
cheers guys
The camera stuff is all standard-- use the UIImagePickerController for this.
Text recognition (OCR) is not a built in part of the iOS API, though, so that part really isn't trivial. There are multiple open-source projects that can handle this sort of thing if you want to go after them.
Tesseract is an older but possibly viable one. Check out this post which has info on cross compiling it for iOS.
Other users here might have more current recommendations.

Newbie wants to create a PDF reader for ipod touch - what's the best approach?

I want to make a small app that displays a PDF, presenting zoom-able single pages with a previous-next page function.
The Core Graphics API is pretty much the same in Cocoa and Cocoa touch. Read up on CGPDFDocument, it should provide you with everything you will need to render PDF pages. You won't need to read the PDF spec or use a library to parse PDF files directly. You will probably to learn more about Core Graphics / Quartz 2D / etc. to understand how to use those functions inside of a Cocoa app.
Based on the gradually evolving Apple policy of rejecting application submissions that duplicate functionality already on the iPhone I would worry about spending too much time even as a newbie on something that is part of the core iPhone feature-set.
This is pretty trivial. The CGPDFDocument functions will allow you to do anything you'd want to do with a PDF file.
The iPhone and iPod touch can view PDFs already, as one of the TV adverts in the UK shows an email with a .pdf attachment (of swimming lessons) being viewed. It can also view .doc, .xls, and so on, so if he is creating a viewer type application then supporting those as well could be a nice feature addition later on.
This means there is a PDF framework on these devices that you will need to access. Presumably Apple can provide support here if he is a paid up developer. Syncing the PDFs to the device is the actual real difficulty, as this isn't supported by iTunes. I assume that you would need to write a network based synchronisation tool, or have an online cloud for holding people's PDFs.
The device doesn't support Flash, so using PDF to Flash conversion tools will not work.
I found this HTML5 framework that should work on an iPad http://bakerframework.com/
but I didn't test it yet.