In this tutorial, we’ll discuss how you can best learn iOS app development. We’re going to look at how you can learn to code iOS apps, instead of focusing on how to build an app.

Apps from anywhere else: Apps that aren’t acquired from the Mac App Store and aren’t signed with a developer ID fall into this last category. Apple considers these the least secure, but it doesn’t mean an app is untrustworthy–after all, Mac apps that haven’t been updated in years may not be properly signed. Get a huge head start on creating a native Mac app based on your existing iPad app. Your Mac and iPad apps share the same project and source code, so any changes you make translate to both platforms. And your newly created Mac app runs natively, utilizing the same frameworks, resources, and even runtime environment as apps built just for Mac.

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

Here’s what we’ll get into:

  • What iOS development topics you need to learn and skills to master
  • The general focus areas of learning iOS development, such as Xcode
  • Common pitfalls for beginner iOS developers
  • Why it’s worth it to get through “the dip”
  • How to keep momentum by coding 1 hour every day
  • A step-by-step plan for starting your own app project

When you’ve finished reading this tutorial, 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.

Getting Started With iOS Development

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

  • Master 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. It’s also a lot of fun!
  • 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. You can use view controllers or SwiftUI.
  • Coding Logic: Your Swift code governs what happens in your app, and when. If this then that. This is called logic, and it’s crucial to any app. Most of learning iOS app 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 like the foundation you build a house on. It’s 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 a little bit of perseverance to get started. It helps to pick an iOS app project you want to build, because that’ll motivate you to learn more.

Xcode, the Mac app you use to create iOS apps, only runs on macOS. And to use macOS, you need a Mac computer. Xcode doesn’t run on iPad, unfortunately. If you want to learn iOS development, you will need a Mac! There are other options too, as I’ve explained in this tutorial.

Learn how to build iOS apps

Get started with iOS 14 and Swift 5

Sign up for my iOS development course, and learn how to build great iOS 14 apps with Swift 5 and Xcode 12.

Practice 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 app development, you’re guaranteed to make progress. It’s that simple.

Here’s how it works:

  • Learn iOS app 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 app 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 will 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 app 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. No zero days!

Recommended iOS App Development Topics

Let’s take a look at the topics you’ll need to learn to master iOS app 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 and SwiftUI
  • Working with UI elements such as UILabel , UIButton and UIImage
  • Working with table views and tab bars
  • Working with navigation and UINavigationController
  • Sending and receiving notifications with NotificationCenter
  • Learn how to find and fix bugs effectively and efficiently (with zero frustrations!)
  • Get to know Xcode, Interface Builder and iPhone Simulator

Looking for a great app project to build? Try these:

Then learn about app architecture:

  • Get started with Model-View-Controller
  • Learn why app architecture matters
  • How to pass data between view controllers
  • Learn about SOLID, DRY and the Single Responsibility Principle
  • Focus on testable code and Dependency Injection

And focus on some intermediate topics:

Finally, get some diversity into your learning with:

  • Learn about algorithms
  • How do you keep up with Swift changes?
  • Learn to find what you need in Apple’s documentation
  • How to transition from tutorials to writing code from scratch

Looking for comprehensive, in-depth iOS app development training? Check out my flagship iOS development course, here at LearnAppMaking. The above topics, and many 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

Developing Android Apps On Mac

Get Through “The Dip”

I’ve learned plenty of new things in my life. Every time I learned a new skill, I would encounter something known as “the dip”. The concept of this “dip” was originally introduced to me by Seth Godin.

You want to get through the dip as soon as possible, because everything gets easier after the dip. The idea of the dip is quitting before you start something, and powering through the dip no matter what, if you decided to pursue your goal.

Here’s how you recognize the dip 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 through the dip. 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 dip:

  • They don’t give up before the dip, and lose valuable time
  • They slack off, and stay in the dip forever

When you set your expectations of learning iOS app development too high, you’re likely to give up when the going gets tough. You get frustrated, lose motivation and give up. If you reflect on this before starting, you might be compelled to give it a try and decide that it’s not for you.

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.

Developing Apps On Mac

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 through the dip. 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. You increase your chances of succeeding at a greater number of goals, having tried many of them. And think about the time you’ve saved!

Developing Apps On Mac

If you commit to learning app development, then follow through. Don’t give up! Commit yourself, build momentum, and keep the pressure on. Power through the dip, and everything gets easier after.

Developing Apps On Mac Computer

The essence of the dip is your ability to assess future failures, and choosing what to commit to. 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.

This is an excellent video that explains how The Dip works, in more detail.

How To Start Your Own App Project

The best way to learn iOS app 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 iOS apps 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 to 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
  • Keep a notebook of best practices, summaries and tips and tricks
  • 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

Ios Apps On Mac

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. And you’ll cultivate a valuable, employable skill in the process: iOS development!

Learn how to build iOS apps

Get started with iOS 14 and Swift 5

Sign up for my iOS development course, and learn how to build great iOS 14 apps with Swift 5 and Xcode 12.

Further Reading

Are you ready to take on your app project, and learn iOS app 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 app development
  • Two common pitfalls for beginner iOS development
  • Why it’s worth it to get through “the dip”
  • 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?

Developing Apps On Mac Catalina

  • Check out my free iOS basics course, which guides you through the basics of iOS development in 7 days
  • Sign up for my flagship iOS development course to master iOS development and much, much more