An application that allows users to discover, save, and share images of their interests in various categories such as fashion, travel, art, and more. It has a user-friendly interface that displays images in a grid layout with infinite scrolling and smooth transitions. Also there are such features as search, bookmark and share to enhance user engagement and interaction Pexels API.
- Android SDK
- Kotlin
- Jetpack Compose
- Clean Architecture
- MVVM
- Coroutines
- Flow
- Dagger2
- Retrofit
- okHttp
- GSON
- Encrypted shared preferences
- ViewModel
- Work manager
- Paging3
Pexels is an app that attempts to use the latest libraries and tools. As a summary:
- Entirely written in Kotlin.
- UI completely written in Jetpack Compose.
- Uses Kotlin Coroutines throughout.
- Dagger2 for dependency injection
- ViewModel encapsulates related business logic
- Retrofit + Gson + OkHttp - RESTful API and networking client.
- Flow stream of value that returns from suspend function.
- WorkManager for working in the background
- Viewing popular photos
- Search for the desired photo category
- Adding a photo you like to bookmarks using encrypted SharedPreferences
- Downloading photos
- Cache photos for offline viewing
- Zoom in photos with two fingers
- Onboarding with three screens using Lottie animation
- Handling Internet access errors and others
- Light/Dark theme
- Page-by-page uploading of photos
- Clearing the image cache using Work Manager
The app is targeted to Android. You will need Pexels API key to get this app up and running. You can get the api key from here https://www.pexels.com/api/. Once you get the api key, place it in your local.properties and you should be good to run the app on your Android studio.