⚡ WonderAndWander app is a simple app that helps you to decide whether a city is the one you are looking for, in every aspect. You can search cities, see most important things from safety to cost of living about cities. WonderAndWander app will store the cities you favorited if you logged in. This way you never need to remember which city you liked once upon a time. It also helps you to compare the cities so you can decide better. Don't wait, wonder and wander now.
- Logs users with FirebaseUI Auth
- Makes a city search and shows basic information about selected city. (Housing, Cost of Living, Travel Connectivity, Safety, etc.)
- Favorites a city and stores them in Firebase Realtime Database if the user logged in.
- Compares two cities’s basic information.
Demonstrates using Dagger 2.15+ in MVVM app with Android Architecture Components and Repository pattern.
- MVVM
- Repository
- Dagger2
- Data Binding
- Architecture Components
- Retrofit 2.3.0+
Login Screen | Profile Screen | Search Screen |
---|---|---|
Compare Screen | City Detail Screen | Widget Screen |
---|---|---|
In order to run the project successfully, you need to:
- add your Fabric key to Manifest.xml file. For full integration of Fabric, check Crashlytics install
- create a Firebase project and enable Maps, Places Sdks for Android.
- activate Google identity provider from Authentication page. For full integration of Firebase, check Firebase Setup.
- create a keys.xml file in
/app/src/free/res/values
directory and put your own id values forbanner_ad_id
andmap_id
keys. - download
google_services.json
file and place it in theapp/
directory (at the root of the Android Studio app module). - add
keystore.properties
file in root directory which includes:keyAlias={keyAlias} keyPassword={keyPassword} storeFile={storeFile} storePassword {storePassword}
- and
jks
keystore file to root directory.
- Support Libraries: for better design and compatibility.
- Android Architecture Components: for MVVM design pattern and clean code.
- Room: for easy data storage by providing an abstraction layer over SQLite.
- Dagger: for dependency injection to write more testable and maintainable code.
- Retrofit: a rest client which makes easy to retrieve and upload JSON via a rest based web service.
- Okhttp3: an HTTP & HTTP/2 client that covers many things.
- Glide: provides a framework for image loading.
- Timber: a logger which provides utility on top of Android's normal Log class.
- Leak Canary: A memory leak detection library.
- Map Sdk: to show location of cities.
- Firebase UI Database: to store users’ favorite cities at Firebase Realtime Database
- Firebase UI Auth: to authenticate the user
- Ads Play Services: Ads will be shown to free app’s users. The app displays test ads in debug variant.
- MPAndroidChart: To show scores of a city as chart.
- Fabric Crashlytics: Crash reporting tool.
WonderAndWander uses SemVer for versioning. For the versions available, see the tags on this repository.
- Melih Gültekin - Initial work - melomg
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the LICENSE.md file for details.