PixabayEye is a modern, lightweight application designed to showcase the power of Kotlin Multiplatform for real-world app development.
With a single codebase, developers can efficiently target Android, iOS, Web, and Desktop — dramatically reducing development time and maintenance efforts.
Built with love for developers who believe in writing code once and deploying everywhere! 🚀
- ⚡ Cross-Platform Compatibility: Android, iOS, Web (browser), and Desktop (JVM).
- 💬 Shared Logic: Core modules for UI, networking, and data management.
- 📚 Modern Libraries Integration:
- Compose Multiplatform for seamless UI across devices.
- Ktor for efficient networking.
- 🛠 Custom Gradle Convention Plugins: Simplify Kotlin Multiplatform project structure.
- 📸 Screenshot Testing: Roborazzi with Robolectric enables screenshot testing.
- JDK 17 installed
- Android SDK set in
local.properties
- KDoctor to verify environment
- Xcode (for iOS) and Android Studio (for Android/Web/Desktop)
git clone https://github.com/siarhei-luskanau/pixabayeye.git
cd pixabayeye
./gradlew doctor
Create a local.properties
file with:
sdk.dir=/path/to/your/Android/Sdk
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
.apk
file incomposeApp/build/outputs/apk/debug/composeApp-debug.apk
Run android UI tests on the connected device:./gradlew :composeApp:managedVirtualDeviceDebugAndroidTest -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect
Run the desktop application: ./gradlew :composeApp:run
Run the desktop hot reload application: ./gradlew :composeApp:jvmRunHot
)
Run desktop UI tests: ./gradlew :composeApp:jvmTest
To run the application on iPhone device/simulator:
- Open
iosApp/iosApp.xcproject
in Xcode and run standard configuration - Or use Kotlin Multiplatform Mobile plugin for Android Studio
Run iOS simulator UI tests:
./gradlew :composeApp:iosSimulatorArm64Test
Run the browser application: ./gradlew :composeApp:wasmJsBrowserDevelopmentRun --continue
Run browser UI tests: ./gradlew :composeApp:wasmJsBrowserTest
Record a screenshot: ./gradlew recordRoborazziDebug
Output directory is screenshots/
We welcome contributions!
- Fork the repo 🍴
- Create your feature branch (
git checkout -b feature/YourFeature
) - Commit your changes (
git commit -m 'Add some feature'
) - Push to the branch (
git push origin feature/YourFeature
) - Open a Pull Request 🚀
You can also create issues for bug reports, discussions, or feature requests.
This project is licensed under the MIT License — see the LICENSE file for details.
Android | iOS | Desktop | Web |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
If you find PixabayEye useful or inspiring,
please ⭐ star this repository to support the project and help it grow!
Let's make cross-platform development easier, faster, and more fun together! 🚀