Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Ofline Fullscreen Media Slides w/caching #51

Open
1 of 7 tasks
jtkeyva opened this issue Dec 22, 2023 · 7 comments
Open
1 of 7 tasks

feat: Ofline Fullscreen Media Slides w/caching #51

jtkeyva opened this issue Dec 22, 2023 · 7 comments

Comments

@jtkeyva
Copy link

jtkeyva commented Dec 22, 2023

Description
Would be nice to "preload" the deck with dynamic network content while you are online and be able to play the deck while offline.
Able to cache media and data to for use offline

Requirements

  • Offline Mode
  • Cache Media
  • Cache Text
  • Play fullscreen videos with content overlays
  • Display fullscreen images with content overlays
  • Content Overlay
  • Custom Gestures
@mkobuolys
Copy link
Owner

Hi @jtkeyva, thanks for the feature request! Yup, it would be a nice feature to have, for sure. Do you have any ideas on how to implement it or how you see the implementation of it? As a workaround, obviously, you can add all the static content as assets to your app so that they will be bundled together with the slides.

@jtkeyva
Copy link
Author

jtkeyva commented Dec 23, 2023

hi @mkobuolys well i have not dug into your code so much quite yet but https://pub.dev/packages/advstory does a tremendous job. i see a full other use case for your package to be also a media player, but not sure what your goal or intent is for it.

basically you can create custom "content types" templates and for each slide simply choose a type and it will be formatted...similar to what you do. there is just a lot of overlap and similarity that to me might make sense to merge into a general presentation package.

@mkobuolys
Copy link
Owner

@jtkeyva The package you provided is basically a page view that could be added to any app. Since it's a page view, it's possible to preload components in the background (basically render them) and show them whenever needed. However, flutter_deck is built in a different view. It's like any other web app, where each slide is a stand-alone page with a custom route. Thus, it's more tricky to preload or cache its content - do not say it's impossible, but much much more tricky.

So just looking at this from the architecture point of view, it's really not that similar as you could think.

@jtkeyva
Copy link
Author

jtkeyva commented Dec 25, 2023

got it thank you. i'll dig around a bit more to see how you've built it :)

@jtkeyva
Copy link
Author

jtkeyva commented Feb 22, 2025

hi @mkobuolys i've been digging in a bit and have multiple decks within a pageview which works ok. i have custom routes per deck which is nice. buuuut.... can this be handled dynamically or do the routes need to be set at build time? and could i pop this in my existing app which also uses go_router and have something like:
/home
/settings
/decks
/decks/deck1/slide1
/decks/deck1/slide2
etc?

@jtkeyva
Copy link
Author

jtkeyva commented Feb 22, 2025

i sorta got it working but the routes are ephemeral. like i can link to it but it forgets about it if i use the back/forward browser buttons or a simple refresh and i get a GoException. also, i cannot deep link to it. there are 2 instance of go router and they seem to be conflicting. this is likely the fundamental problem when trying to nest the app within an app. any ideas how to do this?

@mkobuolys
Copy link
Owner

Hey, it's hard to say exactly what the problem is. I have never injected another go_router app inside the flutter_deck, only the simple push/pop one. Could you share the code of what you are doing and what you are trying to achieve? When I have time, I can dig a bit more and check what's possible at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants