A question that many new iOS developers are facing is: Should I start learning SwiftUI first or should I start with building apps the „old“ way using storyboards and the UIKit framework ❓⠀
When you consider working with SwiftUI, you must be aware of the fact, that apps built with SwiftUI are only working on devices running iOS 13+. However, the adoption rate of iOS users is very high, especially when being compared to Android. So it’s legit to say that you only want to support devices meeting this requirement. But the main problem that comes when working with SwiftUI only, is that this framework is still pretty new and rough. That means that there are not as many resources to work with as with storyboards and UIKit. Plus, that there are still some features that SwiftUI itself is not capable of, for example implementing some more complex controls.⠀
Differentiate between UIKit and storyboards ❗️
First, you must distinguish between UIKit and storyboards. UIKit is a framework that defines the core elements of iOS apps, for example UIImages, UILabels, UITextField, just to name a few. Storyboards on the other side are just a tool to arrange and compose your interface by using these elements.
SwiftUI is another way of composing your interface in a way more intuitive way. SwiftUI on its own also defines such elements as UIKit does (Images, Texts etc.), but at the current state not as much as UIKit. However, SwiftUI will definitely be the future of iOS development and the main framework to work with. And it’s super easy to get started with SwiftUI with it and it has a really high learning curve which is especially great for beginners. So starting to learn iOS development by working with SwiftUI can be really motivating!
SwiftUI + UIKit 🚀
To fill the holes of what SwiftUI is currently not capable of, it’s a big advantage to also know the UIKit framework. This framework will still be an important part of the iOS dev world for at least the next few years. It’s also important to be aware that potential employers will most likely demand UIKit knowledge and skills from you, at least for the next couple of years.⠀
Regarding working with storyboards: At this point, it’s totally possible to build apps not using them but SwiftUI. To build the interfaces you can rely only on SwiftUI + UIKit. So although storyboards are not deprecated yet (and likely won’t be until the next few years), there is no requirement to learn to work with these if you are new to iOS development.
Our recommendation 🎊
To sum it up, we can encourage new iOS developers to start with learning SwiftUI instead of working with storyboards. But at this point, it’s a very big advantage to know at least the basics of UIKit in case it’s not possible to implement the wanted app functionality using SwiftUI only. Fortunately, is super easy to interface between SwiftUI and UIKit. In our SwiftUI eBook, we show you how to do this step-by-step!
Also make sure, you check out our free SwiftUI tutorials!