Recently I was involved in hiring iOS engineers, so I had a chance to go through many CVs. At some point, I’ve noticed a pattern among junior candidates. Many of them decide to use SwiftUI as their first iOS UI framework. This choice started me thinking.
The numbers game.
Hiring a junior developer with almost no work experience is a significant risk. This is why learning skills with the biggest market share increases your chances. It’s just a numbers game.
What’s wrong with SwiftUI, you may ask? Let me explain.
Spirit of the Past.
Many successful mobile apps have been in development for a while. Quite often, work on the product started before SwiftUI existed. If the candidate’s experience is limited only to SwiftUI they will need more time to be productive in that environment. So the “return of investment” will be delayed. When the decision-maker has two similar candidates, one with UIKit knowledge and another with SwiftUI, who will need time to catch up, the decision seems obvious.
Spirit of the Present.
More and more companies are experimenting with SwiftUI. They build small “test” apps or include SwiftUI in non-critical features. Some brave souls even create their main product altogether in SwiftUI.
In those cases, the main question is - how much energy does the company want to invest in SwiftUI project maintenance and overcoming issues?
Every new SwiftUI version brings improvement and addresses community feedback. Sadly, sometimes, with new features, we also get a bunch of bugs and regressions. In this case, if you have SwiftUI in your production, you need to be ready to fix your code when the new iOS is released. Often code in one iOS version will not necessarily behave the same on the new system.
Also, there is another skeleton in the closet. Because of SwiftUI API limitations or lack of components, developers often need to go back to old ways and use UIKit bridge protocols (UIViewRepresentable and UIViewControllerRepresentable). That means finding yourselves back in the UIKit world.
Spirit of the Future yet to come.
Don’t get me wrong, I like SwiftUI, and I think it is the future for building apps on Apple platforms. Apple’s commitment to this stack is massive, and every year we see more and more system apps and features written in SwiftUI. The future is bright, but it will take a few more years until we get the majority of iOS devices running SwiftUI capable systems with matured library versions and when most commercial projects will adopt the new UI framework.
Until then, please don’t start your career by learning only SwiftUI. Focus on UIKit and have fun with SwiftUI in the after-hours!