How/where to begin learning mobile (app) development?

2 points by bakhlawa ↗ HN
By way of background, I have an undergrad in CS and worked as a C++/Java programmer 10 years ago. I also have some experience with web development (LAMP). I'd like to get into mobile development (apps) for iOS, Android, etc. but quite frankly have no idea where to start.

If I choose a platform now (iOS or Android), am I essentially "stuck" in the platform or can I jump between the two? What do I need in terms of knowledge, skills, funds(?), to begin this learning process? The objective is to know enough to put together a team of devs, designers, to execute on B2B mobile apps.

6 comments

[ 151 ms ] story [ 360 ms ] thread
but quite frankly have no idea where to start

Pick up their respective SDKs, read their docs, and spruce up on their primary languages (Objective C for iOS, Java for Android). Having a device for each will be needed in the long run, but you can get started with just the SDKs and emulators.

If I choose a platform now (iOS or Android), am I essentially "stuck" in the platform or can I jump between the two?

Not really, but as mentioned above, you will be jumping languages in most cases. If you're planning on supporting both platforms (or more), standardizing your back-end and any intermediary code/technology will save time and effort.

What do I need in terms of knowledge, skills, funds(?), to begin this learning process?

Funds will be specific to your venture, but a good foundation in C++/Java is more than enough to get you started. Get reading!

I'm assuming dropping a couple thousand dollars for a Mac and a "dev account" is obligatory to get any serious iOS training, development, testing?

Still fail to understand why Java was chosen for Android, but oh well, the learning curve ought to be flatter.

I'm assuming dropping a couple thousand dollars for a Mac and a "dev account" is obligatory to get any serious iOS training, development, testing?

Good point, had a brain fart. I suppose it depends on how little you want to spend, obviously bigger is better. On the cheap end, I've had no problems developing in the past on a cheap refurb Mini (Intel-based) after swapping in memory and a faster drive. Also, you can pick up the SDK and Xcode with an unpaid developer account, but will need the real thing for publishing to the App Store.

Still fail to understand why Java was chosen for Android, but oh well, the learning curve ought to be flatter.

I think you've mostly answered your own question: everyone knows it. On the bright side, the latest JVM with JIT is pretty nice.

When you are targeting multiple platforms, it pays to choose an abstraction framework like titanium or phonegap. Using these frameworks, your app can easily be ported.
While that's fine for simple, information-appliance apps, more serious apps need to be coded natively if you care about user experience. At least for now, but I hear the HTML5 train is a'comin'.
Good point. Although you can access parts of the hardware like accelerated transitions, GPS, accelerometer etc.