Why you shouldn’t learn SwiftUI at first.
Many people who aspire to become a iOS Developer start learning SwiftUI. So I will share my opinion why you shouldn’t learn SwiftUI at first.
Maybe I exaggerated in the title, but many people who aspire to become a iOS Developer start learning SwiftUI. And then get surprised because it is very difficult to get a job or, they fail the take home project. To help the new aspiring iOS Developer I will share my opinion.
First of all learn the base
If you want to become a iOS Developer, so you should start learning Swift. Swift is the programing language used in the Apple ecosystem. So you should know the tool you will use everyday when you start developing apps. A lot of new developers skip this step, but then in job applications interviews sometimes you get some question like what is Type Safety or Type Inference, or Optional Chaining. It is a simple concept, but if you don’t know or get used to this kind of basic things, can made a difference from go through to the next phase of your job application, or get rejected. So it is very important to learn Swift and know the basics of Swift.
You have thousands and thousands of applications in the AppStore. So unless the app is completely new and use the cutting edge technology. Probably all apps you will work in an company use UIKit. Yes the major of the developer work on a existent code base. So you have to deal with legacy code. In my experience the most applications I work for, the code base uses the UIKit to made the user interfaces. And the fresh new projects, we use a lot of our custom UI library’s too reuse. So yes we have to deal with legacy code, UIKit and sometimes, fortunately not so many times, we get some legacy code in Objective C.
That was the first reason. But even in applications who use SwiftUI for UI you need to learn UIKit. And the reason is. SwiftUI needs to grow a lot to have all the things UIKit gives to you. For example to use the camera in a SwiftUI application you need to use AVFoundation for the device camera, and the UIKit to deal with the views. And then embedding everything in UIViewRepresentable protocol to manage the views from UIKit. This means you need to know UIKit to implement some features where SwiftUI is not ready. Today with SwiftUI 2.0 you can do a lot of things, like video player, map view or activity indicator. Who it is very good, but like all the new technologies SwiftUI it always changing so it is difficult to have updated code base. But this is good, but it is because of that a lot of companies they not change to SwiftUI, at least for now.
Learn UIKit with Storyboards and Programmatically
This is one of the hot topics in the community. Use or not to use Storyboards. However the opinion of the community you should learn both. Like I say you can go to a project and have all the UI made with Storyboards, or completely programatic, or a mix of both. So keep it safe and try to learn both.
This is another big topic in the iOS Development community. The declarative approach of SwiftUI drives you to MVVM, so it is completely normal you start learning the MVVM architecture. But like I say before, this is an hot topic. You have different architectures MVC, VIPER, MVP, MVVM. You don’t need to know all the architectures but it is importante to know the concept. When you go to a company you can find a different architecture you are used to use.
So if you starting today the journey to become a iOS Developer first of all welcome. Then I know SwiftUI is very sexy and the cutting edge technology to create user interfaces. But today the most of the code bases use UIKit for the user interface. Of course you should learn SwiftUI but should not be your priority. If you trying to get in the market as iOS Developer you should learn the most used technology and if you learn that, your introduction to SwiftUI will be more easier.