Where do I start with iOS/Android native app development?
June 10, 2013 8:09 PM Subscribe
Currently a Microsoft developer looking to expand my horizons into the world of mobile native application development. I've ready quite a bit regarding the debate between native and non-native apps (PhoneGap vs. native iOS vs. native Android vs. Titanium vs. other frameworks). I'd like to take a stab at getting my feet wet with Objective-C and iOS first. Where do I start?
I'm currently proficient in VB.net and C#, and I'm proficient in Javascript along with various libraries and frameworks. I'm looking to try to learn Objective-C and create native iOS apps. What's the learning curve like? What are the best resources? What are the absolute best books I can buy to get me up to speed and developing? Do I need a Mac, or can I create a VM with Mac OS to get things done? What do I need to get moving?
I'm currently proficient in VB.net and C#, and I'm proficient in Javascript along with various libraries and frameworks. I'm looking to try to learn Objective-C and create native iOS apps. What's the learning curve like? What are the best resources? What are the absolute best books I can buy to get me up to speed and developing? Do I need a Mac, or can I create a VM with Mac OS to get things done? What do I need to get moving?
I'd get a Mac. I know people who were determined to do this using a so-called Hackintosh, and that's what they spent all their time on, trying to make the OS even run right. I don't even know if the development tools run right on those boxes.
There is no licensed VM version of OS X (except maybe OS X Server). Around the time the App Store opened, I went to an event with an Apple engineer, about iPhone development, at a university. He took questions. One guy sort of aggressively demanded to know why there were no development tools for Windows. The presenter sort of sighed and told him look, Apple is a hardware company.
posted by thelonius at 8:36 PM on June 10, 2013
There is no licensed VM version of OS X (except maybe OS X Server). Around the time the App Store opened, I went to an event with an Apple engineer, about iPhone development, at a university. He took questions. One guy sort of aggressively demanded to know why there were no development tools for Windows. The presenter sort of sighed and told him look, Apple is a hardware company.
posted by thelonius at 8:36 PM on June 10, 2013
I am not a native mobile developer but I have developed apps with Titanium and PhoneGap/Cordova, Titanium will probably prepare you better for native development because you will be using native elements controlled by javascript.
If you are decent with javascript, Titanium will give you a good feel on how the native elements interact. You will have a working app much sooner than if you were to learn Objective-C. It will give you a decent feel for mobile development with the benefit of being able to produce an Android version.
I have seen people develop within a VM, but I would highly suggest you buy a mac. Set up an alert for a lower end mac at http://www.refurb.me/ (if you decide it isn't for you macs generally have a decent resale value)
posted by ambirex at 8:41 PM on June 10, 2013 [1 favorite]
If you are decent with javascript, Titanium will give you a good feel on how the native elements interact. You will have a working app much sooner than if you were to learn Objective-C. It will give you a decent feel for mobile development with the benefit of being able to produce an Android version.
I have seen people develop within a VM, but I would highly suggest you buy a mac. Set up an alert for a lower end mac at http://www.refurb.me/ (if you decide it isn't for you macs generally have a decent resale value)
posted by ambirex at 8:41 PM on June 10, 2013 [1 favorite]
The IOS book Blazecock Pileon recommends is good, but get the 4th Edition if you can wait.
For straight up Objective-C, this Kochan book gets recommended often.
posted by backwards guitar at 2:25 AM on June 11, 2013
For straight up Objective-C, this Kochan book gets recommended often.
posted by backwards guitar at 2:25 AM on June 11, 2013
This quick start guide was very useful for me. It's a bit out of date now, for example the Interface Builder that used to be an external app is now integrated into xCode.
And although useful to know, you can also ignore the bit about manual memory management if you want, as iOS now has a form of automatic garbage collection called ARC (automatic reference counting).
The learning curve is quite steep. Took me about 6 months of hobbyist-level on-off tinkering before the epiphany moment when everything fell into place. Now I'd consider myself pretty proficient. It's a fun and gratifying experience creating iPhone apps.
A good book and some sample code, and I'm sure you'll be up and running in a week or two.
posted by derbs at 2:36 AM on June 11, 2013
And although useful to know, you can also ignore the bit about manual memory management if you want, as iOS now has a form of automatic garbage collection called ARC (automatic reference counting).
The learning curve is quite steep. Took me about 6 months of hobbyist-level on-off tinkering before the epiphany moment when everything fell into place. Now I'd consider myself pretty proficient. It's a fun and gratifying experience creating iPhone apps.
A good book and some sample code, and I'm sure you'll be up and running in a week or two.
posted by derbs at 2:36 AM on June 11, 2013
Besides the above advice, Xamarin might be worth a look given your C# background. It's not a replacement for learning Cocoa (you're still using it, just from another language), but it'll at least be more familiar.
Should note that a Xamarin based is impossible to tell from an ObjC app, unless your users like digging around in IPAs
posted by ConstantineXVI at 4:58 AM on June 11, 2013
Should note that a Xamarin based is impossible to tell from an ObjC app, unless your users like digging around in IPAs
posted by ConstantineXVI at 4:58 AM on June 11, 2013
This thread is closed to new comments.
You'll need a Mac with OS X 10.6.9 or up to run Xcode, the IDE for developing Mac and iOS apps.
If you have a Windows machine, you can reuse its keyboard, mouse and monitor with any cheap Mac mini, even a used one (so long as it has a 64-bit capable processor).
Sign up for a free Apple Developer account, download the free Xcode from the Mac App Store.
Get a good iOS book and go through it. Also, go through the example projects on Apple's Developer site. Find a project you want to work on and use that to teach yourself various frameworks in the iOS kit.
Sign up for a Stack Overflow account for asking good questions (try to do homework, first). The site has gone downhill over the last couple years, but it is still a decent resource for answering iOS questions.
Also, the Apple Developer Forums are a good resource, particularly if you plan to do iOS 7 development, which is still under NDA.
The free account will let you build and test applications through iPhone or iPad Simulator applications that run on the Mac.
If you have an iOS device and want to run your apps on it, you'll need to buy a $99/yr license, which sets up the certificates and so forth that sign your apps. This license will also let you submit apps to the review folks at Apple, so that you can publish on the iOS App Store.
Feel free to send me any questions. It's a fun platform to develop for. Good luck!
posted by Blazecock Pileon at 8:35 PM on June 10, 2013