See this for iOS permissions:
https://www.reddit.com/r/SideProject/comments/1coy2ij/a_week_ago_i_launched_an_app_that_lets_you_earn/
AWS email: [email protected]
Experience working with it:
- Nav library is experimental, doesn’t support deep linking
- Because of this, decided to go with native navigation
- fragment-based on Android
- Standard viewcontroller based on iOS
- expected and actual are interesting keywords
- Resource imports are different. Uses Res instead of R.
- Network layer
- Need to use Ktor, which allows for different http client Engines for different platforms
- I thought I would need to implement isSystemInDarkMode() to pass to the app theme. But looking at the implementation it seems there is already an expect() function there, i wonder if that is naturally a compose thing, or if its part of compose multiplatform?
- Its CRITICAL that you add .ignoresSafeArea(.keyboard) otherwise when the keyboard appears it will mess everything up.
- We have a few different ways of providing platform-specific dependencies:
- Defining an interface which is implemented in each platform
- Using expect-actual on a function
- CONS: can make it difficult to test components which consume this kind of function.
- using expect-actual on a class
- It might look weird to combine certain elements, for example, iOS navigation with back buttons etc, which will add a top bar which doesn’t respect the app theme. Or a pull to refresh indicator which will only appear below the ios app bar.
- Difficult to integrate SwiftUI into compose currently, still very evolving. For example, saw that when showing a SwiftUI view (UIKitViewController) inside Compose it works fine but breaks if used inside a Bottom Sheet. Probably because of the way that CMM is rendering a bottom sheet on iOS using some specific ViewController hierarchy. The bug looks like this:
- child view controller should have parent view controller but actual parent is ComposeHostingViewController
- Its bc iOS requires specific view controller hierarchies and CMM might do things in a way that makes iOS complain

For session creation: