DASI Mobile Android
Project Information
- Category: Mobile Application (Flutter)
- Client: Internal Project
- Project Date: 2025
- My Role: Mobile App Developer
- Project Status: Completed
- Technology Stack:
Flutter Dart RESTful API MySQL Local Database (Sqflite)
Project Overview
DASI Mobile merupakan aplikasi Android yang digunakan oleh tim sales untuk melakukan aktivitas operasional di lapangan. Aplikasi ini terhubung langsung dengan DASI Web Dashboard menggunakan satu database sehingga seluruh transaksi dan aktivitas sales dapat dimonitor secara real-time. Selain proses input penjualan, aplikasi juga menyediakan dokumentasi foto, laporan aktivitas, serta berbagai fitur pendukung mobilitas sales.
Key Features
Sales Transaction
Memudahkan tim sales melakukan input transaksi secara cepat dan efisien langsung dari perangkat mobile di lapangan.
Photo Documentation
Mendukung pengambilan dan penyimpanan dokumentasi foto sebagai bukti aktivitas kunjungan maupun transaksi fisik di lapangan.
Real-time Reporting
Sales dapat memantau pencapaian penjualan harian dan aktivitas kunjungan mereka secara langsung melalui aplikasi.
Integrated with DASI Web
Seluruh data tersinkronisasi secara otomatis dengan DASI Web Dashboard sehingga meminimalisir input ganda.
Challenges & Solutions
Upload Gambar di Area Sinyal Lemah
Tantangan: Dokumentasi foto lapangan yang berukuran besar sering kali gagal diunggah atau membuat aplikasi terasa lag ketika tim sales berada di daerah dengan koneksi internet lambat.
Solusi: Menerapkan kompresi gambar otomatis (maksimum lebar 1080px dan kualitas 75%) menggunakan plugin `flutter_image_compress` sebelum file dikirim. Menambahkan mekanisme upload latar belakang (background sync) menggunakan `WorkManager` sehingga sales tetap dapat menginput transaksi berikutnya tanpa menunggu upload selesai.
Sinkronisasi Offline-to-Online
Tantangan: Sales tetap harus bisa memasukkan data transaksi kunjungan meskipun tidak mendapatkan sinyal internet sama sekali.
Solusi: Membangun penyimpanan lokal menggunakan database `Sqflite` (SQLite untuk Flutter). Saat koneksi terputus, data disimpan secara lokal dan akan disinkronisasikan ke server secara otomatis ketika aplikasi mendeteksi koneksi internet kembali aktif.