views:

363

answers:

14

Hi everyone, I'm wondering if it's realistically possible to learn the iPhone SDK and complete an app by the end of this summer. The app shouldn't be too difficult, it would just interact with my site's API and essentially just fetch, create, and edit resources. I already have a little experience with the SDK (and I'm comfortable with Objective-C), so I'm not completely new to it. Although here I things I don't know how to do and what I'd need to learn:

  • Log in to my site using basic http authentication and store the user's username/password for all future requests
  • Implement a toolbar at the bottom to navigate between different views
  • Fetch and parse xml into list items
  • Do POST/PUT requests to create/edit a resource on my server

Are there any good resources available to learn how to do those tasks above? Thanks!

+6  A: 

Yes! Go for it!!!

nevan
+3  A: 

I learned and published in 3 months. The question is are you comfortable with Objective C (which you are) and are you familiar with cocoa and the MVC pattern?

Basically, unless you are totally new to programming, go for it!

Jason Webb
How did you do it, if you don't mind me asking?
Andrew
Learned Objective C. Bought some books and read about cocoa. After that trial and error until it worked.
Jason Webb
+3  A: 

You mentioned creating/editing resources on your server. If you're running Ruby on Rails on the backend, you might find Objective Resource interesting, an Objective-C interface into Active Resource:

http://iphoneonrails.com/

But back to your original question, it all depends on how polished you want the app to be. My advice is, ignore if you can do it and just get started learning. Start with the (free) Stanford iTunes U course podcast.

Joost Schuur
+1 for mentioning the podcast.
Moshe
I do indeed use Rails, and that looks extremely useful. Thank you!
Andrew
+1  A: 

I wrote an Android game in two weeks with out knowing Java or the Android API or that much about game programming.. But I had to copy and paste a lot of stuff from documentation examples and other available source code. It is theoretically possible to learn enough to write an iphone app in that time and build it. But it is up to you to focus and see it through, that is the hard part.

Andrew
A: 

Yes you can.

My suggestion, learn the basics first. Grab a book - I recommend "Beginning iPhone 3 Development" by Jeff LaMarche & David Mark - read most of the chapters (a few of the later ones you can probably leave for another time if you don't need them yet, but do all the earlier ones) and get your head around the essentials. Do the exercises and code as much as possible. There are plenty of learning resources around the internet too.

Then tackle your app while continuing learning. By this point you'll have fallen across & bookmarked a few relevant web links or grabbed a book or two specific to your app's needs, and it should all fall into place.

Good luck! :-)

Mike Howard
+1  A: 

Yes - I've even done it.

I had an internship for 2 months last summer and I managed to learn objective-c and create and polish a fairly complex app within that time.

The way I did it was just to throw myself into it. I knew what needed to be done so I jumped into it. I had a quick look at some open source code for various things to see how other people did it then apply those rules to my own code.

2 important things to remember:

  1. Google and stackoverflow are your friend, if your having trouble with something google and stackoverflow will normally have an answer.

  2. Option, Command and double click on something in your code will open up the apple developer documents and do a search for the thing you double clicked on. This gives a really easy way to check for methods and properties in Cocoa classes.

James Raybould
+1 for handy shortcut to apple documentation. You can also use option (alt) -> double click to get a shortened version of the documentation for a method.
djhworld
A: 

Yes!

Other than the advice people gave, you can also check out the iPhone Application Programming course on Open Courseware. But, I warn you, it's a 45h course.

Pran
A: 

3 months - full time - sure. Then the next year or so can be spent realising all the little things you did wrong and getting better. But don't let that hold you back, you can certainly do something functional in that time and it's the best way to learn.

I would not start with a book but use iTunes University. The first course available from Stanford was called CS193P Web Page (iTunes link) and it's a great place to start - seeing things done on video is easier for me than reading. More recent classes are also available though they do not publish every semester's class.

Adam Eberbach
A: 

Maybe you can spend a week or so to study the Wordpress source ...

ohho
A: 

I'm doing pretty much the same thing on OSX development. This is how I tackle it:

  • Buy relevant books. Amazon and SO provide with the right choices, then buy alot of them and see which one fits. I found that having a good book or two and occasionally reading them outside of your programming environment can really enforce you learning proces.

  • Work through at least one book, the others are for elaborating on what you have learned.

  • Start writing you app. This can even be after only a mere week of learning the SDK. Start with globally planning the thing, and dividing it in concrete to-do's. Consider every to-do a challenge and tackle accordingly. You will very quickly learn this way.

  • After a while your knowledge has expanded enough to reflect. When you just started writing the app, you inevitably made some mistakes. Now is the time to fix them and let your experience work its way.

And as previously mentioned, go nuts with google and SO. Of course, posting here proves your ability to use these tools properly. Above all, have fun.

Job
A: 

It's possible.

Don't bother investing too many resources into books, especially if you want to save money. Stanford University have put up an excellent series of lectures for free from their iphone course that will get you up to speed with iPhone development, with a few assignments to do on the side (this is good because it offers some structure to your learning)

You can find this on iTunes (it might be reasonable to skip the 'introduction to objective-c' lectures if you're already familiar with the language)

Also it might be worth pointing out that if you want to develop an app on an iPx device you need to get a Developer License which will cost you a bit of money for membership. Although working off the simulator is completely free but doesn't replace trying your app out on a physical device.

djhworld
A: 

You can get a lot of help from iTunes U. Here is a very recent class which is packed full of useful information.

http://deimos.apple.com/WebObjects/Core.woa/Browse/matcmadison.edu.3989485784.03989485786

There is also a class from Stanford University but I find it moves along slower, but it does cover a lot of material.

http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3124430053.03124430055

If you search for "iPhone Application Development" on iTunes you will find other classes as well. I find that these classes, along with all of the available documentation and sample code from Apple, is a great way to learn Objective-C, Xcode and iPhone development.

Brennan
A: 

ANother suggestions is to look for opesource projects and try to use them as your training exercise. Example: http://sourceforge.net/projects/mtgr8-a3/ http://sourceforge.net/projects/mtgr8-jigsaw/

A: 

You can learn how to do GET and POST on Apple Web site.

beefon