Skip to main content

Set Up Your First App

In about five minutes you will have both the Android and iOS apps running. This page covers the requirements, the initial configuration, and how to rename the app to your own brand.

Requirements

Before you start, make sure you have:

  • Android Studio (latest stable version recommended)
  • Xcode (latest version) — for iOS development, macOS only
  • JDK 17 or later
  • Git
Verify your environment

Install the Kotlin Multiplatform IDE plugin for Android Studio / IntelliJ — it runs preflight checks on your environment.

1. Fork or clone the repository

Clone or fork the repository to your machine. KMPStarterKit is distributed as a single monorepo containing the KMP mobile app, the web backend + landing page, and this documentation:

SSH:

git clone git@github.com:KAppMaker/KAppMaker-All.git

or HTTPS:

git clone https://github.com/KAppMaker/KAppMaker-All.git

The repo layout:

  • MobileApp/ — Kotlin Compose Multiplatform app (Android, iOS, JVM Desktop, Web/WASM)
  • Web/ — Firebase Hosting landing page + Cloud Functions (AI backend)
  • Documentation/ — this site (Docusaurus, git submodule)

2. Open and run the Android app

Open the MobileApp/ folder in Android Studio, let Gradle sync, then run the Android app.

3. Run the iOS app

Open MobileApp/iosApp/iosApp.xcodeproj in Xcode. The iOS app uses Swift Package Manager for its native dependencies (Firebase, Google Mobile Ads, etc.) — no CocoaPods step — so Xcode resolves the packages automatically the first time. Wait for resolution to finish, then run.

SwiftPM-backed dependencies

Some libraries link their native iOS SDK through Swift Package Manager. Those need a committed linkage package (iosApp/KotlinMultiplatformLinkedPackage/) plus embed-and-sign wiring, which ships ready to use. You only regenerate it when the set of SwiftPM dependencies changes. See iOS Production for details.

4. Run on Desktop and Web (optional)

The same shared app also targets JVM Desktop and Web (Wasm). Run either from MobileApp/:

# Desktop (JVM):
./gradlew :desktopApp:run

# Web (Wasm) dev server:
./gradlew :webApp:wasmJsBrowserDevelopmentRun

5. You're set up

Your apps now run, with authentication, notifications, and in-app purchases already wired up. Next, make the app your own.

6. Change the application / bundle ID and name

Run the refactor_package.sh script (from MobileApp/) to set your app ID and display name. The Kotlin/Java package structure (package com.example.app) is independent of the applicationId / bundle ID:

# Full refactor (renames Kotlin packages too):
./scripts/refactor_package.sh --app-id com.example.newapp --app-name NewApp

# Or keep Kotlin packages, change IDs + display name only:
./scripts/refactor_package.sh --app-id com.example.newapp --app-name NewApp --skip-package-rename

Arguments:

  • --app-id <id> (required) — Android applicationId / iOS bundle ID.
  • --app-name <name> (required) — app display name.
  • --skip-package-rename (optional, default off — packages are renamed) — keep Kotlin packages and directories unchanged; only update the applicationId, bundle ID, Firebase references, and app name. Makes it easier to sync changes across multiple apps from the same codebase and avoid future merge conflicts.
tip

Commit or back up your project before running the script, in case anything goes wrong. The script prints a plan and asks for confirmation before changing anything. Close Xcode before running it, and reopen it afterward to pick up the changes.

Re-sync Gradle once and rebuild to make sure all changes applied.

7. Keep your repository up to date

To pull the latest changes, point origin at your own repository, then merge updates from the upstream monorepo:

git remote set-url origin <YOUR_GITHUB_REPO_URL>
git remote add upstream git@github.com:KAppMaker/KAppMaker-All.git
git fetch upstream
git merge upstream/main

Next steps

  • Browse the Features Overview to see what's already built — authentication, purchases, notifications, ads, AI, and more — before writing your own.
  • When you're ready to ship, work through the Pre-Publishing Checklist.

Prefer video? Watch the essential-features configuration walkthrough: