These functions let you define your app's UI programmatically by describing its shape and data dependencies, rather than focusing on the process of the UI's construction (...)“ https://developer.android.com/jetpack/compose/tutorial
shared module creator from previous slide only! – Otherwise you get all kind of weird iOS build problems Also: You cannot create modules willy-nilly There is a long doc about this: https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-project-configuration.html
but to Objective-C And only from there to Swift – Type information can get lost (generics with interfaces) Coroutines and Flows do not operate as expected
but to Objective-C And only from there to Swift – Type information can get lost (generics with interfaces) Coroutines and Flows do not operate as expected – Callbacks – Error handling – Cancelation
KMP-NativeCoroutines https://github.com/rickclephas/KMP-NativeCoroutines – SKIE (Swift Kotlin Interface Enhancer) https://skie.touchlab.co/ See also this article series https://medium.com/@aoriani/list/writing-swiftfriendly-kotlin-multiplatform-apis-c51c2b317fce
Both are around for years Stars / Forks and number of contributors more or less equal BuildKonfig is on version 0.15.1 while BuildConfig is on 5.3.5
You have a distinct UI – You are a solo dev • who does not care that much about iOS :-) • If you care: Use a distinct UI – You plan to release no too soon
„Almost 50% of the production code in our Android and iOS apps is decoupled from the underlying platform“ https://netflixtechblog.com/netflix-android-and-ios-studio-apps-kotlin-multiplatform-d6d4d8d25d23
layer Networking is still native They intend to gradually move more areas to shared code https://medium.com/mcdonalds-technical-blog/mobile-multiplatform-development-at-mcdonalds-3b72c8d44ebc
as DB Repository layer Interactor / UseCase layer Koin for DI https://medium.com/making-meetup/adopting-kotlin-multiplatform-mobile-kmm-at-meetup-326b2b0a4186 https://www.youtube.com/watch?v=GtJBS7B3eyM
certain aspects (e.g. navigation) Integration of Compose MP in an KMP app expect / actual for Composables Debugging Swift-Kotlin integration Use of Cupertino-Style Components
small section of a photo by Romain Guy: https://www.flickr.com/photos/romainguy/48539281152 2: Jetpack Compose logo: https://developer.android.com/jetpack/compose 3: Coffee bean and ground coffee by Tamas Pap: https://unsplash.com/photos/brown-and-black-stones-in-close-up-photography-RJPrJQXlmng 4: Cups by Annie Spratt: https://unsplash.com/photos/white-ceramic-mortar-and-pestle-QOBHnWEg-mk 5: Knobs by Adi Goldstein: https://unsplash.com/photos/black-audio-equalizer-HLS7GQ0BCOQ 6: Drawers by Jan Antonin Kolar: https://unsplash.com/photos/brown-wooden-drawer-lRoX0shwjUQ 7: Adapter by Call Me Fred: https://unsplash.com/photos/two-white-power-adapters-on-white-background-nBfTARHPxiU 8: Album by Rirri: https://unsplash.com/photos/photos-on-white-wooden-table-z4KhbVhPP7s 9: Computer / Discussion by Scott Graham: https://unsplash.com/photos/person-holding-pencil-near-laptop-computer-5fNmWej4tAA 10: iOS / Android abomination by Tsahi Levent-Levi: https://unsplash.com/photos/sL2BRR1cuvM 11: Company Spiral by Sven Read: https://unsplash.com/de/fotos/grascale-photo-of-spiral-stairs-8p17jXyfIQQ 12: Investigation by Mediamodifier: https://unsplash.com/de/fotos/black-magnifying-glass-on-white-paper-yx17UuZw1Ck 13: Final Coffee by Fahmi Fakhrudin: https://unsplash.com/photos/person-making-latte-art-nzyzAUsbV0M 14: Slide design "Fedora Photography" by Liam Doherty: https://github.com/dohliam/libreoffice-impress-templates/tree/master/fedora-slideshow/fedora-photography Licenses: 1: Public Domain 2: CC Attribution 2.5 3, 4, 5, 6, 7, 8, 9, 11, 12, 13: Unsplash License 10: CC BY 2.0 DEED 14: MIT License