Below is an **ordered** list from the most critical to the least critical Firebase service I'd like a Kotlin Multiplatform library/SDK for.
Also, very important, it's very important that this SDK improves the API quality to be Kotlin friendly:
- Use inline classes, inline functions where it can improve efficiency/performance.
- Leverage sealed interfaces/classes and/or enums for proper error handling, instead of Java-style exceptions.
- For all asynchronous operations, use coroutines, exposing suspending functions and Flows in place of error-prone callbacks.
To me, iOS and Android support are the most important targets, but macOS, watchOS and tvOS can/should be added right at the start too since many APIs are exactly the same, and Kotlin supports those.
Also, WEB (Kotlin/WASM and Kotlin/JS), and Desktop (Kotlin/JVM) support would be very welcome since it's possible to make apps on all those platforms in one codebase, especially with the advent of Compose Multiplatform that is already fully stable for desktop apps.
If there's some research on KMP support in some libraries/SDKs, feel free to reach out to me, I'd be more than happy to help and give feedback on API design and other KMP related things!
Below is an **ordered** list from the most critical to the least critical Firebase service I'd like a Kotlin Multiplatform library/SDK for.
Also, very important, it's very important that this SDK improves the API quality to be Kotlin friendly:
- Use inline classes, inline functions where it can improve efficiency/performance.
- Leverage sealed interfaces/classes and/or enums for proper error handling, instead of Java-style exceptions.
- For all asynchronous operations, use coroutines, exposing suspending functions and Flows in place of error-prone callbacks.
Here's my (personal) ordered priority list:
1. Cloud Messaging
2. Authentication
3. Crashlytics (community solutions exist for iOS)
4. Remote Config
5. Cloud Firestore
6. App Check
7. Google Analytics
8. Cloud Storage
9. Realtime Database
10. Machine Learning
To me, iOS and Android support are the most important targets, but macOS, watchOS and tvOS can/should be added right at the start too since many APIs are exactly the same, and Kotlin supports those.
Also, WEB (Kotlin/WASM and Kotlin/JS), and Desktop (Kotlin/JVM) support would be very welcome since it's possible to make apps on all those platforms in one codebase, especially with the advent of Compose Multiplatform that is already fully stable for desktop apps.
If there's some research on KMP support in some libraries/SDKs, feel free to reach out to me, I'd be more than happy to help and give feedback on API design and other KMP related things!