This Kotlin Multiplatform project fetches photos from the Unsplash API and displays them on both desktop and Android platforms. It leverages a shared module for platform-agnostic logic, data models, and UI components. Supports RTL for RTL languages.
Supports;
Android - ✅
Desktop - ✅
Please note that this project is still under development.
- shared: Contains platform-independent code, including data models, network requests, business logic, and shared UI components.
- desktopApp: Contains jvm-specific logic e.g dependency injection.
- androidApp: Contains Android-specific logic e.g dependency injection.
- Compose Multiplatform: Used for building a shared UI across Android and desktop platforms.
- kotlinx.serialization: A Kotlin serialization library used for converting Kotlin data classes to and from JSON and other formats. It provides a type-safe and efficient way to handle serialization in your application.
- DataStore: A multiplatform version of DataStore, used for storing key-value pairs and typed objects in a shared preferences-like manner across platforms.
- Coil: An image loading library for Android and Compose Multiplatform
- Ktor: A framework used for making network requests. Ktor is used in this project to handle HTTP requests and responses efficiently, allowing for seamless communication with backend services.
- Multiplatform-Paging: A library that helps in loading and displaying data efficiently by supporting pagination. This is particularly useful for handling large datasets or lists that need to be loaded incrementally.
- Room: A multiplatform version of Room, used for managing local SQLite databases. In this project, it is used to save and retrieve favorite photos with ease, providing a reliable data persistence layer.