Skip to content

This project was created as part of Dicoding's Android Intermediate course. The objective of this project is to develop a story app that integrates several components: Advanced UI, Animation Localization & Accessibility, Service, Media, Geo Location, Advanced Testing, and Advanced Database

License

Notifications You must be signed in to change notification settings

syenirasheila/SnapStory

Repository files navigation

SnapStory : Let's share your stories with SnapStory!

✨ About The Project

This project was created as part of Dicoding's Android Intermediate course. The objective of this project is to develop a story app that integrates several components:

  • Advanced UI
  • Animation
  • Localization & Accessibility
  • Service
  • Media
  • Geo Location
  • Advanced Testing
  • Advanced Database

📱 Mock-up

Splashscreen Onboarding Onboarding (Localization) Sign up
Splash Onboarding Onboarding German Sign up
Sign up (Localization) Sign in Customview Home
Sign up German Sign in Warning sign in Home
Add Story (Access Device Camera) Add Story (Camera) Add Story (Gallery) Disabled Story Location
Camera 7 Camera 6 Gallery Camera
Enabled Story Location (Access Device Location) Enabled Story Location Add Story Description Story Detail
Camera 9 Camera 8 Desc 3 Story Detail
Post Story Change Language Show Story Map (Access Device Location) Show Story Map
Success post Language Map Map 2

🚀 Built With

Kotlin using Android Studio HedgeHog and Postman for testing APIs

Dependencies:

Testing Dependencies:

⭐ Features

Sign-In/Sign-Up Feature:

  • Create user authentication with sign-in and sign-up functionalities.
  • Manage user sessions by saving tokens in DataStore after successful login.
  • Handle logouts by deleting the session or token.

Story Handling:

  • Display a list of stories and show story details when a story is tapped.
  • Allow users to upload a story with a photo (from the camera or gallery) and a description.
  • Provide an option to add location data to the story based on user preference.

Map Integration:

  • Use Google Maps API to display stories based on their location.
  • Create markers on the map for each story; tapping a marker navigates to the story details.
  • Customize the map's appearance using Custom Map Style.

Paging and Offline Support:

  • Implement paging in a RecyclerView using Paging 3 and RemoteMediator for database integration, allowing offline access to stories.
  • Handle data retrieval failures by displaying error messages and a retry button.

UI/UX Enhancements:

  • Implement property animation for smooth transitions and interactions.
  • Create custom views for validating email and password input during sign-up/sign-in.
  • Support multiple languages using localization.

Architecture:

  • Use Android architecture components such as ViewModel and LiveData for managing UI-related data.

Testing:

  • Add UI tests with idling resources to test the sign-in and logout process, ensuring the app's behavior under various conditions.

👤 Author

Syenira Sheila

❤️ Show Your Support

Hopefully, this project can be valuable and beneficial for the advancement of Technology and Information, and if it's been useful to you, please give it a ⭐️ on this repository! Thank you 😃

📝 License

Copyright © 2024 Syenira Sheila. This project is MIT licensed.

(back to top)

About

This project was created as part of Dicoding's Android Intermediate course. The objective of this project is to develop a story app that integrates several components: Advanced UI, Animation Localization & Accessibility, Service, Media, Geo Location, Advanced Testing, and Advanced Database

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages