Project Bootstrap
Langkah-langkah memulai project baru per platform.
Android (Kotlin + Compose)
# 1. Buat project di Android Studio
# File → New Project → Empty Activity (Compose)
# 2. Setup version catalog
# Edit gradle/libs.versions.toml
# 3. Setup Clean Architecture folders
mkdir -p app/src/main/java/com/bitgroup/appname/{data/{remote,local,repository},domain/{model,repository,usecase},presentation/{ui,viewmodel,navigation},di,core}
# 4. Setup Hilt
# Tambahkan dependency di libs.versions.toml dan apply plugin
# 5. Setup linter
# Tambahkan detekt / ktlint
iOS (Swift + SwiftUI)
# 1. Buat project di Xcode
# File → New Project → App (SwiftUI)
# 2. Setup folder structure
mkdir -p AppName/{App,Data/{Remote,Local,Repository},Domain/{Models,Repositories,UseCases},Presentation/{Screens,Components,Navigation},Core/{Extensions,Utilities,Constants},Resources}
# 3. Setup SwiftLint
brew install swiftlint
echo "included:\n - AppName\nexcluded:\n - Pods" > .swiftlint.yml
# 4. Setup SPM packages via Xcode
Flutter
# 1. Create project
flutter create --org com.bitgroup app_name
cd app_name
# 2. Setup folder structure
mkdir -p lib/{app/di,core/{constants,extensions,theme,utils,network},data/{datasources/{remote,local},models,repositories},domain/{entities,repositories,usecases},presentation/{screens,widgets},l10n}
# 3. Add dependencies
flutter pub add dio get_it flutter_bloc freezed_annotation json_annotation go_router
flutter pub add --dev build_runner freezed json_serializable flutter_lints
# 4. Setup analysis
# Edit analysis_options.yaml
React Native CLI
# 1. Create project (TypeScript sudah jadi default template sejak RN 0.71+)
npx @react-native-community/cli init AppName
# 2. Setup folder structure
mkdir -p src/{app/navigation,core/{api,constants,hooks,theme,utils},data/{dto,repositories,services},domain/{entities,repositories,usecases},presentation/{screens,components},store,types}
# 3. Install dependencies
npm install @react-navigation/native @react-navigation/native-stack zustand axios zod react-hook-form
# 4. Setup ESLint + Prettier
npx eslint --init
React Native Expo
# 1. Create project
npx create-expo-app@latest app-name --template tabs
# 2. Setup folder structure
mkdir -p src/{core/{api,constants,hooks,theme,utils},data/{dto,repositories,services},domain/{entities,repositories,usecases},presentation/components,store,types}
# 3. Install dependencies
npx expo install expo-secure-store expo-constants
npm install zustand axios zod react-hook-form @tanstack/react-query
# 4. Setup EAS
eas init
eas build:configure
# 5. Setup ESLint + Prettier
npx eslint --init