backdrop
backdrop copied to clipboard
Proposal document for v1.0
This is the proposal document for 1.0 version of the package intended to discuss and finalise the APIs of the package.
List of Objectives
- provide easy and quick way to implement all the use cases of backdrop component as defined in Material Design Guideline
- implementations should assume defaults but be configurable and extendable by the user for any custom behaviour
- code examples of various use-cases should be provided
- proper API documentation should be added
APIs
To achieve the above-mentioned objectives following are the public classes that need to be implemented:
-
[x] 1.
Backdrop
extends InheritedWidget
: This class exposesBackdropScaffoldState
for any widget down the tree using the convenientBackdrop.of(context)
. TheBackdropScaffoldState
in itself exposes some helper methods likefling
,showBackLayer
,showFrontLayer
, underlyingScaffold
widget,AnimationController
etc. -
[x] 2.
BackdropScaffold
extends StatefulWidget
: It is the backdrop equivalent toScaffold
widget. This is the main layout widget that implements the core behaviour of the backdrop. It should act as the entry point to implementing backdrop with the most basic use cases as default. Additional behaviours could be added to it using other widgets just like howappBar
,drawer
,bottomNavigationBar
are added withScaffold
. -
[x] #6 3.
BackdropAppBar
extends StatefulWidget
: It is the backdrop equivalent toAppBar
widget. This widget should provide APIs to define the behaviour of the app bar of the backdrop - icon, title, actions, etc. Various app bar uses cases mentioned in the guideline should be configured using this widget. -
[x] 4.
BackdropToggleButton
extends StatelessWidget
: A convenient widget to drop in to fling the backdrop back and forth. This could be used inactions
inBackdropAppBar
to fling backdrop from the right side of the app bar. -
[x] 5.
BackdropNavigationBackLayer
extends StatefulWidget
: It is the backdrop equivalent ofBottomNavigationBar
. A convenient widget to implement navigation pattern with the backdrop - usingbackLayer
to display a list of items, tapping on which would display the corresponding widget infrontLayer
.BackdropNavigationItem
could be used to encapsulate the widget that needs to be displayed, just like howBottomNavigationBarItem
is used. However, unlikeBottomNavigationBar
the UI of a list of items should be configurable by the user.
Other Tasks
- [x] API documentation of all Classes, Properties and Methods using Effective Dart: Documentation Guide.
- [x] #26 add SubHeader to Backdrop Front Layer as specified in the MDG.
- [x] #7 Demo app that demonstrates all use-cases of Backdrop as mentioned in the Material Design Guideline.
- [ ] #8 Proper README and additional tutorial guides (optional) to make easier for user to get started with package.
- [x] deprecate attributes and widgets
- [x] ci-cd tooling (preferably Github Action) to update github pages when master is updated.
- [ ] #78 automatic testing with ci-cd
Quick Links
Moved from: https://gitlab.com/daadu/backdrop/-/issues/7
@all-contributors please add @daadu for Code, Ideas & Planning
@all-contributors please add @WieFel for Code, Documentation
@all-contributors please add @danielborges93 for bug,code
Congrats @WieFel - We have implemented all widgets planned. Give yourself a pat on your back!!