Nutrinote is a digital canteen application designed for monitoring nutrition. This application is implemented at the UGM Nutrition canteen. The development of this application is supported by a backend team that utilizes a REST API. For the Android version, Kotlin is used, along with Android Architecture Components such as LiveData, MVVM, Paging, Repository, Injection (Koin), Idling Resources, Scanner, LeakCanary, and Logger.
You can download the latest APK from here.
- Minimum SDK level: 21
- Language: Kotlin
- Coroutines: Used for managing asynchronous operations.
- Flow: Handling asynchronous data streams.
- Lifecycle: Observes Android lifecycles and manages UI states based on lifecycle changes.
- ViewModel: Manages UI-related data, making it lifecycle-aware to ensure data survives configuration changes.
- ViewBinding: Binds UI components to data sources efficiently and type-safely, reducing the need for manual UI updates.
- Koin: Facilitates dependency injection, making it easier to manage dependencies in your app.
- Material Components: A library for material design components, including ripple animations and CardView.
- Glide and GlidePalette: Glide is used to load images from the network, and GlidePalette allows extracting and working with colors from loaded images.
- DataStore: Manages and stores app-specific data in a key-value format.
- Firebase BOM (Bill of Materials): A set of dependencies that makes it easier to work with Firebase services.
- Firebase Analytics: For tracking user engagement and app usage.
- Firebase Crashlytics: Provides real-time crash reporting for your app.
- ViewPager2: Creates swipeable screens.
- DotsIndicator: Displays indicators for ViewPager2.
- Balloon: A library for creating tooltips and pop-up messages.
- Android-Simple-Tooltip: Shows simple and customizable tooltips.
- Code Scanner: Utilizes the "com.github.yuriy-budiyev:code-scanner" library for code scanning functionality.