Introduction to the Journey: 🚀 Building an MVP with Kotlin Multiplatform
Written By Bruno Manchinelli
Why We Chose KMP for Android & iOS
Every startup or indie project faces a tough decision when launching a Minimum Viable Product (MVP):
We faced the same challenges when building our app for the Future of Work in the US. After exploring multiple cross-platform solutions, we decided to go with Kotlin Multiplatform (KMP) — a decision that aligned perfectly with our technical goals, developer experience, and long-term vision.
Why an MVP?
Before we jump into why KMP, let’s talk about the why of an MVP in the first place.
The Market Opportunity
The Future of Work in the U.S. represents a massive and growing market opportunity, as traditional employment structures give way to a dynamic gig economy. With freelancers, content creators, and gig workers now making up 34% of the U.S. workforce — projected to reach 51% by 2027 — the demand for financial solutions tailored to this evolving labor force has never been greater. However, legacy credit systems, designed for salaried employees with predictable incomes, fail to recognize the financial reality of independent workers, leaving nearly 100 million Americans classified as “thin file” or “no file” by traditional credit bureaus.
This gap in financial inclusion presents an urgent need for innovative credit solutions that leverage alternative data sources, such as multi-platform earnings and job history, to accurately assess creditworthiness. Companies that address this need stand to unlock a multi-billion-dollar opportunity, providing essential financial services to a workforce that is rapidly redefining the American economy.
Read more about our Mission: Filance.AI by Bankuish: Pioneering the Future of Creditworthiness
Evaluating Cross-Platform Solutions: Why Not Flutter or React Native?
Since our goal was to move fast while keeping flexibility for future improvements, we needed a cross-platform strategy that wouldn’t lock us into a rigid framework.
Like any pragmatic team, we evaluated the most popular alternatives:
Why We Chose Kotlin Multiplatform
These were the key reasons we committed to KMP for our MVP:
1️⃣ Code Sharing Without Compromising Native UI
2️⃣ Single Codebase for Core Logic
3️⃣ Future Scalability and Flexibility
4️⃣ Leverage Our Existing Kotlin Expertise and Bankuish App Codebase
5️⃣ Seamless Gradle and Dependency Management
Challenges & Tradeoffs We Considered
KMP is great, but it’s not without challenges. Here are the biggest tradeoffs we knew we’d face:
That said, none of these were deal-breakers, and the long-term benefits far outweighed the tradeoffs.
Challenges We Anticipated
One of our biggest expected challenges is working in the macOS environment. Since our mobile team has been 100% focused on Android-native development, adapting to macOS and XCode workflows required going through an initial learning curve.
On the technical side, we expected some issues and compromises implementing Compose Multiplatform. We started all this work in April 2024, and just in May 23rd JetBrains announced Beta support for iOS. The executive decision to commit to this project was taken with skepticism. For everyone’s surprise, not a single issue was encountered when building our UI with Jetpack Compose 🥳
What to Expect in This Blog Series
This is just the beginning of our journey. Over the next posts, we’ll share how we set up KMP, structured our data layer, handled UI differences, built deep link support, and much more.
Next up: Setting Up Kotlin Multiplatform: Initial Project Configuration. Stay tuned!
CEO & Founder at Bankuish & Filance.ai
4moCongrats, Bruno, on the difference your brilliant work makes! 🚀