Proposal: Building a Native Mobile Client (Kotlin Multiplatform + Compose) #1130
gilgoldzweig
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Komodo Team and Community,
I am an experienced native Android developer, and after spending some time with Komodo, I’ve decided I want to contribute to the ecosystem by building a fully native mobile application.
My plan is to build this using Kotlin Multiplatform (KMP) for the business logic and Jetpack Compose / Compose Multiplatform for the UI. This approach will enable a truly native experience on both Android and iOS.
I’ve been digging into the architecture, and I recognize that since Komodo is built with Rust, implementing a client isn't exactly "plug and play" for mobile. Calling or creating Rust bindings for native platforms can be challenging due to the reliance on C-interop. Bridge layers like uniffi or mozilla/rust-android-gradle require careful configuration to ensure memory safety and performance across the FFI boundary.
I'm viewing this project more as a remote control than a fully fledged client; however, I would like to implement as much of the functionality as possible. I'll just have to adapt some things to be more mobile-friendly.
Having a native app will also allow us to provide native support for push notifications and other cool features.
To speed up the initial version, I plan on leveraging AI to generate much of the boilerplate code. However, I am not "vibe-coding." I know what I'm doing (for the most part), and I'm using it to speed things up.
The entire mobile client will be fully open source.
For now, it can be found here:
https://github.com/gilgoldzweig/Komodo-mobile
As of right now (6:30 pm), the project doesn't compile due to some changes I'm making to the build scripts; however, I was able to get it running on iOS and Android emulators before.
I am still digging into the FE code and trying to build a unified theme (colours, fonts, etc.). But I expect it will take some time before I can get it looking pixel-perfect.
Questions & Contact:
I want to make sure I’m aligned with the core project’s direction and API stability.
Who is the best person to contact for technical questions about implementing a third-party client and aligning with future changes?
Also, if there is any IOS/Swift person reading this, give me a shout, I would love some help with getting some iOS-specific code(mostly keychain and auth)
Thank you for all the work you've done on this project, and I hope I can contribute!
Beta Was this translation helpful? Give feedback.
All reactions