Overview
10/11/2026
BowlerKit's Kotlin Multiplatform template, with native Compose and SwiftUI screens on shared Kotlin logic.
The BowlerKit Kotlin Multiplatform template is Beta. Use a CLI version that includes the KMP template.
Overview
BowlerKit generates a native Android and iOS app that shares its business logic in Kotlin. The UI stays native on each platform, and screens are implemented separately in Jetpack Compose and SwiftUI. Like Expo and Flutter, it comes with an Account or Guest runtime profile.
- Account is the online profile. It uses the Laravel authentication/admin services and the protected Go mobile API.
- Guest is local-first and opens without an account or backend. Paywall/RevenueCat and AdMob remain enabled.
Modules
| Module | What it is |
|---|---|
sharedLogic/ | Kotlin models, repositories, stores (StateFlow), the Koin graph and the Ktor API client. Exported to iOS as the SharedLogic framework. |
sharedUI/ | Android only: Jetpack Compose pages, components and theme. |
androidApp/ | The Android application: manifest, build configuration, Firebase resources, and native service wiring. |
iosApp/ | The native SwiftUI application. |
Shared rules, validation, endpoints, and state live in sharedLogic. Platform integrations and screen layouts live in the native apps. SKIE bridges Kotlin coroutines and flows to Swift.
Included in the KMP template
Authentication (Account profile)
- Email login, registration, password recovery, and connected-account management.
Settings and user experience
- Settings: profile, region, language, appearance, privacy, and notifications.
- Help center, FAQ, contacts, and static help/about content.
- Account FCM push, or local reminders in the Guest profile.
Developer foundation
- Shared Kotlin stores with
StateFlow, Koin dependency injection, and a Ktor API client. - Native Compose and SwiftUI components, theme tokens, and localized strings.
- RevenueCat purchases/paywalls and Google Mobile Ads; configure your SDK keys and ad IDs before release.
