tags:

views:

420

answers:

7

I'm the type of person who usually learns by doing. I have an idea for an app but am conflicted if I should just start development and when I come across something just look it up in my book (the popular apress grapefruit book) or just go through the book first getting the fundamentals down! Any suggestions? I'm already through chapter 5.

What have some of y'all done to get started in iPhone development?

A: 

I think you'll have an easier time if you read through your book first, or read through the Apple Objective C/Cocoa Touch documentation. The memory management and interface builder stuff for iPhone can be a little tricky to get started with, it might pay to read first and run through some examples before trying to start your first project.

Andy White
+2  A: 

Read the grapefruit book up to chapter 15 and do all the apps ;) Really helped, seriously.

Remus Rusanu
grapefruit book?
Boiler Bill
`Beginning iPhone Development: Exploring the iPhone SDK` by Dave Mark and Jeff LaMarche, from APress. The OP mentions it too as 'the grapefruit book'.
Remus Rusanu
At apress.com: http://www.apress.com/book/view/9781430224594 At Amazon: http://www.amazon.com/dp/1430224592/
Dinah
A: 

I can't comment on this specific platform but every time I have tried to learn a new language, platform or framework, I almost always make it some way through learning it all before jumping into code. And those final chapters are always something I wish I had at least skimmed over because they tend to be what you need when you are developing real world applications.

Neil Trodden
+10  A: 

I've found it very fruitful to go through the Stanford iPhone Programming Class CS 193P. You can effectively audit the class for free, watching each lecture downloaded from iTunes and follow along with the people taking it for credit by doing the homeworks and reviewing the class handouts. I've done the first three homeworks at this point and learned a lot from that experience.

If you learn well from in class teaching and targeted assignments it's an excellent choice.

John Munsch
Exactly what I have done, with other books and screencasts as supporting material. I simply made the app I wanted to write my "Class Project" Of course, you don't get graded, but with the supporting mail lists and Google groups, you can get plenty of critique on your code.
mmc
I've actually been following this class on itunes also. What's the google group?
TheGambler
The Google Group is here: http://groups.google.com/group/iphone-appdev-auditors
John Munsch
+7  A: 
  • Search the App Store

No matter what industry you are in, you're going to have competition. There are tons of apps in the app store. Chances are it exists already in some form and it's better than your idea. Chances are you don't have a truly unique idea, but a cool spin on something somebody else is doing. Buy their app (it's probably only 99 cents) and have a look at how they did things, this may give you some new ideas for how to make your app better. Maybe you are simply doing the same exact thing but you're going to do it cheaper. You've now got yourself a product plan.

  • Start by reviewing all the sample code that Apple gives out via the Developer Connection.

There are lots of reusable bits that you can copy and paste into your own app ideas but mostly this serves to communicate their intent. Lots of times you'll see something in a header file or documentation but you don't really get the true intent of how you should be using it. Play with it, make changes, make improvements, run it through Instruments and check for memory leaks, etc. The more you play around with Xcode the more familiar it will feel. Now is is a great time to start picking up some keyboard shortcuts. Read like crazy, memorize all of it until your brain explodes.

  • Build something you know you are going to throw away.

This means basically "putting it all together" or a "proof of concept" of your idea. This helps to get all your thoughts into a single project instead of scattered about in the demo source you see and play with. This will ultimately not be the app that goes to the App Store, but you should be able to copy and paste liberally into your "real" application. It's also a way to try new ideas without playing with your real project later. Git helps tremendously with it's branching ability here, I highly recommend using it.

  • Ship it

Take everything you learned playing with sample source code and building your proof of concept and construct your production application. Do not release it to the App Store until you've tested it on the device and ran it through Instruments a few times to make sure you've got the kinks worked out, the last thing you want is bad reviews. For god sake make somebody else test it! "Lone Wolf" development is fine if you're building something open source but if you are shipping a closed source product you need another set of eyes, I don't care how perfect your ivory tower is.

  • Market it

Congratulations! You've shipped your app and it was accepted! Now get on the horn and contact everyone you know, let them know your app is for sale and to tell their friends. E-mail the blogs you read, get your app or game reviewed by a credible source. Build some "word-of-mouth". Blog about it, Tweet about it, make the whole world love you for solving their problem :)

slf
+2  A: 

I learned iPhone development largely through Apple's iPhone Dev Center. You have to register as a developer (free), but in exchange you get tons of great documentation and tutorials.

I suggest a combination of reading documentation, trying out tutorials, and watching their videos. You'll want to install the iPhone SDK as soon as possible. Nothing substitutes for the excitement of trying to compile code and run it on the simulator. You'll find the documentation reader built into Xcode (the IDE that comes with the SDK) handy too.

Are you familiar with Objective C? If not, skim "Learning Objective-C: A Primer" before anything else.

Next, check out the "Your First iPhone Application" document. It's a quick tutorial and walk-through of the development process. Once you do this, there isn't any reason not to try creating your own application. Just keep in mind that as you read the rest of the documentation you'll stumble on better ways of doing things.

Reading the "iPhone Application Programming Guide" takes awhile, but it's a good overview of the major APIs and hardware available on the iPhone. This is useful for understanding the big picture of what is possible.

Finally, I found Apple's "Fundamentals of Cocoa Session from WWDC" video very helpful in getting a sense of the typical development flow and how Cocoa and Quartz works. That video demonstrates creating a desktop app, but 99% of it applies equally to the iPhone. That particular resource is available by clicking on their "Getting Started Videos" link.

To sum up, I suggest trying some code rather than just reading forever. That said, over the long term you'll still want to push through all Apple's "getting started" documentation. Some skills, like memory management, can't be acquired by fiddling with code.

John M. P. Knox
A: 

JFDI and consult books when you get stuck. Buy as many books as you can - although the grapefruit book is good, you should have Aaron Hillegass' and Erica Sadun's books too. Infact, buying ever iPhone book there is is not a huge outlay compared to your mac and phone...

Then, if you're still stuck, post code here and get help specific to your problem.

Roger Nolan