Kalori-In adalah aplikasi mobile AI Food Scanner yang memungkinkan pengguna untuk mengenali makanan melalui foto dan mendapatkan informasi nutrisi secara otomatis, meliputi kalori, protein, karbohidrat, lemak, dan serat.
| Splash |
Home |
Upload |
Analisis |
Hasil |
| Animasi logo bertahap |
Halaman utama & fitur |
Pilih/ambil foto |
Progress analisis AI |
Detail nutrisi lengkap |
- Deteksi Cepat — Identifikasi makanan dari foto secara instan menggunakan AI
- Info Nutrisi — Kalori, protein, karbohidrat, lemak, dan serat per sajian
- Ringkasan AI — Deskripsi singkat hasil analisis dalam Bahasa Indonesia
- Tips Kesehatan — Saran pola makan berbasis makanan yang terdeteksi
- Multi-model Fallback — Otomatis beralih ke model cadangan jika terjadi rate limit
| Teknologi |
Versi |
Keterangan |
| Flutter |
>=3.x |
Cross-platform UI framework |
| Dart |
>=3.8.0 |
Bahasa pemrograman utama |
| Layanan |
Keterangan |
| OpenRouter |
Gateway AI — OpenAI-compatible API |
google/gemma-4-26b-a4b-it:free |
Model utama (free tier, multimodal) |
google/gemma-3-27b-it:free |
Model fallback 1 |
meta-llama/llama-4-scout:free |
Model fallback 2 |
mistralai/mistral-small-3.2-24b-instruct:free |
Model fallback 3 |
lib/
├── core/
│ ├── constants/
│ │ ├── app_assets.dart # Path asset terpusat
│ │ ├── app_colors.dart # Palet warna aplikasi
│ │ └── app_strings.dart # Semua string UI
│ ├── routing/
│ │ └── app_routes.dart # Definisi named routes
│ └── theme/
│ └── app_theme.dart # Tema Material global
├── models/
│ ├── food_item.dart # Model data makanan terdeteksi
│ └── nutrition_result.dart # Model hasil analisis nutrisi
├── screens/
│ ├── splash/ # Splash screen dengan animasi logo
│ ├── home/ # Home screen & feature cards
│ ├── upload/ # Upload/kamera foto makanan
│ ├── analysis/ # Loading & progress analisis
│ └── result/ # Hasil nutrisi lengkap
├── services/
│ └── gemini_service.dart # Integrasi OpenRouter API + fallback logic
├── widgets/
│ ├── app_logo.dart # Logo "Kalori-In." reusable widget
│ ├── primary_button.dart # Tombol utama (hijau)
│ ├── secondary_button.dart # Tombol sekunder (outline)
│ └── ghost_button.dart # Tombol ghost/transparan
└── main.dart
- Flutter SDK
>=3.8.0
- Android SDK (untuk build Android)
- API key dari openrouter.ai (gratis, tidak perlu billing)
# 1. Clone repository
git clone <url-repository>
cd Kalori-In
# 2. Install dependencies
flutter pub get
# 3. Jalankan di emulator/device
flutter run
# 4. Build APK untuk Android
flutter build apk --release
Buka lib/services/gemini_service.dart dan ganti nilai _apiKey:
static const String _apiKey = 'sk-or-v1-xxxxxxxxxxxxxxxx';
Dapatkan API key gratis di openrouter.ai/keys.
dart run flutter_launcher_icons
flutter build apk --release
APK tersedia di build/app/outputs/flutter-apk/app-release.apk.
| Elemen |
Nilai |
| Warna Utama |
#4CAF50 (Hijau) |
| Warna Aksen |
#8B1A1A (Merah — huruf K & In.) |
| Background |
#CFDCCF (Sage green) |
| Font |
Poppins (via Google Fonts) |
| Min SDK Android |
21 (Android 5.0 Lollipop) |