MapMoji is an innovative Android application that allows users to capture moments, convert them into expressive emojis, and share them on a map. Explore and interact with emoji stories around you or across the globe!
- Capture Moments: Snap a photo and see it transformed into the perfect emoji.
- Explore the World: Discover emojis shared by others nearby or worldwide.
- Interactive Map: View emoji pins based on real-world locations.
- Smooth Performance: Lightweight design for fast and responsive usage.
- FireStore: For storing data.
- ML Kit: For labeling shooted image and converting it to Emoji.
- Kotlin: Used as the programming language for the app.
- Android Jetpack: Modern Android development components:
- MutableState: For observable data holders.
- ViewModel: For UI-related data that survives configuration changes.
- Navigation: For handling navigation within the app.
- Coroutines: For asynchronous programming.
- Kotlin Flow: For managing asynchronous data streams.
- Dagger-Hilt: For dependency injection.
- Glide: For image loading and caching.
- Lottie: For beautiful animations and enhancing the user experience.
The app follows the MVVM (Model-View-ViewModel) architecture pattern along with Clean Architecture principles, ensuring a separation of concerns and making the code more maintainable, scalable, and testable.
- Coroutines and Flow: Used to handle asynchronous operations and manage data streams.