Crossroad: Is SwiftUI’s DocumentGroup ready for a production app?

I have a small iOS app live on the App Store made with UIKit; mainly cared as a pet project. SwiftUI and its new approach seems to be the new future for Apple and for that reason I decided to restructure my app in SwiftUI. In both apps I have CLEAN architecture in place, which was very strait-forward moving its Domain Layer and Data Layer to the new app, with small changes to meet the new MVVM approach and Combine. Now that the business logic is done, I am finalising the Presentation layer, which brought me to a crossroad: The live app uses UIDocumentBrowserViewController and UIDocument and I am willing to migrate to SwiftUI's DocumentGroup and FileDocument, respectively. FileDocument is able to read UIDocument without a problem and everything works great. However, when going to the UIDocumentBrowserViewController -> DocumentGroup adjustments, there are some drawbacks from DocumentGroup which makes me rethink about this refactoring:

  • DocumentGroup gives us zero access to it’s root view, not allowing us to present, for example, a “What is new/ Splash screen view/ Consents screen”;
  • DocumentGroup gives us zero access to it’s navigation controller, not even allowing additionalTrailingNavigationBarButtonItems to be added as custom bar button items.

As simple as those two items seem, those points are crucial to the the customs perspective in order to build a strong UX app. Apple’s Pages app, Numbers app and Keynotes app are also using document based app but they do present a “What is new” view whenever a new major update is made. The advantages for the presentation layer that SwiftUI brings is huge but I am not sure if SwiftUI is ready for a production app? One option that I though was bringing a Scene decision condition to the App itself, which also didn’t work. See attachment. Have any of you found a solution for those problems already? Am I missing something here?

Crossroad: Is SwiftUI’s DocumentGroup ready for a production app?
 
 
Q