This project represents an increment of a Food Delivery application written in Kotlin for Android.
- List and view details of meals
- Add meals to the cart
- View cart and checkout
- AndroidX Libraries: Used for backwards compatibility and additional functionalities
- Retrofit: Used for handling network requests
- Dagger-Hilt: Used for dependency injection
- Glide: Used for image loading
- Navigation Component: Used for implementing navigation between different screens
- ViewBinding: Used to more easily interact with Views
- DataBinding: Allows to bind UI components in layouts to data sources in app using a declarative format
- LiveData: Lifecycle-aware observables for managing data in a lifecycle conscious way
- Navigation Safe Args Plugin: Used for passing data between destinations in a type-safe way
The application follows a structured MVVM (Model-View-ViewModel) architecture with separation of concerns principle for better readability and maintenance. The project structure is as follows:
data
: This package contains data handling classes including data sources and repositories.di
: Contains classes related to dependency injection using Dagger-Hilt.retrofit
: This package includes the networking setup and interfaces using Retrofit.ui
: This package holds all user interface related classes such as adapters, fragments and view models.utils
: Contains utility classes used throughout the application.
The application is developed using Android Studio. To setup this project locally, you need to:
- Clone the repository:
git clone https://github.com/kayaalpkoker/kotlin-food-delivery-app.git
- Open the project in Android Studio.
- Sync the Gradle files and run the build.