/Compose-Real-Estate-App

Real State App using Jetpack Compose for Android, written in Kotlin

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Real-Estate-App with Jetpack Compose

This app was created as a challenge to show my skills as a mobile developer by creating a Real Estate App using Jetpack Compose, Kotlin, MVVM, Coroutines, Hilt, Room, Retrofit, Google Maps and more.

The Challenge

The challenge was to create an app using Jetpack Compose. The app shows a list of houses and their details, learn how to use navigation in Compose, the repository pattern, API calls, room, database, google maps and more.

Requirements

Minimum SDK 24 (Android 7.0 Nougat).

Screenshots

Usage

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)

Installation & Guidelines

This app has been tested in a Pixel 3XL, to take in consideration the screen size and the density.

  1. 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.
  2. Add the following lines to the gradle.properties file located in this path ComposeRealState/gradle.properties and add the following lines like this example below:

    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.

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

Code Usage & Instructions

If you want to know the different usage of code in the app, you can check the documentation and comments that are in the code.

Architecture

App is based on MVVM architecture and a repository pattern.

The app uses Jetpack Compose Navigation.

Contributing

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.

License

License: GPL v3

Author

Juan Riquelme

Libraries

All the libraries used in this project are listed in the build.gradle file, indicating it usage in the app and the version.