It’s easy to make nice UIs with SwiftUI but I found it difficult to get smooth scrolling performance, for that it’s probably better to use UIKit. I’m now using a mix of SwiftUI and UIKit but and I’m not really happy with it, maybe it will get better with iOS 17+
My iOS client is built with a C++ GUI library, but the result is not that good. So going iOS native. The only reason to use Swift is that I can use my C++ backend code and #nostr API . So using Swift just for the UI part https://github.com/pedro-vicente/nostr_client_relay
Discussion
@Fabian Thanks for the tip! I was going to start with SwiftUI, but after reading this, UIKIt is the way to go. It seems SwiftUI is a kind of "declarative" format, and UIKit is a more traditional widget response like touch, etc. In my C++ iOS, I used QML, which is a declarative language that interacts with Qt's C++, but that is geared for small devices like microcontrollers and automative. https://getstream.io/blog/uikit-vs-swiftui/