Skip to content

Latest commit

 

History

History
82 lines (66 loc) · 2.96 KB

README.md

File metadata and controls

82 lines (66 loc) · 2.96 KB

Nearby venues

The app is created to show recommended nearby venues. It uses the Foursquare Places API.

Toolkit

To build this app, I used:

  • Macbook Pro (M1 Pro) | 32 GB
  • Android Studio Giraffe | 2022.3.1
  • Google Pixel 7 Pro (API 33) and various emulator instances for testing

Architecture

As Android apps grow in size, it's important to define an architecture that allows the app to scale, increases the app's robustness, and makes the app easier to test. For that purpose I used Clean architecture.

image

In Nearby venues app, I used the following layers:

  • UI (:app) - Responsible to display application data on the screen
  • Domain (:domain) - Contains the business logic of the app
  • Data (:data) - Responsible for requesting and loading data

UI

The app supports Dark and Light modes

On supported devices it uses Material 3 dynamic colors

Location fetching

If available, the app fetches the last known location of the user, otherwise the app requests the current location of the user before showing the results.

260688997-ea245df6-6327-4df1-aa46-920167aa0766.mp4

Errors

In case of errors, the app shows an error screen with an option to Retry loading

Libraries

Here is the list of the libraries I used in this project:

  • App
    • Hilt
    • Navigation
    • Compose
    • Gms location
  • Network
    • Retrofit 2
    • Okhttp3
    • Moshi
  • Testing
    • Junit
    • Mockito