PathEarn adalah aplikasi mobile pembelajaran yang dirancang untuk membantu pengguna mengakses kursus, mengikuti kuis, dan mengelola profil pribadi mereka. Aplikasi ini dibangun menggunakan Flutter dan menyediakan pengalaman pengguna yang intuitif dengan fitur-fitur pembelajaran yang komprehensif.
- Registrasi akun baru
- Login dengan email dan password
- Logout pengguna
- Session management dengan idle timer
- Autentikasi melalui Supabase
- Tampilan dashboard
- Navigasi mudah ke berbagai fitur aplikasi
- Carousel banner promosi dan informasi penting
- Akses ke daftar kursus pembelajaran
- Menampilkan material pembelajaran
- Pelacakan progress pembelajaran pengguna
- Dukungan konten multimedia (teks, gambar, video)
- Viewer PDF terintegrasi untuk materi learning
- Mengikuti berbagai kuis pembelajaran
- Sistem penilaian otomatis
- Menampilkan hasil dan skor kuis
- Melihat dan mengedit profil pengguna
- Menyimpan informasi pribadi
- Akses konten premium eksklusif
- Pembuka link eksternal (URL Launcher)
- Pemilih file untuk upload materi
- Carousel slider untuk presentasi konten
- Flutter (SDK ^3.8.1) - Framework cross-platform untuk pengembangan mobile
-
GetX (^4.7.3) - State management, routing, dan dependency injection
GetX digunakan untuk:
- Reactive State Management - Mengupdate UI secara otomatis ketika state berubah
- Route Navigation - Navigasi antar halaman dengan routing yang powerful
- Supabase (^2.12.0) - Backend-as-a-Service dengan PostgreSQL, autentikasi, dan real-time database
- Google Fonts (^6.3.2) - Akses ke library font Google
- Flutter SVG (^2.0.9) - Render dan manipulasi file SVG
- Carousel Slider (^5.0.0) - Komponen carousel untuk slider gambar
- Loading Animation Widget (^1.2.1) - Animasi loading yang menarik
- Flutter Native Splash (^2.4.7) - Konfigurasi splash screen
- Flutter Launcher Icons - Konfigurasi icon aplikasi
Aplikasi ini menerapkan Clean Architecture dengan struktur folder yang terorganisir:
lib/
βββ main.dart # Entry point aplikasi
βββ core/ # Kode yang bisa digunakan di seluruh aplikasi
β βββ constants/ # Konstanta global
β βββ themes/ # Tema aplikasi (light & dark)
β βββ widgets/ # Widget reusable
βββ features/ # Fitur utama aplikasi
β βββ auth/ # Feature autentikasi
β β βββ data/ # Data layer (services, repositories)
β β βββ presentation/ # UI layer (screens, controllers)
β βββ home/ # Feature dashboard
β β βββ data/
β β βββ presentation/
β βββ lms/ # Feature Learning Management System
β β βββ data/
β β βββ presentation/
β βββ personal-data/ # Feature data pribadi pengguna
β β βββ data/
β β βββ presentation/
β βββ premium/ # Feature premium
β β βββ data/
β β βββ presentation/
β βββ quiz/ # Feature kuis
β βββ presentation/
βββ routes/ # Route management dengan GetX
-
Data Layer (
data/)- Repository pattern untuk mengakses data
- Services untuk komunikasi API dengan Supabase
- Model data
-
Presentation Layer (
presentation/)- Screens/Pages (UI)
- Controllers (Business Logic dengan GetX)
- Menggunakan
GetxControlleruntuk state management - Reactive variables dengan
Rx<T>()atau shorthand.obs - Observer dengan
Obx()untuk update UI otomatis
- Menggunakan
- Widgets reusable
-
Core Layer (
core/)- Themes dan styling global
- Custom widgets
- Constants dan utilities
- Android β (Version: min SDK 21)
βΉοΈ Catatan: Aplikasi saat ini hanya di-test dan di-develop pada platform Android. Testing di platform lain (iOS, Web, Windows, macOS, Linux) belum dilakukan.
- Flutter SDK: ^3.8.1
- Dart: Kompatibel dengan Flutter SDK yang ditentukan
- Android Studio atau editor lainnya yang support Flutter
Sebelum menjalankan aplikasi, pastikan sudah menginstal:
-
Flutter SDK
- Download dari https://flutter.dev/docs/get-started/install
- Versi yang dibutuhkan: ^3.8.1
-
Android Studio (atau IDE lainnya yang support Flutter)
- Download dari https://developer.android.com/studio
- Setup Android SDK dan emulator
-
Git (untuk version control)
git clone <repository-url>
cd Raion-Intern-PathEarnDownload semua package yang diperlukan aplikasi:
flutter pub getPerintah ini akan membaca pubspec.yaml dan mengunduh semua dependency yang tercantum.
Untuk melihat device yang tersedia:
flutter devicesOpsi 1: Debug Mode (Development)
flutter runAplikasi akan dijalankan dalam mode debug dengan hot reload enabled.
Opsi 2: Release Mode (Production)
flutter run --releaseAplikasi berjalan lebih cepat tetapi tanpa debugging tools.
Untuk membuat file APK yang bisa didistribusikan:
Debug APK:
flutter build apkRelease APK:
flutter build apk --releaseFile APK akan tersimpan di: build/app/outputs/flutter-apk/app-release.apk
Masalah: Gradle build error
# Solusi: Jalankan clean build
flutter clean
flutter pub get
flutter runMasalah: Device tidak terdeteksi
# Solusi: Aktifkan USB Debugging di Android device
# Kemudian:
flutter devices # Verifikasi device
flutter run # Jalankan ulangMasalah: Gradle outdated
# Solusi: Update Gradle
adb kill-server
adb start-server