Skip to content

Latest commit

 

History

History
64 lines (43 loc) · 3.44 KB

README.md

File metadata and controls

64 lines (43 loc) · 3.44 KB

Event App - Jetpack Compose

This is a simple event App using TicketMasterApi with pagination concepts using PagingLibrary with Jetpack Compose and Kotlin Coroutines + Flow.

Languages, libraries and tools used

Screen Shots

1 2 2 2

Architecture

diagram

Here's how the sample project implements it:

Clean architecture encourages separation of concerns, making the code loosely coupled. This results in a more testable and flexible code. This approach divides the project in 3 modules: presentation, data and domain.

Presentation:

This is the User interface layer(Activities, Fragments and ViewModel) with the Android Framework, the MVVM pattern and the DI module.

Domain:

This layer holds the business logic. Contains the use cases, in charge of calling the correct repository or data member.

Data:

This layer has the responsibility of selecting the proper data source for the domain layer. It contains the implementations of the repositories declared in the domain layer. This includes:

  • Remote Datasource:: Handles communications with the remote API(REST or GRAPHQL). In this project, it makes ann HTTP call using Retrofit Interface
  • Cache Datasource : Handles communication with the local storage which is used to cache the events data locally
  • EventPagedDatasource : This class manages the actual loading of data for your list from the remote datasource. Since we have one key per page of Event API data, we extend PageKeyedDataSource from the paging library. Finally, the EventPagedDataSource will be created by its factory, AppPageDataSourceFactory which inherits of DataSource.Factory

Conclusion

I will be glad to answer any questions and also accept pull request if you find any issue.