Smartphones need web apps not app store apps
via @andyi on flickr |
I don't think you need to learn objective C, or the android environment in order to make useful smartphone applications. Html & javascript should be able to cover 90% (99%?) of the sorts of applications that are being written. I think it is actually a step backwards to force people with good ideas to have to write "close to the metal" (C) code, especially if you already know HTML and the concepts behind flash.
Take for instance this link:
http://sixrevisions.com/web-development/html5-iphone-app/
It teaches you how to create a nice version of tetris that runs in your phone's web browser using html and javascript (iphone and android, maybe blackberry's, microsoft and PalmOS too?) . Not only is it touch friendly, but it works offline, and can even save your high scores on your phone (much of this is due to HTML5 stuff like manifest files and local data stores).
Jon Resig, the creator of JQuery (the wonderful and ubiquitous javascript library) has just released an alpha version of jquery mobile, which makes creating smartphone UIs easy. I believe this, and not objective C, is the future:
http://jquerymobile.com/2010/10/jquery-mobile-alpha-1-released/
If you hone your skills in developing browser based solutions that are awesome on smartphones, then you are gaining long term valuable skills, as you can expect that pretty much all phones for the next 5 years will have browsers on them. Learning objective C or the android API is a higher risk investment of your time - who knows what phone will be hot next year?
If you need to access lower level hardware, like the accelerometer or the camera then you probably need some closer to the metal code. Then again, location aware browsers show me that these sorts of interfaces will be exposed more and more through the browser as time goes on. Maybe you are doing graphically intense 3D visualizations, then that needs hard core C, but again 3D optimized graphics libs for browsers are on their way. Finally, smartphone browser apps don't get you into the app store, which might or might not be a good thing (no approval process but no chance to hit the app store lottery and make money).