what I do is write the apps in swiftui then its pretty easy to bridge to UIKit for a particular view or part of it to get all of the functionality u have listed. I believe there is a WWDC session on this specifically. SwiftUI and UIKit generally plays together pretty well. Tbh its way easier and faster to do it that way than write everything in UIKit.
some of what you have listed have been implemented in native swiftui already. eg pull down to refresh - have a look at the "what's new in swiftui" from the past few years wwdc's. I believe its called .refreshable
MapKit has been recently brought into swiftui. not sure about the specific functionality you need but I recently converted my UIKit maps components into the native swiftui version.
For the custom controls on a Video view, I overlayed some custom swiftui controls over the top of a bridged AVKit video player using a ZStack.
it'll be another decade before everything is in swiftui, if ever. they still haven't got everything in objective c implemented for swift (try catching a core data fetch thrown exception in swift) and there are still a few obscure functionality that u still need to fall back to C for. So it'll pay to learn how to bridge the UIKit controls into swiftui so u can move to swiftui more seamlessly.