Skip to main content

Instalasi & Setup

Panduan lengkap untuk setup development environment MStore Mobile.

Prerequisites

Sebelum memulai, pastikan sistem Anda memiliki:

1. Flutter SDK

# Versi minimum: Flutter 3.8.0
flutter --version
Download Flutter dari flutter.dev

2. Dart SDK

# Versi minimum: Dart 3.8.0
dart --version
Dart SDK sudah termasuk dalam Flutter SDK.

3. Development Tools

macOS (untuk iOS development)

  • Xcode 14.0+
  • CocoaPods
  • Command Line Tools
# Install CocoaPods
sudo gem install cocoapods

# Install Xcode Command Line Tools
xcode-select --install

Windows (untuk Android development)

  • Android Studio
  • Android SDK
  • Java JDK 11+

Linux

  • Android Studio
  • Android SDK
  • Build essentials
sudo apt-get install build-essential

4. IDE

Pilih salah satu:
  • VS Code dengan Flutter extension
  • Android Studio dengan Flutter plugin
  • IntelliJ IDEA dengan Flutter plugin

Clone Repository

git clone <repository-url> mstore_mobile
cd mstore_mobile

Install Dependencies

1. Flutter Dependencies

flutter pub get

2. iOS Dependencies (macOS only)

cd ios
pod install
cd ..

3. Native Sound Plugin

Project ini menggunakan custom native plugin. Pastikan path-nya benar:
# Set environment variable (optional)
export NATIVE_SOUND_PLUGIN_PATH=/path/to/native_sound_plugin/ios
Atau edit pubspec.yaml jika struktur direktori berbeda:
dependencies:
  native_sound_plugin:
    path: ../native_sound_plugin  # Sesuaikan path

Environment Configuration

1. Setup Environment Files

Project menggunakan multiple environment (development, staging, production). Buat file environment di folder deploy/:
mkdir -p deploy

.env.dev (Development)

API_BASE_URL=https://dev-api.mstore.com
MQTT_BROKER=dev-mqtt.mstore.com
MQTT_PORT=1883
MQTT_USERNAME=dev_user
MQTT_PASSWORD=dev_pass
MQTT_CLIENT_ID=mstore_mobile_dev

.env.staging (Staging)

API_BASE_URL=https://staging-api.mstore.com
MQTT_BROKER=staging-mqtt.mstore.com
MQTT_PORT=1883
MQTT_USERNAME=staging_user
MQTT_PASSWORD=staging_pass
MQTT_CLIENT_ID=mstore_mobile_staging

.env.prod (Production)

API_BASE_URL=https://api.mstore.com
MQTT_BROKER=mqtt.mstore.com
MQTT_PORT=1883
MQTT_USERNAME=prod_user
MQTT_PASSWORD=prod_pass
MQTT_CLIENT_ID=mstore_mobile_prod

2. Firebase Configuration

iOS

  1. Download GoogleService-Info.plist dari Firebase Console
  2. Letakkan di:
    • ios/Runner/GoogleService-Info.plist
    • macos/Runner/GoogleService-Info.plist

Android

  1. Download google-services.json dari Firebase Console
  2. Letakkan di android/app/google-services.json

Web

  1. Update web/index.html dengan Firebase config

Code Generation

Project menggunakan code generation untuk beberapa fitur:
# Generate semua code (Retrofit, Freezed, Injectable, dll)
flutter pub run build_runner build --delete-conflicting-outputs

# Watch mode (auto-generate saat file berubah)
flutter pub run build_runner watch --delete-conflicting-outputs

Verify Installation

1. Check Flutter Doctor

flutter doctor -v
Pastikan semua checklist hijau (✓).

2. Run Tests

flutter test

3. Run App

Development Mode

# iOS
flutter run --flavor development -t lib/main_development.dart

# Android
flutter run --flavor development -t lib/main_development.dart

# Web
flutter run -d chrome --flavor development -t lib/main_development.dart

Staging Mode

flutter run --flavor staging -t lib/main_staging.dart

Production Mode

flutter run --flavor production -t lib/main_production.dart

Troubleshooting

iOS Build Issues

Pod Install Failed

cd ios
rm -rf Pods Podfile.lock
pod cache clean --all
pod install --repo-update
cd ..

Native Sound Plugin Not Found

# Set path explicitly
export NATIVE_SOUND_PLUGIN_PATH=/absolute/path/to/native_sound_plugin/ios

# Reinstall pods
cd ios
pod install
cd ..

Android Build Issues

Gradle Build Failed

cd android
./gradlew clean
cd ..
flutter clean
flutter pub get

MultiDex Issue

Sudah ditangani di android/app/build.gradle:
defaultConfig {
    multiDexEnabled true
}

Code Generation Issues

# Clean generated files
flutter clean
flutter pub get

# Force regenerate
flutter pub run build_runner build --delete-conflicting-outputs

Isar Database Issues

Project menggunakan custom fork Isar:
# Pastikan dependency override aktif di pubspec.yaml
dependency_overrides:
  isar_community:
    git:
      url: https://github.com/faisalaffan/isar-faisalaffan.git
      path: packages/isar_community
      ref: v3

Next Steps

Setelah instalasi berhasil:
  1. 📖 Baca Configuration Guide
  2. 🏗️ Pelajari Architecture Overview
  3. 🚀 Mulai Development

Additional Resources


Butuh bantuan? Hubungi tim development atau buka issue di repository.