Giter VIP home page Giter VIP logo

pexels's Introduction

Pexels

A multiplatform client for Pexels photos, powered by Compose Multiplatform

Supported Platforms

Platform Supported Screenshot
Desktop(Linux, Windows, macOS)
Web
iOS
Android

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

Test

  • PexelsApiTest
  • ObjectStoreTest

Before running!

  • check your system with KDoctor
  • install JDK 17 or higher on your machine
  • add local.properties file 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 .apk file in composeApp/build/outputs/apk/debug/composeApp-debug.apk Run 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.xcproject in 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

pexels's People

Contributors

linroid avatar

Stargazers

fanqi avatar Xu Jianxiang avatar NextCJ avatar 余空 avatar Pallot Guo avatar nonyotsugi avatar Luke Wong avatar  avatar Allen Joke avatar beaven avatar Zokirjon avatar qiufeng avatar El Zhang avatar Nick22nd avatar 童殿 avatar stars-one avatar Kenneth avatar ShihCheeng Ch'en avatar zhengwen avatar Kuwa Lee avatar Absinthe avatar newYorkCity avatar  avatar  avatar dragon avatar panpf avatar  avatar Mrljdx avatar  avatar Binqiang Liang avatar Yoo Zhou avatar duoduo avatar Gavin avatar narakai avatar Wenbin avatar  avatar  avatar Vint avatar Mycroft Wong avatar  avatar Zhikun avatar alloy avatar Burak Akgün avatar lotosli avatar Eateeer avatar pablichjenkov avatar mundane avatar  avatar 那个曾经的少年回来了 avatar WeLong avatar Yifen Wu avatar 李腾 avatar  avatar Seiko avatar wayne avatar Chang Yu Lin avatar Wei Jun avatar shirne avatar ZHYAN avatar Joe Chen avatar Zhichao avatar zachi.eth avatar Shelby avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.