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.
- 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.
- 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.
- Glide - Efficient image loading and caching.
- CameraX - Camera API for capturing images.
- Unit Testing - Ensuring robust code with tests.
Welcome Screen | Register Screen | Login Screen |
---|---|---|
Home Screen | Story Details |
---|---|
Camera/Gallery | Upload Story | Story Map |
---|---|---|
- Clone the repository:
git clone https://github.com/KristianEka/StoryAppLite.git
- Install dependencies and build the project in Android Studio.
- Run the app on an emulator or device.