How to become an iOS Developer
In this article I will present to you as a newbie, how to get started with iOS development. This is what I would recommend to myself if I would be at the beginning of my career and wanted to learn iOS.
Another good question to ask ourself is, ‘Why should I learn iOS development?’. And I’ve personally got some biased answers. First is that the iOS community is friendly, ready to help and guide you. Apple cares about its developers, like working on the Swift language or bringing SwiftUI to make the life of the developers easier. Apple has a direct incentive to make development as easy as possible, in order to encourage more apps to be built on their platforms.
Swift has been open sourced since 2015 (version 2.2) and therefor is shaped by the community in many ways.
In terms of job opportunities, many recruiters crave for native iOS developers, even though there is a growing need also for hybrid solutions (like react native, flutter or ionic).
First thing first, you will have to get a Mac if you don’t have it. Nothing fancy, a MacBook Air from 2020 or a Mac Mini should cover your needs for the upcoming years. But take care to have at least 256 GB disk capacity ( I would recommend 512 GB) since Xcode can be quite big and the simulators over 1 GB each. A lot of things is preinstalled to make it convenient for developers, but at a cost.
To get started, we will need to learn Swift, the programming language created and used by Apple on all its platforms. I don’t know any better source to do that, then the very famous Paul Hudson and his 100 days of Swift course https://www.hackingwithswift.com/100 for FREE. He’s got great materials in general and he’s very patient to go into all the details.
Once you finish taking the 100 days challenge, you will have learned all the basics, like arrays, variables, classes but also some iOS frameworks, like UIKit, MapKit, CoreImage and more.
Apple has launched in 2019 another UI framework called SwiftUI, which will replace UIKit eventually. In the meantime, a lot of code is written in UIKit and will stay that way for a long time. But SwiftUI is just a big change and newer apps try to integrate as much as possible code written in SwiftUI. The code is written declarative, that means that you describe the UI, based on a state. And when the state changes, your UI is changed accordingly. Besides this way of building the app, the layout complexity for the developer has been reduced considerably and it allows for quick prototyping and development in general with a smaller risk of crashing the app.
In order to be today an iOS developer you need to learn SwiftUI, at least superficially and I would continue with Paul Hudson and his 2nd course 100 days of SwiftUI https://www.hackingwithswift.com/100/swiftui. Once you have a rough idea about SwiftUI and Combine I would recommend checking some other materials:
Swift by Sundell - A guide to the SwiftUI layout system - Part 1 https://www.swiftbysundell.com/articles/swiftui-layout-system-guide-part-1/
@State vs @StateObject vs…
https://purple.telstra.com/blog/swiftui---state-vs--stateobject-vs--observedobject-vs--environme
Congratulations! At this point you have become a real iOS developer. You have written a couple of simple projects, used a couple of frameworks that are commonly used in iOS Apps and you have written enough code to get you started on ‘real world project’.
There is so much more to do from now on, like working on your code quality, refactoring, git, good naming and other best practices. I would recommend for now to have a look at the Swift coding guideline.
I would recommend you allocate an hour a day (or less, if it feels too much) but just do it consistently. Think about the exact hour you want to learn iOS development and schedule it in your calendar. It's more important to create a habit, in order to stick to the path of becoming an iOS developer.
If you want to accelerate your progress as an iOS developer, I can help you make a plan and guide you through it.
Nice.