https://kotlinlang.org logo
#multiplatform
Title
# multiplatform
a

akapanina

11/14/2019, 11:54 AM
Hi folks! We are working on new Kotlin website version - and there will be more info about Kotlin Multiplatform for new users. Right now we are looking for some github projects that we could show. Some examples are really well known - like DroidCon app by Touchlab, or SQLDelight library. I've also met many lovely pet projects (Galway Bus app is my personal favourite, probably because I'm a little bit obsessed with Ireland). But there is a huge chance we've missed something, and I would like to ask for your help to fix it 🙂 If you know some cool Kotlin MPP projects (as I mentioned above, hobby projects are also important) - please, share them in this thread. If you have Kotlin MPP in your production app, it's not published on github, but you would like to share its name and a little background - what feature was implemented with MPP - it also will be helpful. Our team would be extremely grateful to you.
👍 27
d

Daniel Rampelt

11/14/2019, 3:58 PM
We (chalk.com) are using Kotlin MPP for one of our apps called Planboard - it's a lesson planner for teachers and the next update (submitting to the app stores today, should be live by next week) adds support for using the app offline. We're using Kotlin MPP, ktor, and SQLDelight to share the networking/caching/business logic between the iOS and Android version. It's been really nice for this sort of code sharing so far and we're planning on using Kotlin MPP for some of our other apps as well in the future. Let me know if there's anything else that would be helpful, I'm happy to share more details about it 🙂
👍 1
b

basher

11/14/2019, 4:02 PM
MPP UUID implementation: http://github.com/benasher44/uuid
🆒 1
a

ankushg

11/14/2019, 9:32 PM
Quizlet (http://quizlet.com) is using Kotlin Multiplatform to write internal libraries to share pure business logic across iOS, Android, and frontend web (JS). Among other things, Kotlin Multiplatform powers Quizlet's grading logic and question generation to help our users practice and master whatever they're trying to learn. Our product has over 50 million monthly active users across Android, iOS, and Web, and all of them touch code written in Kotlin Multiplatform at some point of their journey 🙂
👍 2
d

Dmitri Sh

11/14/2019, 10:30 PM
This is still very much in flight - we started about a month ago and another month away from completing, but since you asked 🙂 KInsight Alpha Capture is a proof of concept project currently being developed for our annual CodeWeek event (where you pitch business or technology ideas). I suppose you can classify it as a hobby project as it’s not done on work hours, but at midnight. Alpha Capture app is intended for Sales to create and distribute trade ideas to our institutional clients. The app will track the performance of each idea relative to the performance of the benchmark, and alert users when the idea has reached the price objective or stop loss value so that the user can then close the idea. This is proof of concept only, and as such will have the following limitations: 1) there will be only limited live market data availability (when creating an idea, current stock price); b) there will be no permanent storage for newly created ideas, they will be stored in memory on the server until the next server reload. However, there will be a number of “prefabricated” ideas along with their historical (mocked) performance. As we cannot control the market (alas), some market data manipulation is in order. The server will provide an API to update prices for ideas so that an alert can be triggered. These price updates will flow into the app via websockets, updating UI in real time and triggering notification alerts when price objective or stop loss thresholds are met. The server (KTOR based) is currently deployed to google app engine(https://alphacapture.appspot.com, example of api: https://alphacapture.appspot.com/api/ideas, etc), and will be made available. https://github.com/dmitrish/kinsight-multiplatform
🔥 1
d

Dominaezzz

11/14/2019, 10:40 PM
Multiplatform Vulkan, GLFW and OpenGL. https://github.com/Dominaezzz/kgl
👍 1
j

judrummer

11/15/2019, 4:16 AM
r

ribesg

11/15/2019, 8:50 AM
My freetime project, basically something like Emby (Ktor backend implementing various APIs, Kotlin React Frontend, Kotlin Android app, Kotlin iOS app later, etc). It’s a tool project so it doesn’t move much but there’s already good info on the build process https://github.com/Ribesg/Kita/tree/feature/init
👍 1
s

Sascha Peilicke

11/15/2019, 9:09 AM
Needs a proper README.md yet but this is a good MPP example using iOS, JS, Android & JVM using Gradle Kotlin DSL (builds a universal framework as well): https://github.com/saschpe/log4k
👍 1
a

akapanina

11/15/2019, 12:08 PM
Thank you all so much for your replies and for using MPP! You're the best 🙂
👍 1
a

altavir

11/15/2019, 5:52 PM
Most of our projects are mpp. Kmath is the most prominent: https://github.com/mipt-npm/kmath. Dataforge core is much larger, but lacks proper documentation: https://github.com/mipt-npm/dataforge-core.
🔥 1
t

Thomas

11/17/2019, 11:22 AM
HUE ESSENTIALS: Discover ways to get the most out of your smart lights. Hue Essentials is using Kotlin multiplatform for the Android/iOS versions. The Android version is on Google Play and has taken advantage of Kotlin for a long time. The iOS version is available on TestFlight and under development. Hardly any code needs change for iOS thanks to Kotlin MPP; of course the code for UI still needs to be written. As much code as possible is now shared between the platforms. Libraries like Coroutines, Ktor, and SQLDelight are in use for both platforms. We can't wait until we have time to target the next platform. https://hueessentials.com
🔥 1
a

alex009

11/18/2019, 2:52 AM
We at IceRock use KMPP for Android and iOS. Projects share viewmodels, repositories, entities, business logic, storage. We use ktor, coroutines, serialization, https://moko.icerock.dev/ , https://github.com/russhwolf/multiplatform-settings , https://github.com/korlibs/klock . production apps we can mention: https://apps.apple.com/us/app/apatris-mobile-wallet/id1454765749 - shared viewmodels, logic, network, entities. Content of screens with list data composed by https://github.com/icerockdev/moko-units/ https://play.google.com/store/apps/details?id=ru.begreatapp - also shared viewmodels, logic, network, entities. But DataBase shared by expect/actual (sqldelight not used in this app - did not know about the mpp version of the database at that time) https://play.google.com/store/apps/details?id=im.endo.legacy , https://apps.apple.com/us/app/endo-legacy/id1435147480 - viewmodels, logic, network, entity, local storage (preferences). https://play.google.com/store/apps/details?id=com.veka.windowmeasurer.new , https://apps.apple.com/ru/app/%D0%B7%D0%B0%D0%BC%D0%B5%D1%80%D1%89%D0%B8%D0%BA-%D0%BE%D0%BA%D0%BE%D0%BD-2-0/id1455318730 - share only network, entities. We integrate mpp into exist application, starting from network layer.
🔥 1
👍 1
r

russhwolf

11/18/2019, 3:20 AM
Speaking of Multiplatform Settings, that would also be a cool project for this list if it’s not already on your radar. I started working on it in April 2018 shortly after Kotlin/Native became multiplatform-aware, so it was one of the first third-party multiplatform libraries available.
v

verachadw

11/21/2019, 6:35 AM
I’m working with my team at Fastwork, One of the biggest Freelance platform in Thailand. We start using Kotlin MPP for our 3.0 version about a year ago. By using Ktor, Coroutine, and other libs, we are able to share business logic and network layer between both platform and increase our productivity as a team. You can check our app in the link below. Android: https://play.google.com/store/apps/details?id=com.fastwork.app iOS: https://apps.apple.com/th/app/fastwork-hire-freelancers/id1154830520?l=th PS. We are currently working on Kotlin + Flutter as well.
4 Views