https://github.com/sanjinkurelic/sightslocator
Sights Locator is an Android application for searching and viewing information about famous landscapes near you.
https://github.com/sanjinkurelic/sightslocator
android androidrx bottomnavigationbar databinding fragments googlemaps java javarx lombok mvvm-pattern navigation-drawer picasso picasso-transformations preferences reactivex recyclerview retrofit2 room-database viewbinding viewholder
Last synced: about 1 month ago
JSON representation
Sights Locator is an Android application for searching and viewing information about famous landscapes near you.
- Host: GitHub
- URL: https://github.com/sanjinkurelic/sightslocator
- Owner: SanjinKurelic
- License: mit
- Created: 2021-01-26T07:57:41.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-13T21:52:00.000Z (over 3 years ago)
- Last Synced: 2024-12-26T03:13:30.155Z (6 months ago)
- Topics: android, androidrx, bottomnavigationbar, databinding, fragments, googlemaps, java, javarx, lombok, mvvm-pattern, navigation-drawer, picasso, picasso-transformations, preferences, reactivex, recyclerview, retrofit2, room-database, viewbinding, viewholder
- Language: Java
- Homepage:
- Size: 7.86 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sights Locator
Sights Locator is an Android application for searching and viewing information about famous landscapes near you (currently only island Krk in Croatia is available as a destination). Sights Locator is written in Java using Model-View-ViewModel pattern.
## Running
Download project and open it with Android Studio. Open `local.properties` and **add Google Map API key** which you can obtain here: [https://developers.google.com/maps/documentation/android-sdk/get-api-key](https://developers.google.com/maps/documentation/android-sdk/get-api-key). Add generated key in the file as follows:
```
sdk.dir=....
MAPS_API_KEY=1234...
```Start the application on Android with **SDK version 28** or higher.
## GUI
### Splash screen
Splash screen uses RxJava (ReactiveX) observable to download data from the REST API (using Retrofit) and storing it in a local database (using RoomDAO). Splash screen also show few animations while the user waits for the data.
### List of sights
After all data is downloaded/stored user is presented with a list of sights. The list is presented in RecyclerView that uses CardView layout (ViewHolder pattern).
It's possible to delete items from the list by swiping to the right.
### Item details
By clicking the item on the list or click the button in navigation, users can see more info about sight (using ViewPager).
### Google Map
From the bottom menu user can view all the nearby sights interactively on the map. By clicking on the marker user gets more info about sight.
### Exit
User can also exit the application by pressing the most left button. Before exiting confirmation prompt will be raised.
## Technologies
Technologies and patterns:
- Java
- MVVM
- SOC, SRP, Contractors
- ViewBinding & DataBinding
- Fragments
- Bottom navigation
- RecyclerView
- Adapters
- ViewHolder
- ViewPager
- NavigationDrawer
- Google maps
- AnimationsDependencies:
- AndroidX AppCompat
- AndroidX ConstraintLayout
- AndroidX NavigationUI
- AndroidX Preference
- AndroidX RoomDAO
- Lombok
- Picasso & Picasso transformations
- ReactiveX (RxAndroid, RxJava)
- Retrofit
- RippleBackground