Please sign in to access this page

Syncy

Syncy Used AI

9 devlogs
23h 20m
Created by Khaled

Syncy is cross-platform Application that allow friends to watch offline media in sync! It has chat, Floating Reaction emojis while watching and Multi-Language Auto Subtitles, maybe coming soon more features!

Timeline

When I tested my app I found some issues related to the player itself like what if the user want subtitle, what if they want a delay option for it, what about full screen mode, ui, etc ...

So I started to build my own custom video player specifically for Syncy.
- I made the a purple seek bar with burble timing 00:00/30:00
- Made the seek player functional
- Also Added full screen mode
- Added an option to set a translation from the phone using file_picker
- Added an option for translation delay or remove subtitle.

For subtitles part I made a fully custom decoder that analyzes the subtitle files and correctly insert in the UI with custom stylings.

Next I started working on a bottomsheet that shows users and if they online or offline, currently It shows users in the room when they join and if they are offline.
And connected in the room controller.

Next I made testing and found out issues related to entering and exiting full screen and fixed them, then finally tested on two devices and started to run on IOS, but found issues related to POD file and fixed them and now the app smoothly run on IOS and Android. There are a few issues that will be fixed in next devlog like:
- Screentime timeout (Will be fixed using wakelock_plus)
- Seeking not smooth (will be fixed by only triggering the seek function on user finishes seeking and make it above subtitle and more accessed in area.
- Parsing more types of subtitles.

  • Created Join Room Dialog
  • Updated Room Controller:
  • Added joinRoom
  • Added User ID Generation
  • Added play function
  • Added pause function
  • Added Seek function
  • Added Leave Function WebSocket Service:
  • Added join, play, pause, seek, leave too

(In the Attached Video, Video Sync is done correctly, as I match the duration at each pause and play. Unfortunately, my device's performance isn't very good.)

  • Fixed a routing issue when exiting room page.
  • Fixed player issues.
  • Started WebSocket Service.
  • Added controls widget from documentation.
  • Connected the create room bottom sheet to the backend.
  • Created Room Controller.
  • Created User Model and configured it to save the user's name.
  • Created Room Model
  • Added Snack Bars to indicate whether the user created a room successfully or not.
  • Added FVP library to handle all video encodings.
  • Created Room Screen with basic setup for now.
  • Implemented Search Screen.
  • Implemented a Good Searching Algorithm with the assistance of AI.
  • Made a placeholder for broken thumbnails.
  • Improved Media Card Accessibility.
  • Implemented Create Room Bottom Sheet.
  • I finished the Home Screen UI.
  • Made Custom Bottom Nav Bar.
  • Created a Thumbnail service to handle thumbnail creation and saving to the phone, also without blocking the thread in flutter or any crashes.
  • Made db store media files to increase the speed.

Initalizing the home controller and finalized the first phase of models.

I started the Flutter app dev. Now The early models have been implemented. And made dir architecture ready.

Update attachment