After having completed most of a computer science degree I did what any reasonable person would do. I dropped out and tried to figure out how to be an iOS developer on my own. Somehow it actually worked and I got hired as a junior iOS developer about 9 months later.
Here are some of the resources I used to transition from theoretical programming knowledge to practical and resume ready iOS development skills.
Do some tutorials 💻
The easiest first step is to complete some online tutorials on iOS development. A lot of this will come down to finding a presenter who works the way you want to learn but here are some tutorials I found particularly helpful while I was learning.
One note though, it’s incredibly easy to fall into the trap of either bouncing from course to course, never completing one, or just doing course after course but never starting something of your own. My advice is to find a course and stick with it till the end unless it really turns out to be not for you. Once you’ve done a couple, try to build something on your own. You’ll learn so much more doing that, more on this later though.
The amount of content Paul puts out is truly incredible and this is one of the best places to get started if you’re completely new to iOS. It is 100 small(ish) tutorials that go through building a handful of small apps starting with the very basics and building from there. Alternatively, 100 Days of SwiftUI is a sister course that’s also built to be an introduction but covers SwiftUI instead of UIKit. Both of these courses are a great place to start since they go over the very basics of programming in Swift not just the basics of iOS.
This course is all about building an app that you might be asked to build for a take home project in an interview. Though it does go deeper than you would normally be expected to go for a take home project. Sean also goes over some best practices for completing your own take home project and interviewing. This course assumes some base knowledge of iOS development but still explains most things at a beginner level.
This course isn’t for a complete beginner and assumes some knowledge of iOS, and SwiftUI specifically. It is by far the best course on this list though. You touch such a large variety of different system frameworks including Core Data, Core Location, iCloud, StoreKit, WidgetKit, and heaps more. Paul also goes through some testing, accessibility, and localisation, all of which are important in real-world apps. If you’re only going to take one of my recomendations let it be this one. This course is by far the best of its kind.
Read some Blogs 🖥
There are so many great blogs and people writing about developing for iOS. You’ll likely come across many while searching for how to do specific things but here’s a couple that would be worth subscribing to, as well as going through their massive back catalog.
Swift By Sundell is one of the best resources online for iOS development. John has a great mix of explanatory articles where he explains a topic, as well as articles about solving real-world problems. Some of his content can get pretty advanced, particularly when he starts using more advanced language features but it’s all worth reading. In particular, his Discover pages which are a guided sequence of articles that go over a particular topic.
SwiftLee is another great blog by Antoine van der Lee that has lots of smaller articles going over more contained topics. Lately he’s been putting out a bunch based around SwiftUI and the new Swift concurrency features.
Donny Wals produces great content, most of which seems to be focused around Combine and the new Swift Concurrency features at the moment. As a side recommendation, his Combine book is excellent and is another great resource.
If you’ve caught the bug and want iOS development to follow you wherever you go, Podcasts are a great way to learn while doing other things. They probably have the lowest time in to learning out ratio though so if you’re going to skip anything this would be it.
John brings a guest on each show to talk with/interview on a particular area of development. Usually focusing on what the interviewee does in their job or what they’re working on.
A very similar style to Swift By Sundell but this time it’s Paul from Hacking With Swift hosting. Paul hasn’t been as active recently but his back catalog is worth checking out.
John is one productive content producer and this time he teams up with Gui Rambo to talk about what they’re working on in their iOS consulting work and personal projects. They often cover broader development topics as well.
The most Important thing
Build your own app 📲
Tutorials are a great way to learn and you should probably start with them, especially when you’re new but there is no better way to learn than building your own app. When you have to find the answer for yourself you not only learn far more, you are also forced to learn how to find those answers.
Set realistic expectations of your first app, it likely isn’t going to be very good and it’s going to take significantly longer than you think it will. It is all too easy to fall into the trap of continuously doing more tutorials and reading more blogs, putting off starting a project because you don’t feel like you know how to do everything you need. You never will. Just pick something small and get started, when you hit something you don’t know how to do learn just enough to get it working and keep moving.
I can’t overstate how important it is to have built your own app. I interviewed at a few different places before finding IBA. Each one said something to the effect of “We’re only talking to you because we noticed you have an app in the App Store”. You’ll learn a lot by doing it and it’s impressive on a resume.