BowlerKitBowlerKit

FAQ

10/11/2026

Common questions about native KMP screens, profiles, configuration, and release.

Is the UI shared between Android and iOS?

Business logic is shared in Kotlin. sharedUI/ contains Android Compose UI only; iosApp/ contains native SwiftUI. Keep rules/state shared and update both screens for UI changes. See Project Structure.

How do I create and personalize a project?

Use a KMP-enabled CLI:

bowler create my-kmp-app

Select Kotlin Multiplatform and Account or Guest, then run bowler setup from the generated project root. See CLI Reference.

Why are Android Gradle tasks missing on macOS?

settings.gradle.kts defaults to the iOS-only graph on macOS. Enable Android modules explicitly:

./gradlew -Pbowlerkit.iosOnly=false :androidApp:assembleDebug

Run from mobile-app/. For toolchain diagnostics the template documents bowler doctor kmp.

Where do I set the backend URL?

Set API_BASE_URL in mobile-app/local.properties and mobile-app/iosApp/Configuration/Config.local.xcconfig. Use a reachable host root without /api/v1. In xcconfig write https:/$()/host; plain // begins a comment. Guest does not need an Account backend. See Quick Start.

Does Guest remove monetization or require Firebase?

Guest keeps anonymous RevenueCat purchases, restore, AdMob, settings, static help, and local reminders. It skips Account APIs, FCM tokens, remote preferences, and server entitlements. Firebase configuration is not required for Guest startup. Purchases and ads can still need internet. See Guest mode.

Which entitlement should I configure?

KMP uses bowlerkit_pro in BillingModels.kt. Supply REVENUECAT_ANDROID_API_KEY and REVENUECAT_IOS_API_KEY through the platform configuration files. See Payments and Ads.

Which social login is exposed?

The current login UI uses Google on Android and Apple on iOS. Connected-account management also includes Google on iOS. Configure native IDs and capabilities as described in mobile-app/ACCOUNT-CREDENTIALS.md and Authentication.

Can I regenerate translations in a generated project?

scripts/generate-localizations.sh currently reads sibling Flutter ARB files from the source repository. Supply those inputs before using it in a generated project. See Internationalization.

Are biometric authentication, two-factor enrollment, and crash reporting enabled?

The Security screen’s biometric and two-factor controls are presentation placeholders, without authentication/enrollment flows. The KMP template does not ship a Crashlytics integration. Verify or implement the corresponding native/backend flows before advertising those capabilities.

How do I configure notifications and release?

Use Push Notifications for Account FCM or Guest daily tips. Use Release for version stamping, the Android bundle task, and Xcode archive.

Where are backend deployment instructions?

KMP Account uses the same services as the other frameworks. Follow Backend Architecture; the KMP backends page points to that shared guide.