tags:

views:

1373

answers:

8

I have found the "Getting Started" documents for developing apps on iPhone.

  1. I wanted the community's opinion on what I should know/learn (in terms of languages or concepts)?

  2. How long would it take for a moderate programmer to learn and build an app that manages a list, connects to certain websites, etc?

  3. How to get an app I made onto the iPhone? Just ZIP then install with .ipa file?

A: 

First of all: buy a mac if you don't have one already, the windows tooling pipeline is basically non-existant. And trying to run OSX on non-apple harware is illegal in most situations.

Download the iPhone SDK. http://developer.apple.com/iphone/ should have everything you need.

Objective-C is a little bit on the strange side but a moderate programmer should be able to pick it up quite quickly.

Installation: i have no idea sorry...use the app store ;)

Neil
A: 

Learn objective C and work with Cocoa. There are far more examples of that floating around than iPhone code. Depending on what environment you are used too, Xcode and the experience of developing for the iPHone can be quite a change so get ready to buy some books and spend lots of time scratching your head!

keithwarren7
+9  A: 

I wanted the community's opinion on what I should know/learn (in terms of languages or concepts)?

You will be using Objective-C and Cocoa. These are fairly strange concepts to crasp if you have not done MAC programming before, but after a short while you will probably fall in love with them. The most important concept to remember with iPhone development is memory management as the device has no concept of garbage collection.

How long would it take for a moderate programmer to learn and build an app that manages a list, connects to certain websites, etc?

Not too long. There are a multitude of example applications on the internet, and many helpful folk on stackoverflow.com

How to get an app I made onto the iPhone? Just ZIP then install with .ipa file?

You will need to download the SDK, create an app using xcode on the mac (or similar environment for windows if there is one) - you can test with simulator without giving apple anything, but in order to legitimately test on device you need to become an apple developer.

However If you jailbreak your device, you will be able to follow one of several methods to get your application on the iphone bypassing apples restrictions.

adam
+1 for a good overview all in one post that addresses each initial question, good point on memory management, not terrible to deal with, but alot of people take auto-GC for granted anymore...
curtisk
My only comment is that I think it would good to get rid of the jailbreak section.
Geoffrey Chetwood
+2  A: 
  1. Objective-C. Pay close attention to memory management, i.e., retain, release and autorelease.

  2. Took me about a month (part time) to get something that pretty much worked. And then another month to refactor after learning what I'd done wrong the first time. This was while the NDA was in place so it would probably be easier now.

  3. You need to join the iPhone Developer Program. Installing a development app is just a matter of running from XCode once you have you certificates sorted. (Check the iTunes Connect documentations. It's pretty good.)

Installing on someone elses iPhone is a matter of figuring out ad-hoc deployment (hard) or uploading to iTunes (easy).

Stephen Darlington
+4  A: 

The whole iPhone UI development (UITableView etc) is based around the MVC (Model-View-Controller) pattern, so a good understanding of that is vital.

Memory management is also vital and can be a little cumbersome to start off with. I have not long started so can not give you a good description here without making a fool of myself :). Apple Memory Management

Finally the development environment can be a little wierd to start off with. Especially hooking up the view controller and interface elements. So check that out.

Then its basically looking through the tutorials on the iPhone developer website and the internet to learn the intracacies of the different UI elements and controllers (tables, textboxes etc).

You will need to pay for the iPhone Developer program to legally use your iPhone to debug your applications (although the Xcode dev environment comes with a simulator). Submitting the application to the app store allows access by everyone. Full details for doing this are available after paying your money. There are other ways you can get apps on the iPhone but I will not provide details for doing that - search the internet.

I would say that looking through the documentation and following tutorials will get you far enough to start building applications. This should not take to long. A good book may also help you out here, try the iPhone Developers Cookbook, which gives good well discussed and broken down examples about specific issues and broader coverage of things like tables etc.

Barry Jones
A: 

Learn how to navigate Apple's docs.

For example UIView Class Reference. Took me a little while to get savvy. XCode also has an excellent documentation browser integrated into the IDE. Once you can translate what the docs are telling you into code, the whole API opens up.

Ryan Townshend
A: 

Use the Research Assistant in XCode. (Under Help Menu) That thing rocks my world. Highlight a class like ABRecordRef and it will give you a quick synopsis of what it is and how to use it, with links to the reference docs.

The one bad thing about Apple's docs is that they don't have clear examples of how to call a method in the discussion of the method. This is a glaring oversight, IMO. So many time I just wish there was a simple example for how to use something and I wind up going to Google for it.

Genericrich
A: 

The above information is quite good, but I'd add that getting familiar with the documentation within XCode is very valuable. This means you need to go to the DOC SETS part of the Developer Documentation window and make sure you have the documentation for the iPhone OS you're coding for. I spent a bunch of time writing code that depended on methods in NSObject that are available in Cocoa but not on the iPhone OS.

rik.the.vik