An app to explore near by restaurants using foursquare API. Navigation is also implemented with animation.




Below is the detail of the architecture, libraries & security used in the project.

  • Clean Architecture
    • Presentation Layer
      • View + View Model
    • Domain Layer
      • MapsUseCase
    • Data Layer
      • MapsRepository
      • ApiService

Flow of API Call

Activity/Fragment -> ViewModel -> MapsUseCase -> MapsRepository -> ApiService

JetPack libraries being used in our project

  • Hilt Library

    • Hilt is a new official dependency injection(DI) library for Android. It provides an organized way to use DI in your Android app by providing containers for every Android class in your project and managing their lifecycles automatically.
    • Every Module has its own Module suffix class file to generate dependencies needed by other or its own module files.
  • ViewModel

    • The ViewModel class is designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
  • LiveData

    • LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services. This awareness ensures LiveData only updates app component observers that are in an active lifecycle state.
  • Navigational Components

    • Navigation is a framework for navigating between ‘destinations’ within an Android application that provides a consistent API whether destinations are implemented as Fragments, Activities, or other components.
  • Security (security-crypto)

    • Safely manage keys and encrypt files and sharedpreferences.
  • AppCompat

    • Allows access to new APIs on older API versions of the platform (many using Material Design).
  • Testing

    • Major test libraries to test android
  • Fragment

    • Segment your app into multiple, independent screens that are hosted within an Activity.


View Github