Coder Social home page Coder Social logo

sanjinkurelic / sightslocator Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 8.05 MB

Sights Locator is an Android application for searching and viewing information about famous landscapes near you.

License: MIT License

Java 100.00%
android java mvvm-pattern fragments retrofit2 picasso picasso-transformations reactivex javarx androidrx

sightslocator's Introduction

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

sightslocator's People

Contributors

sanjinkurelic avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

ets-android2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.