How To Learn iOS App Development
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.
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.
- Get Started with iOS Development
- Practice 1 Hour Per Day
- Recommended iOS App Development Topics
- Get Through “The Dip”
- How To Start Your Own App Project
- Further Reading
Get 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 UIKit 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 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.
Practice 1 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 LearnAppMaking.com, 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.
A great insight I’ve learned from mindfulness, is that you can always start over. The goal isn’t to build a habit, the goal is to start again when you’ve lost the path somehow. When you start again every day, you build that skill every day, and it becomes easier to make progress 1 day at a time. Focus on today, here and now, and commit to doing the same thing tomorrow. But don’t worry, tomorrow will come on its own.
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:
- For Loops
- Object-Oriented Programming
- Arrays, Dictionaries and Sets
- Classes and structs
Then move on to topics about the iOS SDK:
- Working with SwiftUI and UIKit
- Working with UI elements such as labels, text, buttons and images
- 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:
Then, practice your problem-solving skills with these tutorials:
- Palindromes in Swift
- Converting Roman Numerals with Swift
- Binary Search in Swift
- Shuffling Arrays with Fisher-Yates
- Conway’s Game of Life in Swift
- Insertion Sort in Swift
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
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.
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!
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.
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.
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:
- Learning Phase: Start with tutorials, and let them teach you individual topics and skills
- Practice Phase: Apply what you learn in tutorials in mini “sketch” projects to practice
- 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?
- Start with a simple, basic app idea
- Design and map out your app’s features
- Work out your app’s data structure
- Investigate frameworks and libraries
- Set up your app project and build the 1st feature
- Build the next feature when you’re ready
- 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
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!
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?
Code Swift right in your browser!
Go to the Swift Sandbox