Skip to content

An unofficial Syncplay client for Android and iOS. It works perfectly with Syncplay on PC. Written completely in Kotlin and Compose multiplatform

Notifications You must be signed in to change notification settings

ivy-reps/syncplay-mobile

 
 

Repository files navigation

Syncplay for Mobile (Android & iOS)


Syncplay for Mobile

Syncplay - The Unofficial Mobile Client (for Android and iOS)

Syncplay Android on IzzyOnDroid Repo

Table of Contents

Introduction

OS - Android OS - iOS
Version Release Written Language is Maintained? License Status Requirement Requirement

Introducing Syncplay Mobile, an app that brings the remarkable functionality of Syncplay PC to the mobile platforms (Android and iOS). With Syncplay Mobile, you can synchronize media playback with your friends, allowing you to watch videos together, even when you're physically apart.

In its beta release, Syncplay Mobile faithfully replicates the core features found in the PC version of Syncplay. This includes real-time chat functionality, enabling seamless communication while enjoying synchronized playback on your Android or iOS device.

Experience the convenience of Syncplay on your phone and enjoy shared video watching with friends. Embrace the joy of shared entertainment with Syncplay Mobile.

**Cannot run on Android versions below Android 6.0 (Codename: Marshmallow) and iOS 14.0 **

Features

  • Seamless compatibility with Syncplay's official PC client and other Syncplay Mobile clients.
  • Offers the same core functionality as Syncplay for PC, with a meticulously rewritten Syncplay protocol from Python to Kotlin.
  • Integrated 2 high-performance video players (ExoPlayer and mpv) tailored to your device's capabilities and beyond.
  • Real-time colorful chat functionality, including support for emojis.
  • Extensive range of settings and preferences for customization.
  • Supports all audio track formats and most video formats.
  • Ability to load custom external subtitle files.
  • Efficient native Kotlin codebase for optimal performance.
  • Multi-language support (Currently available in English, Chinese, French and Arabic, with more languages coming soon).
  • Compatible with Android 6.0 Marshmallow up to the latest Android 14 UpsideDownCake release.
  • Compatible with iOS 14.0 up to the latest iOS 17.2 release.

How to use

How to use (Android)

Usage on Android is fairly simple:

  • Download the latest release APK from here.
  • Install the APK. If any installation issues arise, uninstall the previous version of the app before installing the new one.
  • Open Syncplay. Specify a username of your choice, a room name of your choice (Tell your friends about it)
  • Select a server from the list (Tell your friends about this one too)
  • Click "Join Room". You will be taken to the Room screen. You're all set. Tell your friends to join the same room and server.
  • Ta-Dah ! Just load the same video file as your friends and enjoy the synchronized playback.

How to use (iOS)

The iOS version cannot be distributed in package format (like Android's APKs). The only ways to install an app on iOS are to either compile this project by yourself on your macOS, or someone would kindly donate to host this app on the Apple app store (the fee is a yearly $99).

Please note that the iOS version is not fully cooked yet, I will modify this readme once the development is actually done. I'd say it's 95%, nearly done.

Roadmap

These are the things I am willing to add/adjust in the future :

  • Adopt original Syncplay's Chat functionality
  • Shared Playlists
  • Support for custom/private servers
  • URL Support (as of 0.10.0)
  • Multiple player engines (Exoplayer, mpv)
  • Picture-in-picture mode (Floating window)
  • TLS/SSL Secure Connection Support
  • Multi-language Support (WIP)

Components and architecture

  • UI: Compose multiplatform
  • Architecture: modular (mostly MVVM)
  • Network backbone: Netty (Android) and Ktor (iOS)
  • Preferences: Jetpack Datastore
  • Integrated media players: Exoplayer or mpv (Android) - AVPlayer (iOS)

F.A.Q

  • If my friend uses Syncplay on PC, can I watch with them ?
    -> Yes, you can. Syncplay Android is made to be interoperable.
  • On Android, I get an error saying "App not installed" upon installing the app. What's wrong ?
    -> Uninstall the older version before installing the new one.
  • Can I use the ipa package to install the iOS to my device ?
    -> If that is possible, why not ? I will publish the ipa package nonetheless once it's ready.

Translating

  • If you want to contribute with a translation in a language that isn't available in Syncplay, or enhance the actual translations, please refer to #30

Feedback

Feel free to file an issue.

If there's anything you'd like to chat about, please feel free to open a new discussion.

Build Process

The project is developed under Android Studio Hedgehog | 2023.3.1 Make sure you have a version equal or later than the one I am using (Or you will need to downgrade Gradle plugins). Download the source code ZIP and extract it somewhere, then open it using Android Studio. Then you can just build the app using a custom JKS keystore of your choice (Edit the keystore information on the module's build.gradle.kts).

Acknowledgments

Thanks to Official Syncplay for maintaining and open-sourcing such an amazing software.

Thanks to Et0h for his amazing hard work on official Syncplay and for lending a hand in our issues tracker section.

Thanks to Zhaodaidai for their contribution with the Chinese translation for the app.

Thanks to soredake for their thorough testing.

License

Syncplay for Android is under the AGPL-3.0 Open-Source License

About

An unofficial Syncplay client for Android and iOS. It works perfectly with Syncplay on PC. Written completely in Kotlin and Compose multiplatform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 92.6%
  • Swift 3.5%
  • C++ 2.3%
  • Java 0.8%
  • Ruby 0.3%
  • Makefile 0.3%
  • C 0.2%