Synkplay

com.yuroyami.syncplay
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

Synkplay is an open-source third-party (unofficial) Syncplay client app for Android and iOS. Watch stuff in sync with your friends. Works well with Syncplay on PC. Fully written in Kotlin and Compose multiplatform. This client works well with Syncplay PC Developed by yuroyami You can report bugs by visiting the project on GitHub: https://github.com/yuroyami/syncplay-mobile

First release: Apr 11, 2026, 6 total releases.

Most recent release: Sep 22, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 22, 2026 0.25.0
    <table align="center"><tr> <td align="center" rowspan="2"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/f076ad444aab217460c03ad37b21102330eee6da/art/synkplay_app_badge_512.png" width="128" alt="Synkplay"></td> <td align="center"><a href="https://play.google.com/store/apps/details?id=com.yuroyami.syncplay"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/f076ad444aab217460c03ad37b21102330eee6da/art/badges/google-play.png" width="150" alt="Get it on Google Play"></a></td> <td align="center"><a href="https://apps.apple.com/us/app/synkplay/id6760187432"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/f076ad444aab217460c03ad37b21102330eee6da/art/badges/app-store.png" width="150" alt="Download on the App Store"></a></td> </tr><tr> <td align="center"><a href="https://apt.izzysoft.de/fdroid/index/apk/com.reddnek.syncplay"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/f076ad444aab217460c03ad37b21102330eee6da/art/badges/IzzyOnDroid.png" width="150" alt="Get it on IzzyOnDroid"></a></td> <td align="center"><a href="https://celloserenity.github.io/altdirect/?url=https://raw.githubusercontent.com/yuroyami/syncplay-mobile/refs/heads/master/altstore_yuroyami.json"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/f076ad444aab217460c03ad37b21102330eee6da/art/badges/AltSource_Blue.png" width="150" alt="Add the AltStore source"></a></td> </tr></table> > This release is not on Google Play or the App Store yet.
    More…
    <details open><summary><h2>Changelog <sub>since v0.24.0</sub></h2></summary> - Audio files can now be played. (#168, requested by @gili-gili) - Audio files show a visualizer. You can turn it off in the room's player settings. - The visualizer changes patterns on its own, or you can pick one. - Fixed the keyboard closing after one letter on Home. (#167, #170, reported by @gili-gili and @rkpsx7, fixed by @mvanhorn) - Android TV: every control now works with a remote. (#159, contributed by @mukulhase) - Android TV: the app lists your videos when no file picker is available. (#163, contributed by @mukulhase) - Invite links are now https links, clickable in any messenger. The page opens the app or links to the stores. - The room's side panels are merged into one. - You can now set chat colours, and names in event messages are coloured. - Long press a GIF to save it or copy its link. Long press a message to copy it. - Chat messages over the video fade out, and new ones are marked. - GIF and sticker controls share one row. Sending one clears the search text. - The shared playlist can be reordered by dragging. After a disconnect, the app offers to restore it. - Tracks show more detail, and video tracks can be selected. - mpv on Android now uses libmpvKt, which fixes video track selection. - iOS: the screen stays on in rooms, including after switching engines. - iOS VLC: fixed the seek bar freezing and the room jumping backward. (#158, reported by @yvchenko) - Fixed rapid seeks losing the latest position, and an unfinished seek moving a new file. - iOS VLC: fixed seeking in Picture-in-Picture, and the resume offer when watching alone. - Home shows what each engine supports. - Invalid join links and port numbers are now rejected. - Screen readers can now reach the join form. - The ExoPlayer-only APK is now reproducible, so IzzyOnDroid can verify it. (#105, #172, requested by @IzzySoft) </details> ## Translations &nbsp;<a href="https://hosted.weblate.org/engage/syncplay-mobile/"><img src="https://hosted.weblate.org/widget/syncplay-mobile/svg-badge.svg" alt="Translation status" height="20"></a> Help translate Synkplay on [Weblate](https://hosted.weblate.org/engage/syncplay-mobile/). <details><summary><h2>Downloads</h2></summary> <table> <tr><th colspan="2">Android &nbsp;<img src="https://img.shields.io/badge/8.0%2B-3DDC84?logo=android&logoColor=white&label=" alt="Android 8.0 and up" height="20"></th></tr> <tr><th width="380">Full universal build</th><th width="380">Lite IzzyOnDroid build</th></tr> <tr><td align="center"><a href="https://github.com/yuroyami/syncplay-mobile/releases/download/v0.25.0/synkplay-0.25.0-full-universal.apk"><b>synkplay-0.25.0-full-universal.apk</b></a><br><sub>89 MB</sub></td><td align="center"><a href="https://github.com/yuroyami/syncplay-mobile/releases/download/v0.25.0/syncplay-0.25.0-exo-only.apk"><b>syncplay-0.25.0-exo-only.apk</b></a><br><sub>22 MB</sub></td></tr> <tr><td>✔️ All three engines (ExoPlayer, mpv and KitePlayer)</td><td>❌ ExoPlayer only, no mpv or KitePlayer</td></tr> </table> <table> <tr><th width="760">iOS &nbsp;<img src="https://img.shields.io/badge/15.0%2B-000000?logo=apple&logoColor=white&label=" alt="iOS 15.0 and up" height="20"></th></tr> <tr><td align="center"><a href="https://github.com/yuroyami/syncplay-mobile/releases/download/v0.25.0/synkplay-0.25.0-ios.ipa"><b>synkplay-0.25.0-ios.ipa</b></a><br><sub>85 MB</sub><br><br>To sideload, follow the <a href="https://github.com/yuroyami/syncplay-mobile/wiki/How-to-install-the-app-on-iOS">install guide</a>. Otherwise, get it from the <a href="https://apps.apple.com/us/app/synkplay/id6760187432">App Store</a>.</td></tr> </table> </details> <details><summary><h2>Dependencies</h2></summary> | Component | Where | Version | |---|---|---| | Kotlin | Toolchain | 2.4.20 | | Compose Multiplatform | Toolchain | 1.12.1 | | Android Gradle Plugin | Toolchain | 9.3.2 | | Gradle | Toolchain | 9.7.1 | | Ktor | Network, all platforms | 3.5.2 | | Netty | Network, Android and desktop | 4.1.131.Final | | SwiftNIO | Network, iOS | 2.95.0 | | ExoPlayer (Media3) | Video engine, Android | 1.11.0 | | libmpvKt (mpv, FFmpeg, libass and libplacebo inside) | Video engine, Android, full build only | 0.2.0 | | VLCKit | Video engine, iOS | 4.0.0a19 | | KitePlayer, with KiteFFmpeg inside | Video engine, all platforms, experimental | 0.0.26 | </details>
  • Sep 6, 2026 0.24.0
    <p align="center"> <img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/v0.24.0/androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher.png" width="96" alt="Synkplay"> </p> <p align="center"> <a href="https://play.google.com/store/apps/details?id=com.yuroyami.syncplay"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/v0.24.0/art/badges/google-play.png" width="150" alt="Get it on Google Play"></a> &nbsp;&nbsp; <a href="https://apps.apple.com/us/app/synkplay/id6760187432"><img src="https://developer.apple.com/assets/elements/icons/download-on-the-app-store/download-on-the-app-store.svg" width="150" alt="Download on the App Store"></a> &nbsp;&nbsp; <a href="https://apt.izzysoft.de/fdroid/index/apk/com.reddnek.syncplay"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/v0.24.0/art/badges/IzzyOnDroid.png" width="150" alt="Get it on IzzyOnDroid"></a> &nbsp;&nbsp;
    More…
    <a href="https://celloserenity.github.io/altdirect/?url=https://raw.githubusercontent.com/yuroyami/syncplay-mobile/refs/heads/master/altstore_yuroyami.json"><img src="https://raw.githubusercontent.com/yuroyami/syncplay-mobile/v0.24.0/art/badges/AltSource_Blue.png" width="150" alt="Add the AltStore source"></a> </p> ## Downloads | File | Platform | What it is | Size | |---|---|---|---| | [`synkplay-0.24.0-full-universal.apk`](https://github.com/yuroyami/syncplay-mobile/releases/download/v0.24.0/synkplay-0.24.0-full-universal.apk) | Android 8.0 and up | The full app: ExoPlayer, mpv and KitePlayer, every CPU type in one file. Pick this one. | 89 MB | | [`syncplay-0.24.0-exo-only.apk`](https://github.com/yuroyami/syncplay-mobile/releases/download/v0.24.0/syncplay-0.24.0-exo-only.apk) | Android 8.0 and up | ExoPlayer only, no bundled native players, a fraction of the size. The build IzzyOnDroid carries. It installs beside the full app, not over it. | 21 MB | | [`synkplay-0.24.0-ios.ipa`](https://github.com/yuroyami/syncplay-mobile/releases/download/v0.24.0/synkplay-0.24.0-ios.ipa) | iOS 14.1 and up | Sideload with AltStore or install it directly. The [install guide](https://github.com/yuroyami/syncplay-mobile/wiki/How-to-install-the-app-on-iOS) covers both. | 85 MB | ## Changelog <details><summary><b>Everything since v0.23.0</b>. Click to unfold.</summary> ### 0.24.0 #### The new look - The whole app was redrawn: one set of controls, five text sizes, a palette that comes from the theme, and frosted panels over the video where the device can draw them. - Home is one form: who you are, which server, which player, join. It lays itself out for a phone, a phone on its side, a tablet or a desktop window. - The room has a rail for its actions, a status line, and controls that hide themselves while the video plays and come back on a tap. - Settings are a console: search, grouped rows, values in the unit people read, colours edited in place, and each player's settings inside the player category. - Themes preview as a miniature of the app, and the theme creator shows what a seed colour will do before you save. - Motion can be reduced from settings. A screen reader hears who is ready, connection changes and new messages. - Watching alone is a plain choice on the home screen, not something hidden inside About. #### Players - KitePlayer, a new engine built for this app on top of FFmpeg, is on Android, iOS and desktop as an experimental choice: chapters, external and styled subtitles, pitch-preserved speed from 0.25x to 4x, and links over https. - Three engines per platform: ExoPlayer, mpv and KitePlayer on Android; the system player, VLCKit and KitePlayer on iOS. VLC on Android and mpv on iOS are gone. VLCKit is the iOS default. - Volume is one ladder: the device's own level up to 100, then the engine's gain past it where the engine has any. - Every seek takes one path. Double taps add up to one jump, and a long press shows where it will land before it commits. - Watching alone, the app remembers where a file was left and offers to pick it up. - Seeking with KitePlayer lands on the exact frame in one step, instead of showing two pictures a blink apart, and is about twice as fast as before. Files carrying tens of thousands of subtitle lines no longer make it re-read the whole list every time a line changes. #### Sync and playback - Fixed the phantom pause: an engine stopping on its own no longer pauses the whole room. - The room shows when it is waiting for the video instead of looking frozen, and says who it is waiting for before playback starts. - Audio and subtitle picks survive a reload on every engine, and follow your preferred languages. - Tracks marked as accessibility captions, audio description or forced now say so in the picker. - The end of a file moves the playlist on by one, not once per person watching. - A file that is still opening no longer drags the whole room back to the start. - Loading your file after the room has already started now syncs you to the room, instead of leaving you paused at the start. - A per-user time offset lets two different rips of the same film be watched together. - The three drift thresholds (rewind, slowdown, fast-forward) are settings now. - A phone coming back from the background follows the room instead of dragging it back. #### Room and chat - Chat colours follow the theme, so they stay readable on a light one. - Chat timestamps follow your device's clock format. - Slash commands in the chat box: /ready, /room, /seek, /op, /users and /help. - Volume and brightness are reachable without a swipe. - You can mute someone, and peer image links stay hidden until you tap them. - The user list has two views, compact and detailed, with each person's file, its length, its size and whether it matches yours. - A playlist change can be taken back. - Picture in picture morphs out of the video instead of appearing from nowhere. - The room can follow the device's rotation, or stay landscape. Your choice, in settings. - Android: lock screen and headset controls work in the room and follow the same readiness rules as the play button. - A television keeps the room's controls inside the visible area. - The locked screen tells you how to unlock it, instead of leaving you guessing. - The room shows whether your connection is encrypted. - Panels look right on a light theme, not bruised at the bottom and edgeless at the top. - Buffering no longer shoves the play button around. The button rounds into a circle and its colours move until the player catches up. - The custom skip button sits between the two jump buttons. - Chat that fades in while the controls are hidden now shows in the top middle, under the notices, and is never smaller than a notice. It used to sit tiny at the left edge. - Subtitle search downloads work again, and a failed search says why. - A bug report sent from the app says which engine, which build and which device. #### Connection - Encrypted connections now check the server's certificate against the name you dialled. - You can require encryption. A server that offers none is refused before anything is sent. - A dropped connection reconnects with a growing wait instead of hammering the server. - A handshake that never finishes gives up instead of hanging. - Leaving the server address empty joins the official server, as it always looked like it would. - The app's own services can no longer be pushed onto plain HTTP by the network you are on. - A pasted link is checked against the host it really names, not the text in front of it. #### Hosting - Hosting lives on the home screen now, under the server choice, with the address first. - The hosting screen and its notification speak the app's language. - A silent client is dropped after the timeout the server already advertised. - An operator password works only for the room it belongs to. - Creating a managed room really does put the password on your clipboard, which it has claimed to do for a long time. #### Language - Change the app's language from settings, on every platform, with no restart. - All seven translations are complete: Arabic, German, Spanish, French, Polish, Russian and Chinese. - Audio and subtitle language names are shown in your own language. #### Elsewhere - Invite links: share a room with a link, and open one to join. - About lists what the app is built from, and can check for a newer release. - Settings can be exported to a file and imported back. - A damaged settings file no longer crashes the app at launch; it starts on defaults and tells you. - Service keys are never written to the log, so a log you share carries none. - The GIF service can be told to stop recognising you between sessions. - Startup no longer reads preferences on the drawing thread, and neither does logging. - Android downloads are two files now: the full universal APK and the smaller exo-only one. The per-CPU-type files are gone; Google Play serves each phone only what it needs. - The app also runs on desktop (Windows, macOS, Linux) with KitePlayer. Installers are not part of this release yet. </details> ## Dependencies <details><summary><b>The main ones</b>: toolchain, network stack, video engines. Click to unfold.</summary> | Component | Where | Version | |---|---|---| | Kotlin | Toolchain | 2.4.10 | | Compose Multiplatform | Toolchain | 1.12.0 | | Android Gradle Plugin | Toolchain | 9.3.2 | | Gradle | Toolchain | 9.7.1 | | Ktor | Network, all platforms | 3.5.2 | | Netty | Network, Android and desktop | 4.1.131.Final | | SwiftNIO | Network, iOS | 2.95.0 | | ExoPlayer (Media3) | Video engine, Android | 1.11.0 | | mpv (built from source, FFmpeg n8.0) | Video engine, Android | latest git at build time | | VLCKit | Video engine, iOS | 4.0.0a19 | | KitePlayer, with KiteFFmpeg inside | Video engine, all platforms, experimental | 0.0.23 | </details>
  • Jun 13, 2026 0.23.0
    > Synkplay is available on [Apple store](https://apps.apple.com/us/app/synkplay/id6760187432) and [Google Play store ](https://play.google.com/store/apps/details?id=com.yuroyami.syncplay) ## Changes - Fixed file privacy modes breaking sync checks with PC users: hashed filenames now match the desktop client's logic - Fixed false "file mismatch" warnings: comparison is now case-insensitive, cross-checks raw against hashed names, and tolerates duration differences under 2.5 seconds - Server messages are now processed strictly in order, mirroring the desktop client's serial protocol handling and preventing subtle sync glitches under load - A single malformed server message (e.g. features sent as an empty array, issue #152) no longer blanks the user list or spins the reconnect loop - Fixed a disconnect loop in large rooms caused by a too-small inbound message buffer - Fixed a crash when TLS negotiation fails; a bad server certificate now shows a connection failure and retries - Fixed a native thread leak on every reconnect attempt (Android)
    More…
    - Fixed memory leaks on iOS when leaving a room: all three player engines now fully shut down their position trackers on exit - Removed an artificial 100 ms per-message delay on the Ktor network engine that lagged room joins and skewed latency measurement - Chat no longer strips backslashes from messages, and the length limit now follows the server's advertised maximum instead of a hardcoded 149 - Shared playlist size limits (250 items / 10,000 characters) are now enforced with an upfront warning, matching the official server; the built-in server enforces the same on incoming playlists - Controllers can now set other users' readiness across clients: the setOthersReadiness capability is advertised both ways, and "X was set as ready by Y" is announced in the room - Users switching rooms now appear and disappear from the user list immediately instead of lingering for up to 15 seconds - Server error messages (such as "Wrong password supplied") are now shown in the room instead of failing silently into an endless reconnect loop - Trusted domains now match the desktop client exactly: exact host, www variant, *.wildcards, and path prefixes; arbitrary subdomains are no longer trusted implicitly - Join events now include client version and features, matching the desktop server's wire format - The connection handshake now sends the 1.2.255 compatibility version like the desktop client, restoring support for legacy servers - Combined protocol messages containing several commands are now fully processed instead of only the first one - Fixed a race that could lose queued messages (chat, readiness, playlist changes) sent while reconnecting - Fixed a possible crash when leaving a room while the player engine fails to shut down - mpv on iOS no longer auto-plays right after loading media; it now waits for the room or the user to unpause, matching Android ## Translations Translations are now live on Weblate — you can contribute by visiting the [hosted Weblate project](https://hosted.weblate.org/projects/syncplay-mobile/) to translate existing strings or add a new language entirely. Contributions are very welcome since I do add and edit strings fairly regularly and it's easy for some languages to fall behind. ##  iOS — How to install The app is available on the app store, but sideloading is also straightforward if for some reason you don't wanna use Apple's app store— the guide [here](https://github.com/yuroyami/syncplay-mobile/wiki/How-to-install-the-app-on-iOS) covers both normal and jailbroken devices. An `.ipa` is attached to this release. ## 🤖 Android — How to install The app is on Google Play, but releases there may be delayed by review times. Downloading the APK directly from here ensures you get the latest version. Use **universal** if you're unsure which APK to pick. Most modern phones should use `arm64-v8a`; if that doesn't work, try `armeabi-v7a`. `x86_64` and `x86` builds are available too. If you don't need multi-engine support, `syncplay-version-exo-only.apk` is the smallest option. Otherwise, I recommend the full APK for mpv/VLC support (more potent video player engines)
  • May 10, 2026 0.21.9
    > Synkplay is available on [Apple store](https://apps.apple.com/us/app/synkplay/id6760187432) and [Google Play store ](https://play.google.com/store/apps/details?id=com.yuroyami.syncplay) but this update might arrive a few days late. ## Changelog **Major Protocol Enhancements** — if you've ever felt that mobile Synkplay was almost in sync with the desktop client but never quite there, that gap is closed. - Joining a room is instant and accurate. The first-sync glitch that started every room-join at 00:00 is gone. - Tighter sync with desktop users. Sub-second precision is preserved end-to-end, so peers see your actual playback position instead of a rounded approximation, and the network-delay compensation that keeps everyone aligned now actually compensates. - Operator privileges survive reconnects. Briefly losing connection in a controlled room no longer demotes you to a regular guest. - Encrypted (TLS) connections are more dependable. The handshake fully completes before any data is sent, killing a race that occasionally dropped connections on flaky networks. - Cleaner reconnects. Outbound messages queued during a drop are no longer lost when the connection comes back.
    More…
    - Pause snaps everyone to the same frame, even at chapter boundaries and sound cues where small drift used to be visible. - Fewer phantom rewinds and slowdowns triggered by drift that wasn't actually there. - Smarter behavior in controlled rooms. Controllers no longer get pulled forward by their own room's pace. Non-controllers trying to play without permission is now silently ignored instead of flickering. - Adding the first file to an empty shared playlist actually starts playing for everyone. - "Seeked from A to B" chat messages now show the correct "from" time regardless of how the seek was triggered. - Undo Seek correctly restores the previous position from any seek source. - Stricter watchdogging on the network connection, so a dead socket is detected faster and with more confidence. - Incoming chat messages no longer briefly disappear when the UI is hidden. - Improved auto-hide UI logic, especially while typing a message. - Engine-specific in-room preferences no longer show up for engines you don't have selected. - Removed "Skip chapter" and "Skip Xs" from the main room view — they were cramming the UI on low-resolution devices. The same functionality is still available via the chapter-tracks dropdown and the seek-to-position popup, just not from the room's main view. - Added subtitle searching and downloading. - [Android] Two file-picking modes: System picker (default) and External picker. The external option lets you pick files through an installed file manager instead of the system picker — indirect support for network locations like SMB shares. - [Android] Fixed incorrect video-surface alignment on the libVLC engine. - [iOS] Fixed Synkplay losing exclusive control over audio output (for example, when summoning Siri or opening a notification). - [iOS] Fixed external subtitles not loading at all on the VLCKit engine. - [iOS] Fixed chat GIFs and stickers feature. ## Translations Translations are now live on Weblate — you can contribute by visiting the [hosted Weblate project](https://hosted.weblate.org/projects/syncplay-mobile/) to translate existing strings or add a new language entirely. Contributions are very welcome since I do add and edit strings fairly regularly and it's easy for some languages to fall behind. ## 🍎 iOS — How to install The app is available on the app store, but sideloading is also straightforward if for some reason you don't wanna use Apple's app store— the guide [here](https://github.com/yuroyami/syncplay-mobile/wiki/How-to-install-the-app-on-iOS) covers both normal and jailbroken devices. An `.ipa` is attached to this release. ## 🤖 Android — How to install The app is on Google Play but that version may not be the latest version since Google takes its time with reviews so grabbing the APK directly from here is always the better option. If you're unsure about your device's architecture just grab the **universal** APK — it works on everything though it's the largest download. For most modern phones the `arm64-v8a` APK is the right pick and considerably smaller. If that doesn't work fall back to `armeabi-v7a`. Exotic architectures like `x86_64` or `x86` have their own dedicated builds too. If you don't need multi-engine support, `syncplay-version-exo-only.apk` ships with ExoPlayer only and is the lightest and most broadly compatible option. Personally I'd still recommend the full APK for mpv — it's the most capable engine and handles virtually any format you throw at it.
  • Apr 13, 2026 0.20.0
    **Full Changelog**: https://github.com/yuroyami/syncplay-mobile/compare/v0.19.1...v0.20.0
  • Apr 11, 2026 0.19.1
    > Synkplay is now available on [Apple store](https://apps.apple.com/us/app/synkplay/id6760187432)! ## Experimental * **Server hosting is now available (experimental)** You can now host your own server directly from inside the app with configurable port, MOTD (message-of-the-day), and other flags. This is not production-ready and has not been tested. Expect it to be either unstable or completely broken. Android support is the most usable since the server runs as a dedicated background service. iOS support is currently unreliable due to background execution limitations and is strongly discouraged until proper background lifecycle handling is implemented.
    More…
    ## New Features (and Feature Ports) * **“Ready” state now has functional impact** #9 The user ready state is now wired into playback behavior, porting logic from the PC client (“Unpause set as ready and …”). This also means a new setting is provided, exactly like the PC client (“Unpause set as ready and …”). * **Adaptive sync behavior improvements (experimental)** #25: New mechanisms inspired by Syncplay PC's “lag compensation” (all of these come with their own corresponding in-room settings as well): * Fast-forward when lagging behind (optional) * Prevent slowdowns or rewinds affecting other users (optional) * Slow down playback on minor desync (optional) * Never slow down or rewind others (extremely experimental) * HUD auto-hide with configurable timeout * Subtitle/audio delay controls via sliders (for video engines that support it) * VLC volume amplification up to 200% #99 #113 * Chapter seekbar markers click support + toggle * File-based logging with 7-day rotation * OSD duration preference * Trusted domain validation for shared playlists * Android TV / Google TV support #146 * iOS VLCKit MPD/M3U8 adaptive streaming #135 * Quick chat clear *X* button * Simplified the audio/subtitle track preference. Now it shows a list of languages instead of manually typing language codes. ## Bug Fixes * Fix silent disconnection detection failure * Fix Android Picture-in-Picture play/pause not firing * Fix iOS shortcuts cold start race condition * Fix Android VLC crash on room exit * Fix settings text fields not rendering ## Improvements * Simplified shared playlist dropdown behavior * iOS: VLC engine is now much more stable. ## Known issues * Gestures (double-tap, brightness control, volume control) are disabled for the moment as they're undergoing an overhaul. * GIF/Stickers support is still under construction, it will not work as expected. ## New Contributions * FDroid screenshots & icon by @brian6932 in https://github.com/yuroyami/syncplay-mobile/pull/145 ## Translations Translations are now live on Weblate — you can contribute by visiting the [hosted Weblate project](https://hosted.weblate.org/projects/syncplay-mobile/) to translate existing strings or add a new language entirely. Contributions are very welcome since I do add and edit strings fairly regularly and it's easy for some languages to fall behind. ## 🍎 iOS — How to install The app is available on the app store, but sideloading is also straightforward if for some reason you don't wanna use Apple's app store— the guide [here](https://github.com/yuroyami/syncplay-mobile/wiki/How-to-install-the-app-on-iOS) covers both normal and jailbroken devices. An `.ipa` is attached to this release. ## 🤖 Android — How to install The app is on Google Play but that version may not be the latest version since Google takes its time with reviews so grabbing the APK directly from here is always the better option. If you're unsure about your device's architecture just grab the **universal** APK — it works on everything though it's the largest download. For most modern phones the `arm64-v8a` APK is the right pick and considerably smaller. If that doesn't work fall back to `armeabi-v7a`. Exotic architectures like `x86_64` or `x86` have their own dedicated builds too. If you don't need multi-engine support, `syncplay-version-exo-only.apk` ships with ExoPlayer only and is the lightest and most broadly compatible option. Personally I'd still recommend the full APK for mpv — it's the most capable engine and handles virtually any format you throw at it.