You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is part of the Dicoding "Belajar Pengembangan Aplikasi Android Intermediate (BPAAI)" course. StoryAppLite is a feature-rich Android application that allows users to register, log in, upload stories, and view stories on a map. The app utilizes modern Android development practices such as custom views, paging, remote mediation, and more.
⚠️ Warning:
If you are working on the same submission, please do not copy-paste. Use this repository as a reference material only.
Features 📱
User Registration & Login: Securely register and log in users.
Story Upload: Capture images using CameraX or upload from the gallery to share stories.
Paging3 Integration: Efficiently load stories in pages with Remote Mediator for handling local and remote data sources.
Story Map: Visualize user stories on a map using Google Maps SDK.
Local Storage: Store user preferences using DataStore and stories with Room database.
Offline Access: Seamless integration of offline support with cached data using Room and remote mediator.
Dark Mode: Support for light and dark themes.
Unit Testing: Comprehensive unit tests to ensure app stability.
Tech Stack 🛠️
Kotlin - Primary language for Android development.
Android View - Standard UI components for user interaction.
Custom View - Creating reusable and customizable views.
Retrofit - For HTTP networking and API calls.
DataStore - To handle user preferences.
Paging3 - For efficient pagination of story data.
Remote Mediator - For seamless data synchronization between remote and local sources.
Room - Local database for caching data.
Maps SDK - For integrating Google Maps and showing story locations.
LiveData - Observing and reacting to data changes.
MVVM - A clean and maintainable architecture pattern.
Coroutines - Asynchronous programming to handle background tasks.