- Update RX dependency to latest
- Migrate to Dart 3
- Add 100% test coverage to the example
- Null safety, flutter 3.0.x support
- Removed conflicting annotation on flutter 2.5.0 on
onDisposed
- Removed
author
frompubspec.yaml
due to deprecation issues. - Removed
pre-release
packages
- Stable Null Safety
- Updated CI to use flutter 2.0 with nullsafety
- Updated packages for nullsafety versions
- Dart SDK constraint to 2.12.0
- Nullsafety
- Update packages:
- logging: from
0.11.3+2
to0.11.4
- meta: from
1.1.6
to1.3.0-nullsafety.3
- provider: from
4.0.1
to4.3.2+3
- rxdart: from
0.24.1
to0.25.0
- test: from
1.5.1
to1.16.0-nullsafety.5
- pedantic: from
1.9.0
to1.10.0-nullsafety.2
- logging: from
- Created
mobileView
onResponsiveViewState
to allow correct usage ofglobalKey
and improve coherence with parent class - Created
tabletView
onResponsiveViewState
to allow correct usage ofglobalKey
and improve coherence with parent class - Created
desktopView
onResponsiveViewState
to allow correct usage ofglobalKey
and improve coherence with parent class - Created
watchView
onResponsiveViewState
to allow correct usage ofglobalKey
and improve coherence with parent class
- Removed deprecated methods from view
- Removed deprecated methods from controller
- Removed
mobileBuilder
fromResponsiveViewState
- Removed
tabletBuilder
fromResponsiveViewState
- Removed
desktopBuilder
fromResponsiveViewState
- Removed
watchBuilder
fromResponsiveViewState
- Removed
BuildContext
injection fromController.onDisposed
life cycle to avoid unsafe usages of dead context - Created
Controller.onInitState
to correct controlView.initState
life cycle. - Created
Controller.onDidChangeDependencies
to correct controlView.initState
life cycle. - Created
Controller.onDeactivated
to correct controlView.deactivate
life cycle. - Created
Controller.onReassembled
to correct controlView.reassemble
life cycle. - Deprecated
View.didChangeViewDependencies
. AddedController.didChangeDependencies
to ensure correct usage. - Deprecated
View.initViewState
. AddedController.initState
to ensure correct usage.
- Fixed
didChangeViewDependencies
to trigger correctly ondidChangeDependencies
- Deprecated
Controller.dispose
. AddedController.onDisposed
to ensure correct usage ofBuildContext
on dispose life cycle.
- Updated example android build requirements for flutter 1.22
- Created
didChangeViewDependencies
onViewState
to enable access to controller ondidChangeDependencies
- Created
initViewState
onViewState
to enable access to controller on initialize.
- Created
ControlledWidget
to createStatelessWidgets
refreshable byController
- Now, to create refreshable widgets, use
ControlledWidget
builder. - When
Controller.refreshUI
is called, onlyControlledWidgets
will re-render - To create controlled
StatefulWidgets
, please checkFlutterCleanArchitecture.getController
approach
- Now, to create refreshable widgets, use
- Improves
ResponsiveViewState
with watch interface - Added
FlutterCleanArchitecture.setDefaultViewBreakpoints
to configure view breakpoints globally - Added
mobileBuilder
toResponsiveViewState
- Added
tabletBuilder
toResponsiveViewState
- Added
desktopBuilder
toResponsiveViewState
- Added
watchBuilder
toResponsiveViewState
- Removed getter
controller
fromViewState
- Removed
buildTabletView()
- Removed
buildMobileView()
- Removed
buildDesktopView()
- Added an option to pass listen:false when calling getController() outside of the build method.
- Created Github Actions to run analyze and tests on package
- Created responsive view to improve the usage on flutter web
- Fixed lint rules to fit pedantic 1.9.0
- OnResumed bug fix
- Fixed typo in documentation.
- Improves performance of the library by using the Provider package internally.
- Added an option to enable debug mode via
FlutterCleanArchitecture.debugModeOn()
- Added the ability to use a common
Controller
for widgets that exist within a page. The widgets can access theController
in the tree via theFlutterCleanArchitecture.getController<Controller>(context)
method.
ViewState
'sbuild()
method can no longer be overridden.ViewState
UI code must now go intobuildPage()
method.callHandler()
is now removed- Removed
loadOnStart()
- Removed
startLoading()
- Removed
dismissLoading()
- Fixed an issue where
Controller.getContext()
throws due to losing context because lifecycle events where triggered after theView
had already been dismounted.
- Fixed error in docs
- Updated RxDart dependency
- Breaking changes
- All Observable return types are now changed to Streams
- Updated documentation
- Added the ability to create a usecase that executes on a different isolate.
BackgroundUseCase
- Usecase class that executes on a different isolate
- Create a static method in the class that conforms to
UseCaseTask
signature - Return the reference to that method inside the
buildUseCaseTask
method
BackgroundUseCaseParameters
- Contains the input data provided to to the isolate
- Passed to the static method as a parameter
BackgroundUseCaseMessage
- Provides output data and information such as completion status and errors
- The usecase usage in the presenter does not change, this class can be used identically
- Check
README.md
for more details
- Added and improved documentation
- Updated README.md
- Bug fix
- Bug fix
- Flutter v1.12.5 compatibility
- Changed onSuspending to onDetatched
- Updated dependencies
- Updated dependencies
- Add missing files to example
- Fixed documentation typos
- Changed misleading assertion messages
- Cleaned documentation
- Fixed documentation typos
- Added example application
- Addded documentation
- Implementation of the Clean Architecture by Uncle Bob in Flutter Library
- View class
- Controller class
- Presenter class
- UseCase class
- Observer class
- Can be used to set up a Flutter project using the Clean Architecture