Pexels
A multiple platform client for Pexels photos using Compose multiplatform
Install / Use
/learn @linroid/PexelsREADME
Pexels
A multiplatform client for Pexels photos, powered by Compose Multiplatform
Supported Platforms
| Platform | Supported | Screenshot | |--------------------------------|-----------|----------------------------------------------------| | Desktop(Linux, Windows, macOS) | ✅ | <img src="./screenshots/desktop.png" width="300"/> | | Web | ✅ | <img src="./screenshots/web.png" width="300"/> | | iOS | ✅ | <img src="./screenshots/ios.png" width="200"/> | | Android | ✅ | <img src="./screenshots/android.png" width="200"/> |
You can download prebuilt app file here
Web version: https://linroid.github.io/Pexels/
Features
- Pagination
- Pull to refresh
- Adaptive UI
- Photo zoom in and zoom out
- Transition
- Cached photo list data
Used Libraries
- ktor: A multiplatform asynchronous HTTP client, which allows you to make requests and handle responses.
- kotlinx.serialization: A multiplatform JSON serialization library.
- koin: A pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform.
- Voyager: A pragmatic navigation library for Compose.
- Build Config: A plugin for generating BuildConstants.
- KStore: A tiny Kotlin multiplatform library that assists in saving and restoring objects to and from disk.
- Napier: A logger library for Kotlin Multiplatform.
- coil: Image loading for Compose Multiplatform.
Unit Tests
PexelsApiTestObjectStoreTest
Before running!
- check your system with KDoctor
- install JDK 17 or higher on your machine
- add
local.propertiesfile to the project root and set a path to Android SDK there
Android
To run the application on android device/emulator:
- open project in Android Studio and run imported android run configuration
To build the application bundle:
- run
./gradlew :composeApp:assembleDebug - find
.apkfile incomposeApp/build/outputs/apk/debug/composeApp-debug.apkRun android simulator UI tests:./gradlew :composeApp:pixel5Check
Desktop
Run the desktop application: ./gradlew :composeApp:run
Run desktop UI tests: ./gradlew :composeApp:jvmTest
iOS
To run the application on iPhone device/simulator:
- Open
iosApp/iosApp.xcprojectin Xcode and run standard configuration - Or use Kotlin Multiplatform Mobile plugin for Android Studio
Run iOS simulator UI tests:
./gradlew :composeApp:iosSimulatorArm64Test
Experimental Browser (Wasm)
Run the browser application: ./gradlew :composeApp:wasmJsBrowserDevelopmentRun --continue
Run browser UI tests: ./gradlew :composeApp:wasmJsBrowserTest
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
