"[Hermes] The herald of the gods, the swift messenger of Zeus, came from the sky and stood before her."
— Homer, The Odyssey
Hermes Express is a personal project that showcases how to build a delivery Android application using state-of-the-art technologies in Android development. The app enables bikers to explore delivery offers and accept one to fulfill. Using modern Android development technologies (listed in the Technologies section below), Hermes Express provides a practical example of creating a reliable, scalable, and user-friendly app in the delivery domain.
- Modular by both feature and layer (feature and core directories)
- MVVM + UDF state management in the presentation layer
- Reactive style using Coroutine Flow
- Koin for Dependency Injection
- Jetpack Navigation Compose
- Firebase for cloud messaging
- Retrofit for HTTP request
- Kotlin Serialization
- Jetpack DataStore for data storage
- MapBox Android SDK
- Jetpack Compose wrapper around MapView with UDF state management
- Gradle composite build for encapsulating build logics
- Gradle Convention Plugins for sharing build logic between subprojects
- Version Catalog for sharing dependency versions between subprojects
- Detekt static analyzer for finding code smells
- Compose UI
- Material 3 design system with support for dynamic color (Android 12+)
- Themed launcher icon (Android 13+)
- Multilingual and currently supports English and Persian.
- Localized Firebase notification messages.
- Per-app language preferences (Android 13+)
Contributions and feedback are welcome and appreciated. Please feel free to fork the repository and submit a pull request.
Copyright 2023 Ali Bagherifam
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.