Skip to content

StoryAppLite Dicoding-BPAAI (Belajar Pengembangan Aplikasi Android Intermediate)

Notifications You must be signed in to change notification settings

KristianEka/StoryAppLite

Repository files navigation

StoryAppLite-Dicoding-BPAAI 📖

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.
  • Glide - Efficient image loading and caching.
  • CameraX - Camera API for capturing images.
  • Unit Testing - Ensuring robust code with tests.

Screenshots 📸

Welcome Screen Register Screen Login Screen
Screenshot_2023-05-17-00-56-27-03_d6717f7918fda3bc8353b8836fbc02fc Screenshot_2023-05-17-00-56-32-91_d6717f7918fda3bc8353b8836fbc02fc Screenshot_2023-05-17-00-56-38-85_d6717f7918fda3bc8353b8836fbc02fc
Home Screen Story Details
Screenshot_2023-05-17-00-56-57-25_d6717f7918fda3bc8353b8836fbc02fc Screenshot_2023-05-17-00-57-03-32_d6717f7918fda3bc8353b8836fbc02fc
Camera/Gallery Upload Story Story Map
Screenshot_2023-05-17-00-57-16-24_d6717f7918fda3bc8353b8836fbc02fc Screenshot_2023-05-17-00-57-41-12_d6717f7918fda3bc8353b8836fbc02fc Screenshot_2023-05-17-00-58-03-98_d6717f7918fda3bc8353b8836fbc02fc

Setup & Installation ⚙️

  1. Clone the repository:
    git clone https://github.com/KristianEka/StoryAppLite.git
  2. Install dependencies and build the project in Android Studio.
  3. Run the app on an emulator or device.

About

StoryAppLite Dicoding-BPAAI (Belajar Pengembangan Aplikasi Android Intermediate)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages