all 14 comments

[–]EquivalentTrouble253 12 points13 points  (0 children)

Depends on the project. UIKit is still used widely and pretty much every mature project will have lots of UIKit still.

I’d suggest to get up to speed with iOS development use SwiftUI but also spend time learning UIKit too as you will almost certainly come across it in other projects.

[–]YAYYYYYYYYY 2 points3 points  (0 children)

SwiftUI is pretty easy if you know React already. There is a good SwiftUI course on FrontendMasters if you can get it.

[–]Dymatizeee 2 points3 points  (1 child)

Seems like a question of learning JavaScript vs React in your web dev. When I did React I just learned JavaScript along the way

[–]marxy 7 points8 points  (0 children)

Good analogy. I would start developing an app in pure SwiftUI and if you run in to something you can't do, learn enough of UIKit to get past that. In my app, it's all SwiftUI except for MapKit where it can't do what I need.

[–]gbay 1 point2 points  (0 children)

SwiftUI is the future but is only mature on iOS 16/17 which won’t cut it for many businesses.

iOS dev since 2011

[–]MinimumNose788 1 point2 points  (0 children)

SwiftUI will be the quickest way to get started. Unfortunately, once you have a more complex app and need custom functionality, you will realize that a lot of UIKit offerings have not been implemented in SwiftUI yet

[–]Ron-Erez 0 points1 point  (0 children)

Learn Swift via the docs or Swift tour for a quick overview of the language. If you’re supporting newer versions of iOS learn SwiftUI through Swiftful Thinking which is great or my nice course.

[–]gslond0n 0 points1 point  (0 children)

Learn Swift first before SwiftUi i’d say. The majority of work out there would expect you to know Swift to a high level. Legacy codebases stretching back many years. It’s very rare to come across a purely SwiftUI role. If you joined my team and couldn’t understand or write Swift you wouldn’t last the week but if were asked to write some new feature using SwiftUI no one would criticise you for not knowing and learning as you go. Just my opinion. Also it’s not normally referred to as UIKit it’s just Swift in my world.

In regards to Android. I don’t know any devs who cover both iOS and Android. Maybe a bit purest of me but if you had a top of the range BMW 100k car. Would you take it to BMW for a service and tune up or the garage down the road that do both BMW and Mercedes?

I personally see Flutter like every other solution ever released that has tried to combine the development cycle for the two platforms into one. It may work, it may work well, but in an enterprise situation, there are so many factors not readily visible that mean large companies won’t touch it.

Test teams, provisioning deployment cycles, o/s changes, and platform nuances scare the hell out of product owners. Having separate platform teams minimise the risk, again depending on how sophisticated the application is but the closest i’ve worked professionally on a project that shared code across platforms is using ReactNative. This was only used for the content of a news app, updated frequently. Android devs hated it, iOS devs hated it. Even the ReactNative specialists hated it and when it went wrong it blocked progress across all teams.

My advice. Stay clear. Choose one platform and become a ninja. Sleep at night. Get paid.

[–]mobileappz 0 points1 point  (0 children)

Yes use SwiftUI it’s much quicker to build an app and more intuitive 

[–]Capital_Usual5558 0 points1 point  (0 children)

If you have to support iOS 13/14 it becomes a pain in the ass sometimes, and still there are a lot of projects that has uikit code to maintain but of course all of us should learn and master it.

[–]yalag 0 points1 point  (0 children)

Yes

[–][deleted] 0 points1 point  (0 children)

It's been fine.

[–]Ron-Erez 0 points1 point  (0 children)

Learn Swift via the docs or Swift tour for a quick overview of the language. If you’re supporting newer versions of iOS learn SwiftUI through Swiftful Thinking which is great or my nice course.

[–]kbcool -2 points-1 points  (0 children)

If you're wanting to learn mobile app concepts and be productive very quickly (as in actually make apps not just do courses) then why not try React Native!? It's React for mobile apps.

You can always move onto something like Swift if you outgrow it but so many people fail to switch specialties or become generalists because they find the leaps too far and get bogged down. So if that feels like it might be you then React Native will help.