A demo Android app uses Flickr search API to display a list of photos
- The home screen displays a paginated list of photos with their title according to the user's entered search input (handles both error and loading states) with a retry button
- The photo preview screen which displays the clicked photo item in a single view
MVVM single activity architecture following the Data-Domain-Presentation clean architecture and the UDF unidirectional data flow pattern with repository pattern for data as a layer over different offline/online data sources
- Constraint Layout for flexible relative positioning and sizing of views
- Support for different English/Arabic local
- Coroutines and flow for asynchronous operations (networking or data store operations)
- Both data binding and view binding for binding viewmodel data to views
- glide for image loading
- Room offline database
- Navigation component for handling transitions between fragments
- Savedstatehandle module for holding state variables like search query
- Recyclerview with PagingDataAdapter
- Dagger-Hilt for dependency injection
- Retrofit/okhttp for networking
- Paging3 for supporting pagination