Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Road to KMP 🚀 #21

Merged
merged 31 commits into from
Mar 25, 2024
Merged

Road to KMP 🚀 #21

merged 31 commits into from
Mar 25, 2024

Conversation

GerardPaligot
Copy link
Collaborator

@GerardPaligot GerardPaligot commented Nov 24, 2023

Warning: Still work in progress

Done:

  • Create dedicated Gradle plugin for multiplatform modules
  • openfeedback module migrated (resources and Firebase dependencies)
  • openfeedback-viewmodel module migrated (use moko-mvvm and multiplatform locale)
  • openfeedback-m3 module migrated (use compose multiplatform, moko-resources-compose and moko-mvvm-compose)
  • Remove Jetpack Compose for Compose Multiplatform
  • Support Android and iOS targets

Todo:

  • Create sample app for ios
  • Check releasing if there is any change required
  • Rename GitHub project to openfeedback-kotlin-sdk

@GerardPaligot
Copy link
Collaborator Author

Blocker to use KMM-ViewModel rickclephas/KMP-ObservableViewModel#29

@GerardPaligot
Copy link
Collaborator Author

@martinbonnin More I'm working on this contribution, less I'm convinced about the multiplatform implementation and the api exposed for Android and iOS projects.

Since I configured iOS targets in Gradle modules with Cocoapod support, the build time increased and got Java memory heap exceptions (probably due to Cocoapod) randomly. What do you think about this and the necessity to use firebase kotlin sdk, moko resources, moko mvvm and multiplatform locale in this library which will be included in the final app? 🤔

@martinbonnin
Copy link
Collaborator

got Java memory heap exceptions (probably due to Cocoapod) randomly

"Just" increase JVM heap size?

What do you think about this and the necessity to use firebase kotlin sdk, moko resources, moko mvvm and multiplatform locale in this library which will be included in the final app?

Well, that's a good one, I'm not sure TBH. I have no experience with either moko resources, moko mvvm or multiplatform locale. I have limited experience with firebase kotlin sdk and I was finding this appealing to be able to share the firebase code (that should really be "just" network calls...)

I realize there are a lot of "just" in my sentences above so if the field reality is different then yea, maybe KMP is not the good choice. It'd be interesting to understand where the limitation lies. If it's OOM then I'm fine giving the Kotlin compiler and Gradle more GBs of RAM (and maybe file a Youtrack if usage is patological).

For build times, might be worth checking K2?

@martinbonnin martinbonnin marked this pull request as ready for review March 25, 2024 21:40
@martinbonnin
Copy link
Collaborator

There are probably more things to be tweaked but I've seen this working both on Android and iOS, I'll merge the mega-PR as-is and do follow up PRs for the remaining stuff

@martinbonnin martinbonnin merged commit fe21e9a into paug:main Mar 25, 2024
1 check failed
@GerardPaligot GerardPaligot deleted the feat/firebase/kmp branch March 26, 2024 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants