They are both very different ways of thinking and requiring a mental shift when going between the two, which makes learning both at the same time hard. If you are brand new and just want to have fun without any pressure for needing a job ASAP, I suggest starting with SwiftUI.
3️⃣ Reasons for SwiftUI
- It’s quicker to build an app. (I know this is subjective but usually if you’re brand new it’s true)
- This is Apple’s future and Apple says so in the Planning your iOS app web page.
- It’s cross platform for Apple’s platforms
SwiftUI was introduced in 2019 and Apple has been “dog fooding” it slowly through the past few years. The stars all point to SwiftUI being the future. Another big bonus to using SwiftUI is that you can build apps for all Apple platforms with the same language. To make a button on the iPhone is now the same for Mac and AppleTV.
3️⃣ Reasons for UIKit
- You need a job sooner rather than later.
- You need to do something SwiftUI just can’t do yet.
- You want to support iOS 12 or older.
UIKit was introduced by Apple in the early 2010s and has been iterated on since. It’s been the staple for writing native apps since then. There’s a lot of apps written in it now and people are needed to fix bugs or add features to those apps. iOS developer positions are usually UIKit first.
Which one did I choose?
I chose to go all in on SwiftUI. I did have a little bit of experience with UIKit, but not enough to get a job, so when SwiftUI was announced I went all in. My personal apps are only in SwiftUI and dip into UIKit when needed. I think this decision really helped me bring my ideas to life, but it is and was keeping me from professional opportunities, there just aren't a lot of jobs asking for just SwiftUI experience.