responsive_builder2 0.9.0
responsive_builder2: ^0.9.0 copied to clipboard
A set of widgets that can be used to define a readable responsive UI for widgets.
0.9.0 #
Bug Fixes #
- Fix landscape width/height swap —
ResponsiveAppUtil.setScreenSizeno longer swaps width and height in landscape.screenWidth/swandscreenHeight/shnow correctly reflect the actual visible dimensions regardless of orientation. - Fix
ScrollControllerdisposal —ScrollTransformViewnow properly disposes itsScrollController, preventing memory leaks. - Fix
ResponsiveAppUtildefaults —width,heightnow default to0andpreferDesktoptofalseinstead of usinglatevariables that would crash if accessed beforeResponsiveAppis built. - Fix double assignment in
getDeviceType— Simplified redundantisWebOrDesktop = isWebOrDesktop ??= _isWebOrDesktoptoisWebOrDesktop ??= _isWebOrDesktop.
Improvements #
- Remove
providerdependency — Replaced with a built-inScrollControllerScope(anInheritedNotifier) to injectScrollControllerinto scroll transform widgets. The package now has zero third-party dependencies beyond Flutter anduniversal_platform. - Add breakpoint validation —
ScreenBreakpointsandRefinedBreakpointsconstructors now assert correct ordering (small < normal < large) in debug mode. Invalid breakpoints produce a clear assertion error instead of silently returning wrong device types. - Add value equality —
SizingInformation,ScreenBreakpoints, andRefinedBreakpointsnow implementoperator ==andhashCodefor value-based comparison. - Make
SizingInformationconst — The constructor is nowconst, enabling compile-time constant instances. - Modernize constructors — All widget constructors updated to
super.keysyntax; removed redundant= nullparameter defaults. - Split
widget_builders.dart— Refactored into separate files (typedefs.dart,responsive_builder.dart,orientation_layout_builder.dart,screen_type_layout.dart,refined_layout_builder.dart). The original file is now a barrel export for backward compatibility. - Improve test coverage — Expanded from 84 to 145 tests, covering boundary values, edge cases, fallback chains, disposal, and breakpoint validation.
- Rewrite README — Added table of contents, API reference tables, documented all widgets (including
RefinedLayoutBuilderand scroll transforms), default breakpoint values, and refined breakpoint configuration.
0.8.9 #
- Make
ScreenBreakpoints.normalmandatory (small/normal/large) and improve device detection (watch/phone/tablet/desktop).
0.8.7 #
- Similar to 0.8.6 with changes to the
README.md.
0.8.6 #
- Fix support to
WASM. - Apply lint fixes and better documentation.
0.8.5 #
- Similar to 0.8.5 with changes to the
README.md.
0.8.4 #
- Make
WidgetBuilderandWidgetBuilder2values private.
0.8.3 #
- Add
ScreenTypeLayout.builder2that includesSizingInformation. - Adds comparison operators to DeviceScreenType and RefinedSize, for convenience. (https://github.com/FilledStacks/responsive_builder/pull/55)
- Code coverage reached 100%.
- Replace
import 'package:flutter/material.dart';withimport 'package:flutter/widgets.dart';.
0.8.2 #
- Add
WASMsupport (https://github.com/FilledStacks/responsive_builder/pull/65) - Reduced unnecessary rebuilds by using
MediaQueryasInheritedModel(https://github.com/FilledStacks/responsive_builder/pull/54) - Fixing code sample (https://github.com/FilledStacks/responsive_builder/pull/33)
0.8.1 #
- Correct
README.mdconfiguration steps. - Remove
example/testfolder.
0.8.0 #
- Replace
desktopandtabletwithlargeandwatchwithsmall. Necessary to handle desktop and tablet sizes correctly based on its platform. - Add more unit tests (Coverage 98.6%).
- Add unit test CI.
0.7.0 #
- Fixes #50
0.6.4 #
- Fixes #48
0.6.3 #
- Fixes bug with preferDesktop and
getValueForScreenType
0.6.2 #
- Fixes bug with preferDesktop where it always returns desktop UI even if there is a mobile UI.
0.6.1 #
- Adds
preferDesktoptoResponsiveAppwhich tells the builders that if there's no layout supplied for the current size prefer the desktop over the mobileLayout. Default value isfalseto maintain mobile first behaviour.
0.6.0 #
New Feature #
Adds responsive sizing by using the ResponsiveApp widget at the highest level which allows:
- Using
20.screenHeight/number.screenHeightshorthand to get the percentage of the Screen Height - The same exists for the
screenWidth - There are also shorthand extensions for both.
screenHeight=>shandscreenWidth=>sw
0.5.1 #
- Adds checks to ensure desktop returns as Flutter web
0.5.0+1 #
- Adds banner to readme
0.5.0 #
New Feature #
Adds the ScrollTransform functionality which allows you to more easily create scroll effects based on the scrolling position.
0.4.3 #
- Added small size for getValueForRefinedSize
- Adds funding link to coffee
0.4.2 #
- Added optional override property in orientation builder
0.4.0-nullsafety.1 #
- Adds null safety and correct small refined sizing
0.3.0 #
- Adds the refined sizing functionality
0.2.0+2 #
- Added
getValueForScreenTypefunctionality to the readme
0.2.0+1 #
- export the sizing config which I forgot to do first time.
0.2.0 #
- Adds responsive sizing config for global breakpoint setting
0.1.9 #
- Reverted the change for returning the mobile layout when break points doesn't define any.
0.1.8+1 #
- readme updates
0.1.8 #
- Changed enum naming to lowerCamelCase to follow convention
- Add a return for mobile when no breakpoints match
0.1.7 #
- Made 600 inclusive for tablet devices and 900 inclusive for desktop
0.1.6 #
- Added ScreenTypeValue builder to allow us to return different values depending on the screen type
0.1.4+1 #
Changelog styling updates
0.1.4 #
- Added optional screen break points definition to pass in to the ResponsiveBuilder or the ScreenLayoutView.
0.1.3 #
- Added shorthand bool properties to sizing information to check which device screen type is currently being show.
0.1.2 #
- Updated screen type calculation to account for being on the Web. Width was swapping with the height when it got too wide so we're checking for web explicitly and using the width of the window.
0.1.1 #
- Update the ScreenTypeLayout widget to use an incremental layout approach. If the desktop isn't supplied and we're in desktop mode we check if there's a tablet layout and show that, otherwise we show the mobile layout.
0.1.0 #
- Added initial widgets required for a clean responsive UI architecture.