Lewati ke konten utama

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