iPhone development 101

So my first iPhone post was pretty detailed, but don’t let that deceive you, I’m not actually experienced developing for iPhone. In fact, I’m not even really experienced developing on Mac using Objective-C either. In fact, that’s sort of the point of this blog, or at least the iPhone category. I’m not a hardened Obj-C developer who’s looking to write tutorials that I think less experienced developers will like. Rather, I’m a beginner in this field who’s looking to guide other beginners by writing my solutions to the problems I’ve encountered. The first problem I encountered was that I couldn’t debug my apps on-device without paying $100 for a code-signing identity that I may never actually take advantage of. As a result, the first post on this blog is how to get around that stumbling block. Moreover, I’ve also found that you are bound to experience the same problem at least a few times, and I’ve also found that, in a field as fast-moving as iPhone development, retracing your steps is a serious problem. This blog is meant to be a guide for me as well as anyone else.

So more to the core of this particular post, iPhone development 101. Now that I can compile and run code on my device, I need to actually get to coding, but where to begin? Here are some resources I’ve found that look promising.

  1. http://www.stackoverflow.com/. In particular, this thread (coral). Stackoverflow in general is awesome, but it’s awesome for any programming language. In particular, I found the site via the thread above, which has some gems in it. In fact, I’m going to shamelessly repost half of them. Look out below!
  2. Straight from the post above, Stanford University has published material from a course on iPhone/iTouch development here (coral). In fact, Apple has a higher education program specifically designed to make setting up these courses super easy, but unless you’re actually a professor, that’s pretty much useless to you. On the other hand, Stanford has published all the information you really need right there, so have at it if you want to follow along!
  3. Apple’s “The Objective-C Programming Language” introduction book. Available online here (coral) or by PDF. This has been around for a while, but is updated with the language and so is perfectly applicable to iPhone and Mac development alike. It’s long, but luckily it’s easily read by novices. Some experience with C is assumed, but it’s not particularly critical, and if you have any programming knowledge, you should be set.
  4. http://www.appsamuck.com/ (coral). Basically, the idea is that AppsAmuck wanted to put out some sample code for beginners to get a handle on programming, so they released a new example every day for a month. The month is up, so there are 31 happy sample downloads waiting there for you to tear into. This is a great resource to extend the free code offered by Apple’s official examples… Which bring me to my next resource:
  5. Apple Developer Connection (ADC) – http://developer.apple.com/iphone. This one was probably obvious, but hey, maybe you didn’t know about it. Sign up using your Apple ID, and all the iPhone documentation as well as a few code examples and some videos await. The selection isn’t phenomenal, but it’s straight from the horse’s mouth and it’s free, so why not. You’ll also definitely need to be signed up here if you plan to actually become a member for $100 and submit apps to the App Store.
  6. http://iphonesdkdev.blogspot.com/ and http://iphone.cazisoft.com/. These aren’t specifically getting started documents or anything like that, but they are definitely a couple of good blogs to keep your eye on while you start in to development for the iPhone. I’ve found a bunch of useful information on these blogs, and I’m willing to bet that you probably can too. In general, they’re probably good sites to put in your iPhone-dev bookmark folder.
  7. http://icodeblog.com/, specifically this post (coral). This is another blog to keep in your bookmarks folder, but the specific post above also has a hello world tutorial as well as a few others that you might want to check out.
  8. Finally, it’s not a web-based or free source, but Aaron Hillegass’ Cocoa Programming for Mac OSX (3rd Edition) is a wonderful book for getting started with the whole Mac OSX workflow, and while it’s specifically for the desktop OS, it’s quite applicable to the iPhone as well. You can find it, among other places, at Amazon.com

Now, this one’s an honorable mention for similar reasons to number (6) above, but you’ll undoubtedly consult this site often if you plan to keep up with the world of jailbroken development, and it wouldn’t be a bad idea to stay in the know even if you’re not. Thus, in bold, we have http://blog.iphone-dev.org/, the iPhone Dev Team blog. Basically, these guys are wizards who repeatedly pull magic out of their asses to bring us the coolest iPhone developments of anywhere. For example, today’s funday post (coral) was to announce preliminary linux support on the iPhone and first gen iTouch. I frequent this blog for the latest information on the current device software unlock status, as well as information on jailbreak status after Apple software updates.

Lastly, I encourage you to look through all the other links on that first thread above, and also google around for things. Much as I will try, the fact of the matter is that the internet has much more information available then I can consolidate here, and while I’ll post anything useful that I come across, there will always be newer info than what I know about. Feel free to leave comments with links to such information as well. I’ll read them and anything useful.

So that’s all for now, I have to get back to getting started myself 🙂

3 Comments

  1. October 28, 2009

    Thanks for this post alex…I am in the same boat with regards to not having done any obj-c or ever used a mac a great deal, so this entry will no doubt help a lot once I get started 😉

  2. sams
    March 10, 2012

    Hi,

    Thank you four your nice writing on

    Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *