This app was created as a challenge to show my skills as a mobile developer by creating a Real Estate App using Kotlin, MVVM, Coroutines, Hilt, Room, Retrofit, Google Maps and more.
The challenge was to create an app that shows a list of houses and their details, learn how to use the repository pattern, API calls, room, database, google maps and more.
Minimum SDK 24 (Android 7.0 Nougat).
The app has the following screens:
- Splash Screen
- List of Houses (With searchbar, searching by Postal Code or City)
- Detailed House
- About
(See screenshots above)
This app has been tested in a Pixel 3XL, to take in consideration the screen size and the density.
-
Clone this repository and open it in Android Studio.
- To use the app with location services, you need to have a Google Maps API key. You can get yours here.
-
Create the
gradle.properties
file in this path RealEstate/ and add the following lines like this example below:android.useAndroidX=true
android.enableJetifier=true
GOOGLE_MAPS_API_KEY= "YOUR_API_KEY"
Note that the app will not work if you don't add the properties described above with a valid Maps API key.
-
To build and run the app.
-
To use it with location, accept the location permission.
-
This app can be used without location, but the distance shown will be "N/A".
-
If you want to know the different usage of code in the app, you can check the comments in the code.
App is based on MVVM architecture and a repository pattern.
The app has a single activity with multiple fragments.
The app uses the Navigation Component to handle navigation between fragments.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change or any suggestions you have.
All the libraries used in this project are listed in the build.gradle file, indicating it usage in the app and the version.