Learning iOS Programming

“What is the best way to learn iOS programming?”

I get this question a lot and in this article I want to tell you guys about what not to do and what I believe is the best way to learn iPhone programming. Let me first share with you guys how I failed the first time when I was learning!

How to fail at learning iOS programming

I worked at a consulting company that built custom apps for clients. Three years ago when I was tasked to build an iPad app, I was stoked to be able to learn iPhone programming and Objective-C and get paid to do it.

I wasn’t worried about learning something new because I knew that there were sufficient resources online to learn from. Despite that, I decided to get a book to learn from because that’s how I’ve learned other programming languages back in school.

Beginning iPhone Development Book CoverThe book I read was Beginning iPhone Development by Apress. The book itself wasn’t bad (outdated now), but the big mistake I made was that I read it cover to cover without reinforcing my knowledge by testing out what I learned along the way.

You see, I had a false sense of confidence because I had a programming background and I had learned new programming languages before. So while I understood the concepts presented by the book as I was reading it, by the time I reached the end of the book, I realized that I didn’t know how to start.

There was no way I could keep the entire contents of the book in my head. If I had practiced the concepts while I was reading it, I would’ve given the newfound knowledge a chance to sink in and become second nature.

So how did I recover from that mistake? I ended up getting my feet wet and followed some iPhone programming tutorials online. I made mistakes along the way and I became better as I went through obstacle after obstacle.

Several more iOS projects later, I had felt pretty comfortable with programming iOS apps.

I would have reached that proficiency a lot faster if I had started learning by practicing and making mistakes rather than reading an entire book before starting.

The thing is, reading the concepts is great and you may feel that you have a good handle on it but when you finally put pencil to paper (in our case, fingers to keyboard), you’ll realize what the gaps in your knowledge are and only then can you ask the proper questions to improve and learn.

The best way I know to learn iOS programming

So having had that experience behind me, I really believe that the best way to learn anything is by taking action and failing as fast as possible. Instead of reading or watching videos non-stop, put that knowledge into action so you can actually identify the gaps in your knowledge.

Learning iOS programming is no different. The best way to start is to open up XCode and try to build a Hello World demo. For non-programmers, this is simply an app that outputs “Hello World” on the screen when you run it.

From there, learn how to layout some UI Elements on the screen and how to respond to user interactions and gestures. Then learn how to introduce a second view into your app and how to navigate between the two views. Finally, learn how to use the UITableView control so you can display scrollable rows of data in your application.

By that point, you’ll have gained enough confidence and made enough progress to become invested to learn even more!

And that alludes to the biggest killer of trying to learn anything; getting discouraged and giving up after not making much progress. If you push past that point, you’ll be building your own iPhone apps in no time and wondering why you ever thought of giving up!

Learning on CodeWithChris

Code With Chris LogoI really believe in a practical approach to learning how to make an iPhone app.

I have a series of free beginner videos that follows this practical philosophy. I recommend that you watch them, try to follow on your own computer and you’ll be amazed at how much you can learn without having any prior programming experience!

Click the banner below to get the videos:

How To Make An App Swift Course


  1. hi chris i want to make an apps but i don’t get how do we write the code i want to make an apps about world sport news.. can you help me the only make me confuse when writing a code. i saw your video in youtube but your version is old mine is 6.1.1 thats make me confuse.

  2. Hi Chris,i finished building the War App but have a problem with my background.I get white spaces on the background in 2 areas.First area is in between the 2 cards that are in the container and second area is the container that i put the Playround button into.Please help.

  3. Hi i have purchased maverixs and my xcode version is 5.1.1 and ios sdk is 7 when i built and run my application it shows the error IOS Simulator failed to load the application. what could be reason its not run the project which are developed in xcode 4.x version…

  4. Hi Chris, I want to use the wiimote code(Johnny Lee original idea for Windows) on an ipad, but that code doesnt exist!. What kind of know-how I need to do that?

  5. Hey Chris, the videos are great! Reading the above, I realise now that I have done the wrong thing and just watched them all without trying to do the exercises at the same time, so it is time to get Xcode on a machine and give it a crack! take 2!
    A question: My wife has a spare MacBook with snow leopard on it, will the latest version of Xcode work, or am I destined for a non ARC existance with an older Xcode?

    • Hey Dumpy,

      Thanks for watching!
      Snow leopard is fine for Xcode 4 i believe! Also, im not sure if Mavericks is a free upgrade for you. If so you can run the latest Xcode.. either way, you’ll be able to use ARC!

  6. Hey Chris, You mentioned that you had a paid page too. Whats in that and is that the next step after going through all the free stuff

  7. How do I learn objective C ? How did you learn it, and what way would you recommend to learn it? How can I start to learn Objective C, if I not have any programming background before? 🙂

    • Hey Joakim, I didn’t know Objective-C when i started either but I learned through following tutorials, making a ton of silly mistakes and continuing to work on it!
      So can you! The series in the link “Start Here” above is targeted at people with no programming background so don’t give up! 🙂
      It’ll take awhile to get the hang of it, but once you can code, you’ll have a ton of fun turning your ideas into apps!

    • That’s a great idea Dave! Thanks for contributing. I should write a tutorial on how to do grab the code from Github and do a pull request!

  8. So if I understood right. All tutorials you’re talking above (included the one with multiple view switch) are coming before the end of september? That would be so amazing.

    I started to learn xCode (not Obj-C) a year ago and now i want to learn Obj-C and try to make an app (i made a game before but not with xCode). Now i am searching for contemporary tutorials a week now and now it seems that i found them (here)! So nice…

    Anothe question Chris: is there a huge difference between xCode4.6 and the coming xCode5? Thanks in advance!


    • That’s great that you’re learning from here, thanks!
      To be honest, I haven’t had time to look into XCode 5 yet but I’m going to have to soon! From my peers, I’ve heard that there are many improvements!

        • Oh, I see what you mean. No, it’ll still be the same way you write objective-c.
          The programming language is not changing, just the app you write code in.
          Think of it like going from one version of Microsoft Word to the next!

  9. Hey Chris,

    Thank your the way start leaning ios programming, it great. I have some trouble when i begin learn by read book, and i have many gaps when practices. Once again thanks your tutorials.

  10. Hey chris,
    Thanks so much for all you do in teaching the world to code. Its really great. Also your tutorials are amazing and cant wait for whats coming before the end of september!

  11. Hi Chris,

    When I look up this book, there are a whole series of them. The latest one is Beginning iPhone 5 Development. Should I get the latest version, or is the one you recommended the most generic for beginners?


Leave a Comment