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

No offline whiteboards without login? #27

Open
toobaz opened this issue Oct 25, 2021 · 21 comments
Open

No offline whiteboards without login? #27

toobaz opened this issue Oct 25, 2021 · 21 comments

Comments

@toobaz
Copy link

toobaz commented Oct 25, 2021

The server is apparently very slow at the moment: the most annoying part is that until the app is able to load the list of whiteboards, it doesn't even display offline whiteboards... these should ideally be usable also without Internet connection (without even an account on any server).

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Oct 25, 2021

@toobaz Hey thank you for your issue 👍
The server i host is just for development purpose and i can´t guarantee that it works. Currently i am working on a other project that is very resource heavy. If you want you can setup your own server.
The loading of offline Whiteboard should work without internet connection. If not try to disable the internet and restart the app. You have to login once with internet, but after that you should be able to use it offline. The problem why you need an account is the opportunity to upload your offline whiteboards and this can´t be done without an account.

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Nov 10, 2021

I will close this now. if you have any further questions please feel free to comment it here.

@Y0ngg4n Y0ngg4n closed this as completed Nov 10, 2021
@toobaz
Copy link
Author

toobaz commented Nov 10, 2021

The problem why you need an account is the opportunity to upload your offline whiteboards and this can´t be done without an account.

Well, if I use "offline" whiteboards it means that having them online is not a priority ;-) While having them offline (even without login) is.

Anyway, I understand this is not a desired feature.

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Nov 10, 2021

@toobaz yes maybe i will implement it if i have free time

@ildar
Copy link

ildar commented Jan 26, 2023

please reopen as a feature request.
It's really useless new without ANY working server instance because a new user cannot login even once.

@Y0ngg4n Y0ngg4n reopened this Jan 26, 2023
@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Jan 26, 2023

@ildar currently i don´t have the time for this project. And it need a big refactoring.

@MoralCode
Copy link

Currently this seems to be the only quality whiteboard app on fDroid.

I would love to contribute some time to making the app work entirely locally for people like me who want to use it for quick sketches and simple notes on the go.

Can you elaborate on the large refactor you said this would require? Would love to learn more about what might be needed to add this functionality

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented May 5, 2023

@MoralCode ok so the problem currently is that i am saving the data in json files and i have to figure out a more performant way to save the data. I think the best way would be to migrate to Isar but that needs a complete rewrite of the current schemas.
Also the scaling of items needs a full rewrite.
And there is something wrong with the ci pipeline causing f-droid not using the latest version.
Also there are still some performance problems on lower end devices that need to be addressed.

I would really appreciate any help, but currently i don´t have much time for this project.

@MoralCode
Copy link

A lot of these sound like they are valid issues but may not be directly related to the offline whiteboards issue so i broke them out into new issues to help keep track of them more easily. More details on each of those would be nice to have, but i'll focus on the offline one in this issue.

How is data currently being saved? are you just storing JSON files to the phones storage? or is the process of saving/loading the JSON data dependent on the server in some way?

I guess ultimately my question is, could I theoretically just delete all the server-dependent stuff, like the login screen, and make the app mostly work in an offline-only way, or otherwise delay the process of asking for a login until the user takes an action that cannot be done without connecting to their account (like clicking a button to "upload" a sketch)?

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented May 6, 2023

@MoralCode thank you :)

Ok so the current problem why you can´t use it without an account is because there are some checks missing regarding the offline usage.
Yes i am just saving the json files to the phones storage with the localstorage plugin. But this plugin has its own issues on other devices than phones because it just drop the json files directly in the documents folder.
I had choosen the json files back then, because they make it easy to import a whiteboard.
So i think for exports the json format is great, just for the saving of the whiteboard offline it does not seem to fit the use case.

So the json file is always saved by .json in the documents folder. but there is also another json file (just currently can´t remember the location) that is just listing all the uuids of the whiteboards, because without this file i would not be able to find the offline whiteboards as the localstorage plugin does not provide a search functionality.

So for the offline work without account i think it will be necessary to add those many checks if you are registered or not or if you are just offline currently. The rewrite to isar is currently not necessary to work without an account but needs to be done anyways.

You don´t need to delete the online stuff. there i allready a offline check included but you need to add checks if you are registered or not.

@MoralCode
Copy link

So all thats needed is to wrap the online-dependent lines of code in a check/prompt to ask the user if they want to use online functionality or just skip that feature?

@MoralCode
Copy link

Note to self: https://github.com/Y0ngg4n/fluffy_board/blob/master/lib/dashboard/dashboard.dart is where the check and redirect to the login page on app start is performed, this is probably one place that should be modified

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented May 6, 2023

yes exactly. There is already a isOffline bool i have added. So the dashboard needs those checks and also the file manager, because there needs to be a limited functionality too.

@MoralCode
Copy link

MoralCode commented May 6, 2023

Does this sound like what you had in mind?

treat offline mode as the default and have there be points in the app (such as on first startup, or whenever a users account is needed) where the app will

  1. check if the user has previously logged in (i.e. if there are saved credentials or something) and use those
  2. if not, prompt for credentials with the option to skip.
  3. if user provides credentials, continue using the online stuff if not, store the users offline preference in a (maybe this is what isOffline is) to avoid over-notifying them in future

What functionality would be limited in the file manager (if any)?

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented May 6, 2023

@MoralCode yes that sounds great! 👍

The uploading and sharing of boards i think will be limited

@topialla
Copy link

@MoralCode did you make any progress on this already? Perhaps I could offer some time as well.

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Dec 21, 2023

@topialla i currently dont have time to maintain this project

@emmggi
Copy link

emmggi commented Jan 26, 2024

Is there any reason why offline use wasn't implemented from the start?

Also what kind of functionality and features with regards to drawing/sketching did this app have? Basic shapes, alignment, stroke color and width, text etc? I'm trying to adapt it to another app.

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Jan 26, 2024

offline use is implemented but it needs a registered account for sync functionality. Shapes. scribbles, highlighter, colors, text, pdf import, images and other stuff.

@emmggi
Copy link

emmggi commented Jan 27, 2024

@Y0ngg4n Yes but I don't want sync. Needing a registered account even if you continue to use it offline only is a bit pointless.

If I understood correctly I need to use the docker image or set up a server to be able to register?

@Y0ngg4n
Copy link
Owner

Y0ngg4n commented Jan 29, 2024

Yes you need to install both server and client

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

6 participants