This project demonstrates the benfits of kotlin multiplatform by implementating a multiplatform mobile application (Android/iOS) with firebase as a backend (Node.js) all in kotlin.
The application is using Firestore to store a list of posts and firebase functions to send notifications for new posts.
common-all
- Multiplatform Module - shared code between clients/server.common-client
- Multiplatform Module - shared code between clients (Android/iOS).firebase
- Node.Js app.android
- Android app.iOS
- iOS app.
- Data Models.
- Repositories.
- Presenters.
- Views.
Common module testing. https://github.com/mockk/mockk
Jest https://jestjs.io/
//TODO
- Clone this project.
- enable kotlin 1.3 (https://proandroiddev.com/setup-kotlin-eap-in-your-android-app-73f2c06308e5)
- if you're using the canary version of Android Studio check if kotlin 1.3 plugin is enabled for your version
https://plugins.jetbrains.com/plugin/6954-kotlin
./gradlew android:app:installDebug
//TODO
cd firebase/functions
npm install
./gradlew common-all:firebaseDeploy
./gradlew common-all:firebaseTest
- Serialization https://github.com/Kotlin/kotlinx.serialization
- Multiplatform Settings https://github.com/russhwolf/multiplatform-settings
- mockk https://github.com/mockk/mockk