Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions sites/docs/src/content/app-architecture/case-study/ui-layer.md
Original file line number Diff line number Diff line change
Expand Up @@ -530,12 +530,14 @@ the number of arguments that the underlying method expects.
You can see examples of these implementation classes in
the Compass app's [`utils` directory][].

:::tip Package recommendation
Instead of writing your own `Command` class,
consider using the [`flutter_command`][] package,
which is a robust library that implements classes like these.
:::tip Package option
To use this pattern without writing your own command classes,
consider using a package such as [`command_it`][],
which provides command types to wrap actions and
track their running, completed, and error states.
:::

[`command_it`]: {{site.pub-pkg}}/command_it
Comment thread
parlough marked this conversation as resolved.

### Ensuring views can render before data exists

Expand Down Expand Up @@ -647,7 +649,6 @@ the Command pattern. [Read about it on GitHub][].
[`Scaffold`]: {{site.api}}/flutter/material/Scaffold-class.html
[`Dismissible`]: {{site.api}}/flutter/widgets/Dismissible-class.html
[`utils` directory]: https://github.com/flutter/samples/blob/main/compass_app/app/lib/utils/command.dart
Comment thread
parlough marked this conversation as resolved.
[`flutter_command`]: {{site.pub-pkg}}/flutter_command
[streams]: {{site.api}}/flutter/dart-async/Stream-class.html
[`StreamBuilders`]: {{site.api}}/flutter/widgets/StreamBuilder-class.html
[`AsyncSnapshot`]: {{site.api}}/flutter/widgets/AsyncSnapshot-class.html
Expand Down
Loading