Skip to content

Latest commit

 

History

History
183 lines (141 loc) · 6.46 KB

File metadata and controls

183 lines (141 loc) · 6.46 KB

nowinandroid-agent-kit

One command to scaffold a production-ready Android project with AI agent harness.

Project setup, UI-ready structure, and .claude harness — all in one step.

Based on NowInAndroid by Google.

Kotlin Compose Hilt License

Works with: Claude Code · Gemini CLI · Cursor · Copilot


Generate a Project

git clone https://github.com/warrenth/nowinandroid-agent-kit.git
cd nowinandroid-agent-kit
./generate.sh
Project name: MyApp
Package name: com.example.myapp
Output directory: ~/Projects/MyApp

==> Copying project scaffold...          ✓
==> Replacing placeholders...            ✓
==> Organizing source files...           ✓
==> Setting up AI agent harness...       ✓ (8 rules, 8 skills, 4 agents)
==> Initializing git repository...       ✓

✓ Project generated successfully!

  14 modules ready:
  ├── app                     Entry point + Bottom Navigation
  ├── core/model              Domain data classes
  ├── core/domain             UseCases
  ├── core/data               Repository (offline-first)
  ├── core/database           Room DAOs + Entities
  ├── core/network            Retrofit + OkHttp
  ├── core/datastore          DataStore preferences
  ├── core/designsystem       Material 3 Theme + Components
  ├── core/ui                 Shared Composables
  ├── core/navigation         Routes
  ├── core/common             Dispatcher DI
  ├── core/testing            Test utilities + Fakes
  ├── feature/home            ★ Sample feature (copy this!)
  ├── feature/settings        Settings placeholder
  └── sync/work               WorkManager sync

Open in Android Studio → Replace BASE_URL → Add your features.


Or Just Copy What You Need

Don't need the full project? Grab individual files:

# One skill
cp -r skills/compose-animation/ your-project/.claude/skills/

# All rules
cp -r rules/ your-project/.claude/rules/

# Everything
cp -r rules/ skills/ agents/ your-project/.claude/

What's Inside

Rules — always loaded, keep your AI on track

Rule Enforces
architecture Clean Architecture layers, ViewModel / UseCase / Repository
module-boundary Feature API/Impl split, dependency direction
compose-rules State hoisting, recomposition, side effects
coroutines Scope, Flow collection, CancellationException
kotlin-style Formatting, naming, null safety
naming-convention NIA class/function/resource naming
testing Fakes over Mocks, Turbine, AAA pattern
performance Recomposition, image loading, startup

Skills — on-demand deep knowledge

Skill Teaches
compose-animation 7 animation patterns (visibility, rotation, keyframes, stagger, state machine, canvas, gesture)
compose-performance Stability, graphicsLayer, derivedStateOf
compose-navigation Type-safe routes, adaptive nav
compose-testing ViewModel / UI / screenshot tests
compose-migration XML → Compose strategy
hilt-di @Binds / @Provides, convention plugins
coroutines-flow StateFlow, parallel sync, change-list
room-offline Offline-first, Entity / DTO / Domain mapping

Agents — autonomous executors

Agent Role
architect Module design, dependency graph
coder Feature implementation
code-reviewer Architecture compliance review
tester Unit / UI / screenshot tests

Architecture

READ:  Room → Repository → UseCase → ViewModel (StateFlow) → Compose UI
WRITE: UI event → ViewModel → Repository → DataStore / Room
SYNC:  WorkManager → SyncWorker → Network → Room
Full project structure
MyApp/
├── app/
│   └── src/main/kotlin/com/example/myapp/
│       ├── MainApplication.kt              @HiltAndroidApp
│       ├── MainActivity.kt                 @AndroidEntryPoint
│       └── AppNavHost.kt                   Bottom Nav + routing
│
├── core/
│   ├── model/          SampleItem.kt, UserData.kt
│   ├── domain/         GetSampleItemsUseCase.kt
│   ├── data/           OfflineFirstSampleRepository.kt, DataModule.kt
│   ├── database/       AppDatabase.kt, SampleItemDao.kt, SampleItemEntity.kt
│   ├── network/        NetworkModule.kt, SampleApi.kt, NetworkSampleItem.kt
│   ├── designsystem/   Theme.kt, LoadingWheel.kt, DynamicAsyncImage.kt
│   ├── datastore/      (DataStore preferences)
│   ├── navigation/     (Routes)
│   ├── ui/             (Shared composables)
│   ├── common/         Dispatchers.kt
│   └── testing/        (Test utilities)
│
├── feature/
│   ├── home/
│   │   ├── api/        HomeNavKey.kt
│   │   └── impl/       HomeViewModel.kt, HomeScreen.kt
│   └── settings/
│       └── impl/       SettingsScreen.kt
│
├── sync/work/          (WorkManager sync)
│
├── .claude/            8 rules + 8 skills + 4 agents
├── CLAUDE.md
├── gradle/libs.versions.toml
└── gradle.properties

NowInAndroid Version

Derived from NowInAndroid (March 2026): AGP 9.0, Kotlin 2.3, Compose BOM 2025.09, Hilt 2.59, Room 2.8.3, Navigation3.

Contributing

Fork → branch → add/improve rules or skills → PR. All code examples must come from real NowInAndroid source analysis.

License

MIT