Where to start - programming for mobile phones
I am not an engineer, I am a finance guy, but I did some coding in high school and college (so I'm not all bad). I do a lot of work with the wireless industry, and I am frustrated that there are more worthwhile mobile applications. I have gotten so frustrated that I want to start writing my own simple applications. How do I learn to program for Android? Where should I start? What programming language should I use? Can anybody recommend a good book on that language for beginners?
14 comments
[ 3.7 ms ] story [ 47.9 ms ] threadhttp://sites.google.com/site/io/
http://pragprog.com/titles/eband/hello-android
The only supported language on Android is Java, so I'd stick with that.
http://commonsware.com/Android/index.html
Attractive though Android is there is no shipping phone and thus a zero market (at the moment anyway) [We have developed an Android app but it's sitting on the shelf while we wait and see what happens].
Good luck.
http://opensource.nokia.com/projects/pythonfors60/
Android is going to push you towards "Java". And iPhone will hook you with Objective-C. (Unless you focus on doing web-based apps, which may be a good way to get your feet wet.)
Also, can anyone recommend a good cocoa book?
The best beginning Cocoa book is "Cocoa Programming for Mac OS X", found here: http://www.amazon.com/exec/obidos/ASIN/0321503619/bignerdran...
It's a great book, and a huge number of mac developers got started with it. The new version (which has Obj-C 2.0, Leopard, and other updates) just came out a few weeks ago.
2.0 brings you object properties (just syntactic sugar), object iteration (for x in ...), and garbage collection (but not on the iPhone).
http://theocacao.com/document.page/510 is a good overview of the new features.
One thing to remember is if you make use of any of the even a little bit fancy functionality of the cell phone through J2ME (SMS send/receive, Phone book integration or location based services) your app probably won't work on real handset outside the emulator - at least in US. All cell phone carriers here are control freaks and they have turned off all those permissions for any "not officially blessed" third party app. This is the main reason for the lack of any worthwhile mobile applications in the first place!
I agree that the platform is pretty tightly locked down, and both of these issues make the platform useless for real development. If you want to write anything other than a Tetris clone, stick with an open platform.
Its not mobile specific but is the new framework that Apple is using for its mobile me apps. This would allow you to dev apps for workstation or handhelds.
The easy language to get started with sproutcore is ruby ;)