An open API service indexing awesome lists of open source software.

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.

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
- Animations

Dependencies:

- AndroidX AppCompat
- AndroidX ConstraintLayout
- AndroidX NavigationUI
- AndroidX Preference
- AndroidX RoomDAO
- Lombok
- Picasso & Picasso transformations
- ReactiveX (RxAndroid, RxJava)
- Retrofit
- RippleBackground