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

refactor(at_onboarding_flutter): Add modular support to at_onboarding_flutter #936

Open
XavierChanth opened this issue Nov 8, 2024 · 1 comment
Assignees

Comments

@XavierChanth
Copy link
Member

Many components and workflows in at_onboarding_flutter are not or reusable.

I want to refactor at_onboarding_flutter into 3 layers:

  • Pages

    the existing option / interface

  • Widgets

    the buttons and stuff currently hard coded into the pages, so parts can be embedded

  • Libraries

    at_onboarding doesn't contain any of the keychain / platform dependent code
    so we must make an interface available in at_onboarding_flutter which wraps
    the behavior underlying each of the widgets

With this change there are a few other considerations I've thought about:

  • Make it possible to control which widgets are included in the pages as a
    configurable list

    I've experimented with closures in the past, but they don't update when
    hot reloading flutter apps, so I'll see if I can come up with something
    static that also propogates state efficiently
    (maybe I lacked passing keys to the widgets, which is why the tree wouldn't
    update properly, it's been a while)

  • Adding the APKAM widgets, with a more modular design they can be developed in
    parallel without dealing with the troubles of the nested widget code.

  • I may consider starting with a blank slate, porting the old code into the new
    design piece by piece, simplifying behavior as I go.

@XavierChanth
Copy link
Member Author

I chose to delay the rest of this work, extracting the file picker into a service, which is the minimum required amount of work needed by the NoPorts desktop app. I will backlog this ticket for now, and we can pull it into another sprint if we need more work done for something else.

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

1 participant