cobalt_flutter 1.4.0
cobalt_flutter: ^1.4.0 copied to clipboard
Dependency injection for Flutter apps. Widgets own scopes, startup shows loading and error screens, and context.cobalt<T>() reads a dependency in any widget.
1.4.0 #
- No code changes in this package. The README starts the app with
CobaltRoot.
1.3.0 #
- No code changes in this package. The README Quick start says why
cobaltis a direct dependency and thattest/widget_test.dartgoes, points to what the editor shows before the first build, and opens with a GIF of the gallery.
1.2.0 #
- On a hot reload,
CobaltAppScopecompares the builder's registrations with the live graph throughCobaltScope.previewRegistrationsandregistrationOfinstead of the deprecateddebug*members. It restarts the graph in the same cases as before. Requirescobalt1.2.0. - The README opens with what the package is, how to install it and a Quick start, and the pubspec description says what it does.
1.1.1 #
CobaltNoScopeErrorandCobaltNoAppScopeErrorend with a link to their entry indocs/TROUBLESHOOTING.md, as every Cobalt error now does. No other changes in this package.
1.1.0 #
- No code changes in this package. Republished in lockstep with 1.1.0, which adds Korean to the inspector and to the documentation.
1.0.0 #
- The API is stable: from here on, only a major release breaks it — see Compatibility in the README. No code changes in this package since 0.9.0; coming from an older 0.x, MIGRATION lists what to change.
0.9.0 #
- A hot reload that changes the graph restarts it.
CobaltAppScope(restartOnGraphChange:), on by default and on the builder too, runsrootagain without building on every reload and compares its registrations with the live root's: a key added, removed or given another lifetime callsrestart()and says what changed in the debug console; any other reload keeps the graph and everything below it. Not forCobaltAppScope.start, andbootstrapis not compared. CobaltAppScope(initTimeout:)and its builder: a start that hangs becomes theerrorBuilderscreen with aCobaltInitTimeoutErrornaming what never finished.
0.8.0 #
- Breaking:
CobaltNoScopeErrorandCobaltNoAppScopeErrorarefinal, like every error incobalt0.8.0: catch them, don't implement or extend them.
0.7.0 #
- No code changes in this package. Republished in lockstep with 0.7.0, which
makes
CobaltResolvera base class (breaking), adds getters toCobaltRegistrationKindand lets the inspector open on a chosen tab — seecobalt's changelog.
0.6.0 #
- No code changes in this package. Republished in lockstep with 0.6.0, which
adds build times to observers and the inspector, a graph snapshot in
cobalt_testand a lint rule — seecobalt's changelog.
0.5.0 #
- No code changes.
context.cobaltAsyncdocuments that an async transient is built anew by every call, so the future belongs outsidebuild.
0.4.0 #
context.cobaltAsyncWithParam<T, P>(param).
0.3.0 #
overridesonCobaltScopeWidget, and anoverridesgetter onCobaltScopedWidgetandCobaltScopedStatefulWidget. A function called on every mount, as onCobaltAppScope, so a remount never gets a value the previous scope already closed. It replaces what that scope registers; an override of a key an ancestor owns fails naming the owner.CobaltAppScope(warmUp: [...])— also on.startand.builder— starts building lazy async registrations as soon as the graph is up, behind the app rather than behindloading. A failure goes toFlutterError.reportError.- Fixed: a builder that threw on a widget-owned scope, or an override that
replaced nothing, left the pushed child in the tree with nobody to close it.
The error now reaches
errorBuilderand the half-built scope is disposed.
0.2.1 #
- No code changes in this package. Republished in lockstep with the toolchain
packages, which now accept analyzer 13 and 14 — see
cobalt_generator's changelog.
0.2.0 #
CobaltAsyncBuilder<T>: resolves withgetAsyncand builds from the result, showingloadingmeanwhile anderrorBuilder(withretry) on failure. Something already built renders without a frame ofloading. The resolution is held in state, so a parent rebuild neither restarts it nor retries a failed one by itself.context.cobaltAsync<T>().CobaltAppScopeandCobaltAppScope.buildertakeoverrides:— a function, likebootstrap, called on every start and restart, so a restart does not get back a value the previous graph already closed.
0.1.2 #
- No code changes in this package. Republished in lockstep with a
packaging fix in
cobalt0.1.2 (a stray file removed from its archive) — see its changelog. A fix in one package still ships as a patch for all fifteen, because publishing a subset is what lets the set drift.
0.1.1 #
- No code changes in this package. Republished in lockstep with the fix
in
cobalt_lint0.1.1 — see its changelog. Lockstep is the whole versioning policy: a fix in one package still ships as a patch for all fifteen, because publishing a subset is what lets the set drift.
0.1.0 #
CobaltNoScopeErrorandCobaltNoAppScopeErrorreplace the bareCobaltErrorthe two lookups used to throw, so a caller can catch the one it means. The first also explains the pushed-route case in its message.- Initial release.
CobaltAppScope: owns the root scope for the whole app. It builds the graph insiderunApp, shows loading and error states with retry, exposesrestart(), and disposes the root on unmount. Because it re-keys the provider, the subtree rebuilds against the new root after a restart.CobaltScopeWidget: a child scope whose lifetime is a widget's lifetime.CobaltScopeProviderandcontext.cobalt<T>(), plusCobaltScopedWidgetandCobaltScopedStatefulWidgetas bases.disposeOnExitRequestis opt-in and only meaningful on macOS and Linux, whereonExitRequestedfires and the exit is actually cancellable.