Skip to content

YELrhilassi/create-android-app

Repository files navigation

create-droid 🤖

The fastest way to start an Android project. No Studio required.

npm version License: MIT

Why?

Most Android tutorials assume you want to download a 2GB IDE just to write "Hello World". Modern web developers are used to tools like create-react-app or vite – simple, fast, and CLI-first.

create-droid brings that DX to Android.

  • ⚡️ Fast: Scaffolds a project in seconds.
  • 🚫 No Studio Required: Fully functional Gradle builds out of the box.
  • 🛠 Local SDK Management: Auto-downloads and configures the Android SDK locally (no global pollution).
  • 💎 Modern Stack: Kotlin DSL, Version Catalogs (libs.versions.toml), Jetpack Compose, and Material 3 by default.
  • 🐧 Linux & Mac First: Designed for terminal-centric workflows.

Prerequisites

  • Node.js: >= 18.0.0
  • Java (JDK): >= 17 (Run java -version to check)

Usage

Simply run:

npm create droid@latest my-app
# or
npx create-droid@latest my-app

Follow the interactive prompts:

  1. Project Name: Defaults to directory name.
  2. Template Selection:
    • Jetpack Compose (Mobile): Modern phone/tablet starter.
    • Compose with Navigation: Includes Navigation, BottomBar, and multi-screen setup.
    • Compose for TV: Optimized for Android TV with tv-material.
    • Compose Library: Foundation for publishing reusable UI components.
    • XML Views (Legacy): For maintenance or classic development.
  3. Addon Selection: Proactively install Hilt, Room, Retrofit, Coil, and more.

After Scaffolding

cd my-app

# Start "Live Reload" mode (Continuous Build)
# Edits will auto-compile and install on your connected device!
npm run dev

# Add more libraries later
npm run add

What's Inside?

The generated project is clean and follows modern best practices. It includes a package.json with convenience scripts:

  • npm run dev: High-speed development loop. Watches code and auto-deploys via --continuous.
  • npm run open: Launches the app on the connected device.
  • npm run build: Generates a production release APK.
  • npm run clean:deep: Purges all build artifacts and Gradle cache to reclaim disk space.
  • npm run lsp:sync: (Neovim/LSP users) Compiles classes to help the language server index dependencies.
  • npm test: Runs unit tests.

📱 ADB Scripts (Wireless Debugging)

We include a robust adb wrapper that works even if adb is not in your PATH (uses the local SDK):

  • npm run adb:devices: List connected devices.
  • npm run adb:connect <ip>: Connect to a device via Wi-Fi.
  • npm run adb:pair <ip> <code>: Pair a new device (Android 11+).
  • npm run adb:logcat: View device logs.
my-app/
├── app/
│   ├── src/main/kotlin/com/example/  # Your Kotlin source code
│   └── build.gradle.kts              # App module configuration
├── gradle/
│   └── libs.versions.toml            # Central dependency management (Version Catalog)
├── build.gradle.kts                  # Root project configuration
├── settings.gradle.kts               # Module inclusion
├── gradlew                           # The Gradle wrapper (runs builds)
├── local.properties                  # SDK location (auto-generated)
└── package.json                      # NPM convenience scripts and project metadata

## Advanced

### Customizing the SDK Location

By default, the SDK is installed to `~/.local/share/create-android-app/sdk`.
If you already have an SDK installed, simply set the environment variable:

```bash
export ANDROID_HOME=/path/to/existing/sdk
npm create droid my-app

License

MIT © YELrhilassi

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors