How To Learn iOS Development

Written by Reinder de Vries on August 30 2018 in App Development

How To Learn iOS Development

Just as with learning anything new, learning iOS development is challenging. It’s also fun, exciting and rewarding! So, can you take an approach that takes the frustration out of learning how to code, while getting you faster to the finish line?


In this article we’re going to discuss how to learn iOS development. Instead of showing you step-by-step how to build an app, we’re going to look at how you can learn how to code.

When you’ve finished reading this article, you will have a step-by-step plan for learning how to code. You know exactly what to do, what steps to take, and how to take them. Oh, and you don’t need any coding experience to get started.

Ready? Let’s go.

  1. Introduction
  2. One Hour Per Day
  3. Recommended iOS Development Topics
  4. Get Over “The Hump”
  5. How To Start Your App Project
  6. Further Reading


Let’s first talk about what skills you need to build your own apps.

  • Use Xcode: Xcode is the Mac app you use to create apps. It has a code editor, project organizer, compiler, debugger, and many more important tools to build great apps.
  • Swift Programming: Swift is the powerful programming language that you use to code iOS, macOS, tvOS and watchOS apps. It’s easier to learn than Objective-C, and Swift packs a ton of features that help you code productively.
  • Build UIs: Every app needs a User Interface (UI). UIs are made up of buttons, views, navigation, labels, images, controls, etcetera. It’s important that you know how to build UIs and design them.
  • Coding Logic: Your Swift code governs what happens in your app, and when. This is called logic, and it’s crucial to any app. Most of learning iOS development is focused on understanding code and logic, and being able to code from scratch.
  • App Architecture: Writing clear, extensible and maintainable code is as important as writing code that works. App Architecture is a challenging topic, and it takes time to learn what solution works best in different scenarios.

Can anyone learn how to code? Absolutely! You only need some time, and an app idea to get started. It helps if you don’t give up too easily, and if you know how to ask help from others.

Xcode, the Mac app you use to create iOS apps, only runs on macOS. And to use macOS, you need a Mac computer. So, if you want to learn iOS development, you will need a Mac! There are other options too, as I’ve explained in this article.

Learn how to build iOS apps

Get started with iOS 12 and Swift 5

Sign up for our iOS development course Zero to App Store and learn how to build professional iOS 12 apps with Swift 5 and Xcode 10.

One Hour Per Day

One hour a day…

This is my no. 1 rule for learning anything. If you can set aside one hour a day to focus exclusively on learning iOS development, you’re guaranteed to make progress. It’s that simple.

Here’s how it works:

  • Learn iOS development for one hour a day, every day, for one year
  • Focus exclusively on iOS development in this hour, without distractions
  • Set a timer for an hour, and stop when the timer goes off
  • Get back to learning iOS development for one hour the next day
  • When you miss a day, don’t worry, and pick it up again the next day

Research shows that our brains learn new information when we repeatedly expose ourselves to the learning material, in different ways. You could say that practice makes permanent, so by consistently spending time to learn iOS development you can master it.

In the years that I’ve run, I’ve seen many people learn to code iOS apps. A pattern that stood out among successful learners is that they learned habitually, and kept their momentum between learning sessions. So, when you learn consistently, and get back to it regularly, you’ll learn iOS development more successfully.

Learning is of course a complex topic. If you’re interested to learn more about how we learn, I recommend you check out Barbara Oakley’s excellent Coursera course, Learning How To Learn.

Do excuses bog you down, when you want to learn iOS development? Commit to 1 hour of learning a day. Keep a run streak count on your calendar to keep yourself accountable. Mark every day you learned for 1 hour with a big red X, and don’t break your day-to-day streak.

Recommended iOS Development Topics

Let’s take a look at the topics you’ll need to learn to master iOS development. And get my open source Swift cheatsheet, while you’re at it!

Begin with these Swift topics:

Then move on to topics about the iOS SDK:

  • Working with view controllers
  • Working with UI elements such as UILabel , UIButton and UIImage
  • Working with table views and data sources
  • Working with navigation and UINavigationController
  • Sending and receiving notifications with NotificationCenter
  • Get to know Xcode, Interface Builder and App Store Connect
  • Master Auto Layout, constraints and the view controller life-cycle

Then learn about app architecture:

And focus on some intermediate topics:

Finally, get some diversity into your learning with:

Looking for an in-depth iOS development course? Check out Zero to App Store, our flagship course here at LearnAppMaking. The above topics, and much more, are introduced gradually as you build 6 different iOS apps in the course. And you get 1-on-1 help in our developer community! » Learn more

Get Over “The Hump”

I’ve learned plenty of new things in my life. Every time I learned a new skill, I would encounter something known as “the hump”.

You want to get over this hump as soon as possible, because everything gets easier after the hump.

Here’s how you recognize the hump when learning iOS development:

  • You can write more code, with fewer errors, without running your app in between, to check your results
  • When you encounter bugs or errors, you have an intuitive workflow that you follow automatically
  • You get better at reading someone else’s code, and understand what they’re doing
  • You understand what tools and components you need to build an app feature, and you can create a break-down of steps you need to take to build it

When you feel a certain fluency when you’re coding apps, you know you’re over the hump. It’s a great feeling of ease, clarity and comfort. And it’s awesome!

Beginner iOS developers make two common mistakes when dealing with the hump:

  • They give up before the hump
  • They slack off, and never get over the hump

When you set your expectations of learning iOS development too high, you’re likely to give up when the going gets tough. You get frustrated, lose motivation and give up.

When there’s too much time between learning sessions, you don’t build up momentum. Your brain doesn’t get enough exposure to the materials you’re trying to learn. So, you forget what you learn and you won’t get over the hump.

It’s surprisingly simple to overcome these mistakes. Here’s how:

  • Give up before you start, and if you start, don’t give up
  • Commit, build momentum, and keep the pressure on

If you give up before you start, you will never have to get over the hump. It sounds defeatist, and that’s the point: quitting before you start is exceptionally effective! You can try lots of things, decide that it’s not for you, and move on. Think about the time you’ve saved!

If you commit to learning iOS development, then follow through. Don’t give up! Commit yourself, build momentum, and keep the pressure on.

In essence, your ability to assess future failures makes you successful. You save time, money and energy because you didn’t waste it on something you were going to give up anyway. Instead, you spend these resources on something you’re 100% committed to. And that’s what you’ll succeed at.

The place before the hump is known as The Dip. Seth Godin wrote a great book about it. And this is an excellent video that explains how The Dip works.

How To Start Your App Project

The best way to learn iOS development is to start your own app project. You can try out newly learned things in your own app, and gradually build towards a complete app.

The single biggest struggle for beginner app developers is transitioning from doing tutorials to coding your own app from scratch. Everything makes sense when you’re following a tutorial, but you’re stumped when starting a project from scratch.

Sounds familiar?

When you start your own project as early as possible in the learning process, you get used to coding from scratch. And that’s exactly what you want to practice. Don’t stay stuck with iOS tutorials!

Here’s the approach I recommend:

  1. Learning Phase: Start with tutorials, and let them teach you individual topics and skills
  2. Practice Phase: Apply what you learn in tutorials in mini “sketch” projects to practice
  3. Experience Phase: Focus on incorporating newly learned topics and skills in your big project

Divide your time equally between the three phases. You can move between the phases however you see fit, but you’ll see that it’s easiest to go from Learning to Practice to Experience.

The last step is called the Experience Phase because real-world experience is important. If you stay in the learning and practicing phases, you never incorporate what you learn in real-world projects.

It’s exactly this real-world experience that matters for employers, freelance clients, indie apps and startups. Building iOS apps is different in the real world, compared to the classroom. You might learn “fake” swimming on land first, but you don’t want to stay there forever. Jump in!

The Practice Phase is crucial, too. I see iOS developers learn something new and then immediately apply it in a real-world project. This leads to errors and frustrations, because your new skill hasn’t developed enough to be ready for an actual project. Practice it from different perspectives first and avoid copying-and-pasting code.

How do you start your app project?

  1. Start with a simple, basic app idea
  2. Design and map out your app’s features
  3. Work out your app’s data structure
  4. Investigate frameworks and libraries
  5. Set up your app project and build the 1st feature
  6. Build the next feature when you’re ready
  7. Backtrack, keep going, and don’t stop

I’ve written extensively about creating your app project from start to finish, so here are a few quick tips:

  • Don’t try to build the next Facebook, and don’t make your app idea too complex
  • Gradually upgrade your goals when you feel you can handle more challenging projects
  • Learn to approach a problem from several angles, and learn different solutions for one problem – this one skill has kept me in business for 10+ years
  • When you use a framework or library, find out how it works internally
  • Go back to code you’ve written before, and features you’ve build, and improve them with what you know now

Building your own app project is incredibly fun and rewarding. It’s not just the end result that counts – the gradual progress of improving, learning and refining is what makes it worth it.

Learn how to build iOS apps

Get started with iOS 12 and Swift 5

Sign up for our iOS development course Zero to App Store and learn how to build professional iOS 12 apps with Swift 5 and Xcode 10.

Further Reading

Are you ready to take on your app project, and learn iOS development? So far, we’ve looked at:

  • What topics you need to learn and skills you need to master
  • The general focus areas of learning iOS development
  • Two common pitfalls for beginner iOS development
  • Why it’s worth it to get over “the hump”
  • How to keep momentum with coding 1 hour every day
  • A step-by-step plan for starting your own app project

Want to learn more?

Reinder de Vries

Reinder de Vries

Reinder de Vries is a professional iOS developer. He teaches app developers how to build their own apps at Since 2009 he has developed a few dozen apps for iOS, worked for global brands and lead development at several startups. When he’s not coding, he enjoys strong espresso and traveling.