Tag Archives: swift

How To Learn iOS App 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?

Yes!

In this article we’re going to discuss how to learn iOS app 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. Getting Started With iOS Development
  2. Practice One Hour Per Day
  3. Recommended iOS App Development Topics
  4. Get Through “The Dip”
  5. How To Start Your Own App Project
  6. Further Reading

1. 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 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. So, if you want to learn iOS development, you will need a Mac!

2. 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 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.

Let’s take a look at the topics you’ll need to learn to master iOS development

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 App Store Connect
  • Master Auto Layout, constraints and the view controller life-cycle

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

4. 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.

5. How To Start Your Own 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 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

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.

6. 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 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?

Checkout my next posts! It’s coming soon!