Skip to content

Latest commit

 

History

History
73 lines (54 loc) · 3.02 KB

README.MD

File metadata and controls

73 lines (54 loc) · 3.02 KB

Styx 2 Mobile Client

The new mobile client for yet another mediaserver stack.
Truly native on Android.
iOS should technically be working already (besides the player), but I haven't found the time to finish it up.

Features & Architecture

  • Entire UI written in Kotlin using Compose Multiplatform
    With most of the code located in a common and a common-compose library
  • Material 3 Design
    Loosely following official guidelines
  • No constant connection required
    • All data is synced on startup or with a manual refresh1
    • All images are cached locally1
    • Watch progress and favourites are always local-first and synced to the server when a connection is possible

Android specific

  • Custom video player based on libmpv (see screenshots)
    Leveraging these bindings by the findroid author

Screenshots

Click here

Search & Detail view

Settings

Player view

How do I use this?

Short answer You don't.
Long answer

There is no public instance for this.
You will have to build every part of the ecosystem yourself and run it on your own server.

How to build

Before running (if on MacOS)

  • check your system with KDoctor
  • install JDK 17 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 styx2m/build/outputs/apk/debug/styx2m-debug.apk

iOS

To run the application on iPhone device/simulator:

Footnotes

  1. I realize this may be infeasible when working with a huge library but this is not a concern for me and I'm building this just for me. With my current library of ~10TB I'm sitting at around 30MB of cached images and ~7MB of other data on the clientside.
    2