-
Notifications
You must be signed in to change notification settings - Fork 37
Description
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:
-
1.
Backdropextends InheritedWidget: This class exposesBackdropScaffoldStatefor any widget down the tree using the convenientBackdrop.of(context). TheBackdropScaffoldStatein itself exposes some helper methods likefling,showBackLayer,showFrontLayer, underlyingScaffoldwidget,AnimationControlleretc. -
2.
BackdropScaffoldextends StatefulWidget: It is the backdrop equivalent toScaffoldwidget. 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,bottomNavigationBarare added withScaffold. -
BackdropAppBar #6 3.
BackdropAppBarextends StatefulWidget: It is the backdrop equivalent toAppBarwidget. 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. -
4.
BackdropToggleButtonextends StatelessWidget: A convenient widget to drop in to fling the backdrop back and forth. This could be used inactionsinBackdropAppBarto fling backdrop from the right side of the app bar. -
5.
BackdropNavigationBackLayerextends StatefulWidget: It is the backdrop equivalent ofBottomNavigationBar. A convenient widget to implement navigation pattern with the backdrop - usingbackLayerto display a list of items, tapping on which would display the corresponding widget infrontLayer.BackdropNavigationItemcould be used to encapsulate the widget that needs to be displayed, just like howBottomNavigationBarItemis used. However, unlikeBottomNavigationBarthe UI of a list of items should be configurable by the user.
Other Tasks
- API documentation of all Classes, Properties and Methods using Effective Dart: Documentation Guide.
- Add Subheader option #26 add SubHeader to Backdrop Front Layer as specified in the MDG.
- Proper demo app with multiple use-cases #7 Demo app that demonstrates all use-cases of Backdrop as mentioned in the Material Design Guideline.
- Proper readme and tutorial documentations #8 Proper README and additional tutorial guides (optional) to make easier for user to get started with package.
- deprecate attributes and widgets
- ci-cd tooling (preferably Github Action) to update github pages when master is updated.
- Automatic testing with CI/CD #78 automatic testing with ci-cd