mkobuolys / flutter_deck

A lightweight, customizable, and easy-to-use framework to create presentations in Flutter.
https://pub.dev/packages/flutter_deck
MIT License
176 stars 25 forks source link

feat: support for multi-monitors/presentation mode #10

Closed mateusfccp closed 6 months ago

mateusfccp commented 1 year ago

Description

Presentation programs often provide a "presentation mode", in which the presentation is presented in a specific monitor, while the "main" monitor, usually on the presenter's machine, shows more than the presentation.

For instance:

This issue tracks the request to add a presentation mode in flutter_deck

Additional Context

The Presentation Mode, in Microsoft PowerPoint:

image

The Presenter Console, in LibreOffice Impress:

image

The Presenter View, in Google Slides:

image

mkobuolys commented 1 year ago

Hey, thanks for your input. In fact, I have this item on my to-do list. However, I am waiting for a more stable multi-window support on Flutter that will enable this feature. Let's keep an eye on this for now 👀

mateusfccp commented 1 year ago

Hello, @mkobuolys.

I have this item on my to-do list.

Sorry, I did not find anything about this in the documentation or issues. Should we keep this issue for tracking purposes?

I am waiting for a more stable multi-window support on Flutter that will enable this feature.

You are right, I didn't consider that this is like a hard-requirement for the feature. Hopefully we get it sooner than later!

mkobuolys commented 1 year ago

Should we keep this issue for tracking purposes?

For sure, let's keep this issue open to track the status and map the PR later ✌️

orestesgaolin commented 1 year ago

What if we would just open two apps that communicate via network? This would potentially unlock features like remote control? Intermediate solution would be to have two build configurations with separate bundle ids and this way they could run simultaneously.

mkobuolys commented 1 year ago

What if we would just open two apps that communicate via network? This would potentially unlock features like remote control? Intermediate solution would be to have two build configurations with separate bundle ids and this way they could run simultaneously.

So that's the grey area where I am lost a bit. To enable this kind of communication, I would need to add some technology under the hood that allows it (Dart server + sockets, Firebase real-time database or Firestore, Supabase, etc.). Then, I would either need to push one of the solutions and "force" using it or support multiple ones that will bring more and more complexity to the package.

A semi-valid solution I could think of that is similar to your suggestion, is to launch two apps in parallel (slides + speaker notes) as well as launch a Dart server in the background to keep the apps in sync. This should work locally, however, I am not sure how this structure could work once the slides are deployed and you have multiple simultaneous users with an opened slide deck.

ABausG commented 1 year ago

As discussed at F3 I managed to add some Multi-Window support to a karaoke flutter macos app where I had a video player screen and a controller window. I used https://pub.dev/packages/multi_window/example to achieve this. Let me know if you have any plans to work on this before the official supports gets a bit further I'm happy to let you know my findings I had

mkobuolys commented 1 year ago

As discussed at F3 I managed to add some Multi-Window support to a karaoke flutter macos app where I had a video player screen and a controller window. I used https://pub.dev/packages/multi_window/example to achieve this. Let me know if you have any plans to work on this before the official supports gets a bit further I'm happy to let you know my findings I had

That's the problem - it limits running the presentation on desktop platforms only and I believe the Web version of the presentation should be the most common way to go. Thus, syncing separate apps through cloud solutions/sockets is a better, platform-agnostic approach to this problem.

mkobuolys commented 6 months ago

Ladies and gentlemen, the presenter view will be released any time soon 👀