Support Kotlin Multiplatform (KMP) in the SDKs
KMP is now stable and more libraries are being added to KMP ecosystem. There is a big opportunity for Firebase to be in Multiplatform and support developers adopting this tech.
-
Cédric Dupin commented
I need this to implement my app in iOS
-
Vivien Mahé commented
I'd love to see Firebase coming to KMP!
The most important targets, to me, are Android, iOS, Desktop and Web. -
Louis CAD commented
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! -
Rosário Pereira Fernandes commented
Can we update the title to say "KMP" instead of "KMM"? Since JetBrains has stopped using the "KMM" acronym.
Still a valid request though 👍
-
Pablo Valdes commented
Would save people a lot of time having to do the expect/actual bindings per each platform.