Hi
Would like to share with you an
open source project we’ve been working on since last year involving kotlin Multiplatform
TL;DR
Would love to get a feedback and maybe help from community with this multiplatform-libraries structure, or even merge into something bigger
At AirAsia we have an 11 years old
super app , we do bookings for flights, hotels, taxi, activities, entertaining, chat …etc and so many other features,
And we were desperate for a shared logic approach to cutdown on development time, also we wanted a native approach (we already integrated react native to some parts of the app) .
We could not start from scratch with KMM project and wanted to support web and involve our backend services as well (shared models),
So we looked into
multiplatform-libraries , after breaking down our modules we figured we might reach up to 40 libraries,
So we needed a scalable structure that we can maintain, also we needed a project starter !
so we ended up building
kmp.telereso.io
it provides the following
•
Project starter
•
Each project outputs 2 libs
◦ Models - data classes (pojos) that can be shared with backend
◦ Lib - business logic
•
6 platform support , Android , iOS , Browser , backed (JVM,NodeJS) and ReactNative support ! (Currently Working on flutter )
•
Core lib that supports
◦
Task (Multithread) - handle some of limitations on some platforms
◦
CommonFlow - flow wrapper for android , iOS and JS
◦
Logging
• Annotations
◦
Json Converters
◦
Builder
◦ ListWrapper (solve nested generic type introp in iOS), also List support for JS (generate array equivalent )
◦
ReactNative - auto generate a
react native module by bridging into the android and iOS libs ("ReactNative interpolator")
•
Gradle Plugin
There are more features can check at
kmp.telereso.io and
docs
We've finished 6 sdks so far some of them rolled out to prod, we will continue building both
core and
kmp-annotations to smooth sdk building and speed up development time