GitHub - DevJLALW/MobileApplications: Add mobile applications using Kotlin · GitHub
Skip to content

DevJLALW/MobileApplications

Folders and files

Repository files navigation

Food Delivery App

A feature-rich, cross-platform food delivery application built using Kotlin Multiplatform and Jetpack Compose, showcasing modern mobile architecture, real-world integrations, and accessibility-focused design.


Key Highlights

  • Cross-platform UI using Jetpack Compose Multiplatform
  • MVVM architecture with clean state management
  • Multi-language support (English & German)
  • Location-based delivery using OpenStreetMap
  • Camera integration for profile & order customization
  • Accessibility via Text-to-Speech (TTS)
  • Support using Room Database

Features

  • Text and Image Integration:

    • Support for displaying text and images in the UI for menu items, order details, etc.
  • Button and OnClick Functionality:

    • Interactive buttons to handle user actions like placing orders, navigating, and more.
  • User Authentication:

    • Login and registration functionality for users, allowing access to personal data and orders.
  • Camera Integration:

    • Users can capture and upload images via the camera for order customizations or profile pictures.
  • Text-to-Speech (TTS):

    • Provides accessibility features by converting text into speech. It reads out important information for users, enhancing usability for visually impaired users.
  • Multi-language Support:

    • Supports both English and German languages. Users can toggle between languages in the app's settings.
  • Location Integration:

    • Utilizes Open StreetView Maps to show users their current location and select a delivery address.
  • RoomDB for Data Persistence:

    • Local database to store user preferences, order history, and more for offline functionality.
  • Permissions Handling:

    • Handles runtime permissions for accessing the camera, location, etc., ensuring compliance with Android’s security model.

Technology Stack

  • Language: Kotlin
  • Framework: Kotlin Multiplatform
  • UI: Jetpack Compose Multiplatform
  • Database: Room Persistence Library
  • Architecture: MVVM (Model-View-ViewModel)
  • Navigation: Jetpack Navigation Compose
  • Dependency Injection: Manual dependency injection
  • Build System: Gradle with Kotlin DSL

Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • JDK 11 or higher
  • Android SDK API level 21 or higher

Installation

  1. Clone the repository

    git clone https://github.com/DevJLALW/MobileApplications.git
    cd FoodDeliveryApp
  2. Open in Android Studio

    • Launch Android Studio
    • Select "Open an existing Android Studio project"
    • Navigate to the cloned directory and select it
  3. Build the project

    • Wait for Gradle sync to complete
    • Build → Make Project (Ctrl+F9)
  4. Run on device/emulator

    • Connect an Android device or start an emulator
    • Run → Run 'app'

Architecture

The application follows MVVM (Model-View-ViewModel) architecture:

  • Model: Room database entities and repositories
  • View: Jetpack Compose UI components
  • ViewModel: Handles business logic and UI state

Key Components

Database Layer

  • Users Entity: Represents user data with Room annotations
  • UsersDao: Data access object with CRUD operations
  • UsersDatabase: Room database configuration
  • UsersViewModel: Manages user-related operations and state

UI Layer

  • Navigation: Single-activity architecture with Jetpack Navigation
  • Screens: Individual composable screens for different app sections
  • Components: Reusable UI components

Services

  • Location Services: GPS and map(Open Street Map) integration
  • Camera Services: Photo capture and storage
  • Language Services: Multi-language support with SharedPreferences

🔧 Configuration

Android Manifest Permissions

The app requires the following permissions:

  • CAMERA: For profile photo capture
  • READ_EXTERNAL_STORAGE & WRITE_EXTERNAL_STORAGE: For photo storage
  • ACCESS_FINE_LOCATION & ACCESS_COARSE_LOCATION: For location services
  • INTERNET: For network operations

Multi-language Support

The app supports English and German languages:

  • Language selection in the intro screen
  • Persistent language preference storage
  • Localized strings in res/values/ and res/values-de/

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Acknowledgments

  • Kotlin Multiplatform for cross-platform development
  • Jetpack Compose for modern UI development
  • Room for database persistence
  • OpenStreetMap for location services

About

Add mobile applications using Kotlin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors