BowlApp is a Kotlin Multiplatform app targeting Android and iOS built with ComposeMultiplatform to share UI across Android and iOS, Ktor Client for networking and Room for persistence
-
/composeApp
is for code that will be shared across your Compose Multiplatform applications. It contains several subfolders:commonMain
is for code that’s common for all targets.- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
iosMain
would be the right folder for such calls.
-
/iosApp
contains iOS applications. Even if you’re sharing your UI with Compose Multiplatform, you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
- Make sure Android Studio( install KMM and Compose Multiplatform plugins) and XCode are installed
- Open project in Android Studio
- Build both iOS and Android app from the Build Configuration of Studio itself.
- iOS app can also be built in XCode, for that open "project.xcworkspace" folder inside "iosApp" in Xcode and build.
- Compose Multiplatform for sharing UI across Android and iOS (alpha)
- Room DB for persistence (in alpha, supporting KMP)
- Android Jetpack ViewModel (in alpha, supporting KMP)
- Koin for DI
- KtorClient for networking
![](https://private-user-images.githubusercontent.com/14262888/332288895-3498eb27-baa4-44fe-b668-149cfcc0b9bf.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDMzMjgsIm5iZiI6MTczOTc0MzAyOCwicGF0aCI6Ii8xNDI2Mjg4OC8zMzIyODg4OTUtMzQ5OGViMjctYmFhNC00NGZlLWI2NjgtMTQ5Y2ZjYzBiOWJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIxNTcwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYzZjM2Mzc3YWNiYzdjYWM1NjdhNTA3MWU4ZjEyMDNjMjY2M2Q4NDU5MGQ2ZjUyNDc2YjRjYWQ2NDA2YjkzZTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XOPxYPO7wdeZ4aGhmyBxWkbm8J1Zp3xnUkdReitBKjw)
![](https://private-user-images.githubusercontent.com/14262888/332288915-524f3ab2-dbd2-4a06-87fa-eae7d32a0ee0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDMzMjgsIm5iZiI6MTczOTc0MzAyOCwicGF0aCI6Ii8xNDI2Mjg4OC8zMzIyODg5MTUtNTI0ZjNhYjItZGJkMi00YTA2LTg3ZmEtZWFlN2QzMmEwZWUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIxNTcwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE4YjIyZDk4NTI0MzFjMmY5ODk2YjI3NGVkZWJlMmNhNzVhYTU1OGYzMWEzMWU4YjBiMTZhN2ZhNjM1YWUwZWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.kMt-m1jKgtUwRAZUcpYT-bkS8naSukOyFLbJlwmf0cs)
![](https://private-user-images.githubusercontent.com/14262888/332288393-845dca21-267d-4501-afb5-3a15c26ee77a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDMzMjgsIm5iZiI6MTczOTc0MzAyOCwicGF0aCI6Ii8xNDI2Mjg4OC8zMzIyODgzOTMtODQ1ZGNhMjEtMjY3ZC00NTAxLWFmYjUtM2ExNWMyNmVlNzdhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIxNTcwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ2YjdmNjlmODVlY2UwOTcxYWYwNzc1Njk5NDc0ZTUyOGNhOWM2ODMxYzZjNWUyNzVmMmVlNmI3MmI0ODUyMjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.azpF5qEHjVAAXckBGPInP2-dziyN9Wn53gNKGDnHVIA)
![](https://private-user-images.githubusercontent.com/14262888/332288427-dc7fa937-34bd-4450-b099-cff0d2cb9fe0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3NDMzMjgsIm5iZiI6MTczOTc0MzAyOCwicGF0aCI6Ii8xNDI2Mjg4OC8zMzIyODg0MjctZGM3ZmE5MzctMzRiZC00NDUwLWIwOTktY2ZmMGQyY2I5ZmUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDIxNTcwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJiZDcyZTM1ZGE0MWMyZWNmMzMxNWRkMTlkNDVkZGZiMGU3M2RmZDBjZDlmM2MwZmI3Y2RkNTE0MmM2YWNmZTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hAz9azSDIs-mPEPXRCkR4DLHGsGvKrE6dxDW8FSgNP0)
-
Learn more about Kotlin Multiplatform
-
[KMM Movies App built using KMM with native UI code and shared business logic] (https://github.com/Vendhan/KMMMoviesApp)