A modern restaurant reservation and menu management application, built as the capstone project for the Meta Android Developer Professional Certificate. This app demonstrates advanced Android development practices, focusing on scalability, user experience, and cutting-edge technologies like Jetpack Compose, Material3, and Room Database.
Dark Mode | Light Mode |
---|---|
Dark Mode | Light Mode |
---|---|
Dark Mode | Light Mode |
---|---|
- Smooth User Flow: Onboarding, registration, and main app navigation implemented using Jetpack Compose Navigation.
- Custom Back-stack Management: Enhances user experience with seamless navigation.
- Modern UI/UX: Designed using Material Design 3 principles with Material You components.
- Custom Themes: Includes tailored typography, color palettes, and support for light/dark themes.
- Persistent Sessions: User data securely stored using DataStore.
- Room Database Integration: Ensures local data persistence and offline-first functionality.
- Dynamic Updates: HTTP requests fetch menu data and update the Room Database dynamically.
- JSON Parsing: Gson used for parsing API responses into reusable data classes.
- Menu Management: Search and filter menu items by category for an intuitive experience.
- Coroutines: Used for efficient asynchronous HTTP calls to maintain a responsive UI.
- Lifecycle Awareness: Ensures efficient resource usage and app performance.
- Dynamic Layouts: Flexible and responsive UI components adhering to Material Theme guidelines.
- Ktor & Room Database:
- Limited resources required additional effort to integrate these tools effectively.
- Jetpack Compose Updates:
- Frequent updates caused dependency conflicts, which were resolved through troubleshooting and adaptation.
- Singleton Pattern:
- Used for managing Ktor client and Room Database instances, reducing redundancy and promoting cleaner architecture.
- Languages: Kotlin
- Frameworks: Jetpack Compose, Material3
- Libraries: Room, DataStore, Ktor, Gson
- Tools: Android Studio
-
Clone this repository:
-
Open the project in Android Studio.
-
Build and run the app on an emulator or physical device.