The app is created to show recommended nearby venues. It uses the Foursquare Places API.
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
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.
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
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
In case of errors, the app shows an error screen with an option to Retry loading
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