From 558dcba2d4980047dfcc8518ba93519db97092c6 Mon Sep 17 00:00:00 2001 From: frank06 Date: Mon, 25 Jul 2022 18:26:23 +0000 Subject: [PATCH 01/12] deploy: ff65ef16650fa72d6fc017b4570f35271f9e7ce3 --- .nojekyll | 0 404.html | 1 + .../index.html | 321 ++++ .../index.html | 267 ++++ articles/configure-get-it/index.html | 258 ++++ articles/configure-provider/index.html | 271 ++++ .../custom-deserialization-adapter/index.html | 200 +++ .../dart-final-const-difference/index.html | 199 +++ .../index.html | 196 +++ .../featured-mini.jpg | Bin 0 -> 15127 bytes .../featured.jpg | Bin 0 -> 102085 bytes .../index.html | 741 +++++++++ articles/define-interface-dart/index.html | 203 +++ .../index.html | 310 ++++ articles/how-to-format-duration/index.html | 199 +++ articles/index.html | 612 ++++++++ articles/index.xml | 264 ++++ articles/intercept-logout-adapter/index.html | 199 +++ articles/iterator-style-adapter/index.html | 197 +++ .../index.html | 306 ++++ articles/nested-resources-adapter/index.html | 204 +++ articles/override-base-url/index.html | 196 +++ articles/override-findall-adapter/index.html | 200 +++ .../override-findone-url-method/index.html | 200 +++ .../index.html | 205 +++ .../override-http-client-adapter/index.html | 216 +++ .../featured-mini.jpg | Bin 0 -> 13531 bytes .../featured.jpg | Bin 0 -> 104676 bytes .../index.html | 817 ++++++++++ articles/upgrade-flutter-sdk/index.html | 201 +++ categories/index.html | 290 ++++ categories/index.xml | 10 + docs/adapters/index.html | 431 ++++++ docs/faq/index.html | 324 ++++ docs/index.html | 290 ++++ docs/index.xml | 93 ++ docs/initialization/index.html | 392 +++++ docs/models/index.html | 377 +++++ docs/quickstart/index.html | 418 +++++ docs/relationships/index.html | 461 ++++++ docs/repositories/index.html | 467 ++++++ index.html | 241 +++ index.xml | 346 +++++ main.css | 1359 +++++++++++++++++ sitemap.xml | 116 ++ tags/dart/index.html | 290 ++++ tags/dart/index.xml | 48 + tags/es6/index.html | 290 ++++ tags/es6/index.xml | 23 + tags/index.html | 290 ++++ tags/index.xml | 56 + tags/javascript/index.html | 290 ++++ tags/javascript/index.xml | 23 + tags/pub/index.html | 290 ++++ tags/pub/index.xml | 24 + tags/vscode/index.html | 290 ++++ tags/vscode/index.xml | 24 + tailwind.css | 3 + tutorial/01.png | Bin 0 -> 100509 bytes tutorial/01b.png | Bin 0 -> 27861 bytes tutorial/01c.png | Bin 0 -> 11451 bytes tutorial/02a.png | Bin 0 -> 30820 bytes tutorial/02b.png | Bin 0 -> 30995 bytes tutorial/03.png | Bin 0 -> 29104 bytes tutorial/04a.png | Bin 0 -> 32934 bytes tutorial/05a.png | Bin 0 -> 26842 bytes tutorial/05b.png | Bin 0 -> 25418 bytes tutorial/06.png | Bin 0 -> 29808 bytes 68 files changed, 14539 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 articles/build-widget-with-async-method-call/index.html create mode 100644 articles/checking-null-aware-operators-dart/index.html create mode 100644 articles/configure-get-it/index.html create mode 100644 articles/configure-provider/index.html create mode 100644 articles/custom-deserialization-adapter/index.html create mode 100644 articles/dart-final-const-difference/index.html create mode 100644 articles/dart-getter-cache-computed-properties/index.html create mode 100644 articles/deconstructing-dart-constructors/featured-mini.jpg create mode 100644 articles/deconstructing-dart-constructors/featured.jpg create mode 100644 articles/deconstructing-dart-constructors/index.html create mode 100644 articles/define-interface-dart/index.html create mode 100644 articles/future-async-called-multiple-times/index.html create mode 100644 articles/how-to-format-duration/index.html create mode 100644 articles/index.html create mode 100644 articles/index.xml create mode 100644 articles/intercept-logout-adapter/index.html create mode 100644 articles/iterator-style-adapter/index.html create mode 100644 articles/minimal-hello-world-flutter-app/index.html create mode 100644 articles/nested-resources-adapter/index.html create mode 100644 articles/override-base-url/index.html create mode 100644 articles/override-findall-adapter/index.html create mode 100644 articles/override-findone-url-method/index.html create mode 100644 articles/override-headers-query-parameters/index.html create mode 100644 articles/override-http-client-adapter/index.html create mode 100644 articles/ultimate-javascript-dart-syntax-guide/featured-mini.jpg create mode 100644 articles/ultimate-javascript-dart-syntax-guide/featured.jpg create mode 100644 articles/ultimate-javascript-dart-syntax-guide/index.html create mode 100644 articles/upgrade-flutter-sdk/index.html create mode 100644 categories/index.html create mode 100644 categories/index.xml create mode 100644 docs/adapters/index.html create mode 100644 docs/faq/index.html create mode 100644 docs/index.html create mode 100644 docs/index.xml create mode 100644 docs/initialization/index.html create mode 100644 docs/models/index.html create mode 100644 docs/quickstart/index.html create mode 100644 docs/relationships/index.html create mode 100644 docs/repositories/index.html create mode 100644 index.html create mode 100644 index.xml create mode 100644 main.css create mode 100644 sitemap.xml create mode 100644 tags/dart/index.html create mode 100644 tags/dart/index.xml create mode 100644 tags/es6/index.html create mode 100644 tags/es6/index.xml create mode 100644 tags/index.html create mode 100644 tags/index.xml create mode 100644 tags/javascript/index.html create mode 100644 tags/javascript/index.xml create mode 100644 tags/pub/index.html create mode 100644 tags/pub/index.xml create mode 100644 tags/vscode/index.html create mode 100644 tags/vscode/index.xml create mode 100644 tailwind.css create mode 100644 tutorial/01.png create mode 100644 tutorial/01b.png create mode 100644 tutorial/01c.png create mode 100644 tutorial/02a.png create mode 100644 tutorial/02b.png create mode 100644 tutorial/03.png create mode 100644 tutorial/04a.png create mode 100644 tutorial/05a.png create mode 100644 tutorial/05b.png create mode 100644 tutorial/06.png diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..96d8eaa --- /dev/null +++ b/404.html @@ -0,0 +1 @@ +

404 Not Found

\ No newline at end of file diff --git a/articles/build-widget-with-async-method-call/index.html b/articles/build-widget-with-async-method-call/index.html new file mode 100644 index 0000000..8fcd529 --- /dev/null +++ b/articles/build-widget-with-async-method-call/index.html @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + How to Build Widgets with an Async Method Call - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ How to Build Widgets with an Async Method Call +

+ + + +
+

You want to return a widget in a build method…

+

But your data comes from an async function!

+
class MyWidget extends StatelessWidget {
+  @override
+  Widget build(context) {
+    callAsyncFetch().then((data) {
+      return Text(data);  // doesn't work
+    });
+  }
+}
+

The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮.

+

So, can we make the build method async? 🤔

+
class MyWidget extends StatelessWidget {
+  @override
+  Future<Widget> build(context) async {
+    var data = await callAsyncFetch();
+    return Text(data);  // doesn't work either
+  }
+}
+

Not possible! A widget’s build “sync” method will NOT wait for you while you fetch data 🙁

+

(You might even get a type 'Future' is not a subtype of type kind of error.)

+

🛠 How do we fix this with Flutter best practices?

+

Meet FutureBuilder:

+
class MyWidget extends StatelessWidget {
+  @override
+  Widget build(context) {
+    return FutureBuilder<String>(
+      future: callAsyncFetch(),
+      builder: (context, AsyncSnapshot<String> snapshot) {
+        if (snapshot.hasData) {
+          return Text(snapshot.data);
+        } else {
+          return CircularProgressIndicator();
+        }
+      }
+    );
+  }
+}
+

It takes our Future as argument, as well as a builder (it’s basically a delegate called by the widget’s build method). The builder will be called immediately, and again when our future resolves with either data or an error.

+

An AsyncSnapshot<T> is simply a representation of that data/error state. This is actually a useful API!

+

If we get a new snapshot with:

+
    +
  • 📭 no data… we show a progress indicator
  • +
  • data from our future… we use it to feed any widgets for display!
  • +
  • error from our future… we show an appropriate message
  • +
+
+ Do you think the answer to this problem is a StatefulWidget? Yes, it’s a possible solution but not an ideal one. Keep on reading and we’ll see why. +
+

Click Run and see it for yourself!

+ +
+ +
+ +

It will show a circular progress indicator while the future resolves (about 2 seconds) and then display data. Problem solved!

+

🎩 Under the hood: FutureBuilder

+

FutureBuilder itself is built on top of StatefulWidget! Attempting to solve this problem with a StatefulWidget is not wrong but simply lower-level and more tedious.

+

Check out the simplified and commented-by-me source code:

+

(I removed bits and pieces for illustration purposes)

+
// FutureBuilder *is* a stateful widget
+class FutureBuilder<T> extends StatefulWidget {
+
+  // it takes in a `future` and a `builder`
+  const FutureBuilder({
+    this.future,
+    this.builder
+  });
+
+  final Future<T> future;
+
+  // the AsyncWidgetBuilder<T> type is a function(BuildContext, AsyncSnapshot<T>) which returns Widget
+  final AsyncWidgetBuilder<T> builder;
+
+  @override
+  State<FutureBuilder<T>> createState() => _FutureBuilderState<T>();
+}
+
+class _FutureBuilderState<T> extends State<FutureBuilder<T>> {
+  // keeps state in a local variable (so far there's no data)
+  AsyncSnapshot<T> _snapshot = null;
+
+  @override
+  void initState() {
+    super.initState();
+
+    // wait for the future to resolve:
+    //  - if it succeeds, create a new snapshot with the data
+    //  - if it fails, create a new snapshot with the error
+    // in both cases `setState` will trigger a new build!
+    widget.future.then<void>((T data) {
+      setState(() { _snapshot = AsyncSnapshot<T>(data); });
+    }, onError: (Object error) {
+      setState(() { _snapshot = AsyncSnapshot<T>(error); });
+    });
+  }
+
+  // builder is called with every `setState` (so it reacts to any event from the `future`)
+  @override
+  Widget build(BuildContext context) => widget.builder(context, _snapshot);
+
+  @override
+  void didUpdateWidget(FutureBuilder<T> oldWidget) {
+    // compares old and new futures!
+  }
+
+  @override
+  void dispose() {
+    // ...
+    super.dispose();
+  }
+}
+

Very simple, right? This is likely similar to what you tried when using a StatefulWidget. Of course, for the real, battle-tested source code see FutureBuilder.

+

Before wrapping up… 🎁

+

From the docs

+
+

If the future is created at the same time as the FutureBuilder, then every time the FutureBuilder’s parent is rebuilt, the asynchronous task will be restarted.

+
+
Widget build(context) {
+  return FutureBuilder<String>(
+    future: callAsyncFetch(),
+

Does this mean callAsyncFetch() will be called many times?

+

In this small example, there is no reason for the parent to rebuild (nothing changes) but in general you should assume it does. See Why is my Future/Async Called Multiple Times?.

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/checking-null-aware-operators-dart/index.html b/articles/checking-null-aware-operators-dart/index.html new file mode 100644 index 0000000..9974beb --- /dev/null +++ b/articles/checking-null-aware-operators-dart/index.html @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + Checking Nulls and Null-Aware Operators in Dart - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Checking Nulls and Null-Aware Operators in Dart +

+ + + +
+

What is the best practice for checking nulls in Dart?

+
var value = maybeSomeNumber();
+
+if (value != null) {
+  doSomething();
+}
+

That’s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values.

+

However! There are some very interesting null-aware operators.

+

Default operator: ??

+

In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2:

+
value = maybeSomeNumber() || 2
+

In Dart we can’t do this because the expression needs to be a boolean (“the operands of the || operator must be assignable to bool").

+

That’s why the ?? operator exists:

+
var value = maybeSomeNumber() ?? 2;
+

Similarly, if we wanted to ensure a value argument was not-null we’d do:

+
value = value ?? 2;
+

But there’s an even simpler way.

+

Fallback assignment operator: ??=

+
value ??= 2;
+

Much like Ruby’s ||=, it assigns a value if the variable is null.

+

Here’s an example of a very concise cache-based factory constructor using this operator:

+
class Robot {
+  final double height;
+
+  static final _cache = <double, Robot>{};
+
+  Robot._(this.height);
+
+  factory Robot(height) {
+    return _cache[height] ??= Robot._(height);
+  }
+}
+

More generally, ??= is useful when defining computed properties:

+
get value => _value ??= _computeValue();
+

Safe navigation operator: ?.

+

Otherwise known as the Elvis operator. I first saw this in the Groovy language.

+
def value = person?.address?.street?.value
+

If any of person, address or street are null, the whole expression returns null. Otherwise, value is called and returned.

+

In Dart it’s exactly the same!

+
final value = person?.address?.street?.value;
+

If address was a method instead of a getter, it would work just the same:

+
final value = person?.getAddress()?.street?.value;
+

groovy

+

Optional spread operator: ...?

+

Lastly, this one only inserts a list into another only if it’s not-null.

+
List<int> additionalZipCodes = [33110, 33121, 33320];
+List<int> optionalZipCodes = fetchZipCodes();
+final zips = [10001, ...additionalZipCodes, ...?optionalZipCodes];
+print(zips);  /* [10001, 33110, 33121, 33320]  if fetchZipCodes() returns null */
+

Tryin' it out

+ +
+ +
+ +

Non-nullable types

+

Right now, null can be assigned to any assignable variable.

+

There are plans to improve the Dart language and include NNBD (non-nullable by default).

+

For a type to allow null values, a special syntax will be required.

+

The following will throw an error:

+
int value = someNumber();
+value = null;
+

And fixed by specifying the int? type:

+
int? value = someNumber();
+value = null;
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/configure-get-it/index.html b/articles/configure-get-it/index.html new file mode 100644 index 0000000..42dc3f1 --- /dev/null +++ b/articles/configure-get-it/index.html @@ -0,0 +1,258 @@ + + + + + + + + + + + + + + + + + + + + Configure Flutter Data to Work with GetIt - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Configure Flutter Data to Work with GetIt +

+ + + +
+

This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework.

+

Important: Make sure to replicate ProxyProviders for other models than Todo.

+
class GetItTodoApp extends StatelessWidget {
+  @override
+  Widget build(context) {
+    GetIt.instance.registerRepositories();
+    return MaterialApp(
+      home: Scaffold(
+        body: Center(
+          child: FutureBuilder(
+            future: GetIt.instance.allReady(),
+            builder: (context, snapshot) {
+              if (!snapshot.hasData) {
+                return const CircularProgressIndicator();
+              }
+              final repository = GetIt.instance.get<Repository<Todo>>();
+              return GestureDetector(
+                onDoubleTap: () async {
+                  print((await repository.findOne(1, remote: false))?.title);
+                  final todo = await Todo(id: 1, title: 'blah')
+                      .init(_)
+                      .save(remote: false);
+                  print(keyFor(todo));
+                },
+                child: Text('Hello Flutter Data with GetIt! $repository'),
+              );
+            },
+          ),
+        ),
+      ),
+    );
+  }
+}
+
+// we can do this as this function will never be called
+T _<T>(ProviderBase<T> provider) => null as T;
+
+extension GetItFlutterDataX on GetIt {
+  void registerRepositories(
+      {FutureFn<String>? baseDirFn,
+      List<int>? encryptionKey,
+      bool clear = false,
+      bool? remote,
+      bool? verbose}) {
+    final i = GetIt.instance;
+
+    final _container = ProviderContainer(
+      overrides: [
+        configureRepositoryLocalStorage(
+            baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
+      ],
+    );
+
+    if (i.isRegistered<RepositoryInitializer>()) {
+      return;
+    }
+
+    i.registerSingletonAsync<RepositoryInitializer>(() async {
+      final init = _container.read(
+          repositoryInitializerProvider(remote: remote, verbose: remote)
+              .future);
+      internalLocatorFn =
+          <T extends DataModel<T>>(Provider<Repository<T>> provider, _) =>
+              _container.read(provider);
+      return init;
+    });
+    i.registerSingletonWithDependencies<Repository<Todo>>(
+        () => _container.read(todosRepositoryProvider),
+        dependsOn: [RepositoryInitializer]);
+  }
+}
+

See this in action with the Flutter Data setup app!

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/configure-provider/index.html b/articles/configure-provider/index.html new file mode 100644 index 0000000..682c1d7 --- /dev/null +++ b/articles/configure-provider/index.html @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + Configure Flutter Data to Work with Provider - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Configure Flutter Data to Work with Provider +

+ + + +
+

This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework.

+

Important: Make sure to replicate ProxyProviders for other models than Todo.

+
class ProviderTodoApp extends StatelessWidget {
+  @override
+  Widget build(context) {
+    return MultiProvider(
+      providers: [
+        ...providers(clear: true),
+        ProxyProvider<Repository<Todo>?, SessionService?>(
+          lazy: false,
+          create: (_) => SessionService(),
+          update: (context, repository, service) {
+            if (service != null && repository != null) {
+              return service..initialize(repository);
+            }
+            return service;
+          },
+        ),
+      ],
+      child: MaterialApp(
+        home: Scaffold(
+          body: Center(
+            child: Builder(
+              builder: (context) {
+                if (context.watch<RepositoryInitializer?>() == null) {
+                  // optionally also check
+                  // context.watch<SessionService>.repository != null
+                  return const CircularProgressIndicator();
+                }
+                final repository = context.watch<Repository<Todo>?>();
+                return GestureDetector(
+                  onDoubleTap: () async {
+                    print((await repository!.findOne(1, remote: false))?.title);
+                    final todo = await Todo(id: 1, title: 'blah')
+                        .init(context.read<ProviderContainer>().read)
+                        .save(remote: false);
+                    print(keyFor(todo));
+                  },
+                  child: Text('Hello Flutter Data with Provider! $repository'),
+                );
+              },
+            ),
+          ),
+        ),
+      ),
+    );
+  }
+}
+
+List<SingleChildWidget> providers(
+    {FutureFn<String>? baseDirFn,
+    List<int>? encryptionKey,
+    bool? clear,
+    bool? remote,
+    bool? verbose}) {
+  return [
+    Provider(
+      create: (_) => ProviderContainer(
+        overrides: [
+          configureRepositoryLocalStorage(
+              baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
+        ],
+      ),
+    ),
+    FutureProvider<RepositoryInitializer?>(
+      initialData: null,
+      create: (context) async {
+        return await Provider.of<ProviderContainer>(context, listen: false)
+            .read(
+          repositoryInitializerProvider(remote: remote, verbose: verbose)
+              .future,
+        );
+      },
+    ),
+    ProxyProvider<RepositoryInitializer?, Repository<Todo>?>(
+      lazy: false,
+      update: (context, i, __) => i == null
+          ? null
+          : Provider.of<ProviderContainer>(context, listen: false)
+              .read(todosRepositoryProvider),
+      dispose: (_, r) => r?.dispose(),
+    ),
+  ];
+}
+

See this in action with the Flutter Data setup app!

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/custom-deserialization-adapter/index.html b/articles/custom-deserialization-adapter/index.html new file mode 100644 index 0000000..4f775ea --- /dev/null +++ b/articles/custom-deserialization-adapter/index.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + Custom Deserialization Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Custom Deserialization Adapter +

+ + + +
+

Example:

+
mixin AuthAdapter on RemoteAdapter<User> {
+  Future<String> login(String email, String password) async {
+    return sendRequest(
+      baseUrl.asUri / 'token',
+      method: DataRequestMethod.POST,
+      body: json.encode({'email': email, 'password': password}),
+      onSuccess: (data) => data['token'] as String,
+    );
+  }
+}
+

and use it:

+
final token = await userRepository.authAdapter.login('e@mail, p*ssword');
+

Also see JSONAPIAdapter for inspiration.

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/dart-final-const-difference/index.html b/articles/dart-final-const-difference/index.html new file mode 100644 index 0000000..75edbd3 --- /dev/null +++ b/articles/dart-final-const-difference/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + Final vs const in Dart - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Final vs const in Dart +

+ + + +
+

What’s the difference between final and const in Dart?

+

Easy!

+

Final means single-assignment.

+

Const means immutable.

+

Let’s see an example:

+
final _final = [2, 3];
+const _const = [2, 3];
+_final = [4,5]; // ERROR: can't re-assign
+_final.add(6); // OK: can mutate
+_const.add(6); // ERROR: can't mutate
+
+ Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! +
+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/dart-getter-cache-computed-properties/index.html b/articles/dart-getter-cache-computed-properties/index.html new file mode 100644 index 0000000..365a1f1 --- /dev/null +++ b/articles/dart-getter-cache-computed-properties/index.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + Dart Getter Shorthand to Cache Computed Properties - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Dart Getter Shorthand to Cache Computed Properties +

+ + + +
+

An elegant Dart getter shorthand used to cache computed properties:

+
T get foo => _foo ??= _computeFoo();
+
+// which depends on having
+T _foo;
+T _computeFoo() => /** ... **/;
+

It makes use of the fallback assignment operator ??=.

+
+ Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! +
+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/deconstructing-dart-constructors/featured-mini.jpg b/articles/deconstructing-dart-constructors/featured-mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c0e06168fa5872681b1fb9a9cf25c17ba7e826b3 GIT binary patch literal 15127 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 RRsS<_U1-58Is0Me-e1Ud58VI& literal 0 HcmV?d00001 diff --git a/articles/deconstructing-dart-constructors/index.html b/articles/deconstructing-dart-constructors/index.html new file mode 100644 index 0000000..51be7f1 --- /dev/null +++ b/articles/deconstructing-dart-constructors/index.html @@ -0,0 +1,741 @@ + + + + + + + + + + + + + + + + + + + + Deconstructing Dart Constructors - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Deconstructing Dart Constructors +

+ + + +
+

Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories…

+

Read this post and you will become an expert!

+

Photo by Arseny Togulev on Unsplash

+

When we want an instance of a certain class we call a constructor, right?

+
var robot = new Robot();
+

In Dart 2 we can leave out the new:

+
var robot = Robot();
+

A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:

+
class Robot {
+  Robot();
+}
+

This constructor has no arguments so we can leave it out and write:

+
class Robot {
+}
+

The default constructor is implicitly defined.

+
+ Did you know you can try out Dart and Flutter code in DartPad? +
+

Initializing…

+

Most times we need to configure our instances. For example, pass in the height of a robot:

+
var r = Robot(5);
+

r is now a 5-feet tall Robot.

+

To write that constructor we include the height field after the colon :

+
class Robot {
+  double height;
+  Robot(height) : this.height = height;
+}
+

or even

+
class Robot {
+  double height;
+  Robot(data) : this.height = data.physics.raw['heightInFt'];
+}
+

This is called an initializer. It accepts a comma-separated list of expressions that initialize fields with arguments.

+

Fortunately, Dart gives us a shortcut. If the field name and type are the same as the argument in the constructor, we can do:

+
class Robot {
+  double height;
+  Robot(this.height);
+}
+

Imagine that the height field is expressed in feet and we want clients to supply the height in meters. Dart also allows us to initialize fields with computations from static methods (as they don’t depend on an instance of the class):

+
class Robot {
+  static mToFt(m) => m * 3.281;
+  double height; // in ft
+  Robot(height) : this.height = mToFt(height);
+}
+

Sometimes we must call super constructors when initializing:

+
class Machine {
+  String name;
+  Machine(this.name);
+}
+
+class Robot extends Machine {
+  static mToFt(m) => m * 3.281;
+  double height;
+  Robot(height, name) : this.height = mToFt(height), super(name);
+}
+

Notice that super(...) must always be the last call in the initializer.

+

And if we needed to add more complex guards (than types) against a malformed robot, we can use assert:

+
class Robot {
+  final double height;
+  Robot(height) : this.height = height, assert(height > 4.2);
+}
+

Accessors and mutators

+

Back to our earlier robot definition:

+
class Robot {
+  double height;
+  Robot(this.height);
+}
+
+void main() {
+  var r = Robot(5);
+  print(r.height); // 5
+}
+

Let’s make it taller:

+
void main() {
+  var r = Robot(5);
+  r.height = 6;
+  print(r.height); // 6
+}
+

But robots don’t grow, their height is constant! Let’s prevent anyone from modifying the height by making the field private.

+

In Dart, there is no private keyword. Instead, we use a convention: field names starting with _ are private (library-private, actually).

+
class Robot {
+  double _height;
+  Robot(this._height);
+}
+

Great! But now there is no way to access r.height. We can make the height property read-only by adding a getter:

+
class Robot {
+  double _height;
+  Robot(this._height);
+
+  get height {
+    return this._height;
+  }
+}
+

Getters are functions that take no arguments and conform to the uniform access principle.

+

We can simplify our getter by using two shortcuts: single expression syntax (fat arrow) and implicit this:

+
class Robot {
+  double _height;
+  Robot(this._height);
+
+  get height => _height;
+}
+

Actually, we can think of public fields as private fields with getters and setters. That is:

+
class Robot {
+  double height;
+  Robot(this.height);
+}
+

is equivalent to:

+
class Robot {
+  double _height;
+  Robot(this._height);
+
+  get height => _height;
+  set height(value) => _height = value;
+}
+

Keep in mind initializers only assign values to fields and it is therefore not possible to use a setter in an initializer:

+
class Robot {
+  double _height;
+  Robot(this.height); // ERROR: 'height' isn't a field in the enclosing class
+
+  get height => _height;
+  set height(value) => _height = value;
+}
+

Constructor bodies

+

+

If a setter needs to be called, we’ll have to do that in a constructor body:

+
class Robot {
+  double _height;
+
+  Robot(h) {
+    height = h;
+  }
+
+  get height => _height;
+  set height(value) => _height = value;
+}
+

We can do all sorts of things in constructor bodies, but we can’t return a value!

+
class Robot {
+  double height;
+  Robot(this.height) {
+    return this; // ERROR: Constructors can't return values
+  }
+}
+

Final fields

+

Final fields are fields that can only be assigned once.

+
final r = Robot(5);
+r = Robot(7); /* ERROR */
+

Inside our class, we won’t be able to use the setter:

+
class Robot {
+  final double _height;
+  Robot(this._height);
+
+  get height => _height;
+  set height(value) => _height = value; // ERROR
+}
+
+

Just like with var, we can use final before any type definition:

+
var r;
+var Robot r;
+
+final r;
+final Robot r;
+
+
+

The following won’t work because height, being final, must be initialized. And initialization happens before the constructor body is run:

+
class Robot {
+  final double height;
+
+  Robot(double height) {
+    this.height = height; // ERROR: The final variable 'height' must be initialized
+  }
+}
+

Let’s fix it:

+
class Robot {
+  final double height;
+  Robot(this.height);
+}
+

Default values

+

If most robots are 5-feet tall then we can avoid specifying the height each time. We can make an argument optional and provide a default value:

+
class Robot {
+  final double height;
+  Robot([this.height = 5]);
+}
+

So we can just call:

+
void main() {
+  var r = Robot();
+  print(r.height); // 5
+
+  var r2d2 = Robot(3.576);
+  print(r2d2.height); // 3.576
+}
+

+

Immutable robots

+

Our robots clearly have more attributes than a height. Let’s add some more!

+
class Robot {
+  final double height;
+  final double weight;
+  final String name;
+
+  Robot(this.height, this.weight, this.name);
+}
+
+void main() {
+  final r = Robot(5, 170, "Walter");
+  r.name = "Steve"; // ERROR
+}
+

As all fields are final, our robots are immutable! Once they are initialized, their attributes can’t be changed.

+

Now let’s imagine that robots respond to many different names:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  Robot(this.height, this.weight, this.names);
+}
+
+void main() {
+  final r = Robot(5, 170, ["Walter"]);
+  print(r.names..add("Steve")); // [Walter, Steve]
+}
+

Dang, using a List made our robot mutable again!

+

We can solve this with a const constructor:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  const Robot(this.height, this.weight, this.names);
+}
+
+void main() {
+  final r = const Robot(5, 170, ["Walter"]);
+  print(r.names..add("Steve")); // ERROR: Unsupported operation: add
+}
+

const can only be used with expressions that can be computed at compile time. Take the following example:

+
import 'dart:math';
+
+class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  const Robot(this.height, this.weight, this.names);
+}
+
+void main() {
+  final r = const Robot(5, 170, ["Walter", Random().nextDouble().toString()]); // ERROR: Invalid constant value
+}
+

const instances are canonicalized which means that equal instances point to the same object in memory space when running.

+

For example this is a “cheap” operation:

+
void main() {
+  [for(var i = 0; i < 20000; i += 1) Robot(5, 170, ["Walter"])];
+}
+

And yes, using const constructors can improve performance in Flutter applications.

+ +

Optional arguments always last!

+

If we wanted the weight argument to be optional we’d have to declare it at the end:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  const Robot(this.height, this.names, [this.weight = 170]);
+}
+
+void main() {
+  final r = Robot(5, ["Walter"]);
+  print(r.weight); // 170
+}
+

Naming things

+

Having to construct a robot like Robot(5, ["Walter"]) is not very explicit.

+

Dart has named arguments! Naturally, they can be provided in any order and are all optional by default:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  Robot({ this.height, this.weight, this.names });
+}
+
+void main() {
+  final r = Robot(height: 5, names: ["Walter"]);
+  print(r.height); // 5
+}
+

But we can annotate a field with @required:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  Robot({ this.height, @required this.weight, this.names });
+}
+

(or use assert(weight != null) in the initializer for a runtime check!)

+

Naming things with defaults

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  Robot({ this.height = 7, this.weight = 100, this.names = const [] });
+}
+
+void main() {
+  print(Robot().height); // 7
+  print(Robot().weight); // 100
+  print(Robot().names); // []
+}
+

It’s important to note that these default values must be constant!

+

Alternatively, we can use the ?? (“if-null”) operator in the assignment to provide any constant or static computation:

+
class Robot {
+  final double height;
+  final double weight;
+  final List<String> names;
+
+  Robot({ height, weight, this.names = const [] }) : height = height ?? 7, weight = weight ?? int.parse("100");
+}
+
+void main() {
+  print(Robot().height); // 7
+  print(Robot().weight); // 100
+}
+

How about making the attributes private?

+
class Robot {
+  final double _height;
+  final double _weight;
+  final List<String> _names;
+
+  Robot({ this._height, this._weight, this._names }); // ERROR: Named optional parameters can't start with an underscore
+}
+

It fails! Unlike with positional arguments, we need to specify the mappings in the initializer:

+
class Robot {
+  final double _height;
+  final double _weight;
+  final List<String> _names;
+
+  Robot({ height, weight, names }) : _height = height, _weight = weight, _names = names;
+
+  get height => _height;
+  get weight => _weight;
+  get names => _names;
+}
+
+void main() {
+  print(Robot(height: 5).height); // 5
+}
+

Mixing it up

+

Both positional and named argument styles can be used together:

+
class Robot {
+  final double _height;
+  final double _weight;
+  final List<String> _names;
+
+  Robot(height, { weight, names }) :
+    _height = height,
+    _weight = weight,
+    _names = names;
+
+  get height => _height;
+  get weight => _weight;
+}
+
+void main() {
+  var r = Robot(7, weight: 120);
+  print(r.height); // 7
+  print(r.weight); // 120
+}
+

Named constructors

+

Not only can arguments be named. We can give names to any number of constructors:

+
class Robot {
+  final double height;
+  Robot(this.height);
+
+  Robot.fromPlanet(String planet) : height = (planet == 'geonosis') ? 2 : 7;
+  Robot.copy(Robot other) : this(other.height);
+}
+
+void main() {
+  print(Robot.copy(Robot(7)).height); // 7
+  print(new Robot.fromPlanet('geonosis').height); // 2
+  print(new Robot.fromPlanet('earth').height); // 7
+}
+

What happened in copy? We used this to call the default constructor, effectively “redirecting” the instantiation.

+

(new is optional but I sometimes like to use it, since it clearly states the intent.)

+

Invoking named super constructors works as expected:

+
class Machine {
+  String name;
+  Machine();
+  Machine.named(this.name);
+}
+
+class Robot extends Machine {
+  final double height;
+  Robot(this.height);
+
+  Robot.named({ height, name }) : this.height = height, super.named(name);
+}
+
+void main() {
+  print(Robot.named(height: 7, name: "Walter").name); // Walter
+}
+

Note that named constructors require an unnamed constructor to be defined!

+

Keeping it private

+

But what if we didn’t want to expose a public constructor? Only named?

+

We can make a constructor private by prefixing it with an underscore:

+
class Robot {
+  Robot._();
+}
+

Applying this knowledge to our previous example:

+
class Machine {
+  String name;
+  Machine._();
+  Machine.named(this.name);
+}
+
+class Robot extends Machine {
+  final double height;
+  Robot._(this.height, name) : super.named(name);
+
+  Robot.named({ height, name }) : this._(height, name);
+}
+
+void main() {
+  print(Robot.named(height: 7, name: "Walter").name); // Walter
+}
+

The named constructor is “redirecting” to the private default constructor (which in turn delegates part of the creation to its Machine ancestor).

+

Consumers of this API only see Robot.named() as a way to get robot instances.

+

A robot factory

+

+

We said constructors were not allowed to return. Guess what?

+

Factory constructors can!

+
class Robot {
+  final double height;
+
+  Robot._(this.height);
+
+  factory Robot() {
+    return Robot._(7);
+  }
+}
+
+void main() {
+  print(Robot().height); // 7
+}
+

Factory constructors are syntactic sugar for the “factory pattern”, usually implemented with static functions.

+

They appear like a constructor from the outside (useful for example to avoid breaking API contracts), but internally they can delegate instance creation invoking a “normal” constructor. This explains why factory constructors do not have initializers.

+

Since factory constructors can return other instances (so long as they satisfy the interface of the current class), we can do very useful things like:

+
    +
  • caching: conditionally returning existing objects (they might be expensive to create)
  • +
  • subclasses: returning other instances such as subclasses
  • +
+

They work with both normal and named constructors!

+

Here’s our robot warehouse, that only supplies one robot per height:

+
class Robot {
+  final double height;
+
+  static final _cache = <double, Robot>{};
+
+  Robot._(this.height);
+
+  factory Robot(height) {
+    return _cache[height] ??= Robot._(height);
+  }
+}
+
+void main() {
+  final r1 = Robot(7);
+  final r2 = Robot(7);
+  final r3 = Robot(9);
+
+  print(r1.height); // 7
+  print(r2.height); // 7
+  print(identical(r1, r2)); // true
+  print(r3.height); // 9
+  print(identical(r2, r3)); // false
+}
+

Finally, to demonstrate how a factory would instantiate subclasses, let’s create different robot brands that calculate prices as a function of height:

+
abstract class Robot {
+  factory Robot(String brand) {
+    if (brand == 'fanuc') return Fanuc(2);
+    if (brand == 'yaskawa') return Yaskawa(9);
+    if (brand == 'abb') return ABB(7);
+    throw "no brand found";
+  }
+  double get price;
+}
+
+class Fanuc implements Robot {
+  final double height;
+  Fanuc(this.height);
+  double get price => height * 2922.21;
+}
+
+class Yaskawa implements Robot {
+  final double height;
+  Yaskawa(this.height);
+  double get price => height * 1315 + 8992;
+}
+
+class ABB implements Robot {
+  final double height;
+  ABB(this.height);
+  double get price => height * 2900 - 7000;
+}
+
+void main() {
+  try {
+    print(Robot('fanuc').price); // 5844.42
+    print(Robot('abb').price); // 13300
+    print(Robot('flutter').price);
+  } catch (err) {
+    print(err); // no brand found
+  }
+}
+

Singletons

+

Singletons are classes that only ever create one instance. We think of this as a specific case of caching!

+

Let’s implement the singleton pattern in Dart:

+
class Robot {
+  static final Robot _instance = new Robot._(7);
+  final double height;
+
+  factory Robot() {
+    return _instance;
+  }
+
+  Robot._(this.height);
+}
+
+void main() {
+  var r1 = Robot();
+  var r2 = Robot();
+  print(identical(r1, r2)); // true
+  print(r1 == r2); // true
+}
+

The factory constructor Robot(height) simply always returns the one and only instance that was created when loading the Robot class. (So in this case, I prefer not to use new before Robot.)

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/define-interface-dart/index.html b/articles/define-interface-dart/index.html new file mode 100644 index 0000000..8c928bb --- /dev/null +++ b/articles/define-interface-dart/index.html @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + How To Define an Interface in Dart - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ How To Define an Interface in Dart +

+ + + +
+

Dart defines implicit interfaces. What does this mean?

+

In your app you’d have:

+
class Session {
+  authenticate() { // impl }
+}
+

or

+
abstract class Session {
+  authenticate();
+}
+

And for example in tests:

+
class MockSession implements Session {
+  authenticate() { // mock impl }
+}
+

No need to define a separate interface, just use regular or abstract classes!

+
+ Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! +
+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/future-async-called-multiple-times/index.html b/articles/future-async-called-multiple-times/index.html new file mode 100644 index 0000000..2239f3e --- /dev/null +++ b/articles/future-async-called-multiple-times/index.html @@ -0,0 +1,310 @@ + + + + + + + + + + + + + + + + + + + + Why Is My Future/Async Called Multiple Times? - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Why Is My Future/Async Called Multiple Times? +

+ + + +
+

Why is FutureBuilder firing multiple times? My future should be called just once!

+

It appears that this build method is rebuilding unnecessarily:

+
@override
+Widget build(context) {
+  return FutureBuilder<String>(
+    future: callAsyncFetch(), // called all the time!!! 😡
+    builder: (context, snapshot) {
+      // rebuilding all the time!!! 😡
+    }
+  );
+}
+

This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example.

+

Well, let me tell you something…

+

This is not a bug 🐞, it’s a feature ✅!

+

Let’s quickly see why… and how to fix it!

+

Understanding the problem

+

Imagine the FutureBuilder’s parent is a ListView. This is what happens:

+
    +
  • 🧻 User scrolls list
  • +
  • 🔥 build fires many times per second to update the screen
  • +
  • callAsyncFetch() gets invoked once per build returning new Futures every time
  • +
  • = didUpdateWidget in the FutureBuilder compares old and new Futures; if different it calls the builder again
  • +
  • 😩 Since instances are always new (always different to the old one) the builder refires once for every call to the parent’s build… that is, A LOT
  • +
+

(Remember: Flutter is a declarative framework. This means it will paint the screen as many times as needed to reflect the UI you declared, based on the latest state)

+

A quick fix 🔧

+

We clearly must take the Future out of this build method!

+

A simple approach is by introducing a StatefulWidget where we stash our Future in a variable. Now every rebuild will make reference to the same Future instance:

+
class MyWidget extends StatefulWidget {
+  @override
+  _MyWidgetState createState() => _MyWidgetState();
+}
+
+class _MyWidgetState extends State<MyWidget> {
+  Future<String> _future;
+
+  @override
+  void initState() {
+    _future = callAsyncFetch();
+    super.initState();
+  }
+
+  @override
+  Widget build(context) {
+    return FutureBuilder<String>(
+      future: _future,
+      builder: (context, snapshot) {
+        // ...
+      }
+    );
+  }
+}
+

We’re caching a value (in other words, memoizing) such that the build method can now call our code a million times without problems.

+

Live example

+

Here we have a sample parent widget that rebuilds every 3 seconds. It’s meant to represent any widget that triggers rebuilds like, for example, a user scrolling a ListView.

+

The screen is split in two:

+
    +
  • Top: a StatelessWidget containing a FutureBuilder. It’s fed a new Future that resolves to the current date in seconds
  • +
  • Bottom: a StatefulWidget containing a FutureBuilder. A new Future (that also resolves to the current date in seconds) is cached in the State object. This cached Future is passed into the FutureBuilder
  • +
+

Hit Run and see the difference (wait at least 3 seconds). Rebuilds are also logged to the console.

+ +
+ +
+ +

The top future (stateless) gets called and triggered all the time (every 3 seconds in this example).

+

The bottom (stateful) can be called any amount of times without changing.

+

Cleaner ways 🛀

+

Are you using Provider by any chance? You can simply use a FutureProvider instead of the StatefulWidget above:

+
class MyWidget extends StatelessWidget {
+  // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
+  @override
+  Widget build(BuildContext context) {
+    // print('building widget');
+    return FutureProvider<String>(
+      create: (_) {
+        // print('calling future');
+        return callAsyncFetch();
+      },
+      child: Consumer<String>(
+        builder: (_, value, __) => Text(value ?? 'Loading...'),
+      ),
+    );
+  }
+}
+

Much nicer, if you ask me.

+
+ Tip! It’s a fully functional example. Comment out those lines and try it out in your own editor! +
+

Another option is using the fantastic Flutter Hooks library with the useMemoized hook for the memoization (caching):

+
class MyWidget extends HookWidget {
+  @override
+  Widget build(BuildContext context) {
+    final future = useMemoized(() {
+      // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
+      callAsyncFetch(); // or your own async function
+    });
+    return FutureBuilder<String>(
+      future: future,
+      builder: (context, snapshot) {
+        return Text(snapshot.hasData ? snapshot.data : 'Loading...');
+      }
+    );
+  }
+}
+

Takeaway

+

Your build methods should always be pure, that is, never have side-effects (like updating state, calling async functions).

+

Remember that builders are ultimately called by build!

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/how-to-format-duration/index.html b/articles/how-to-format-duration/index.html new file mode 100644 index 0000000..b966df6 --- /dev/null +++ b/articles/how-to-format-duration/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + How to Format a Duration as a HH:MM:SS String - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ How to Format a Duration as a HH:MM:SS String +

+ + + +
+

The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing:

+
format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
+

Example usage:

+
main() {
+  final d1 = Duration(hours: 17, minutes: 3);
+  final d2 = Duration(hours: 9, minutes: 2, seconds: 26);
+  final d3 = Duration(milliseconds: 0);
+  print(format(d1)); // 17:03:00
+  print(format(d2)); // 09:02:26
+  print(format(d3)); // 00:00:00
+}
+

If we are dealing with smaller durations and needed only minutes and seconds:

+
format(Duration d) => d.toString().substring(2, 7);
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/index.html b/articles/index.html new file mode 100644 index 0000000..43e17bb --- /dev/null +++ b/articles/index.html @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/index.xml b/articles/index.xml new file mode 100644 index 0000000..8eefd15 --- /dev/null +++ b/articles/index.xml @@ -0,0 +1,264 @@ + + + + Flutter Data + /articles/ + Recent content on Flutter Data + Hugo -- gohugo.io + en-us + Thu, 09 Dec 2021 23:17:30 -0300 + + Nested Resources Adapter + /articles/nested-resources-adapter/ + Thu, 09 Dec 2021 23:17:30 -0300 + + /articles/nested-resources-adapter/ + Here&rsquo;s how you could access nested resources such as: /posts/1/comments +mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); + + + + Custom Deserialization Adapter + /articles/custom-deserialization-adapter/ + Thu, 09 Dec 2021 23:15:44 -0300 + + /articles/custom-deserialization-adapter/ + Example: +mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. + + + + Intercept Logout Adapter + /articles/intercept-logout-adapter/ + Thu, 09 Dec 2021 23:15:11 -0300 + + /articles/intercept-logout-adapter/ + The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } + + + + Override findAll Adapter + /articles/override-findall-adapter/ + Thu, 09 Dec 2021 23:14:28 -0300 + + /articles/override-findall-adapter/ + In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } + + + + Override findOne URL Adapter + /articles/override-findone-url-method/ + Thu, 09 Dec 2021 23:14:28 -0300 + + /articles/override-findone-url-method/ + In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } + + + + Iterator Style Adapter + /articles/iterator-style-adapter/ + Thu, 09 Dec 2021 23:13:36 -0300 + + /articles/iterator-style-adapter/ + mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); + + + + Override HTTP Client Adapter + /articles/override-http-client-adapter/ + Thu, 09 Dec 2021 23:10:10 -0300 + + /articles/override-http-client-adapter/ + An example on how to override and use a more advanced HTTP client. +Here the connectionTimeout is increased, and an HTTP proxy enabled. +mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient! + + + + Override Default Headers and Query Parameters + /articles/override-headers-query-parameters/ + Thu, 09 Dec 2021 23:07:40 -0300 + + /articles/override-headers-query-parameters/ + Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. +Here is how: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super. + + + + Configure Flutter Data to Work with GetIt + /articles/configure-get-it/ + Sun, 05 Dec 2021 23:12:05 -0300 + + /articles/configure-get-it/ + This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. +Important: Make sure to replicate ProxyProviders for other models than Todo. +class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository. + + + + Configure Flutter Data to Work with Provider + /articles/configure-provider/ + Sun, 05 Dec 2021 23:12:05 -0300 + + /articles/configure-provider/ + This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. +Important: Make sure to replicate ProxyProviders for other models than Todo. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context. + + + + Override Base URL Adapter + /articles/override-base-url/ + Fri, 03 Dec 2021 18:45:45 -0300 + + /articles/override-base-url/ + Flutter Data is extended via adapters. +mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } + + + + Deconstructing Dart Constructors + /articles/deconstructing-dart-constructors/ + Wed, 12 Feb 2020 13:43:48 -0500 + + /articles/deconstructing-dart-constructors/ + Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +Read this post and you will become an expert! +When we want an instance of a certain class we call a constructor, right? +var robot = new Robot(); In Dart 2 we can leave out the new: +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: + + + + Dart Getter Shorthand to Cache Computed Properties + /articles/dart-getter-cache-computed-properties/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/dart-getter-cache-computed-properties/ + An elegant Dart getter shorthand used to cache computed properties: +T get foo =&gt; _foo ??= _computeFoo(); // which depends on having T _foo; T _computeFoo() =&gt; /** ... **/; It makes use of the fallback assignment operator ??=. +Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! + + + + Final vs const in Dart + /articles/dart-final-const-difference/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/dart-final-const-difference/ + What&rsquo;s the difference between final and const in Dart? +Easy! +Final means single-assignment. +Const means immutable. +Let&rsquo;s see an example: +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! + + + + How To Define an Interface in Dart + /articles/define-interface-dart/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/define-interface-dart/ + Dart defines implicit interfaces. What does this mean? +In your app you&rsquo;d have: +class Session { authenticate() { // impl } } or +abstract class Session { authenticate(); } And for example in tests: +class MockSession implements Session { authenticate() { // mock impl } } No need to define a separate interface, just use regular or abstract classes! +Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! + + + + How to Build Widgets with an Async Method Call + /articles/build-widget-with-async-method-call/ + Wed, 18 Dec 2019 00:00:00 +0000 + + /articles/build-widget-with-async-method-call/ + You want to return a widget in a build method&hellip; +But your data comes from an async function! +class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. +So, can we make the build method async? + + + + Why Is My Future/Async Called Multiple Times? + /articles/future-async-called-multiple-times/ + Wed, 18 Dec 2019 00:00:00 +0000 + + /articles/future-async-called-multiple-times/ + Why is FutureBuilder firing multiple times? My future should be called just once! +It appears that this build method is rebuilding unnecessarily: +@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example. + + + + The Ultimate Javascript vs Dart Syntax Guide + /articles/ultimate-javascript-dart-syntax-guide/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /articles/ultimate-javascript-dart-syntax-guide/ + Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +(Pros and cons of choosing Flutter/Dart is outside the scope of this article.) +So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. + + + + Checking Nulls and Null-Aware Operators in Dart + /articles/checking-null-aware-operators-dart/ + Wed, 18 Sep 2019 00:00:00 +0000 + + /articles/checking-null-aware-operators-dart/ + What is the best practice for checking nulls in Dart? +var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. +However! There are some very interesting null-aware operators. +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: + + + + How to Format a Duration as a HH:MM:SS String + /articles/how-to-format-duration/ + Tue, 10 Sep 2019 23:43:48 -0500 + + /articles/how-to-format-duration/ + The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: +format(Duration d) =&gt; d.toString().split(&#39;.&#39;).first.padLeft(8, &#34;0&#34;); Example usage: +main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: + + + + How to Upgrade Flutter + /articles/upgrade-flutter-sdk/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /articles/upgrade-flutter-sdk/ + Type in your terminal: +flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. +flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: +flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: +flutter upgrade + + + + Minimal Flutter Apps to Get Started + /articles/minimal-hello-world-flutter-app/ + Tue, 30 Jul 2019 23:43:48 -0500 + + /articles/minimal-hello-world-flutter-app/ + Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. +Here are a few options to copy-paste into lib/main.dart. +Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! + + + + diff --git a/articles/intercept-logout-adapter/index.html b/articles/intercept-logout-adapter/index.html new file mode 100644 index 0000000..45fae49 --- /dev/null +++ b/articles/intercept-logout-adapter/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + Intercept Logout Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Intercept Logout Adapter +

+ + + +
+

The global onError handler will call logout if certain conditions are met:

+
mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  FutureOr<Null?> onError<Null>(DataException e) async {
+    // Automatically logout user if a 401/403 is returned from any API response.
+    if (e.statusCode == 401 || e.statusCode == 403) {
+      await read(sessionProvider).logOut();
+      return null;
+    }
+
+    throw e;
+  }
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/iterator-style-adapter/index.html b/articles/iterator-style-adapter/index.html new file mode 100644 index 0000000..273a81c --- /dev/null +++ b/articles/iterator-style-adapter/index.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + Iterator Style Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Iterator Style Adapter +

+ + + +
+
mixin AppointmentAdapter on RemoteAdapter<Appointment> {
+  Future<Appointment?> fetchNext() async {
+    return await sendRequest(
+      baseUrl.asUri / type / 'next',
+      onSuccess: (data) => deserialize(data).model,
+    );
+  }
+}
+

Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations.

+

Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods.

+
final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/minimal-hello-world-flutter-app/index.html b/articles/minimal-hello-world-flutter-app/index.html new file mode 100644 index 0000000..186878c --- /dev/null +++ b/articles/minimal-hello-world-flutter-app/index.html @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + Minimal Flutter Apps to Get Started - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Minimal Flutter Apps to Get Started +

+ + + +
+

Every time I do a flutter create project I get the default “counter” sample app full of comments.

+

While it’s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen.

+

Here are a few options to copy-paste into lib/main.dart.

+

Bare bones app

+
// lib/main.dart
+
+import 'package:flutter/widgets.dart';
+
+main() => runApp(MyApp());
+
+class MyApp extends StatelessWidget {
+  @override
+  Widget build(context) => Center(
+    child: Text('Hello Flutter!', textDirection: TextDirection.ltr)
+  );
+}
+

Can’t get smaller than this!

+

See it live:

+ +
+ +
+ +

Material-style minimal app

+
// lib/main.dart
+
+import 'package:flutter/material.dart';
+
+main() => runApp(MyApp());
+
+class MyApp extends StatelessWidget {
+  @override
+  Widget build(context) {
+    return MaterialApp(
+      home: Scaffold(
+        body: Center(
+          child: Text('Hello World'),
+        ),
+      ),
+    );
+  }
+}
+

See it live:

+ +
+ +
+ +

Minimal stateful app

+
import 'package:flutter/material.dart';
+
+main() => runApp(MinimalStatefulApp());
+
+class MinimalStatefulApp extends StatefulWidget {
+  @override
+  _MinimalState createState() => _MinimalState();
+}
+
+class _MinimalState extends State<MinimalStatefulApp> {
+
+  int _counter = 0;
+
+  @override
+  Widget build(BuildContext context) {
+    return GestureDetector(
+      onDoubleTap: () => setState(() => _counter++),
+      child: Center(
+        child: Text(
+          'Counter: $_counter',
+          textDirection: TextDirection.ltr,
+        ),
+      ),
+    );
+  }
+}
+

See it live (double tap to increment):

+ +
+ +
+ +

Minimal stateful app (with flutter_hooks)

+
// lib/main.dart
+
+import 'package:flutter/widgets.dart';
+import 'package:flutter_hooks/flutter_hooks.dart';
+
+main() => runApp(MyApp());
+
+class MyApp extends HookWidget {
+  @override
+  Widget build(context) {
+    final counter = useState(0);
+    return GestureDetector(
+      onDoubleTap: () => counter.value++,
+      child: Center(
+        child: Text(
+          'Counter: ${counter.value}',
+          textDirection: TextDirection.ltr,
+        ),
+      ),
+    );
+  }
+}
+

It uses hooks which remove the boilerplate of a classic StatefulWidget. Make sure you add the flutter_hooks dependency to pubspec.yaml!

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/nested-resources-adapter/index.html b/articles/nested-resources-adapter/index.html new file mode 100644 index 0000000..1d9d852 --- /dev/null +++ b/articles/nested-resources-adapter/index.html @@ -0,0 +1,204 @@ + + + + + + + + + + + + + + + + + + + + Nested Resources Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Nested Resources Adapter +

+ + + +
+

Here’s how you could access nested resources such as: /posts/1/comments

+
mixin NestedURLAdapter on RemoteAdapter<Comment> {
+  // ...
+  @override
+  String urlForFindAll(params) => '/posts/${params['postId']}/comments';
+
+  // or even
+  @override
+  String urlForFindAll(params) {
+    final postId = params['postId'];
+    if (postId != null) {
+      return '/posts/${params['postId']}/comments';
+    }
+    return super.urlForFindAll(params);
+  }
+}
+

and call it like:

+
final comments = await commentRepository.findAll(params: {'postId': post.id });
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/override-base-url/index.html b/articles/override-base-url/index.html new file mode 100644 index 0000000..13aebaa --- /dev/null +++ b/articles/override-base-url/index.html @@ -0,0 +1,196 @@ + + + + + + + + + + + + + + + + + + + + Override Base URL Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Override Base URL Adapter +

+ + + +
+

Flutter Data is extended via adapters.

+
mixin UserURLAdapter on RemoteAdapter<User> {
+  @override
+  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
+}
+

Need to apply the adapter to all your models? Make it generic:

+
mixin UserURLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/override-findall-adapter/index.html b/articles/override-findall-adapter/index.html new file mode 100644 index 0000000..2fad840 --- /dev/null +++ b/articles/override-findall-adapter/index.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + Override findAll Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Override findAll Adapter +

+ + + +
+

In this example we completely override findAll to return random models:

+
mixin FindAllAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  Future<List<T>> findAll({
+    bool? remote,
+    Map<String, dynamic>? params,
+    Map<String, String>? headers,
+    bool? syncLocal,
+    OnDataError<List<T>>? onError,
+  }) async {
+    // could use: super.findAll();
+    return _generateRandomModels<T>();
+  }
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/override-findone-url-method/index.html b/articles/override-findone-url-method/index.html new file mode 100644 index 0000000..855d336 --- /dev/null +++ b/articles/override-findone-url-method/index.html @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + Override findOne URL Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Override findOne URL Adapter +

+ + + +
+

In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT:

+
mixin URLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  String urlForFindAll(Map<String, dynamic> params) => type.snakeCase;
+
+  @override
+  String urlForFindOne(id, Map<String, dynamic> params) =>
+      '${type.snakeCase}/$id';
+
+  @override
+  DataRequestMethod methodForSave(id, Map<String, dynamic> params) {
+    return DataRequestMethod.PUT;
+  }
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/override-headers-query-parameters/index.html b/articles/override-headers-query-parameters/index.html new file mode 100644 index 0000000..98428ea --- /dev/null +++ b/articles/override-headers-query-parameters/index.html @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + Override Default Headers and Query Parameters - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Override Default Headers and Query Parameters +

+ + + +
+

Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary.

+

Here is how:

+
mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  final _localStorageService = read(localStorageProvider);
+
+  @override
+  String get baseUrl => "http://my.remote.url:8080/";
+
+  @override
+  FutureOr<Map<String, String>> get defaultHeaders async {
+    final token = _localStorageService.getToken();
+    return await super.defaultHeaders & {'Authorization': token};
+  }
+
+  @override
+  FutureOr<Map<String, dynamic>> get defaultParams async {
+    return await super.defaultParams & {'v': 1};
+  }
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/override-http-client-adapter/index.html b/articles/override-http-client-adapter/index.html new file mode 100644 index 0000000..3be5df1 --- /dev/null +++ b/articles/override-http-client-adapter/index.html @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + Override HTTP Client Adapter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ Override HTTP Client Adapter +

+ + + +
+

An example on how to override and use a more advanced HTTP client.

+

Here the connectionTimeout is increased, and an HTTP proxy enabled.

+
mixin HttpProxyAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  HttpClient? _httpClient;
+  IOClient? _ioClient;
+
+  @override
+  http.Client get httpClient {
+    _httpClient ??= HttpClient();
+    _ioClient ??= IOClient(_httpClient);
+
+    // increasing the timeout
+    _httpClient!.connectionTimeout = const Duration(seconds: 5);
+
+    // using a proxy
+    _httpClient!.badCertificateCallback =
+        ((X509Certificate cert, String host, int port) => true);
+    _httpClient!.findProxy = (uri) => 'PROXY (proxy url)';
+
+    return _ioClient!;
+  }
+
+  @override
+  Future<void> dispose() async {
+    _ioClient?.close();
+    _ioClient = null;
+    _httpClient = null;
+    super.dispose();
+  }
+}
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/ultimate-javascript-dart-syntax-guide/featured-mini.jpg b/articles/ultimate-javascript-dart-syntax-guide/featured-mini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..570b7c97f010fe5c7518e670fb20d939abd403d9 GIT binary patch literal 13531 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

YP|22&wAbR+ha)T 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 literal 0 HcmV?d00001 diff --git a/articles/ultimate-javascript-dart-syntax-guide/index.html b/articles/ultimate-javascript-dart-syntax-guide/index.html new file mode 100644 index 0000000..8982d1b --- /dev/null +++ b/articles/ultimate-javascript-dart-syntax-guide/index.html @@ -0,0 +1,817 @@ + + + + + + + + + + + + + + + + + + + + The Ultimate Javascript vs Dart Syntax Guide - Flutter Data + + + + + + + + + +

+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ The Ultimate Javascript vs Dart Syntax Guide +

+ + + +
+

Photo by ipet photo on Unsplash

+

Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart’s syntax.

+

(Pros and cons of choosing Flutter/Dart is outside the scope of this article.)

+

So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other!

+

Variables and constants

+
// js
+
+var dog1 = "Lucy"; // variable
+let dog2 = "Milo"; // block scoped variable
+
+const maleDogs = ["Max", "Bella"]; // mutable single-assignment variable
+maleDogs.push("Cooper"); // ✅
+maleDogs = ["Cooper"]; // ❌
+
+const femaleDogs = Object.freeze(["Luna", "Bella"]); // runtime constant
+femaleDogs.push("Winona"); // ❌
+femaleDogs = ["Winona"]; // ❌
+

And now in Dart:

+
// dart
+
+main() {
+  var dog1 = "Max"; // variable
+
+  final maleDogs = ["Milo"]; // mutable single-assignment variable
+  maleDogs.add("Cooper"); // ✅
+  maleDogs = ["Cooper"]; // ❌
+
+  const femaleDogs = ["Luna", "Bella"]; // compile time constant
+  femaleDogs.add("Winona"); // ❌
+  femaleDogs = ["Winona"]; // ❌
+
+  // alternative const syntax without assignment
+  walkingTimes(const [7, 9, 11]);  // ✅
+  walkingTimes(const [DateTime.now()]);  // ❌
+}
+

Unlike Javascript, const in Dart lives up to its meaning. The whole object is checked at compile time to ensure it’s completely immutable.

+

Therefore any element inside femaleDogs has to be a const too. Not the case for the elements inside maleDogs, which are not necessarily final.

+

Dart doesn’t need let because lexical scope works correctly.

+

Trailing semicolons are required in Dart. In Javascript you can omit the ; (you have to be careful, though!)

+

Default assignment

+

Let’s set a default value of 1 if bones is falsey (in Javascript) or null (in Dart).

+
// js
+
+var bones;
+bones = bones || 1;
+console.log(bones); // 1
+
// dart
+
+main() {
+  var bones;
+  bones ??= 1;  // OR: bones = bones ?? 1
+  print(bones);  // 1
+}
+

Destructuring assignment

+

This is a great Javascript-only feature.

+
// js
+
+var [dog, owner] = ["Max", "Frank"];
+console.log(dog); // Max
+[owner, dog] = [dog, owner];
+console.log(dog); // Frank
+

Not possible in Dart yet.

+

Falsey vs null

+

Let’s go ahead and have a look at falsey values that only exist in Javascript.

+
// js
+
+var collar = false,
+  toys = null,
+  amountOfMeals = 0 / 0, // NaN
+  owner = "",
+  age = 0,
+  breed;
+
+if (!collar) console.log("bark"); // bark
+if (!toys) console.log("bark"); // bark
+if (!amountOfMeals) console.log("bark"); // bark
+if (!owner) console.log("bark"); // bark
+if (!age) console.log("bark"); // bark
+if (!breed) console.log("bark"); // bark
+

In Dart, undefined values are null. Expressions in conditionals may only be boolean.

+
// dart
+
+main() {
+  var collar = false,
+    toys = null,
+    amountOfMeals = 0 / 0, // NaN
+    owner = "",
+    age = 0,
+    breed;
+
+  if (!collar) print('bark'); // bark
+  if (toys == null) print('bark'); // bark
+  if (amountOfMeals.isNaN) print('bark'); // bark
+  if (owner.isEmpty) print('bark'); // bark
+  if (age == 0) print('bark'); // bark
+  if (breed == null) print('bark'); // bark
+}
+

In Dart, 'Rocky' - 2 is an error – not NaN 🤔 Fortunately Dart didn’t pick up Javascript’s 💩

+

Function literals

+
// js
+
+function bark() {
+  return "WOOF";
+}
+
+var bday = (age) => age + 1;
+
// dart
+
+bark() {
+  return "WOOF";
+}
+
+var bday = (age) => age + 1;
+

One-liner function syntax looks exactly the same in both languages! In JS, however, parenthesis are optional.

+

Function defaults

+
// js
+
+var greet = (name = "Milo") => `Woof! My name is ${name}`;
+console.log(greet()); // Woof! My name is Milo
+
// dart
+
+main() {
+  var greet = ({ name = 'Rocky' }) => "Woof! My name is ${name}";
+  print(greet());  // Woof! My name is Rocky
+}
+

Dart requires curly braces for optional arguments. String interpolation is practically the same.

+

Spreading arguments

+
// js
+
+const sum = (...meals) => meals.reduce((sum, next) => sum + next, 0);
+console.log(sum(1, 2, 3)); // 6
+

Not supported because a Dart function can’t have a variable amount of positional arguments. The alternative is simply:

+
// dart
+
+main() {
+  final sum = (List<int> meals) => meals.reduce((sum, next) => sum + next);
+  print(sum([1, 2, 3])); // 6
+}
+

Safe navigation

+

name should be returned unless address or street are null, in that case the whole expression should return null.

+
// js
+var name =
+  person.address || person.address.street || person.address.street.name;
+

In Dart we have the safe navigation operator:

+
// dart
+var name = address?.street?.name;
+
+ Interested in Dart’s amazing capabilities to deal with nulls? Read Checking Nulls and Null-Aware Operators in Dart. +
+

Collection literals

+

An Array in Javascript is a List in Dart. An Object in Javascript is a Map in Dart.

+
// js
+
+var dogArray = ["Lucy", "Cooper", "Zeus"];
+var dogObj = { first: "Lucy", second: "Cooper" };
+var dogSet = new Set(["Lucy", "Cooper", "Zeus"]);
+
+console.log(dogArray.length); // 3
+console.log(Object.keys(dogObj).length); // 2
+console.log(dogSet.size); // 3
+
// dart
+
+main() {
+  var dogList = ["Lucy", "Cooper", "Zeus"];
+  var dogMap = { 'first': "Lucy", 'second': "Cooper" }; // could use #first symbol instead
+  var dogSet = { "Lucy", "Cooper", "Zeus" };
+
+  print(dogList.length); // 3
+  print(dogMap.length); // 2
+  print(dogSet.length); // 3
+}
+

Cascade operator

+

The value of the array.push(element) expression is always the value of push(element). This is standard behavior.

+

In Javascript, the array push function returns the length of the array (go figure!). So we can’t possibly have console.log([1, 2, 3].push(4, 5)) result in [1, 2, 3, 4, 5].

+
// js
+
+var parks = [1, 2, 3];
+parks.push(4, 5);
+console.log(parks); // [1, 2, 3, 4, 5]
+
+var shelters = [1, 2, 3];
+shelters[1] = 4;
+shelters[2] = 5;
+console.log(shelters); // [1, 4, 5]
+

In Dart we have the cascade operator list..add(), which allows us to return the list.

+
// dart
+
+main() {
+  print([1, 2, 3]..add(4)..add(5));  // [1, 2, 3, 4, 5]
+  print([1, 2, 3]..[1]=4..[2]=5);  // [1, 4, 5]
+}
+

A fluent API is one that allows chaining. jQuery is a great example: $('a').css("underline", "none").html("link!"); as every jQuery function call returns this.

+

This approach greatly reduces intermediate variables. However, not all APIs are designed this way. The cascade operator allows us to take a regular API and turn it into a fluid API, like what we did above with the list.

+

+

Array concatenation

+
// js
+
+var parks = [1, 2, 3];
+parks = parks.concat([4, 5], [6, 7]);
+console.log(parks); // [1, 2, 3, 4, 5, 6, 7]
+

To push or concatenate other arrays we can use addAll in the same fashion:

+
// dart
+
+main() {
+  print([1, 2, 3]..addAll([4, 5])..addAll([6, 7])); // [1, 2, 3, 4, 5, 6, 7]
+}
+

But there’s a cleaner way! Using spreads…

+
// js
+
+console.log([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
+
// dart
+
+main() {
+  print([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
+}
+

Same same. Also for objects/maps:

+
// js
+
+const name = { name: "Luna" };
+const age = { age: 7 };
+console.log({ ...name, ...age }); // { name: "Luna", age: 7 }
+

(Notice that we have to use let or const in Javascript.)

+
// dart
+
+main() {
+  var name = { 'name': "Luna" };
+  var age = { 'age': 7 };
+  print({ ...name, ...age });  // { 'name': "Luna", 'age': 7 }
+}
+

But what if P2 has a value sometimes?

+
// js
+
+const P1 = [4, 5];
+var P2 = Math.random() < 0.5 ? [6, 7] : null;
+
+P2 = P2 || [];
+console.log([1, 2, 3, ...P1, ...P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
+
// dart
+
+import 'dart:math';
+
+const P1 = [4, 5];
+final P2 = Random().nextBool() ? [6, 7] : null;
+
+main() {
+  print([1, 2, 3, ...P1, ...?P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
+}
+

The optional spread operator ...? will only insert the array if it’s not null.

+

Let’s consider now this example:

+
const A = 2;
+
+var ages = [1];
+if (Math.random() < 0.5) {
+  ages.push(A);
+}
+console.log(ages); // [1] or [1, 2]
+

There is yet another way in Dart of including logic inside arrays:

+
import 'dart:math';
+const A = 2;
+
+main() {
+  print([1, if (Random().nextBool()) A]);  // [1] or [1, 2]
+}
+

It’s called a “collection-if”. There’s also “collection-for”:

+
main() {
+  var ages = [1, 2, 3];
+  print([
+    1,
+    for(int i in ages) i + 1,
+    5
+  ]);  // [1, 2, 3, 4, 5]
+}
+

Extremely elegant! I can’t really think of a Javascript equivalent 🤔

+

Accessing properties in objects/maps

+
// js
+
+var first = { age: 7 };
+console.log(first.age); // 7
+
// dart
+
+main() {
+  var first = { 'age': 7 };
+  print(first['age']);  // 7
+}
+
+

Imports and exports

+
// js
+
+// module file
+export const dog = "Luna";
+
+export default function clean(dog) {
+  return doCleaning(dog);
+}
+
+// import
+import { dog } from "module";
+
+import clean from "module";
+

Dart, on the other hand, does not need to specify the imports: everything is imported by default. Imports can have prefixes (as) and can “whitelist” (show) and “blacklist” (hide). Ultimately, through static analysis and tree-shaking, whatever is not used will be discarded.

+
// dart
+
+// module file
+final dog = "Luna";
+
+clean(dog) => _doCleaning(dog);
+
+// import
+import 'module.dart';
+
+// alternatively
+import 'module.dart' as module;
+

The Great Dane in the Room

+

+

Dart is a statically-typed language with strong type inference.

+
+ A comparison with Typescript would probably be fairer, but I’ll leave that for next time. 😄 +
+

As we’ve seen so far, we almost never need to declare type annotations:

+
// dart
+
+main() {
+  var age = 1;
+  var pets = ["Cooper", "Luna"];
+  print(age.runtimeType); // int
+  print(pets.runtimeType); // Array<String>
+}
+

This means we leverage the power of types without stuffing our code with declarations! But of course we may:

+
// dart
+
+main() {
+  int age = 5;
+  List<String> pets = ["Cooper", "Luna"];
+  var pets2 = <String>["Cooper", "Luna"];
+  List<String> pets3 = <String>["Cooper", "Luna"];
+}
+

Specifying types can bring clarity to code. In our example above declarations are redundant (especially pets3).

+

Imagine a walk method with no typed arguments, assuming callers will pass an argument of type Distance:

+
// dart
+
+walk(distance) {
+  print('Walking ${distance.length} miles');
+}
+
+main() {
+  print(walk("86"));  // 2
+  print(walk(86)); // ERROR
+  // ...
+}
+

Gives all kind of weird behavior. The analyzer doesn’t have enough information to infer a specific type for distance so it uses the dynamic type. It’s equivalent to:

+
walk(dynamic distance) {
+  print('Walking ${distance.length} miles');
+}
+

In short: argument types are very important!

+

This is recommended, idiomatic Dart:

+
void walk(Distance distance) {
+  print('Walking ${distance.length} miles');
+}
+
+String walk(int distance) => 'Walking $distance miles';
+

Type checking, however, can be explicitly “turned off” at a variable-level by declaring it as dynamic.

+
main() {
+  dynamic dog = "Charlie";
+  dog = ["char", "lie"];  // compiler NOT type checking!
+  print(dog); // [char, lie]
+}
+

Object oriented breeds 🐩

+

Classes are relatively new in Javascript:

+
// js
+
+class Dog {
+  constructor(name, phone) {
+    this.name = name;
+    this.phone = phone;
+  }
+
+  tag = () => `${this.name}\nIf you found me please call ${this.phone}!`;
+}
+
+console.log(new Dog("Luna", 6198887421).tag());
+// Luna
+// If you found me please call 6198887421!
+

In Dart:

+
// dart
+
+class Dog {
+  final String name;
+  final int phone;
+  Dog(this.name, { this.phone });
+
+  String tag() => "${name}\nIf you found me please call ${phone}!";
+}
+
+main() {
+  print(Dog('Luna', phone: 6198887421).tag());
+  // Luna
+  // If you found me please call 6198887421!
+}
+

A few things to note about Dart classes & constructors!

+
    +
  • We can avoid using new when calling constructors – that is why I used Dog() (vs new Dog())
  • +
  • No need to use this to reference fields: it is only used to define constructors
  • +
  • Factory and named constructors are a thing
  • +
  • Dart supports mixins!
  • +
+
+ Wanna know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors. +
+

Checking types

+

We use instanceof in Javascript:

+
// js
+
+class Dog extends Animal {
+  // ...
+}
+
+var animal = getAnimal();
+if (animal instanceof Dog) {
+  console.log("🐶");
+}
+

And is in Dart:

+
// dart
+
+class Dog extends Animal {
+  // ...
+}
+
+main() {
+  var animal = getAnimal();
+  if (animal is Dog) {
+    console.log('🐶');
+  }
+}
+

Class & prototype extensions

+

These are methods that extend existing types. In Javascript a function can be added to a prototype:

+
// js
+
+Object.defineProperties(String.prototype, {
+  kebab: {
+    get: function () {
+      return this.replace(/\s+/g, "-").toLowerCase();
+    },
+  },
+});
+
+console.log("This is Luna".kebab); // this-is-luna
+

In Dart:

+
// dart
+
+extension on String {
+  String get kebab => this.replaceAll(RegExp(r'\s+'), '-').toLowerCase();
+}
+
+main() {
+  print("This is Luna".kebab);   // this-is-luna
+}
+

Static extension members are available since Dart 2.6 and open up very interesting possibilities for API design, like the fantastic time.dart ⏰. Now we can do stuff like:

+
Duration timeOfSleep = 7.hours + 32.minutes + 8.seconds;
+DateTime medicated = 5.minutes.ago;
+

Parsing JSON 🐶 style

+
// js
+
+var dog = JSON.parse(
+  '{ "name": "Willy", "medications": { "doxycycline": true } }'
+);
+
+console.log(Object.keys(dog.medications).lnegth); // undefined
+

Javascript is a dynamic language. Misspelling length just returns undefined.

+
+ Checking for an empty list is easy in Dart: list.isEmpty, in Javascript we must use the length for this: !array.length. +
+

In Dart:

+
// dart
+
+import 'dart:convert';
+
+main() {
+  var dog = jsonDecode('{ "name": "Willy", "medications": { "doxycycline": true } }');
+  print(dog.runtimeType); // _InternalLinkedHashMap<String, dynamic>
+  print(dog['medications'].lnegth);  // NoSuchMethodError: Class '_InternalLinkedHashMap<String, dynamic>' has no instance getter 'lnegth'.
+}
+

It is known that keys of a JSON object are strings, but values can be of many different types. Hence the resulting map is of type <String, dynamic>.

+

When we misspell length on a dynamic variable there is no type checking, so the error we get is at runtime.

+

Equality to the bone 🦴

+

Another gigantic chaos in the world of Javascript. We won’t get into it – just say that for equality we only use === to tell if both objects are strictly the same.

+

If we need to verify equivalence of two different objects, we’d use a deep comparison like _.isEqual in Lodash.

+
// js
+
+class DogTag {
+  constructor(id) {
+    this.id = id;
+  }
+}
+
+var tag1 = new DogTag(9);
+var tag2 = new DogTag(9);
+
+console.log(_.isEqual(tag1, tag2)); // true (same ID, same tag)
+console.log(tag1 === tag2); // false (not the same object in memory)
+

In Dart, === is identical and isEqual is ==. You can override the == operator to check for equality between two objects 🙌

+
// dart
+
+class DogTag {
+  int id;
+  DogTag(this.id);
+  operator ==(other) => this.id == other.id;
+}
+
+main() {
+  var tag1 = DogTag(9);
+  var tag2 = DogTag(9);
+
+  print(tag1 == tag2);  // true (same ID, same tag)
+  print(identical(tag1, tag2));  // false (not the same object in memory)
+}
+

+

Doggy privates

+

While a solution is being worked on for ESNext, there is currently no proper way of defining private properties in Javascript.

+

Dart uses a _ prefix which makes the variable private. And we can use a standard getter to expose it to the outside world:

+
// dart
+
+class Dog {
+  String name;
+  int _age;
+
+  Dog(this.name, this._age);
+
+  get age => _age;
+}
+
+main() {
+  var zeus = new Dog("Zeus", 7);
+  print(zeus.age);  // 7
+
+  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
+  zeus._age = 8;
+  print(zeus.age); // 8
+}
+

Makes sense?

+

Uhhmmm… we are setting the private variable and it actually works? 🤔

+

Private in Dart means library-private. If we placed the Dog class in models.dart:

+
// dart
+
+import 'models.dart';
+
+main() {
+  var zeus = new Dog("Zeus", 7);
+  print(zeus.age);  // 7
+
+  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
+  zeus._age = 8; // ERROR: The setter '_age' isn't defined for the class 'Dog'.
+  print(zeus.age); // 7
+}
+

Setters work in a similar way.

+

Futuristic hounds 🐕

+

The Promise API in Javascript is analogous to the Future API in Dart.

+

Both languages support then() and async/await.

+

Let’s appreciate the differences through a food dispenser that will pour out dog chow in 4 seconds.

+
// js
+
+function dispenseFood() {
+  return new Promise((resolve) => setTimeout(resolve, 4000)).then(
+    () => "DOG CHOW"
+  );
+}
+
+async function main() {
+  console.log("Idle.");
+  var food = await dispenseFood();
+  console.log(food); // DOG CHOW
+}
+
+main();
+
+// or
+dispenseFood().then(console.log); // .catch();
+

Very similar in Dart:

+
// dart
+
+Future<String> dispenseFood() {
+  return Future.delayed(Duration(seconds: 4), () => 'DOG CHOW');
+}
+
+main() async {
+  print('Idle.');
+  String food = await dispenseFood();
+  print(food);  // DOG CHOW
+
+  // or
+  dispenseFood().then(print);  // .catchError();
+}
+

Is this really the definitive syntax guide?

+

Well… maybe 🤪 Pending for a next revision:

+
    +
  • Enums
  • +
  • Annotations
  • +
  • Streams & sync/async generators
  • +
  • Workers vs isolates
  • +
  • and more!
  • +
+

As you may have noticed we simply highlighted differences between syntaxes. Not comparing their merits, popularity, available libraries, and many other considerations. There will be another opinionated article discussing which is the best tool for which job.

+ +
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/articles/upgrade-flutter-sdk/index.html b/articles/upgrade-flutter-sdk/index.html new file mode 100644 index 0000000..6fb87cd --- /dev/null +++ b/articles/upgrade-flutter-sdk/index.html @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + How to Upgrade Flutter - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ +
+
+ + +

+ How to Upgrade Flutter +

+ + + +
+

Type in your terminal:

+
flutter upgrade
+

This will update Flutter to the latest version in the current channel. Most likely you have it set in stable.

+
flutter channel
+# Flutter channels:
+#   beta
+#   dev
+#   master
+# * stable
+

Do you want to live in the cutting edge? Switching channels is easy:

+
flutter channel dev
+# Switching to flutter channel 'dev'...
+# ...
+

And run upgrade again:

+
flutter upgrade
+
+
+ +
+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 0000000..30ec260 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + Categories - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Categories +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml new file mode 100644 index 0000000..b4bc870 --- /dev/null +++ b/categories/index.xml @@ -0,0 +1,10 @@ + + + + Categories on Flutter Data + /categories/ + Recent content in Categories on Flutter Data + Hugo -- gohugo.io + en-us + + diff --git a/docs/adapters/index.html b/docs/adapters/index.html new file mode 100644 index 0000000..b23caad --- /dev/null +++ b/docs/adapters/index.html @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + Adapters - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Adapters +

+ + + +
+

Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data’s building blocks.

+

Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

+

Overriding basic behavior

+

Several parts are required, for example, to construct a remote findAll call on a Repository<Task>. The framework can take a sensible guess and make that GET /tasks by default – and it does.

+

Still, a base URL is necessary and the endpoint parts should be overridable.

+

The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

+
mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
+  @override
+  String get baseUrl => 'https://myapi.com/v1/';
+}
+
+@JsonSerializable()
+@DataRepository([JSONServerTaskAdapter])
+class Task with DataModel<Task> {
+  final int? id;
+  final String title;
+  final bool completed;
+
+  Task({this.id, required this.title, this.completed = false});
+}
+

What if the endpoint actually is at https://myapi.com/v1/todos/all?

+
mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
+  @override
+  String get baseUrl => 'https://myapi.com/v1/';
+
+  @override
+  String urlForFindAll(Map<String, dynamic> params) => 'todos/all';
+}
+

Here’s a non-exhaustive list of overridable members:

+
    +
  • baseUrl: must be implemented or it will throw an error
  • +
  • urlForFindAll: defaults to type
  • +
  • methodForFindAll: defaults to DataRequestMethod.GET
  • +
  • urlForFindOne: defaults to ${type}/${id}
  • +
  • methodForFindOne: defaults to DataRequestMethod.GET
  • +
  • urlForSave: defaults to ${type}/${id} if updating
  • +
  • methodForSave: defaults to DataRequestMethod.PATCH if updating
  • +
  • urlForDelete: defaults to ${type}/${id}
  • +
  • methodForDelete: defaults to DataRequestMethod.DELETE
  • +
  • shouldLoadRemoteAll: fine-grained control over the remote param on findAll
  • +
  • shouldLoadRemoteOne: fine-grained control over the remote param on findOne
  • +
  • serialize: can customize serialization (like the JSON API Adapter does)
  • +
  • deserialize: can customize deserialization (like the JSON API Adapter does)
  • +
  • isNetworkError: whether to retry a request when back online
  • +
  • type
  • +
+

Every adapter has a type field which by default is a pluralized, camel-cased version of the model class name: Task -> tasks, Sheep -> sheep, CreditCard -> creditCards.

+

It is typically used when the frontend and the backend name classes differently.

+

And if we have multiple models that all share the same base URL? Isn’t the above adapter constrained to Task?

+

We can simply make it generic and apply it to any DataModel in our app!

+
mixin JSONServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  String get baseUrl => 'https://myapi.com/v1/';
+}
+
+@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class User with DataModel<User> {
+  final int? id;
+  final String name;
+  final String? email;
+
+  Task({this.id, required this.name, this.email});
+}
+
+

Important: As the repository is generated, any change in the list of adapters must be followed by a build in order to take effect.

+
flutter packages pub run build_runner build
+

Trouble generating code? See here.

+ +
+

Any number of adapters can be added and they will be applied in order.

+

That is:

+
@DataRepository([A, B, C, D, E])
+

after codegen will become:

+
RemoteAdapter<User> with A, B, C, D, E;
+

Custom actions

+

Not every API perfectly aligns to CRUD endpoints. Here’s an example on how to create a custom action, using the sendRequest API.

+
mixin PaymentAdapter on RemoteAdapter<Payment> {
+  Future<Payment?> createManualPayment({
+    required String paymentType,
+    required double amount,
+  }) async {
+    final appConfig = read(appConfigProvider).instance;
+
+    final payload = {
+      'payment': {
+        'app_id': appConfig.appId,
+        'amount': amount,
+        'name': paymentType,
+        'provider': 'manual'
+      },
+    };
+
+    return sendRequest(
+      baseUrl.asUri / 'payments.json' & {'v': true},
+      method: DataRequestMethod.POST,
+      headers: await defaultHeaders & {'X-Client-Id': appConfig.appId},
+      body: json.encode(payload),
+      onSuccess: (data) {
+        return deserialize(data as Map<String, dynamic>).model;
+      },
+    );
+  }
+}
+

Notice that a Riverpod Reader is available on every adapter as read, too.

+

The createManualPayment action can be invoked like:

+
onPressed: () async {
+  final payment = await ref.payments.paymentAdapter.createManualPayment(
+    paymentType: PaymentType.LIGHTNING_NETWORK,
+    amount: amount,
+  );
+  // ...
+}
+
+

This is the signature for the sendRequest method, that performs an HTTP request and returns the result of type R via onSuccess:

+
FutureOr<R?> sendRequest<R>(
+  final Uri uri, {
+  DataRequestMethod method = DataRequestMethod.GET,
+  Map<String, String>? headers,
+  String? body,
+  String? key,
+  OnRawData<R>? onSuccess,
+  OnDataError<R>? onError,
+  DataRequestType requestType = DataRequestType.adhoc,
+  bool omitDefaultParams = false,
+})
+
    +
  • uri takes the full Uri (you must provider base URL and query parameters, too)
  • +
  • headers takes the full headers (or defaultHeaders if omitted)
  • +
+ +
+

With all these building blocks adapters for Wordpress or Github REST access, or even JWT authentication are easy to build.

+

Many more adapter examples can be found perusing the articles.

+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html new file mode 100644 index 0000000..e89b121 --- /dev/null +++ b/docs/faq/index.html @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + FAQ - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ FAQ +

+ + + +
+

Why are save and other methods not available on my models?

+

DataModel extensions are syntax sugar and will only work when importing Flutter Data:

+
import 'package:flutter_data/flutter_data.dart';
+

Errors generating code?

+

If you have trouble with the outputs, try:

+
flutter pub run build_runner build --delete-conflicting-outputs
+
+

VSCode users!

+

If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue.

+ +
+

Also make sure your dependencies are up to date:

+
flutter pub upgrade
+

Can I group multiple adapter mixins into one?

+

No. https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

+

Does Flutter Data depend on Flutter?

+

No! Despite its name this library does not depend on Flutter at all.

+

See the example folder for an, uh, example.

+

It does depend on Riverpod but this library is exported.

+

Where does Flutter Data generate code?

+
    +
  • in *.g.dart files (part of your models)
  • +
  • in main.data.dart (as a library)
  • +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..2ec0882 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + Docs - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Docs +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml new file mode 100644 index 0000000..031d54e --- /dev/null +++ b/docs/index.xml @@ -0,0 +1,93 @@ + + + + Docs on Flutter Data + /docs/ + Recent content in Docs on Flutter Data + Hugo -- gohugo.io + en-us + Mon, 20 Apr 2020 19:01:08 -0300 + + Quickstart + /docs/quickstart/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/quickstart/ + Add flutter_data and dependencies to your pubspec.yaml file: +dependencies:flutter:sdk:flutterflutter_data:^1.0.0# Highly RECOMMENDED (but not required) packagespath_provider:^2.0.7json_annotation:4.3.0flutter_riverpod:^1.0.0dev_dependencies:build_runner:^1.10.1# REQUIRED! Please use versions &gt;= 1.10.1# Highly RECOMMENDED (but not required) packagesjson_serializable:^6.0.1Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +However, json_serializable and path_provider are highly convenient so they are recommended. +The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. Basic configuration 🔧 Annotate your models with @DataRepository() and mix DataModel&lt;T&gt; in. + + + + Repositories + /docs/repositories/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/repositories/ + Flutter Data is organized around the concept of models which are data classes mixing in DataModel. +@DataRepository([TaskAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote. + + + + Adapters + /docs/adapters/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/adapters/ + Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data&rsquo;s building blocks. +Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. +Overriding basic behavior Several parts are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework can take a sensible guess and make that GET /tasks by default – and it does. +Still, a base URL is necessary and the endpoint parts should be overridable. + + + + Models + /docs/models/ + Mon, 20 Apr 2020 19:01:08 -0300 + + /docs/models/ + Flutter Data models are data classes that mix DataModel in: +@DataRepository([TaskAdapter]) @JsonSerializable() class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common. +The json_serializable library is helpful but not required. + Model with @JsonSerializable? You don&rsquo;t need to declare fromJson or toJson Model without @JsonSerializable? + + + + Relationships + /docs/relationships/ + Mon, 20 Apr 2020 17:21:33 -0300 + + /docs/relationships/ + Flutter Data features an advanced relationship mapping system. +Use: + HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class User with DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;? + + + + Initialization + /docs/initialization/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/initialization/ + In Flutter with Riverpod The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget. +import &#39;package:flutter/material.dart&#39;; import &#39;package:hooks_riverpod/hooks_riverpod.dart&#39;; import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;main.data.dart&#39;; import &#39;models/task.dart&#39;; void main() { runApp( ProviderScope( child: MyApp(), overrides: [configureRepositoryLocalStorage()], ), ); } class MyApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: Scaffold( body: Center( child: ref. + + + + FAQ + /docs/faq/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/faq/ + Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: +import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: +flutter pub run build_runner build --delete-conflicting-outputs VSCode users! +If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. + Also make sure your dependencies are up to date: + + + + diff --git a/docs/initialization/index.html b/docs/initialization/index.html new file mode 100644 index 0000000..7139f52 --- /dev/null +++ b/docs/initialization/index.html @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + Initialization - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Initialization +

+ + + +
+

In Flutter with Riverpod

+

The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget.

+
import 'package:flutter/material.dart';
+import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:flutter_data/flutter_data.dart';
+
+import 'main.data.dart';
+import 'models/task.dart';
+
+void main() {
+  runApp(
+    ProviderScope(
+      child: MyApp(),
+      overrides: [configureRepositoryLocalStorage()],
+    ),
+  );
+}
+
+class MyApp extends HookConsumerWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    return MaterialApp(
+      home: Scaffold(
+        body: Center(
+          child: ref.watch(repositoryInitializerProvider()).when(
+                error: (error, _) => Text(error.toString()),
+                loading: () => const CircularProgressIndicator(),
+                data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
+              ),
+        ),
+      ),
+    );
+  }
+}
+

Let’s have a closer look at configureRepositoryLocalStorage’s arguments:

+
    +
  • FutureFn<String>? baseDirFn: Optional. Takes a function that returns a future String with a directory path where to initialize Hive local storage. Defaults to the default returned by path_provider (only if it is a dependency). Not needed for Flutter Web. See below for an example.
  • +
  • bool? clear: Optional. Whether to delete all local storage upon restart. Defaults to false.
  • +
  • List<int>? encryptionKey: Optional. If this 256-bit key is supplied, all internal Hive boxes will be AES encrypted. Optional, defaults to null.
  • +
+

And now at repositoryInitializerProvider()’s arguments:

+
    +
  • bool? remote: Optional. Overrides all repositories' remote setting.
  • +
  • bool? verbose: Optional. Overrides all repositories' verbose setting.
  • +
+

Re-initializing

+

It is possible to re-initialize Flutter Data, for example to perform a restart with Phoenix or simply a Riverpod ref.refresh:

+
class MyApp extends HookConsumerWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    return MaterialApp(
+      home: RefreshIndicator(
+        onRefresh: () async => ref.refresh(repositoryInitializerProvider()),
+        child: Scaffold(
+          body: Center(
+            child: ref.watch(repositoryInitializerProvider()).when(
+                  error: (error, _) => Text(error.toString()),
+                  loading: () => const CircularProgressIndicator(),
+                  data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
+                ),
+          ),
+        ),
+      ),
+    );
+  }
+}
+

In Dart

+
// lib/main.dart
+
+late final Directory _dir;
+
+final container = ProviderContainer(
+  overrides: [
+    // baseDirFn MUST be provided
+    configureRepositoryLocalStorage(baseDirFn: () => _dir.path),
+  ],
+);
+
+try {
+  _dir = await Directory('tmp').create();
+  _dir.deleteSync(recursive: true);
+
+  await container.read(repositoryInitializerProvider().future);
+
+  final usersRepo = container.read(usersRepositoryProvider);
+  await usersRepo.findOne(1);
+  // ...
+}
+

Other

+ + +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/models/index.html b/docs/models/index.html new file mode 100644 index 0000000..82f16f5 --- /dev/null +++ b/docs/models/index.html @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + Models - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Models +

+ + + +
+

Flutter Data models are data classes that mix DataModel in:

+
@DataRepository([TaskAdapter])
+@JsonSerializable()
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+
+  Task({this.id, required this.title, this.completed = false});
+}
+

This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common.

+
+

The json_serializable library is helpful but not required.

+
    +
  • Model with @JsonSerializable? You don’t need to declare fromJson or toJson
  • +
  • Model without @JsonSerializable? You must declare fromJson and toJson
  • +
+

If you choose it, you can make use of @JsonKey and other configuration parameters as usual. A common use-case is having a different remote id attribute such as _objectId. Annotating id with @JsonKey(name: '_objectId') takes care of it.

+ +
+

Extension methods

+

In addition, various useful methods become available on the class:

+

init

+

The init call is necessary when using new models (and only then) in order to register them within Flutter Data. It takes a Riverpod Reader as sole argument, typically ref.read or container.read.

+
final user = User(id: 1, name: 'Frank').init(ref.read);
+
+

Important: Any Dart file that wants to use these extensions must import the library!

+
import 'package:flutter_data/flutter_data.dart';
+

VSCode protip! Type Command + . over the missing method and choose to import!

+ +
+

was

+

It inits a model copying the identity of supplied model.

+

Useful for model updates:

+
final steve = frank.copyWith(name: 'Steve').was(frank);
+

save

+
final user = User(id: 1, name: 'Frank').init(ref.read);
+await user.save();
+

The call is syntax-sugar for Repository#save and takes the same arguments except the model: remote, headers, params, onError.

+

delete

+
final user = await repository.findOne(1);
+await user.delete();
+

It’s syntax-sugar for Repository#delete and takes the same arguments (except the model).

+

Notice that init was not necessary here because the user already came from a repository.

+

find

+
final updatedUser = await user.find();
+

It’s syntax-sugar for Repository#findOne and takes the same arguments (except the ID).

+

Freezed support

+

Here’s an example:

+
@freezed
+@DataRepository([JSONAPIAdapter, BaseAdapter])
+class City with DataModel<City>, _$City {
+  const City._();
+  factory City({int id, String name}) = _City;
+  factory City.fromJson(Map<String, dynamic> json) => _$CityFromJson(json);
+}
+

Unions haven’t been tested yet.

+

Polymorphic models

+

An example where Staff and Customer are both Users:

+
abstract class User<T extends User<T>> with DataModel<T> {
+  final String id;
+  final String name;
+  User({this.id, this.name});
+}
+
+@JsonSerializable()
+@DataRepository([JSONAPIAdapter, BaseAdapter])
+class Customer extends User<Customer> {
+  final String abc;
+  Customer({String id, String name, this.abc}) : super(id: id, name: name);
+}
+
+@JsonSerializable()
+@DataRepository([JSONAPIAdapter, BaseAdapter])
+class Staff extends User<Staff> {
+  final String xyz;
+  Staff({String id, String name, this.xyz}) : super(id: id, name: name);
+}
+
+
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html new file mode 100644 index 0000000..565040f --- /dev/null +++ b/docs/quickstart/index.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + Quickstart - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Quickstart +

+ + + +
+

Add flutter_data and dependencies to your pubspec.yaml file:

+
dependencies:
+  flutter:
+    sdk: flutter
+
+  flutter_data: ^1.0.0
+
+  # Highly RECOMMENDED (but not required) packages
+  path_provider: ^2.0.7
+  json_annotation: 4.3.0
+  flutter_riverpod: ^1.0.0
+
+dev_dependencies:
+  build_runner: ^1.10.1 # REQUIRED! Please use versions >= 1.10.1
+
+  # Highly RECOMMENDED (but not required) packages
+  json_serializable: ^6.0.1
+

Flutter Data doesn’t require any library besides build_runner for code generation.

+

However, json_serializable and path_provider are highly convenient so they are recommended.

+
+ The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. +
+

Basic configuration 🔧

+

Annotate your models with @DataRepository() and mix DataModel<T> in.

+

Example:

+
import 'package:flutter_data/flutter_data.dart';
+import 'package:json_annotation/json_annotation.dart';
+
+part 'task.g.dart';
+
+@JsonSerializable()
+@DataRepository([])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+
+  Task({this.id, required this.title, this.completed = false});
+}
+

The annotation takes a list of adapters.

+

Adapters are mixins used to customize the framework’s behavior, ranging from the very basic to the extremely powerful. They are applied on Flutter Data’s RemoteAdapter<T> base class.

+

Let’s start by the most common configuration: the base URL.

+
mixin ApplicationAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
+  @override
+  String get baseUrl => "https://my-json-server.typicode.com/flutterdata/demo/";
+}
+

Next, we’ll pass it to the annotation:

+
@JsonSerializable()
+@DataRepository([ApplicationAdapter])
+class Task with DataModel<Task> {
+  final int? id;
+  final String title;
+  final bool completed;
+
+  Task({this.id, required this.title, this.completed = false});
+}
+
+

Default serialization

+

Flutter Data ships with a built-in serializer/deserializer for classic JSON.

+

It means that the default serialized form of a Task instance looks like:

+
{
+  "id": 1,
+  "title": "delectus aut autem",
+  "completed": false
+}
+

Notice two things about our model above:

+
    +
  • we used int? to represent the actual type of the id identifier field (null when new)
  • +
  • fromJson and toJson() haven’t been included as they are not required (Flutter Data will automatically use _$TaskFromJson and _$TaskToJson functions generated by json_serializable – but they can both be overridden)
  • +
+ +
+

We are now ready to run a build:

+
flutter packages pub run build_runner build
+

Flutter Data auto-generated a Repository class for Task.

+

It also generated a Dart library at main.data.dart which makes Flutter Data initialization effortless. It’s out-of-the-box compatible with Riverpod.

+
+

Trouble generating code? See here.

+

Here is how to make it work with Provider and GetIt.

+ +
+

Next step is to configure local storage and initialize the framework:

+
import 'package:flutter/material.dart';
+import 'package:provider/provider.dart';
+import 'package:path_provider/path_provider.dart';
+import 'package:flutter_data/flutter_data.dart';
+import 'package:tutorial/main.data.dart';
+
+void main() {
+  runApp(
+    ProviderScope(
+      child: MyApp(),
+      overrides: [configureRepositoryLocalStorage()],
+    ),
+  );
+}
+
+class MyApp extends HookWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    return MaterialApp(
+      home: Scaffold(
+          body: Center(
+            child: ref.watch(repositoryInitializerProvider()).when(
+                  error: (error, _) => Text(error.toString()),
+                  loading: () => const CircularProgressIndicator(),
+                  data: (_) => 'Hello from Flutter Data ${ref.tasks}!',
+                ),
+          ),
+        ),
+    );
+  }
+}
+

Once the data callback is invoked, Flutter Data is ready!

+
+

The configureRepositoryLocalStorage setup function has several optional arguments.

+

You will have to supply baseDirFn (a function that returns a base directory for local storage) if you do not have path_provider as a dependency.

+

For more information see initialization.

+ +
+

➡ Continue with the tutorial for a Tasks app or learn more about Repositories

+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/relationships/index.html b/docs/relationships/index.html new file mode 100644 index 0000000..cf49930 --- /dev/null +++ b/docs/relationships/index.html @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + Relationships - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Relationships +

+ + + +
+

Flutter Data features an advanced relationship mapping system.

+

Use:

+
    +
  • HasMany<T> for to-many relationships
  • +
  • BelongsTo<T> for to-one relationships
  • +
+

As an example, a User has many Tasks:

+
@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class User with DataModel<User> {
+  @override
+  final int? id;
+  final String name;
+  final HasMany<Task>? tasks;
+
+  User({this.id, required this.name, this.tasks});
+}
+

and a Task belongs to a User:

+
@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+  final BelongsTo<User>? user;
+
+  Task({this.id, required this.title, this.completed = false, this.user});
+}
+

So long as:

+
    +
  • Models have all their relationships initialized
  • +
  • The API responds correctly with relationship data (for example a User resource with a collection of Task models – or just IDs if models are already present in local storage)
  • +
+

we can expect the following to work:

+
final user = await repository.findOne(1, params: {'_embed': 'tasks'});
+final task = user!.tasks!.first;
+
+print(task.title); // write Flutter Data docs
+print(task.user!.value!.name); // Frank
+
+// or
+
+final house = House(address: "Sakharova Prospekt, 19");
+final family = Family(surname: 'Kamchatka', house: BelongsTo(house));
+
+print(family.house.value.families.first.surname);  // Kamchatka
+

We can infinitely navigate the relationship graph as it’s based on a reactive graph data structure (GraphNotifier).

+

Defaults

+

For relationships to work, they must (a) be different than null and (b) initialized.

+
final task = Task(title: 'do 1', user: BelongsTo()).init(ref.read);
+

By initializing the new Task model, all its relationships will be initialized as well.

+

If we don’t want to supply a new relationship object like above, we may provide defaults like so:

+
@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+  final BelongsTo<User>? user;
+
+  Task({this.id, required this.title, this.completed = false, BelongsTo<User>? user}) :
+    user = user ?? BelongsTo();
+}
+

Since relationships don’t have const constructors, we can’t do this:

+
@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+  final BelongsTo<User> user;
+
+  Task({this.id, required this.title, this.completed = false, BelongsTo<User> user = const BelongsTo()}); // DOES NOT WORK
+}
+

(It would be more succint and since the user field is non-nullable we wouldn’t have to use the ! operator as in task.user!.value!.)

+

But we can get somewhat closer and use an internal late final in order to keep the field non-nullable:

+
@JsonSerializable()
+@DataRepository([JSONServerAdapter])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+  late final BelongsTo<User> _user;
+  BelongsTo<User> get user => _user;
+
+  Task({
+    this.id,
+    required this.title,
+    this.completed = false,
+    BelongsTo<User>? user,
+  }) : _user = user ?? BelongsTo();
+}
+

The downside to this approach is we can’t use @JsonKey on a private field (_user).

+

Inverses

+

Inverse relationships are guessed when unambiguous (one relationship of inverse type).

+

Not in this case, as Family has two BelongsTo<House>s:

+
@JsonSerializable()
+@DataRepository([])
+class Family with DataModel<Family> {
+  @override
+  final String? id;
+  final BelongsTo<House>? cottage;
+  final BelongsTo<House>? residence;
+
+  Family({
+    this.id,
+    this.cottage,
+    this.residence,
+  });
+}
+
+@JsonSerializable()
+@DataRepository([])
+class House with DataModel<House> {
+  @override
+  final String? id;
+  final BelongsTo<Family>? owner;
+
+  House({
+    this.id,
+    BelongsTo<Family>? owner,
+  }) : owner = owner ?? BelongsTo();
+

If you wish to disambuiguate or to be explicit, annotate your relationship in the House model:

+
@DataRelationship(inverse: 'residence')
+final BelongsTo<Family>? owner;
+

Here’s another example, a tree structure using custom inverses and Freezed:

+
@freezed
+@DataRepository([], remote: false)
+class Node with DataModel<Node>, _$Node {
+  Node._();
+  factory Node(
+      {int? id,
+      String? name,
+      @DataRelationship(inverse: 'children') BelongsTo<Node>? parent,
+      @DataRelationship(inverse: 'parent') HasMany<Node>? children}) = _Node;
+  factory Node.fromJson(Map<String, dynamic> json) => _$NodeFromJson(json);
+}
+

Remove a relationship

+

Given a Post with many Comments we want to remove:

+
final postWithNoComments = post.copyWith(comments: HasMany.remove()).was(post);
+

Works with both HasMany and BelongsTo.

+

Removing a relationship does not delete its linked resources (the actual comments in this case).

+

Relationship extensions

+

A User with Tasks could be created like this:

+
final t1 = Task(title: 'do 1');
+final t2 = Task(title: 'do 2');
+final user = User(name: 'Frank', tasks: HasMany({t1, t2}));
+
+// or using an extension on Set<DataModel>
+
+final user = User(name: 'Frank', tasks: {t1, t2}.asHasMany);
+

or a Task with User:

+
final user = User(name: 'Frank');
+final task = Task(title: 'do 1', user: BelongsTo(user));
+
+// or using an extension on DataModel
+
+final task = Task(title: 'do 1', user: user.asBelongsTo);
+
+
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/docs/repositories/index.html b/docs/repositories/index.html new file mode 100644 index 0000000..5e70139 --- /dev/null +++ b/docs/repositories/index.html @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + Repositories - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Repositories +

+ + + +
+

Flutter Data is organized around the concept of models which are data classes mixing in DataModel.

+
@DataRepository([TaskAdapter])
+class Task with DataModel<Task> {
+  @override
+  final int? id;
+  final String title;
+  final bool completed;
+
+  Task({this.id, required this.title, this.completed = false});
+
+  // ...
+}
+

When annotated with @DataRepository (and adapters as arguments, as we’ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote.

+

Assuming a Task model and its corresponding Repository<Task>, let’s first see how to retrieve a collection of resources from an API.

+

findAll

+
Repository<Task> repository = ref.tasks;
+final tasks = await repository.findAll();
+
+// GET http://base.url/tasks
+

This async call triggered an HTTP request to GET http://base.url/tasks.

+

There are multiple ways to obtain a Repository: ref.tasks will work in a typical Flutter Riverpod app (essentially a shortcut to ref.watch(tasksRepositoryProvider)).

+
+

Understanding the magic ✨

+

How exactly does Flutter Data resolve the http://base.url/tasks URL?

+

The Repository class depends on a RemoteAdapter which defines functions and getters such as urlForFindAll, baseUrl and type among many others. We can override these with an adapter.

+

And, how exactly does Flutter Data instantiate Task models?

+

Flutter Data ships with a built-in serializer/deserializer for classic JSON. It means that the default serialized form of a Task instance looks like:

+
{
+  "id": 1,
+  "title": "delectus aut autem",
+  "completed": false
+}
+

Of course, this too can be overridden like the JSON API Adapter does.

+ +
+

We can include query parameters (in this case used for pagination and resource inclusion):

+
final tasks = await repository.findAll(params: {'include': 'comments', 'page': { 'limit': 20 }});
+
+// GET http://base.url/tasks?include=comments&page[limit]=20
+

Or headers:

+
final tasks = await repository.findAll(headers: { 'Authorization': 't0k3n' });
+

We can also request only for models in local storage:

+
final tasks = await repository.findAll(remote: false);
+
+

In addition to adapters, the @DataRepository annotation can take a remote boolean argument which will make it the default for the repository.

+
@DataRepository([TaskAdapter], remote: false)
+class Task with DataModel<Task> {
+  // by default no operation hits the remote endpoint
+}
+
+
+

And syncLocal which synchronizes local storage with the exact resources returned from the remote source (for example, to reflect server-side resource deletions).

+
final tasks = await repository.findAll(syncLocal: true);
+

Example:

+

If a first call to findAll returns data for task IDs 1, 2, 3 and a second call updated data for 2, 3, 4 you will end up in your local storage with: 1, 2 (updated), 3 (updated) and 4.

+

Passing syncLocal: true to the second call will leave the local storage state with 2, 3 and 4.

+

watchAll

+

Watches all models of a given type in local storage through a Riverpod ref.watch, wrapping the watchAllNotifier.

+

For updates to any model of type Task to prompt a rebuild we can use:

+
class TasksScreen extends HookConsumerWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final state = ref.tasks.watchAll();
+    if (state.isLoading) {
+      return CircularProgressIndicator();
+    }
+    // use state.model which is a List<Task>
+  }
+);
+

watchAllNotifier

+

Returns a DataState StateNotifier which notifies changes on all models of a given type in local storage.

+

Will invoke findAll in the background with remote, params, headers and syncLocal.

+

findOne

+

Finds a resource by ID and saves it in local storage.

+
Repository<Task> repository;
+final task = await repository.findOne(1);
+
+// GET http://base.url/tasks/1
+
+

As explained above in findAll, Flutter Data resolves the URL by using the urlForFindOne function. We can override this in an adapter.

+

For example, use path /tasks/something/1:

+
mixin TaskURLAdapter on RemoteAdapter<Task> {
+  @override
+  String urlForFindOne(id, params) => '$type/something/$id';
+}
+
+
+

Takes remote, params and headers as named arguments.

+

watchOne

+

Watches a model of a given type in local storage through a Riverpod ref.watch, wrapping the watchOneNotifier.

+

For updates to a given model of type Task to prompt a rebuild we can use:

+
class TaskScreen extends HookConsumerWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final state = ref.tasks.watchOne(3);
+    if (state.isLoading) {
+      return CircularProgressIndicator();
+    }
+    // use state.model which is a Task
+  }
+);
+

watchOneNotifier

+

Returns a DataState StateNotifier which notifies changes on a model of a given type in local storage.

+

Will invoke findOne in the background with remote, params and headers.

+

It can additionally react to selected relationships of this model via alsoWatch:

+
watchOneNotifier(3, alsoWatch: (task) => [task.user]);
+

save

+

Saves a model to local storage and remote.

+
final savedTask = await repository.save(task);
+

Takes remote, params and headers as named arguments.

+
+

Want to use the PUT verb instead of PATCH? Use this adapter:

+
mixin TaskURLAdapter on RemoteAdapter<Task> {
+  @override
+  String methodForSave(id, params) => id != null ? DataRequestMethod.PUT : DataRequestMethod.POST;
+}
+
+
+

delete

+

Deletes a model from local storage and sends a DELETE HTTP request.

+
await repository.delete(model);
+

Takes remote, params and headers as named arguments.

+

DataState

+

DataState is a class that holds state related to resource fetching and is practical in UI applications. It is returned in all Flutter Data watchers.

+

It has the following attributes:

+
T model;
+bool isLoading;
+DataException? exception;
+StackTrace? stackTrace;
+

And it’s typically used in a Flutter build method like:

+
class MyApp extends HookConsumerWidget {
+  @override
+  Widget build(BuildContext context, WidgetRef ref) {
+    final state = ref.tasks.watchAll();
+    if (state.isLoading) {
+      return CircularProgressIndicator();
+    }
+    if (state.hasException) {
+      return ErrorScreen(state.exception, state.stackTrace);
+    }
+    return ListView(
+      children: [
+        for (final task in state.model)
+          Text(task.title),
+    // ...
+  }
+}
+

Custom endpoints

+

Awful APIs also supported 😄

+

As we saw, CRUD endpoints can be customized via urlFor* methods.

+

But ad-hoc endpoints? They are not a rare finding in most REST APIs.

+

We’ll see how to to implement these in the next section, Adapters.

+

Architecture overview

+

This is the dependency graph for an app with models User and Task:

+

+ +

+

Clients will only interact with providers and repositories, while using the Adapter API to customize behavior. As a matter of fact, Flutter Data itself extends this API internally to add serialization, watchers and offline features.

+

LocalAdapter, GraphNotifier and the usage of Hive are internal concerns. Do not use LocalAdapters for local storage capabilities; these are all exposed via the Repository and RemoteAdapter APIs.

+ + + +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..036e721 --- /dev/null +++ b/index.html @@ -0,0 +1,241 @@ + + + + + + + + + + Flutter Data + + + + + + + + + +
+
+
+
+

+ + + Flutter Data +

+
+ +
+ Docs + + + + Articles +
+ + +
+
+
+ +
+
+
+
+

+ Persistent reactive models in Flutter. With zero boilerplate. +

+

+ Flutter Data is an offline-first data framework that gives you a + configurable REST client and powerful model relationships. +

+ +
+ +
+
+
+ +
+ +
+
+

Apps using Flutter Data

+
+
+ +
+
+
+
+ +
+
+

Features 🚀

+
+
+ Repositories for all models +
    +
  • CRUD and custom remote endpoints
  • +
  • StateNotifier watcher APIs
  • +
+
+
+ Built for offline-first +
    +
  • Hive-based local storage at its core
  • +
  • Failure handling & retry API
  • +
+
+
+ Intuitive APIs, effortless setup +
    +
  • Truly configurable and composable via Dart mixins and codegen
  • +
  • Built-in Riverpod providers for all models
  • +
+
+
+ Exceptional relationship support +
    +
  • Automatically synchronized, fully traversable relationship graph
  • +
  • Reactive relationships
  • +
+
+
+
+
+ +
+
+

Working on a Flutter app that talks to an API + server?

+

You want to fetch data from a REST API, serialize it, store it for offline use and hook it up with your state + management solution – all that for 20+ interconnected models in your app.

+

Trying to make this work with http/Chopper/Firebase, json_serializable, ad-hoc caching, Riverpod wiring up, + custom loading/error states (not to mention sync’ing with local storage, Hive or SQLite)... +

+

+ PAIN 😫 +

+

But what if you could get it all working smoothly with minimal effort?

+
+
+ +
+
+

Compatibility

+

Fully compatible with the tools we know and love:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FlutterAnd pure Dart, too.
Flutter WebSupported!
json_serializableFully supported (but not required) +
RiverpodSupported & automatically wired up
ProviderSupported with minimal extra code
get_itSupported with minimal extra code
Classic JSON REST APIBuilt-in support!
JSON:APISupported via external adapter
FreezedSupported!
+
+
+ + + + + \ No newline at end of file diff --git a/index.xml b/index.xml new file mode 100644 index 0000000..41a886b --- /dev/null +++ b/index.xml @@ -0,0 +1,346 @@ + + + + Flutter Data + / + Recent content on Flutter Data + Hugo -- gohugo.io + en-us + Thu, 09 Dec 2021 23:17:30 -0300 + + Quickstart + /docs/quickstart/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/quickstart/ + Add flutter_data and dependencies to your pubspec.yaml file: +dependencies:flutter:sdk:flutterflutter_data:^1.0.0# Highly RECOMMENDED (but not required) packagespath_provider:^2.0.7json_annotation:4.3.0flutter_riverpod:^1.0.0dev_dependencies:build_runner:^1.10.1# REQUIRED! Please use versions &gt;= 1.10.1# Highly RECOMMENDED (but not required) packagesjson_serializable:^6.0.1Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +However, json_serializable and path_provider are highly convenient so they are recommended. +The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. Basic configuration 🔧 Annotate your models with @DataRepository() and mix DataModel&lt;T&gt; in. + + + + Repositories + /docs/repositories/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/repositories/ + Flutter Data is organized around the concept of models which are data classes mixing in DataModel. +@DataRepository([TaskAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote. + + + + Adapters + /docs/adapters/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/adapters/ + Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data&rsquo;s building blocks. +Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. +Overriding basic behavior Several parts are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework can take a sensible guess and make that GET /tasks by default – and it does. +Still, a base URL is necessary and the endpoint parts should be overridable. + + + + Models + /docs/models/ + Mon, 20 Apr 2020 19:01:08 -0300 + + /docs/models/ + Flutter Data models are data classes that mix DataModel in: +@DataRepository([TaskAdapter]) @JsonSerializable() class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common. +The json_serializable library is helpful but not required. + Model with @JsonSerializable? You don&rsquo;t need to declare fromJson or toJson Model without @JsonSerializable? + + + + Relationships + /docs/relationships/ + Mon, 20 Apr 2020 17:21:33 -0300 + + /docs/relationships/ + Flutter Data features an advanced relationship mapping system. +Use: + HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class User with DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;? + + + + Initialization + /docs/initialization/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/initialization/ + In Flutter with Riverpod The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget. +import &#39;package:flutter/material.dart&#39;; import &#39;package:hooks_riverpod/hooks_riverpod.dart&#39;; import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;main.data.dart&#39;; import &#39;models/task.dart&#39;; void main() { runApp( ProviderScope( child: MyApp(), overrides: [configureRepositoryLocalStorage()], ), ); } class MyApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: Scaffold( body: Center( child: ref. + + + + FAQ + /docs/faq/ + Mon, 01 Jan 0001 00:00:00 +0000 + + /docs/faq/ + Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: +import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: +flutter pub run build_runner build --delete-conflicting-outputs VSCode users! +If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. + Also make sure your dependencies are up to date: + + + + Nested Resources Adapter + /articles/nested-resources-adapter/ + Thu, 09 Dec 2021 23:17:30 -0300 + + /articles/nested-resources-adapter/ + Here&rsquo;s how you could access nested resources such as: /posts/1/comments +mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); + + + + Custom Deserialization Adapter + /articles/custom-deserialization-adapter/ + Thu, 09 Dec 2021 23:15:44 -0300 + + /articles/custom-deserialization-adapter/ + Example: +mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. + + + + Intercept Logout Adapter + /articles/intercept-logout-adapter/ + Thu, 09 Dec 2021 23:15:11 -0300 + + /articles/intercept-logout-adapter/ + The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } + + + + Override findAll Adapter + /articles/override-findall-adapter/ + Thu, 09 Dec 2021 23:14:28 -0300 + + /articles/override-findall-adapter/ + In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } + + + + Override findOne URL Adapter + /articles/override-findone-url-method/ + Thu, 09 Dec 2021 23:14:28 -0300 + + /articles/override-findone-url-method/ + In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } + + + + Iterator Style Adapter + /articles/iterator-style-adapter/ + Thu, 09 Dec 2021 23:13:36 -0300 + + /articles/iterator-style-adapter/ + mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); + + + + Override HTTP Client Adapter + /articles/override-http-client-adapter/ + Thu, 09 Dec 2021 23:10:10 -0300 + + /articles/override-http-client-adapter/ + An example on how to override and use a more advanced HTTP client. +Here the connectionTimeout is increased, and an HTTP proxy enabled. +mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient! + + + + Override Default Headers and Query Parameters + /articles/override-headers-query-parameters/ + Thu, 09 Dec 2021 23:07:40 -0300 + + /articles/override-headers-query-parameters/ + Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. +Here is how: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super. + + + + Configure Flutter Data to Work with GetIt + /articles/configure-get-it/ + Sun, 05 Dec 2021 23:12:05 -0300 + + /articles/configure-get-it/ + This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. +Important: Make sure to replicate ProxyProviders for other models than Todo. +class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository. + + + + Configure Flutter Data to Work with Provider + /articles/configure-provider/ + Sun, 05 Dec 2021 23:12:05 -0300 + + /articles/configure-provider/ + This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. +Important: Make sure to replicate ProxyProviders for other models than Todo. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context. + + + + Override Base URL Adapter + /articles/override-base-url/ + Fri, 03 Dec 2021 18:45:45 -0300 + + /articles/override-base-url/ + Flutter Data is extended via adapters. +mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } + + + + Deconstructing Dart Constructors + /articles/deconstructing-dart-constructors/ + Wed, 12 Feb 2020 13:43:48 -0500 + + /articles/deconstructing-dart-constructors/ + Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +Read this post and you will become an expert! +When we want an instance of a certain class we call a constructor, right? +var robot = new Robot(); In Dart 2 we can leave out the new: +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: + + + + Dart Getter Shorthand to Cache Computed Properties + /articles/dart-getter-cache-computed-properties/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/dart-getter-cache-computed-properties/ + An elegant Dart getter shorthand used to cache computed properties: +T get foo =&gt; _foo ??= _computeFoo(); // which depends on having T _foo; T _computeFoo() =&gt; /** ... **/; It makes use of the fallback assignment operator ??=. +Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! + + + + Final vs const in Dart + /articles/dart-final-const-difference/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/dart-final-const-difference/ + What&rsquo;s the difference between final and const in Dart? +Easy! +Final means single-assignment. +Const means immutable. +Let&rsquo;s see an example: +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! + + + + How To Define an Interface in Dart + /articles/define-interface-dart/ + Sat, 04 Jan 2020 13:43:48 -0500 + + /articles/define-interface-dart/ + Dart defines implicit interfaces. What does this mean? +In your app you&rsquo;d have: +class Session { authenticate() { // impl } } or +abstract class Session { authenticate(); } And for example in tests: +class MockSession implements Session { authenticate() { // mock impl } } No need to define a separate interface, just use regular or abstract classes! +Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! + + + + How to Build Widgets with an Async Method Call + /articles/build-widget-with-async-method-call/ + Wed, 18 Dec 2019 00:00:00 +0000 + + /articles/build-widget-with-async-method-call/ + You want to return a widget in a build method&hellip; +But your data comes from an async function! +class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. +So, can we make the build method async? + + + + Why Is My Future/Async Called Multiple Times? + /articles/future-async-called-multiple-times/ + Wed, 18 Dec 2019 00:00:00 +0000 + + /articles/future-async-called-multiple-times/ + Why is FutureBuilder firing multiple times? My future should be called just once! +It appears that this build method is rebuilding unnecessarily: +@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example. + + + + The Ultimate Javascript vs Dart Syntax Guide + /articles/ultimate-javascript-dart-syntax-guide/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /articles/ultimate-javascript-dart-syntax-guide/ + Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +(Pros and cons of choosing Flutter/Dart is outside the scope of this article.) +So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. + + + + Checking Nulls and Null-Aware Operators in Dart + /articles/checking-null-aware-operators-dart/ + Wed, 18 Sep 2019 00:00:00 +0000 + + /articles/checking-null-aware-operators-dart/ + What is the best practice for checking nulls in Dart? +var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. +However! There are some very interesting null-aware operators. +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: + + + + How to Format a Duration as a HH:MM:SS String + /articles/how-to-format-duration/ + Tue, 10 Sep 2019 23:43:48 -0500 + + /articles/how-to-format-duration/ + The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: +format(Duration d) =&gt; d.toString().split(&#39;.&#39;).first.padLeft(8, &#34;0&#34;); Example usage: +main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: + + + + How to Upgrade Flutter + /articles/upgrade-flutter-sdk/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /articles/upgrade-flutter-sdk/ + Type in your terminal: +flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. +flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: +flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: +flutter upgrade + + + + Minimal Flutter Apps to Get Started + /articles/minimal-hello-world-flutter-app/ + Tue, 30 Jul 2019 23:43:48 -0500 + + /articles/minimal-hello-world-flutter-app/ + Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. +Here are a few options to copy-paste into lib/main.dart. +Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! + + + + diff --git a/main.css b/main.css new file mode 100644 index 0000000..0f4398f --- /dev/null +++ b/main.css @@ -0,0 +1,1359 @@ +/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */ + +/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ + +/* +Document +======== +*/ + +/** +Use a better box model (opinionated). +*/ + +*, +::before, +::after { + box-sizing: border-box; +} + +/** +Use a more readable tab size (opinionated). +*/ + +html { + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; +} + +/** +1. Correct the line height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +*/ + +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + +/* +Sections +======== +*/ + +/** +Remove the margin in all browsers. +*/ + +body { + margin: 0; +} + +/** +Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) +*/ + +body { + font-family: + system-ui, + -apple-system, /* Firefox supports this but not yet `system-ui` */ + 'Segoe UI', + Roboto, + Helvetica, + Arial, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji'; +} + +/* +Grouping content +================ +*/ + +/** +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ +} + +/* +Text-level semantics +==================== +*/ + +/** +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/** +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/** +1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) +2. Correct the odd 'em' font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: + ui-monospace, + SFMono-Regular, + Consolas, + 'Liberation Mono', + Menlo, + monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/** +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/** +Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +Tabular data +============ +*/ + +/** +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ +} + +/* +Forms +===== +*/ + +/** +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} + +/** +Remove the inheritance of text transform in Edge and Firefox. +1. Remove the inheritance of text transform in Firefox. +*/ + +button, +select { + /* 1 */ + text-transform: none; +} + +/** +Correct the inability to style clickable types in iOS and Safari. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} + +/** +Remove the inner border and padding in Firefox. +*/ + +::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** +Restore the focus styles unset by the previous rule. +*/ + +:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** +Remove the additional ':invalid' styles in Firefox. +See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/** +Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. +*/ + +legend { + padding: 0; +} + +/** +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/** +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/** +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/** +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to 'inherit' in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Interactive +=========== +*/ + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/** + * Manually forked from SUIT CSS Base: https://github.com/suitcss/base + * A thin layer on top of normalize.css that provides a starting point more + * suitable for web applications. + */ + +/** + * Removes the default spacing and border for appropriate elements. + */ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +button { + background-color: transparent; + background-image: none; +} + +fieldset { + margin: 0; + padding: 0; +} + +ol, +ul { + list-style: none; + margin: 0; + padding: 0; +} + +/** + * Tailwind custom reset styles + */ + +/** + * 1. Use the user's configured `sans` font-family (with Tailwind's default + * sans-serif font stack as a fallback) as a sane default. + * 2. Use Tailwind's default "normal" line-height so the user isn't forced + * to override it to ensure consistency even when using the default theme. + */ + +html { + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 1 */ + line-height: 1.5; + /* 2 */ +} + +/** + * Inherit font-family and line-height from `html` so users can set them as + * a class directly on the `html` element. + */ + +body { + font-family: inherit; + line-height: inherit; +} + +/** + * 1. Prevent padding and border from affecting element width. + * + * We used to set this in the html element and inherit from + * the parent element for everything else. This caused issues + * in shadow-dom-enhanced elements like
where the content + * is wrapped by a div with box-sizing set to `content-box`. + * + * https://github.com/mozdevs/cssremedy/issues/4 + * + * + * 2. Allow adding a border to an element by just adding a border-width. + * + * By default, the way the browser specifies that an element should have no + * border is by setting it's border-style to `none` in the user-agent + * stylesheet. + * + * In order to easily add borders to elements by just setting the `border-width` + * property, we change the default border-style for all elements to `solid`, and + * use border-width to hide them instead. This way our `border` utilities only + * need to set the `border-width` property instead of the entire `border` + * shorthand, making our border utilities much more straightforward to compose. + * + * https://github.com/tailwindcss/tailwindcss/pull/116 + */ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: currentColor; + /* 2 */ +} + +/* + * Ensure horizontal rules are visible by default + */ + +hr { + border-top-width: 1px; +} + +/** + * Undo the `border-style: none` reset that Normalize applies to images so that + * our `border-{width}` utilities have the expected effect. + * + * The Normalize reset is unnecessary for us since we default the border-width + * to 0 on all elements. + * + * https://github.com/tailwindcss/tailwindcss/issues/362 + */ + +img { + border-style: solid; +} + +textarea { + resize: vertical; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + color: #9ca3af; +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + opacity: 1; + color: #9ca3af; +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + color: #9ca3af; +} + +button, +[role="button"] { + cursor: pointer; +} + +/** + * Override legacy focus reset from Normalize with modern Firefox focus styles. + * + * This is actually an improvement over the new defaults in Firefox in our testing, + * as it triggers the better focus styles even for links, which still use a dotted + * outline in Firefox by default. + */ + +:-moz-focusring { + outline: auto; +} + +table { + border-collapse: collapse; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/** + * Reset links to optimize for opt-in styling instead of + * opt-out. + */ + +a { + color: inherit; + text-decoration: inherit; +} + +/** + * Reset form element properties that are easy to forget to + * style explicitly so you don't inadvertently introduce + * styles that deviate from your design system. These styles + * supplement a partial reset that is already applied by + * normalize.css. + */ + +button, +input, +optgroup, +select, +textarea { + padding: 0; + line-height: inherit; + color: inherit; +} + +/** + * Use the configured 'mono' font family for elements that + * are expected to be rendered with a monospace font, falling + * back to the system monospace stack if there is no configured + * 'mono' font family. + */ + +pre, +code, +kbd, +samp { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +/** + * 1. Make replaced elements `display: block` by default as that's + * the behavior you want almost all of the time. Inspired by + * CSS Remedy, with `svg` added as well. + * + * https://github.com/mozdevs/cssremedy/issues/14 + * + * 2. Add `vertical-align: middle` to align replaced elements more + * sensibly by default when overriding `display` by adding a + * utility like `inline`. + * + * This can trigger a poorly considered linting error in some + * tools but is included by design. + * + * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210 + */ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/** + * Constrain images and videos to the parent width and preserve + * their intrinsic aspect ratio. + * + * https://github.com/mozdevs/cssremedy/issues/14 + */ + +img, +video { + max-width: 100%; + height: auto; +} + +/** + * Ensure the default browser behavior of the `hidden` attribute. + */ + +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-border-opacity: 1; + border-color: rgba(229, 231, 235, var(--tw-border-opacity)); +} + +.fixed { + position: fixed; +} + +.relative { + position: relative; +} + +.sticky { + position: sticky; +} + +.inset-0 { + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; +} + +.inset-x-0 { + left: 0px; + right: 0px; +} + +.top-0 { + top: 0px; +} + +.top-16 { + top: 4rem; +} + +.z-50 { + z-index: 50; +} + +.z-40 { + z-index: 40; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.-mx-6 { + margin-left: -1.5rem; + margin-right: -1.5rem; +} + +.-mt-6 { + margin-top: -1.5rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mr-5 { + margin-right: 1.25rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mt-8 { + margin-top: 2rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.-mt-4 { + margin-top: -1rem; +} + +.-ml-1 { + margin-left: -0.25rem; +} + +.mb-16 { + margin-bottom: 4rem; +} + +.-mt-48 { + margin-top: -12rem; +} + +.mb-32 { + margin-bottom: 8rem; +} + +.mb-8 { + margin-bottom: 2rem; +} + +.-mt-16 { + margin-top: -4rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.-mb-16 { + margin-bottom: -4rem; +} + +.ml-4 { + margin-left: 1rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.mt-20 { + margin-top: 5rem; +} + +.block { + display: block; +} + +.inline-block { + display: inline-block; +} + +.inline { + display: inline; +} + +.flex { + display: flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-16 { + height: 4rem; +} + +.h-5 { + height: 1.25rem; +} + +.h-56 { + height: 14rem; +} + +.h-4 { + height: 1rem; +} + +.h-full { + height: 100%; +} + +.h-screen { + height: 100vh; +} + +.max-h-screen { + max-height: 100vh; +} + +.min-h-screen { + min-height: 100vh; +} + +.w-24 { + width: 6rem; +} + +.w-full { + width: 100%; +} + +.w-4\/12 { + width: 33.333333%; +} + +.w-1\/12 { + width: 8.333333%; +} + +.w-7\/12 { + width: 58.333333%; +} + +.w-4 { + width: 1rem; +} + +.min-w-0 { + min-width: 0px; +} + +.max-w-6xl { + max-width: 72rem; +} + +.max-w-screen-xl { + max-width: 1280px; +} + +.max-w-2xl { + max-width: 42rem; +} + +.max-w-3xl { + max-width: 48rem; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.flex-grow { + flex-grow: 1; +} + +.table-fixed { + table-layout: fixed; +} + +.cursor-default { + cursor: default; +} + +.list-none { + list-style-type: none; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.flex-row { + flex-direction: row; +} + +.flex-col { + flex-direction: column; +} + +.items-center { + align-items: center; +} + +.justify-start { + justify-content: flex-start; +} + +.justify-center { + justify-content: center; +} + +.gap-8 { + gap: 2rem; +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.overflow-hidden { + overflow: hidden; +} + +.overflow-y-auto { + overflow-y: auto; +} + +.overflow-y-scroll { + overflow-y: scroll; +} + +.rounded { + border-radius: 0.25rem; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgba(229, 231, 235, var(--tw-border-opacity)); +} + +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgba(17, 24, 39, var(--tw-bg-opacity)); +} + +.bg-green-500 { + --tw-bg-opacity: 1; + background-color: rgba(16, 185, 129, var(--tw-bg-opacity)); +} + +.bg-yellow-50 { + --tw-bg-opacity: 1; + background-color: rgba(255, 251, 235, var(--tw-bg-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); +} + +.bg-cover { + background-size: cover; +} + +.bg-top { + background-position: top; +} + +.fill-current { + fill: currentColor; +} + +.p-20 { + padding: 5rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-1 { + padding-left: 0.25rem; + padding-right: 0.25rem; +} + +.py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-12 { + padding-top: 3rem; + padding-bottom: 3rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.pl-2 { + padding-left: 0.5rem; +} + +.pr-4 { + padding-right: 1rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pb-20 { + padding-bottom: 5rem; +} + +.pl-6 { + padding-left: 1.5rem; +} + +.pt-16 { + padding-top: 4rem; +} + +.pr-6 { + padding-right: 1.5rem; +} + +.pt-20 { + padding-top: 5rem; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.align-middle { + vertical-align: middle; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.font-bold { + font-weight: 700; +} + +.font-medium { + font-weight: 500; +} + +.leading-tight { + line-height: 1.25; +} + +.leading-relaxed { + line-height: 1.625; +} + +.leading-8 { + line-height: 2rem; +} + +.leading-snug { + line-height: 1.375; +} + +.tracking-tighter { + letter-spacing: -0.05em; +} + +.tracking-normal { + letter-spacing: 0em; +} + +.text-white { + --tw-text-opacity: 1; + color: rgba(255, 255, 255, var(--tw-text-opacity)); +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgba(156, 163, 175, var(--tw-text-opacity)); +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgba(107, 114, 128, var(--tw-text-opacity)); +} + +.text-gray-800 { + --tw-text-opacity: 1; + color: rgba(31, 41, 55, var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgba(55, 65, 81, var(--tw-text-opacity)); +} + +.text-gray-600 { + --tw-text-opacity: 1; + color: rgba(75, 85, 99, var(--tw-text-opacity)); +} + +.no-underline { + text-decoration: none; +} + +.antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.hover\:bg-green-600:hover { + --tw-bg-opacity: 1; + background-color: rgba(5, 150, 105, var(--tw-bg-opacity)); +} + +.hover\:text-gray-600:hover { + --tw-text-opacity: 1; + color: rgba(75, 85, 99, var(--tw-text-opacity)); +} + +.hover\:text-gray-900:hover { + --tw-text-opacity: 1; + color: rgba(17, 24, 39, var(--tw-text-opacity)); +} + +.focus\:text-gray-700:focus { + --tw-text-opacity: 1; + color: rgba(55, 65, 81, var(--tw-text-opacity)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +@media (min-width: 640px) { + .sm\:inline { + display: inline; + } + + .sm\:w-1\/2 { + width: 50%; + } + + .sm\:flex-row { + flex-direction: row; + } + + .sm\:justify-center { + justify-content: center; + } + + .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); + } + + .sm\:pr-12 { + padding-right: 3rem; + } +} + +@media (min-width: 768px) { + .md\:ml-auto { + margin-left: auto; + } + + .md\:mt-10 { + margin-top: 2.5rem; + } + + .md\:block { + display: block; + } + + .md\:flex { + display: flex; + } + + .md\:w-auto { + width: auto; + } + + .md\:max-w-3xl { + max-width: 48rem; + } + + .md\:items-center { + align-items: center; + } + + .md\:py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + } + + .md\:pl-4 { + padding-left: 1rem; + } + + .md\:pr-6 { + padding-right: 1.5rem; + } + + .md\:text-center { + text-align: center; + } +} + +@media (min-width: 1024px) { + .lg\:static { + position: static; + } + + .lg\:sticky { + position: sticky; + } + + .lg\:top-0 { + top: 0px; + } + + .lg\:mr-7 { + margin-right: 1.75rem; + } + + .lg\:-mb-0 { + margin-bottom: 0px; + } + + .lg\:block { + display: block; + } + + .lg\:flex { + display: flex; + } + + .lg\:hidden { + display: none; + } + + .lg\:h-auto { + height: auto; + } + + .lg\:max-h-full { + max-height: 100%; + } + + .lg\:w-1\/4 { + width: 25%; + } + + .lg\:w-3\/4 { + width: 75%; + } + + .lg\:items-center { + align-items: center; + } + + .lg\:justify-between { + justify-content: space-between; + } + + .lg\:overflow-visible { + overflow: visible; + } + + .lg\:overflow-y-visible { + overflow-y: visible; + } + + .lg\:border-0 { + border-width: 0px; + } + + .lg\:border-b-0 { + border-bottom-width: 0px; + } + + .lg\:bg-transparent { + background-color: transparent; + } + + .lg\:px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; + } + + .lg\:py-20 { + padding-top: 5rem; + padding-bottom: 5rem; + } + + .lg\:pr-8 { + padding-right: 2rem; + } + + .lg\:pt-0 { + padding-top: 0px; + } + + .lg\:pr-6 { + padding-right: 1.5rem; + } + + .lg\:pt-16 { + padding-top: 4rem; + } +} + +@media (min-width: 1280px) { + .xl\:mt-0 { + margin-top: 0px; + } + + .xl\:flex { + display: flex; + } + + .xl\:pb-16 { + padding-bottom: 4rem; + } + + .xl\:text-left { + text-align: left; + } + + .xl\:text-5xl { + font-size: 3rem; + line-height: 1; + } +} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..4c36240 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,116 @@ + + + + /docs/quickstart/ + + /docs/repositories/ + + /docs/adapters/ + + /docs/models/ + 2020-04-20T19:01:08-03:00 + + /docs/relationships/ + 2020-04-20T17:21:33-03:00 + + /docs/initialization/ + + /docs/faq/ + + /articles/ + 2021-12-09T23:17:30-03:00 + + / + 2021-12-09T23:17:30-03:00 + + /articles/nested-resources-adapter/ + 2021-12-09T23:17:30-03:00 + + /articles/custom-deserialization-adapter/ + 2021-12-09T23:15:44-03:00 + + /articles/intercept-logout-adapter/ + 2021-12-09T23:15:11-03:00 + + /articles/override-findall-adapter/ + 2021-12-09T23:14:28-03:00 + + /articles/override-findone-url-method/ + 2021-12-09T23:14:28-03:00 + + /articles/iterator-style-adapter/ + 2021-12-09T23:13:36-03:00 + + /articles/override-http-client-adapter/ + 2021-12-09T23:10:10-03:00 + + /articles/override-headers-query-parameters/ + 2021-12-09T23:07:40-03:00 + + /articles/configure-get-it/ + 2021-12-05T23:12:05-03:00 + + /articles/configure-provider/ + 2021-12-05T23:12:05-03:00 + + /articles/override-base-url/ + 2021-12-03T18:45:45-03:00 + + /docs/ + 2020-04-20T19:01:08-03:00 + + /tags/dart/ + 2020-02-12T13:43:48-05:00 + + /articles/deconstructing-dart-constructors/ + 2020-02-12T13:43:48-05:00 + + /tags/ + 2020-02-12T13:43:48-05:00 + + /articles/dart-getter-cache-computed-properties/ + 2020-01-04T13:43:48-05:00 + + /articles/dart-final-const-difference/ + 2020-01-04T13:43:48-05:00 + + /articles/define-interface-dart/ + 2020-01-04T13:43:48-05:00 + + /articles/build-widget-with-async-method-call/ + 2019-12-18T00:00:00+00:00 + + /articles/future-async-called-multiple-times/ + 2019-12-18T00:00:00+00:00 + + /tags/es6/ + 2019-10-15T13:43:48-05:00 + + /tags/javascript/ + 2019-10-15T13:43:48-05:00 + + /articles/ultimate-javascript-dart-syntax-guide/ + 2019-10-15T13:43:48-05:00 + + /articles/checking-null-aware-operators-dart/ + 2019-09-18T00:00:00+00:00 + + /articles/how-to-format-duration/ + 2019-09-10T23:43:48-05:00 + + /articles/upgrade-flutter-sdk/ + 2019-08-27T12:43:48-05:00 + + /tags/pub/ + 2019-08-27T12:43:48-05:00 + + /tags/vscode/ + 2019-08-27T12:43:48-05:00 + + /articles/minimal-hello-world-flutter-app/ + 2019-07-30T23:43:48-05:00 + + /categories/ + + diff --git a/tags/dart/index.html b/tags/dart/index.html new file mode 100644 index 0000000..69beacb --- /dev/null +++ b/tags/dart/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + dart - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ dart +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/dart/index.xml b/tags/dart/index.xml new file mode 100644 index 0000000..70bcd9f --- /dev/null +++ b/tags/dart/index.xml @@ -0,0 +1,48 @@ + + + + dart on Flutter Data + /tags/dart/ + Recent content in dart on Flutter Data + Hugo -- gohugo.io + en-us + Wed, 12 Feb 2020 13:43:48 -0500 + + Deconstructing Dart Constructors + /articles/deconstructing-dart-constructors/ + Wed, 12 Feb 2020 13:43:48 -0500 + + /articles/deconstructing-dart-constructors/ + Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +Read this post and you will become an expert! +When we want an instance of a certain class we call a constructor, right? +var robot = new Robot(); In Dart 2 we can leave out the new: +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: + + + + The Ultimate Javascript vs Dart Syntax Guide + /articles/ultimate-javascript-dart-syntax-guide/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /articles/ultimate-javascript-dart-syntax-guide/ + Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +(Pros and cons of choosing Flutter/Dart is outside the scope of this article.) +So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. + + + + Checking Nulls and Null-Aware Operators in Dart + /articles/checking-null-aware-operators-dart/ + Wed, 18 Sep 2019 00:00:00 +0000 + + /articles/checking-null-aware-operators-dart/ + What is the best practice for checking nulls in Dart? +var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. +However! There are some very interesting null-aware operators. +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: + + + + diff --git a/tags/es6/index.html b/tags/es6/index.html new file mode 100644 index 0000000..c09a9d2 --- /dev/null +++ b/tags/es6/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + es6 - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ es6 +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/es6/index.xml b/tags/es6/index.xml new file mode 100644 index 0000000..d3104d9 --- /dev/null +++ b/tags/es6/index.xml @@ -0,0 +1,23 @@ + + + + es6 on Flutter Data + /tags/es6/ + Recent content in es6 on Flutter Data + Hugo -- gohugo.io + en-us + Tue, 15 Oct 2019 13:43:48 -0500 + + The Ultimate Javascript vs Dart Syntax Guide + /articles/ultimate-javascript-dart-syntax-guide/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /articles/ultimate-javascript-dart-syntax-guide/ + Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +(Pros and cons of choosing Flutter/Dart is outside the scope of this article.) +So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. + + + + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..c0c3847 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + Tags - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ Tags +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml new file mode 100644 index 0000000..f47ffdc --- /dev/null +++ b/tags/index.xml @@ -0,0 +1,56 @@ + + + + Tags on Flutter Data + /tags/ + Recent content in Tags on Flutter Data + Hugo -- gohugo.io + en-us + Wed, 12 Feb 2020 13:43:48 -0500 + + dart + /tags/dart/ + Wed, 12 Feb 2020 13:43:48 -0500 + + /tags/dart/ + + + + + es6 + /tags/es6/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /tags/es6/ + + + + + javascript + /tags/javascript/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /tags/javascript/ + + + + + pub + /tags/pub/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /tags/pub/ + + + + + vscode + /tags/vscode/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /tags/vscode/ + + + + + diff --git a/tags/javascript/index.html b/tags/javascript/index.html new file mode 100644 index 0000000..7caea84 --- /dev/null +++ b/tags/javascript/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + javascript - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ javascript +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/javascript/index.xml b/tags/javascript/index.xml new file mode 100644 index 0000000..8c6c964 --- /dev/null +++ b/tags/javascript/index.xml @@ -0,0 +1,23 @@ + + + + javascript on Flutter Data + /tags/javascript/ + Recent content in javascript on Flutter Data + Hugo -- gohugo.io + en-us + Tue, 15 Oct 2019 13:43:48 -0500 + + The Ultimate Javascript vs Dart Syntax Guide + /articles/ultimate-javascript-dart-syntax-guide/ + Tue, 15 Oct 2019 13:43:48 -0500 + + /articles/ultimate-javascript-dart-syntax-guide/ + Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +(Pros and cons of choosing Flutter/Dart is outside the scope of this article.) +So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. + + + + diff --git a/tags/pub/index.html b/tags/pub/index.html new file mode 100644 index 0000000..49f275f --- /dev/null +++ b/tags/pub/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + pub - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ pub +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/pub/index.xml b/tags/pub/index.xml new file mode 100644 index 0000000..d99ecca --- /dev/null +++ b/tags/pub/index.xml @@ -0,0 +1,24 @@ + + + + pub on Flutter Data + /tags/pub/ + Recent content in pub on Flutter Data + Hugo -- gohugo.io + en-us + Tue, 27 Aug 2019 12:43:48 -0500 + + How to Upgrade Flutter + /articles/upgrade-flutter-sdk/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /articles/upgrade-flutter-sdk/ + Type in your terminal: +flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. +flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: +flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: +flutter upgrade + + + + diff --git a/tags/vscode/index.html b/tags/vscode/index.html new file mode 100644 index 0000000..21771ed --- /dev/null +++ b/tags/vscode/index.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + vscode - Flutter Data + + + + + + + + + +
+
+
+
+ +
+
+
+ +
+ + + + + +
+
+
+
+ +
+ + + +
+
+ + +

+ vscode +

+ + + +
+ +
+ +
+
+ +
+ + + + + + + \ No newline at end of file diff --git a/tags/vscode/index.xml b/tags/vscode/index.xml new file mode 100644 index 0000000..7149d1c --- /dev/null +++ b/tags/vscode/index.xml @@ -0,0 +1,24 @@ + + + + vscode on Flutter Data + /tags/vscode/ + Recent content in vscode on Flutter Data + Hugo -- gohugo.io + en-us + Tue, 27 Aug 2019 12:43:48 -0500 + + How to Upgrade Flutter + /articles/upgrade-flutter-sdk/ + Tue, 27 Aug 2019 12:43:48 -0500 + + /articles/upgrade-flutter-sdk/ + Type in your terminal: +flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. +flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: +flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: +flutter upgrade + + + + diff --git a/tailwind.css b/tailwind.css new file mode 100644 index 0000000..bd6213e --- /dev/null +++ b/tailwind.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/tutorial/01.png b/tutorial/01.png new file mode 100644 index 0000000000000000000000000000000000000000..e3284a78777c95127069cc4eefc64919984fdda1 GIT binary patch literal 100509 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 literal 0 HcmV?d00001 diff --git a/tutorial/01b.png b/tutorial/01b.png new file mode 100644 index 0000000000000000000000000000000000000000..f66f55f3fa687346934a6a58a934540d0d24ab70 GIT binary patch literal 27861 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 WKJG!rpAOuA;-I0bt5T+9iTWSpSW|rf literal 0 HcmV?d00001 diff --git a/tutorial/01c.png b/tutorial/01c.png new file mode 100644 index 0000000000000000000000000000000000000000..67fcdaffe590aa2b25ee2345268bb64e72dda035 GIT binary patch literal 11451 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 literal 0 HcmV?d00001 diff --git a/tutorial/02a.png b/tutorial/02a.png new file mode 100644 index 0000000000000000000000000000000000000000..bd69356e2aac849a438bd96a5ef3ec33a4bce991 GIT binary patch literal 30820 zcmce-bx>8&`|l5jgB(B_2|-G_LqWPkx{>Ziy1To(Q)%h$lGk}5;364*MQ;?s-3K(r+YZ(JYOZ}3JB0=R7`vsljh(`=h z8i$JE6M_`qfrgJrO;P}%^r8HK#necNYTqj;gaaANte_c@t8>V8zol+@go9n{ zYRM?GWwg<#gcnMt)w*llP8r_orECIe=SnCVc4m7!FDxVr20;c^A6bdo(BB^xW{P~L zZK0PQDtx%Eq{rsr?)>S?09R`qA{1tT4Z8HeFyC(+jtrab7+R<(^eM}FN^!0p3R%VY zEZA>uwqf$*H@i3#k|#T-Nd*u~C`L>u2qv;{3Fj#u&^PfR^LjM39Yl7dpe^SE{ecdlAU19p77PTaUqlJ;*X;nH!BIz^r?$K zz+vx+;Dc~d$65A82VcfiQBslG#rQX$-dJPxfxb~B(_Bg==@ax)h_teDlRCx3`g@o; zXV5xKk)G$aM#s|jheaL7)1DeiG7B@;l+n_u9$}x%o!zth6wHc_VDL?cBW_J?nbKngA zYzW_rC@&#xTxHlZe&Shht+$*E@^?O@58wzdax3&SSnQ6^Rv3%0D0~b!P-X3?H;_+6 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 literal 0 HcmV?d00001 diff --git a/tutorial/03.png b/tutorial/03.png new file mode 100644 index 0000000000000000000000000000000000000000..c65cd4c07f9e5fc0fb74f609dd8490641019a194 GIT binary patch literal 29104 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 literal 0 HcmV?d00001 diff --git a/tutorial/04a.png b/tutorial/04a.png new file mode 100644 index 0000000000000000000000000000000000000000..8ec0a776a3060736b4659c1aa72e46fcbbf86d34 GIT binary patch literal 32934 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
  • GD3C=kFJKe7>YQrysT4_Ln)&8`1sr{+&#bmW_lQ+9n))Ogb&buWm*~7V zcEF8Ar}mRG88S9Nh}fTz&(C_oG9VeJE=H zurVP)aoDUo*!& zh_!FM2tHn{m+`tiWpH0{{koEGK9&)8u{AITu5I5& z@#)WVBfp7mFdn*Gn|2#|ww z)t#KH4r?J3EYI>j ze-oX3rCAw9il>ulh;4N9p{G(Amzj+H!;6wP8biQCIWF+0b*4;RfvDwbjHf_22(JIY z=2Of&uK1Ib6Hu2}1-_d^)haz*Z_aZVTD5ZOt^TM4WPv9|BqDyB^xjL{?$7exm)k?R zgqRd4Av7w5`*p8rWj5kMngQ+ebhIGe#)*_;mXjh>i~@Ky`}Z6Ce>RM`68cLl2nZJ?pBr!YfXf{n&=v zU*_3EEADF*F}OD;^Htf5*hslgU!V|cU0#AU@ElR08;Dg=`lOR+H)4_I9NQlb>F)RQ zVzvvu>cv0Y99aiEY(_BEHTk_b6q278P%Y*gYV_j1)!@=hy+nS+)gc2I*U2IuZ`=S%Vv?O4`qn9l5xe0;u z0oc6#@|oPQz0lu)VQXCult-NR4R0Tgs=m&aspAj1K9{OhSl!#$B7-^hAaV>6eR?wF zvTyB5%u}MQ7JTV9CyTz(4`sCx%30r8gnIV~bcD>E2WlqxT%po$SKPC8oJZMf&BqCs z$djL9nLfvLT;Qt2oUkC!Lg|&U(AuBCcL+Q`o(cF zRoEaBwbc+k>s_zG(OgA~u}Dap$pP9{UAb1hbj#`@`-m1!EBp~Qx2y!{YTgDz_m|$q z*^=p^>ojap_-VD2es0IjKz`_P*v~uE#QGlLW`U1T%SF&2=e;)IttbeTUtA}vytq-mfXsmYj8bfr*9GbTKV2I@A`nNT6slEd;VRV?D`fNQ>N8P; z_YT5fP`ySt{JkMw9LlDgcRbCLHOS@S)z_(3$cYx#%)A2jGD zo5#7qGcF-oVfwnRW(XuamdS-%i|bJ#P}FMv`1{053)!`I5d-UFBa^uEOQ$ME;Y{@; zs8P^3P?tO@j1YrlT9d`t^MEsV_}&-RTjTnZaW{qcVlniez~CS&WS50%!$lrimBPqA zyg8S3F+4E;%l6w$m@d_C%nZ%@^J0r+5JVY`NY$_#`FkdEL1$8(TmhX|8RskNRoU`Y@qHH~+e5=W z`Gyvl&EHKF?$7t>@2{4zevayT=|&&D>nXr7AJ3Z2(>F#3iT+@}$}8i<8U!0GgTZ8Y zpz+-#pI;CoO84_?#R@4@6(X6Z>?gx~djco~9O8v)gI2rd9juW9Gzw`+!1vvx;mp;& z?+%fJkmbo$(XTNID%Wn52f`D%F~*2+_{h~X5Gw9-p!eoAx7RQw8bj~KVebum;ZB` z{)3}nWKFV#M;+lseGvf8v?@3g?5DW^T2BGbKuB{0}8+o2rTAov>I$mIK*;{ zKZsUHZBcqT_wSCT*FzgGbguz?%+h-S+V8x)4`!P}Wy z&p+FZ0MSK_+CYPnHBt1VlfC2wA0UIi9xJ#Wmhd|`anrK+Ta=)iy=_7X%gi zLF}b0{df1dInE8IHYAegNE42^U+NG!&D(YZ2?BqEHPqWLR12w9w#;;qA&K8gA~W~P z^9D|tN*~o%0|!29I&=w{&Px$sYha*XEYfg^>j0fKWtH}(;ehqR@VvaA4MwD+W}53e z$8}{1oSk(t0EcK;cHf`qy6leTmyIJenDA$~S$GGgfTc$TfvDn*LU#lb&^<%shJcqY zwJx@iR@2V(lN)gjAO{P8bF`LMA~`hE@DTmVA>d2Ys3Xjx7kjpuOncj17%yE!i`l~F zYU)fmB0=wfKh3By&{avdoDg`@-MH#icIpuaf)7!xg7DeUMr7P*{}Ot^nLP)*e+IK5 z+PD$tvU3;a_=&ZF48Ngz<=yRijz~XSrmJAq!eu1V5==^R52K*5+z=-cPj$=zeR)Nv zb}x5wP115`NbR@pAsTo*OAeJ5aWdAb;=GBFD&Ydp*9lne%Rbg^{HDF%2OvH1@mVLJ z8XPB}7M_Dazo06b*>wCl{c(2fg)Rzq%VAhLssYWix%g7wU>{m@f``dVZ6h}jE$Lyp z;2*G(jv^FF#;a%(A>mJ~xn>2zgpe-vel$eauNa+|20=K|yVYi-cO0M?zhF66)=I?# zl4h};O_pn#WY+qRKj?7R0`bbPn_Llfr!#9T7SrhQ7+DYcsuaS(8k$I@#*ouJJ2z?L zl3%4cG?0u%K*al-?y(5cT#Ky3@>dOdK(JQ%5SxV12?)ej#_YEH*igj}HOy-XlDxH| z4dk+Ym^DY`&9vrrTQwCB-Vw{6>S3Q}MRvt-j7Thz10<{FqcPubp-pow>x@~El9k-O zfqXF7n6s5qZK|v-r&@BR7RlZ;<4Nv!^)6vU=BeiE`l(!#IYh+J2=*YL_VR$8z!<{D zx@QGx@B<&eu_$5;4A0N^PHtH1B@VXTxCP~V@EF%VAaS#~TMEs#_;3lvg}fqQ(J&Ah zoZm=orR%4dB$9>?IC;^Q7#6ttZnxhRmWjs@o`k^`z6N*#e55+vk|_0s4GP{E8Bn(p zuCi){octDp`d5PIm9-8!1EkfnQc8pPjl+hcSG|Sb19$=coVb@32ub?)0gw~I1KR)B zE&={6u-GxTUB*Fw%bENkmdX5!R@Z6R0?@#uGeEGAF-_n4!PtQXkmYr)AeH}jb`ERI<*dE9a z?nJp6(7e&ya-eOw!8yZU8ZNjBgzkp%Pdb&~0=^mmx!3Gk*Zw<6K&ue2M~=mSg0~e` z138A;&s~jglX!j+6bx4ZszP*HJ(K`8=j20@)#kAK6Ss>F$TwxTr?^b&)yeFs^6!mj zyL+tuhS;=QY553XGE=T3fKOhDWUa!$!ose;PcO2`;`5%XaI0qEtqiKGWAj~Taythd zn4X@t&3imy9d>@YyP&_%JMFJe1AcZg@{o)3n7;6=q3S0`ctSD;_+u2!%&@Ke+LAfi zcRfAkk})?~;oT3-@_VrK1g;_M05yB_MS7k$n3}aFVXkZ=j{+}uB9!tO7WWy`=>QZS z20%8$E8h1$ZI;mc^z6EF@eK6&%l2Xj`AoKgqqtHX9^W0V0o>+S$ES`ZO9Bc`02Ud2 zb>}`l>-eL0+IFj#D)6a2kCcb6-KY=Fb0Y}br4;}ggZTEX-`1FPTU5oP@OIeR%1|AA z3HZEbX7_(>ZlrbHyn>@c=U2aReKfDoe!q+Vd=C(v_^OTu0v%jm= z`9eN1d*VDwnHT z%9v35erTM1quq+h#b)0kdJhH(cLgXol*JNGiF_)H7!=aG;!kUb0LxAQK+rz+We+vJ z;{_XpN><%Uv4P~NCQi9fz~OM z#m$61jPS30x!a1V^?h{HMNY)+=z?VSA5i`#44LT;h|qN17kuZ({n`+KfeOr`(wr1J zj!hxaJy46s0nVAjbNGtr0m4cT=xHP#`Z6XWV!9mZ9VhWVeHS$^uZ}`eg;uk)k+CuA zC>jzG7k!y}6_&{Ie7R;`-#6gii__I8hfF57E4^dI+AD0^Q)zNATxkbx$xNt>p4)U9 z93L4M=>PF+X`eedC-hOmes2w2LTERec(G8?A!9ZB84J)oYh(n|9s@X|5M%8Io5@{8 zeuz+P8%#PiS*?02ij$?r`2k0{JX;63F9Zu@b^w*!X;`vDKX1f#Sjl@vIg92wMLB6+ znN~nUL*E8SZ{p+W4+W|(A$LPm*@Fy?%cRsJfL#}u!va@y?8fP1;{2B&gjeKI17RmX z33=RP=Z`BISK|RNw9iD)S_0hG(z1%I&jeWGFd%>Wfk+P5qq!vDicHrXbqF%iT&7S2 z76bi&lh+jx6tPfh2ErqC*w9Sy!a@G>IMWK^{tgB%QAmi^@F}}p-sLi#@UPbbe)~)W zbLIBAb65c- zeFkoj)uZHq2U49cT2~#^p#Yam{IuPF0urCHfqJ%&jsAl4FwK>Hh%^>Ixx)dx7*hl^ zqKKx#gy+Yb(S4Sn5(9ir+md|6{t^MT{>ZISK=g2guBtVc!H~e=*QII0F8dMy(vP;9 zkQ6y&6V%GotqiFIYr5QEwNtT;l1BZXlc8aD*M!a|A2oI)MFj2Apiu!v@lpHROH_YkaRp< zMo@f!VqEwC?XNhR#ixyij>fQe9}K}u5o^y!<-I;NqlLA5F!_xg2$95C0XG~hQ|BVW z!Y1`sGYSz5v9ksjYK-e80-{$nI|s4yl(!=es9Gmdw|3ZmJ!=WSZKX_ZkTC}K>{rJjP1}lhHfPMCM0u=#+FvI*;p>9; z=ZoA#T`%bxd4K88nfu+9{q=HFt^FE5Lp6%K4zvaIk-uAaw?He)R*N7XN$VIGFSiG4 z$|*b8qR&QdP`||2Ke_Lyziil&e5$YHjZje^TXh4pQXTpJZ6R+Qh#jUa#Z$io_96E0X2otW&nt0Vk%7a)7_4h}v{BYNv z%A1xjH-V5f{dEO}Qlws`=VgvRrI5xZr9i@WxBf+3`58Ntdox!>%pB6&3_>zd?4Rtm0SmE+dHfh#Ud_bZXx3*>!|33)bBjQwIHBAq}fr$Y<2h>QNVlt&`F8m5fS{}z-ktyH-iPtT}S=AE|R^4&->QoS8<$**O4bQCsja!!Er0?jI$36)n07$ms%#0yCy( zt8HFn!SxI-xf+V@?$Rg(l$U+iq}-#xVcI-nsl9h{%*UKE_+PGgDq!&r)?(XiA7U>2Bk?!tpkW}eLk&u)|LRygSmQLyXp4Im|*XQb- z%dOd%nP>jL+|1kKF04)JI?2vC>A`-n`to&rc+ao8KGO2GKJD1MC=TfENd&u3)UIRL z+eV8y`vPH1lOyZ`GfXw%2M`ajpKk1Y^3 z(r~xM>}bNOK(?LyA!y6hVJ}eo^t5-%zbXVdc7*67p*kiC!><+5P)zp~N}{!J$tUhY z&(3Svo)+6W4ND|abVP=@aTvz*p-s~r=5-wkdg@KV9wdm2j=WJS?0U%pCj;543L{?& z2|VpA=A4Wb3dGxAY5G3phJslk7)dvkj;(HD_=qi5OV7tmfqAv=E!8Z=@&&$|w7eS4 zVZAucy8uyS49xVqdl=bxNIZ@7*w-Qa#qmj46^~8PF{?d#^P9ITRDl?Z*$8g;_XSgi z>7RMmt}^!-tVFkR+hkHFpM6)T6Mkzt!s#LgY&UJ0)Qw(KljlziYBCIdbz2$~AZ-*o?l! zb7Y@LQ$TRG$^&x;n}TWyb>uW~bT<0y=hs1YRn??3GsW^GE&E3F0@<3vt0JdPX%TkW z7h=tC2ld{g&tJvo?jLto-$JBpCVI5^!dV|M#Qp-^PcLVkUt5*>JErW0VEul@U^<-{ z%dVuF>f(xNj3n1fc)xb&>yj^en$TM)guuobXw8J50)?EXSO8BySldkfy#*Hz)5B=`AsX>7 z_P&#*$hH68v#xX8!t*a81AB?GlGiW6$<{5BY~eA83I7Oz-!{pTg42MAhxhuh&FWNrqZ*uDCg z;-CI34%MF(bG-i3pMi}1H6{%C|GeYchT6^0$A6v_Hn15Z7LosKZ)yN}2mG>H`uG0s zU^DyXtCIiTA^-=a6uJFbE*Cd9EhneO@w7(AxCclFAYjGRVaUgmB!RS3RAgkL^X7n} zuWt)3o8ipiQy+H2#@s(p0{IJ3bB2LcYIdk*~6;$$KK|KYOgPbAPbrtoGvVl5>lCHb?Xp#jl4 zF-zhiTi7R4!~-D<6=4%7q?jfGSg>C)1o!}VPsD8*%c6T6BPMG09YL?rG0*Phy%%_U zE~hn_<}F(+f8a^@)gBOV4K$@!0FIxIN@Ml!jF-@|v8jR}w5Zp`tQAx!tnWXwLO~rk z2SVupm}(Asoz7RH@t8NhZDqSWBZX@RaH!;DDB5vm(wu0re z8p_C%J&I0p{VCD z@3aCK*fZsptIR@_vxKyum(&uc;Yb*Eyle2=4xqb`%{GFyyU73k#=Z4*0y;M*P#hT% z;IuQ9%kE!OgXV!$s9;#pa{63RMI{wrl|CRUoSo@|c8{7@=RlWL1hM-<&|{$&FTJqj zwMA-&OwaK}x9+W$qLSJm&d(*}4MFd-H(8fZU9^>5`JnawVx9|Nj3;Ple+0D3hkXH@LZ)|A-J*Q>0EN|Hd*SPkgJ?~X$r^5hBu!YidXglfKE z223F^@zsFFtXVV-0Y*ww6Tg3%?Y+yWgdBfI(E?D(JB&U4KK?&#N!(T=3IM#m>Pw{b z{(x(|3QURRYC57@AcnHn_m3ezqP-u1 ze)*!(UUbJro_vu_U>X!x4ELqc7Nb+vrZVfK0o$w11D42f;Lt~YH8k;Jy$B5A;u4^P zEPhJBAmosExcj3fNakV4Mq`+m%B=l-lPMK(2WlVix!4~&_dM=Ic5^@GTeTJkG501+ z1>t}PU(s{4`ci3Cchc zRmslg>aF`+>aY&8T~yL_DDtqHUcVrdbB+k0v=#L}!}e5$D)ji|t{VVIel6^D-2m|0 z_5`2OP(FbyHG6iNf;u;(=wh%((?9hAeI&7)YY~Ni)s4$LBCZdbBkiw|xDiZl@$>LytOrCs_ ztcyv_ZxC;g9?_ z!c&hDnPRv5+-L;KB}+gK)Hl>nMOgwXhZ~OPr^mZL3H}Lpa&0^>VlJy9BCI?8fNps% zXp<(8yO-Nd2CG@GCUO$`8)fWvud@9WU?pxy9)XAJI2H;($o=6SK>T~Mz*0G8(Rq+{ zPLm^lMaOe>Rw9%H(G}_)7$YSRy1V*w5}&Uh-!&M#1(WoBo0yo_8MSX6K*-6>&}lfy zn)Bn>Glo5&u@q{3)&|jGW>)>$MBsEVh=GU*-??%leCNwW2LkP+dALja{l!PuonNv( zeAp(LA&pv}UMhN@?-n5vkx{_y!l}W(?s_&30@ki26>7#0$k*QuWb{3?GA!roY|>x7 zGXC%h@lp7wMe_rXHC0A&XvtieCjHK6UI-bF1i}F#ibxBkr(z@))&T&%X#gG$YUvmi zAr2Tf0fU7Sh{K$@Zi7&*rOuu0xLFn4EulcSb{w8({qZT3wH2Z7uoh(wC-myF=uG(l z8CCpF?97|X-Gc^8HV6nlO2F1NeeO4kj)Y_aF;LC2mvSTdN%Fe`muQx9nWSKqc?<<4AyqKRBAP+okp^~VF)m&Zc}m`&EjFa%Ma9_M%l&jTRi7xYdHN#B@~;p?B522$g@jPo8=o zpnFl9e!v}1oO$x(26NZN*A{n#R`%|0hL*~cE zjHh5vR`AUIFx&*4)?VnDK7|z~8N;8kL*bMpsbwCByqsAH3XH=%j;~_IUZR+q1WFoX z6{9075FCjo3;5HW6bopsoqd0Kb?uw zvCtdK#Plboe-h~P{>op6QyOpS4>~jVHwJm>_t%0wLX(=Qow!12={@5|W{bnIG&gWSh5Mxp|d3`rqI;Npdyna^2|EEjn z2_OEyQnf0`ihZl8jmFepXKrvHn9)(5C22v0o*+|T#zd{hf9(f-IRy$B`-5{KdWe4q zeLiSj>;LX$2orv)p2uY;HRzHZ*?+eTn*-_iBM!f#NC!)++PE`u)nL^$ZU|zbNqGP=a7g7|!}XDeNjm zLPE5yk0P1zz4O%_r{Yg#e$3am#CT-1uk)2Gg-783ZQl!Oqtw)w`w%-TAbUYeo)!#2 zB*hs~R!Wc7c)c0reW~=aaorOW;~3%J7g>g?l*2QB!uDeq*y{$gG)K7(g3*$&J0FFA z?x(+RZc9PlyBNfA0Bp!RS58H7nR-yc;e2&$#%NGq9vWfw!|8BAP!I&^!0ag+gJDGu zq<&@~v897+rJ{^XsO@r_5hwzprK6L3J5jpIBKQ-Ea3tF35?lF4)&(9^X6Wb(M*4Qp zw)WF%?Os{z80}lWce+4}LKCGW#%Ta%&+KfrpY6vjpcBuqqV+;QNB~;Q^MT)ijeptK zC9U!57_4`LVA`MuW0qyTOFSkC;On8-8>o3)9*2gEKtBRzNi64^Giz{GhqizLG5(#9 zNSpnl5UVS8LkkI?-5d>=_|t)lVsq2{t1b8?y)q>_>>>qnoFp&k$&*_N5?=X`J{Mw| z#%q0n89|zwv!*iui^s0=;()J{8cUqY@8)c5OD>j>l7Gq5BF*#apmZU0Xh_)$NK+eW z2KHmdIJO-w-fL0xg}|gRkf+IJgbBNI@)h$+1mGJ%=Z(m7v*sfgCJ)PSzj=;VStTb+ zQ~2@3Tl=r$U4Sf6cXu|fHmf?XWHa+s)arJ&$@gM}=)Is&61)Q_q`sIj*V_!6>{ zUll8Q%SC6`H-`>x?{gQKoEQ|TM5S@L{&ZB7Bw1uE5-hp_fG&vVmt?kudGLUO6G5Mg za!@8H0b;v_trgaqB|FxgP}yM~OiyGPQD`#NN3pok%zEx+nsJXk8;d(@TYVyLmdONs25f9OeE^-%@X)+$T9}Xpldxq!G1*j3 zz(ZMyc9QtO;rX$lkkQFAZs2u(&c#Z~=MaJZ(be^b|5I`BDRyp>=(a?Ej%!&tg zDuiP*9HtU^PZ>(5*V;_0dU(o-xYpiY9`TD=-ZlfSdogMm9N@v^a<23wqTVmbyfz>Q zoq6zK*s6eQ{6JcBedeWK;!H+XLl-=%VZ0vKun??U%uCn*uD!Y2ZdLV`IU0QbW z9>SO}_^fpl9l+Nb0o5J#ZFeWX&|?P!ui}pCXyKh0oZIQM{*if^QxWv|;V87?kr zNYMcdoX`%txA@q!DA+BFN!0QKIW~_I`N+~xndiJ6OrEb68lChVjlFkhvoP&0fO@L* zDoDX=zxoFa3yZRk2g5jEa~ZHi&k}usdY;C$6MOOF7Nibt*FPOTam=`@-U- zIDoei#!uzeGnziX{PvDE?z2N0n-PkE*6Jy%6&r?Rvmm8f5@Qn+@wvc@Q z%bnhdbpWULdJF}nyKHQ=mdd=v<6bL~rG>gds`?}6v|j5CsPZrWXRpsEMD zG(J#bd#;80p$^y#y!^zyKC0vFHdcT7@{9cIoo~w<MwUU!UgiErLAH{2($2m znZJj6Zr`oEH*H0Q9e3W&SXJqyle-rT1Lo!(jXMC>-FOO@Yn_sf`TH5OoG@RjDk_eV zp-yRVs6=M@>3RfB!{u=yAdM$Xk+zz3Et#Z{ey?}i(>}PSz(gR}6N*Qe-rlB+J`P?f zGmFNB)hsQwv4=ag8_N$*ckDwSu%pLTp$6G0XDHty_UsWyWd0agU=~jex%?DO+lr_Wb9x7 zi2C8NL~=zrsma&bPrIJs6~m{q=;fE3Lp>ON&xDby=dp+}DfBabON&*6OTr`f-;x{7 zJz!SfD0q=>&m4pSL&i2QqjL3RnWj8<#|JzSjuy~CTEWjuX!GL2RzN7+xl1^-0TF-E zVXvZKEiDjAY*e)&VxbBnamGb?Hp&n4nSK`T#<$VR5b9|nhSr%ZQ2}@I%Q92Mq|ks= zdDnhg{Q&!jJBM-VQ;)m&{a2Hvjs7P>vkCJg-)?q4vl_!rX>t^u0Y(ezBHi36$w>os zm%F$-Z>f>w<|>wK5Htd})}99j<~{vkFTRh`{VcKiGse!?wN%xL*Gi^cAYsQxN#yu4 z5nDQr?}?PswMOOVrZ-rc5xu>rh0J=V?R9j8J78@{+o|7kXf*!*y~|Y|ldmxXO?Y7+ zv3$$)1I9-(kd&8E<~E;u3U@o9sip{4R@WDvk{Q|DaG{gBpQXeUY(zIBeK~alOQHRe zm70{SEfNz?E>rRzfUTinU#|Na5E!B{=@D^c*owBh5{AcIQw7*LAZOR{h>)r3UACx| z3TgyIxDIs}B-Emz!Cr?P<*<|+u|%JIcrB8pZOLEnoEfS- zZW{5R$A}iO*?KTP0#(U(Q+>2c1}|pQ%a7-n0uGz&?9IAX-(LcqI#J?*a;4Wj=ng)N z_rKUAsAxzIxaRiwH--yC>Gs^?|H6d=7L=%7f`#DxGdJA=IYnUAdfM}p4}2Uj2TRFJA`tBJ2LlyX=!v|BzLG7-#QNk@d<24Sqb6&g>Rbe;-IKj;4QKY3N9Ux zARxX3aE!LVv-d(%Q<6bC+$c87yyR0R?E zcNrNB00s!QadFiII3-;Gi%EKp|BYfixp+ksbP@tdj9>e%6OhQxSR(HI>>AOlu^;69 zKga`Ezz|x~0_t{|Ku8LLvI6o9RG{LnR;5@R7}6A=G-vZxIhOy~nEY4g&F9cB(r)ns z)9dm6QuL6;*$9T69%0X+{a$

    #KeoSm97Ww+#RWJa2hj=mW6kA26FCwDooq?TWg$5 z_>UkcO*qCHaF9CL#||RGpxVK7)~1TRaG2H-h2EE;%ii*GF_$OLZFu&d(di+ z2e|NrF!qJe0NvZ_3g$2QkT)&BtpyfY0;A$jTAv5bcE*d;^Q7>(8IT8F4UXfio)T9{ z8g-6bnei9if<27retW)`ZjqIgU`K|8#sU8{gmTUlh(y8eG90=FHHgB#Q=1wKB#3*S zks;oMb`~2Bg}kSnV(TLDvxD#lVSCd}D%oTwwTpW{sv>w$>Zdd8h~lpBm|iCKC(|n_ zE628JJ01ilwYD?^d_glF@WpPe=__XG(_PC&vN&SiwB5HkS-+S5NI_mRUt*l_&ene}u<)`c^$ zXBI6!zO9}tG%t!yD|eLa9B*6=C#K=!n{r<83}Kf6*2B7wn3WY^5>I3Q2KkZN-k9Ok zdAL+#kPe@ZwpT+}`TP4++?sc)ys%f`*YdWJAw7DvpV z77;E+14`@N7C0?>w;2_c-{&SjEt z&%3b1w{0-8Sah+-#SBe80(6D9XY)n*Jy(-`<8O$%y>d{em_Y7<8GH>sR8#w0(Zr;r zF-io~RxPLn*6$0&a0r&z8^{NML}WQs3@Qu-jpV2~iyNUq#ZHf_jk4r9q+OUJ^cH)- zdJOk5XoB6d0UEg{$++6!-{?#rP7{X0!PYQbkx9(#O_WhLE-~p;usoJO%KNOX*fU#Z z5CtJe@Y#Y=Yh1<`G8CCc&F-msHCBqCH`J}IDxu!6-M`gTJ@(@Ibdder1Ka!pj83~p ztKcVuN+(UEe?BX0?i&Zb5<_wNv3{10qSfOHE9C8p-|Bt&iy%4(rhqbb&1rQOZ99;2 z_hBUjYlE6MEHr*dcdLqEd8`_-oh4EEoLsIKnxF*T0}=t&aaY@}qy3cRu^d2{E|WLE z;u1Tb&~*Mm>d^;0gBx?0)4P~Ye?U0+6Ou@GQ6OP6Yf52(UJkzfQ2p*8zpE=9`$Pj2 z#M2LeNKZxk-PKz8jbEy2#E!;s2f@=U?&2}fG`(Flme(m9G98F1E=a34|6Ky+WQ=hZ zsW6Bmj~XEa*g6M(vwn0#jy*Lij8(;gJ(r0HJIxD`v$_ET2kVJuq?!43%g4#3lx5CcydFs;; zwS+`KoNotVg_4sB43x6LieiNE0Ye+Vs~|^e#D&BR5Rcf{m!uge0!xvRxJwC;@FPu% zp5t8udIZ910Mib20^6*C@%tTMyLx~5zad_~k&xQkLkuCW+L>>tv=0F%>y9L3Alh0P z-PPFt`t_prc4V9zW%)TRE!}HoWF%NZ8VLps%g6~REwUaYIsk`+ZPYC*CRfEqJx87& z-?<1>>at4GD#<`>BAYmDs5foz6zXDzl4+z?z`E7MN*PNSDK(^ywP9rxKze;D&OltT z36i4P+#P{qAE-}x+ny=}U-eqe@GONqExt@5pF^}6EmiZ!z@`73CT~@%{DojAsp**= zA7B&`Zeke-uh*0k*lX-M((wprg@|00vH4xKuVO|9vjRsjvT-e_E#}GaQ}i;khq#LYx4^^oYX)ji6|s#M19J;s>@y9zSeQ;^^Kc=GI5+x` zE4dB^d}_5?Sh=(9l}^(9@YA46P)&9|rvY5}g`OvCP2Az2q4a*V%I(dQ* z%JP?G??}Xabvx#_7s~AW2LTZ-Z`Y z_=K=9PdYr^@vKk7h%J(HH;!wiIdl&)-Cd~YV0q&Hu)K7CtLtXy1QTFNbsa$=%QBl5 zToX;J9Q9)6bDUIm9Ikw1aB%p@iz|5D9vrE(rzLS8<79|u@W z)Kgw;2_X;rWg?*b**k8J=B+&mw9_3nx~6yo&p(AdC@pkQ&pL2_JyP1nroUUA2Rs$F(qH(PCgGdh3IEZ`DR?23wkwV1kCciIlis; ztNRnC(->fi7SSOPf55Y#efoLcC(h;ep~<*Ta6^XC2Fp$8!2IFrZl!CG9A9Z3CXDtM zZ)uEGsLi+!#gx>9&jq^u@;9TodKbz_n+ajclqQw}B-|Dl!vq#HG!}G)`;aIxynHp0 z=F8cunm?sk+g5ImPxyUw;1HH*t6uSbt7xTUfG_yM^f)bNfETpe>T$53B~%A-xEhJ8 zcsu6Ugd3W~7$X%iss1EJHlmP0n;92oI%6z7DWlzOUtjk*rJ;HX4%Mp7R=ZqyHscqF zK*05L^Y|{qSRNrUo$g^`e&pZTx{i0(hT%&&gRh*NoOZkh`u$|h+=k1_&-Rg9RUuvu z+A0jV=RJ5e`b0$=h5QadGvB(g3$I~he&M5ToREtc|8~nK0b>i(VQr&Fic~PWvw+v> zDo~W#pq53dB4K$)d&=+_fz(7WKM>sms#qb*om+h*cG&^Rkfm0`8IU06)w=4TDJHkWHk;br<+cNFIN><0P)pc2 z`?xYfnDbWB>mKPCZFT_(RCMHc3;v7p6?a_B^z)HzWF#yAg4nV{E4Bnn9?&C23<7kf zQPgs%6b51F3%_WtwTRJTc+jk_O{6z`q7l^MbvSc43pI@=5qx1tiPEbOr{4Bkn_*p- z0lWVjG%#tf08i)3=o*7@)yG&riTc`lq7eRt>w?(bIRHtz15#Tx--rBsH-+%HepNAA zzLu#-$-G7?xJnIW?t0;F-zPd8nOb>UWYYFBGOfAS>%sGyT7(VdbrHf4mdM4nMF`fz zg=ER?n<6XmZ8y-GI{NC{O@3tKnfd#Zx2Lj>a)T_B_00-dRMgR$i<(SzvIN)7M?LWD zY0jne_GE|ZF7(}nH((e*eec3MnLqqSX)e=7Ar7%6;PK(6-tAh&+L`Es0S|rT#_)M( zC`0;B&XuUZBvoBK!#YQwt)EA@h?RCSLTTN5aRidtECl#$vAt1(sx)RJvN`KGGPna* z&fFe0C&4#iDve6brv*cL(ltMSVv1c))6q+RyaH*a*OijrUsiY_>oYoT#Y@Oyy& zV1y*{nHX4HZcN^FPL@7qcx-s5vQuF>zo?u`7ZjS=W;YTFV!r)iS@D7R&w7Br;h{yC zy_TMa4WA3{vV)vV7yIMwrrH$TuaoO_8%2M$IYM3y+?3PO07L78r0UvdIdVk!@v4^o z3R|cqoKHUnZzW6#FnZ;W36fW&HJSR}%gz0IVX6JaOBLmNQoOlC3>P606^T8zQf3l% zeoekgm#jA3K-`t9dUW!Oct{!2k-xpdbV>v*JbC{5fUr=w#wxeCf3d67RC=ntT=&3F z9fybT)KUw~05Os)x{zQ?+HaT!*NlU4ANdEEtm+@`ZC~X4taCdL|2%|2Ri-?dwEWQhJhHojzvOv_8n)|j7>TTg~*g=9;15-aG= z$}##l*m2FF<>xM#!m3TNa-Ge;F(OLo@u5z7Gq?~xP;O`!lyerT*y`2h{rg>bgMZ%0 zrb8;zJ16qN5r|neK7(6`fT!?_AtWtFUiv3$FLs?Df2J8GYLFehsZcaHRbA3}KS?@N zi+FYQg=8*%Z&&GF@uzdOZlCGq=`wrz!}mRo@kEj__gdz(j0@lUnmt61^McB7v9X9V zct3?4i4}w;q-ST6tQ_gfb$ip#+l#m-J~q9eH+;wOD<{=!W*gz^jb=kzqt>Y=(h(iI z=g)iBidy-tG(G?GF8X8P-#uh!V;FpoZ{{XVKBksi7{Lz{nz!(<#VrmqtTp5;-`(k~ zACUx{kK5$Lx0{7jyv?N(WYj9qj&o=Y`?|u#%``P@VlNlW7$rdtSs6I1ZcKfPyU7y; zOKRTG2mej&#gNrWwquwB-}~#ap%2D8QS>=i7B#yU9>X~IKYL&E%swO0`RdkWIbqjB zidHyyqnGgG+52a*)KY1(Xr5Oh6QlC7!fJiq!jE}WkzqM?=fVsh*RE1&#nAQ9Yg zB{pN7vq# zL6wMND~0eblh3T^H#05t4vqs98bK8w49n}MK{6DOnNV=k?)&p$o#zNRK{BRu5C!LF z8X;}MM0Im=`vS{UI8wMqJ=1c_ZW`tm`F+{rDn86ShI0y zw~3lDshIqZ`qn_o$zg$>eT#*kAZjN4ma-yhjpMm5#!_2F>w$-3 zLgj5(9MR>lTvkAq!)=3e4>uhDj}-7_6cBErJ0|?LTvyk^aByS^Db2h?bs@$wG*$y9 zzRX*Vo89R1_g#x24UcE;QFh@JGU3Opp+4s8+#19vUymXAgf?gax(sG7_phneYJCws z&YX-$5e~Gx55m0s=h@> zq;gRdS-~&oJQGm{sXsX(K=3M68j0*B$YIeAER>untuk|Ra!jI$1$K$N#Qy#wiWD4f zX;0zSraruX&zOcN%l_PbpAxsa&DN0~bMB)a ziv7Zt*9rWg9nRzPV@;op3G2p%4b~4|habCno~mRNt>uvN`jPaZnnwu=IV_Vn4FNFg zt)@QB5aZJ_D6rF1vh+xsZx9m}_NoW#Pf$@{VZH@}!E|Dk zoUaN)?C2&8hi#418Z_n`I!{sFMQ?qJPci>!WsPmveISic&O-%vE;n+{0DnoVf%Hl@ zy~wcd5gh9jkZnphO-0pu+N<5Y%7G~)so!Wt2^>u_y56@XRU{}nv*XPI=JeGS87B^t{TQMp32})FUGJ!vOlESPIQt>b-dlbM5VaVAiqF$yh`+s+^hQWiqV( z&K<(j8ydymg0c%2kxm~pkJq)XNC&IcYH+Ief`^NX%jRr3gRrT0 zMJ?EV>(B{>jCK+aA6-onp@#kCyvV3q=&MP}y}@>UUFS&1Dr3y>l&$)25v5_{mrG;2 z(o?y30Rx>XJAQg8*{e;|XlVG=!XXf)?B;Q%y)mEPgUgw$!HR!SIX7=yEhdO`1s*8tpx23 zcl#QYpuai=Bv9g=W_`%tr2!{si866xqM4~5?(aefj&s4+#LyK9dL)p-DXO-9e#fHz o_xO*3z6^Rl^x^-%FT2CytYiyMvcwXA{wu4Ztg1|flxgt)0D4h($ literal 0 HcmV?d00001 diff --git a/tutorial/05a.png b/tutorial/05a.png new file mode 100644 index 0000000000000000000000000000000000000000..210536b71c5ff451926851da70688e30cb03ce98 GIT binary patch literal 26842 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 z z&gUK>8cy5QrgRp*EQcHZ*C!_fZy|3hqZ30^3n0+95qSrjdJys4AC9G^T_~5u=%q7n zHSMyX(>N@`Z!Yr396Ds@p`r?-5M5Pqxk*r7@dI)xiOSBrty`2b>%QA7U^ZgW*CtZy@Ry0jv2`W4q_|vSEA_GG!b*f&=q+5zg?5 zRHnS;#cCtQyT{5-7@W^sYyO7Wl7Git0B#!$eD?MSZrnq=Z|?)TUEBFUbBeYj97!;F z(jfwsqfX|#Od%ko(zB~s`9>DowhyKSI(U#@O@8D4?ST|A2qeRwsaj@@8l~4(TMjAV{p7CQY)3nd3w#DVE%~BVo#6zyT1qF^v$O# zGhTR?czzg-!6DG>Gj!xeBv6|ltu{N+MicTrEZe-=9#�Md#3_2mE~|AGE)4urA9_ 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 literal 0 HcmV?d00001 diff --git a/tutorial/05b.png b/tutorial/05b.png new file mode 100644 index 0000000000000000000000000000000000000000..11cd8af0d7fef89cca37f4f95a78a51db369dfed GIT binary patch literal 25418 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

    #p3>{s7A(>RRwY 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 Q|GyGcQT Date: Mon, 25 Jul 2022 15:28:55 -0300 Subject: [PATCH 02/12] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..c88170b --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +flutterdata.dev \ No newline at end of file From fff058fd212c91a910e3a822418e126bf902a0c8 Mon Sep 17 00:00:00 2001 From: frank06 Date: Mon, 25 Jul 2022 18:42:21 +0000 Subject: [PATCH 03/12] deploy: cd39e2d7fe127ce560a0923f9558c45594d20280 --- .../index.html | 416 ++--- .../index.html | 309 +--- articles/configure-get-it/index.html | 336 +--- articles/configure-provider/index.html | 362 +--- .../custom-deserialization-adapter/index.html | 221 +-- .../dart-final-const-difference/index.html | 214 +-- .../index.html | 210 +-- .../index.html | 1179 +++++-------- articles/define-interface-dart/index.html | 222 +-- .../index.html | 384 +---- articles/how-to-format-duration/index.html | 219 +-- .../index.html | 29 + .../how-to-retry-offline-sync-data/index.html | 57 + articles/index.html | 621 +------ articles/index.xml | 266 +-- articles/intercept-logout-adapter/index.html | 221 +-- articles/iterator-style-adapter/index.html | 216 +-- .../index.html | 394 +---- articles/nested-resources-adapter/index.html | 230 +-- articles/override-base-url/index.html | 214 +-- articles/override-findall-adapter/index.html | 223 +-- .../override-findone-url-method/index.html | 223 +-- .../index.html | 232 +-- .../override-http-client-adapter/index.html | 254 +-- .../index.html | 1304 ++++++--------- articles/upgrade-flutter-sdk/index.html | 222 +-- categories/index.html | 299 +--- categories/index.xml | 11 +- css/fonts.css | 38 + docs/adapters/index.html | 524 ++---- docs/faq/index.html | 338 +--- docs/index.html | 300 +--- docs/index.xml | 106 +- docs/initialization/index.html | 497 ++---- docs/models/index.html | 448 +---- docs/quickstart/index.html | 511 ++---- docs/relationships/index.html | 576 ++----- docs/repositories/index.html | 668 +++----- images/apps.jpg | Bin 0 -> 39042 bytes images/default.svg | 1 + images/deps.png | Bin 0 -> 83660 bytes images/favicon.png | Bin 0 -> 4673 bytes images/fd.png | Bin 0 -> 3844 bytes index.html | 251 +-- index.xml | 373 +---- main.css | 1475 +++++++++++++---- sitemap.xml | 117 +- tags/dart/index.html | 299 +--- tags/dart/index.xml | 45 +- tags/es6/index.html | 299 +--- tags/es6/index.xml | 23 +- tags/index.html | 299 +--- tags/index.xml | 57 +- tags/javascript/index.html | 299 +--- tags/javascript/index.xml | 23 +- tags/pub/index.html | 299 +--- tags/pub/index.xml | 23 +- tags/vscode/index.html | 299 +--- tags/vscode/index.xml | 23 +- tailwind.css | 520 +++++- tutorial/creating/index.html | 41 + tutorial/deleting/index.html | 50 + tutorial/fetching/index.html | 64 + tutorial/index.html | 10 + tutorial/index.xml | 14 + tutorial/reloading/index.html | 65 + tutorial/updating/index.html | 77 + tutorial/w.gif | Bin 0 -> 59057 bytes tutorial/w1.png | Bin 0 -> 73533 bytes tutorial/w2.gif | Bin 0 -> 314019 bytes tutorial/w2.png | Bin 0 -> 101069 bytes tutorial/w4.gif | Bin 0 -> 712890 bytes tutorial/w4.png | Bin 0 -> 107824 bytes tutorial/w5.png | Bin 0 -> 60084 bytes tutorial/w6.png | Bin 0 -> 64432 bytes tutorial/w7.gif | Bin 0 -> 164877 bytes 76 files changed, 4693 insertions(+), 13447 deletions(-) create mode 100644 articles/how-to-reinitialize-flutter-data/index.html create mode 100644 articles/how-to-retry-offline-sync-data/index.html create mode 100644 css/fonts.css create mode 100644 images/apps.jpg create mode 100644 images/default.svg create mode 100644 images/deps.png create mode 100644 images/favicon.png create mode 100644 images/fd.png create mode 100644 tutorial/creating/index.html create mode 100644 tutorial/deleting/index.html create mode 100644 tutorial/fetching/index.html create mode 100644 tutorial/index.html create mode 100644 tutorial/index.xml create mode 100644 tutorial/reloading/index.html create mode 100644 tutorial/updating/index.html create mode 100644 tutorial/w.gif create mode 100644 tutorial/w1.png create mode 100644 tutorial/w2.gif create mode 100644 tutorial/w2.png create mode 100644 tutorial/w4.gif create mode 100644 tutorial/w4.png create mode 100644 tutorial/w5.png create mode 100644 tutorial/w6.png create mode 100644 tutorial/w7.gif diff --git a/articles/build-widget-with-async-method-call/index.html b/articles/build-widget-with-async-method-call/index.html index 8fcd529..0aca951 100644 --- a/articles/build-widget-with-async-method-call/index.html +++ b/articles/build-widget-with-async-method-call/index.html @@ -1,321 +1,95 @@ - - - - - - - - - - - - - - - - - - - - How to Build Widgets with an Async Method Call - Flutter Data - - - - - - - - - - - -
    - -
    -
    - - -

    - How to Build Widgets with an Async Method Call -

    - - - -
    -

    You want to return a widget in a build method…

    -

    But your data comes from an async function!

    -
    class MyWidget extends StatelessWidget {
    -  @override
    -  Widget build(context) {
    -    callAsyncFetch().then((data) {
    -      return Text(data);  // doesn't work
    -    });
    -  }
    -}
    -

    The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮.

    -

    So, can we make the build method async? 🤔

    -
    class MyWidget extends StatelessWidget {
    -  @override
    -  Future<Widget> build(context) async {
    -    var data = await callAsyncFetch();
    -    return Text(data);  // doesn't work either
    -  }
    -}
    -

    Not possible! A widget’s build “sync” method will NOT wait for you while you fetch data 🙁

    -

    (You might even get a type 'Future' is not a subtype of type kind of error.)

    -

    🛠 How do we fix this with Flutter best practices?

    -

    Meet FutureBuilder:

    -
    class MyWidget extends StatelessWidget {
    -  @override
    -  Widget build(context) {
    -    return FutureBuilder<String>(
    -      future: callAsyncFetch(),
    -      builder: (context, AsyncSnapshot<String> snapshot) {
    -        if (snapshot.hasData) {
    -          return Text(snapshot.data);
    -        } else {
    -          return CircularProgressIndicator();
    -        }
    -      }
    -    );
    -  }
    -}
    -

    It takes our Future as argument, as well as a builder (it’s basically a delegate called by the widget’s build method). The builder will be called immediately, and again when our future resolves with either data or an error.

    -

    An AsyncSnapshot<T> is simply a representation of that data/error state. This is actually a useful API!

    -

    If we get a new snapshot with:

    -
      -
    • 📭 no data… we show a progress indicator
    • -
    • data from our future… we use it to feed any widgets for display!
    • -
    • error from our future… we show an appropriate message
    • -
    -
    - Do you think the answer to this problem is a StatefulWidget? Yes, it’s a possible solution but not an ideal one. Keep on reading and we’ll see why. -
    -

    Click Run and see it for yourself!

    - -
    - -
    - -

    It will show a circular progress indicator while the future resolves (about 2 seconds) and then display data. Problem solved!

    -

    🎩 Under the hood: FutureBuilder

    -

    FutureBuilder itself is built on top of StatefulWidget! Attempting to solve this problem with a StatefulWidget is not wrong but simply lower-level and more tedious.

    -

    Check out the simplified and commented-by-me source code:

    -

    (I removed bits and pieces for illustration purposes)

    -
    // FutureBuilder *is* a stateful widget
    -class FutureBuilder<T> extends StatefulWidget {
    -
    -  // it takes in a `future` and a `builder`
    -  const FutureBuilder({
    -    this.future,
    -    this.builder
    -  });
    -
    -  final Future<T> future;
    -
    -  // the AsyncWidgetBuilder<T> type is a function(BuildContext, AsyncSnapshot<T>) which returns Widget
    -  final AsyncWidgetBuilder<T> builder;
    -
    -  @override
    -  State<FutureBuilder<T>> createState() => _FutureBuilderState<T>();
    -}
    -
    -class _FutureBuilderState<T> extends State<FutureBuilder<T>> {
    -  // keeps state in a local variable (so far there's no data)
    -  AsyncSnapshot<T> _snapshot = null;
    -
    -  @override
    -  void initState() {
    -    super.initState();
    -
    -    // wait for the future to resolve:
    -    //  - if it succeeds, create a new snapshot with the data
    -    //  - if it fails, create a new snapshot with the error
    -    // in both cases `setState` will trigger a new build!
    -    widget.future.then<void>((T data) {
    -      setState(() { _snapshot = AsyncSnapshot<T>(data); });
    -    }, onError: (Object error) {
    -      setState(() { _snapshot = AsyncSnapshot<T>(error); });
    -    });
    -  }
    -
    -  // builder is called with every `setState` (so it reacts to any event from the `future`)
    -  @override
    -  Widget build(BuildContext context) => widget.builder(context, _snapshot);
    -
    -  @override
    -  void didUpdateWidget(FutureBuilder<T> oldWidget) {
    -    // compares old and new futures!
    -  }
    -
    -  @override
    -  void dispose() {
    -    // ...
    -    super.dispose();
    -  }
    -}
    -

    Very simple, right? This is likely similar to what you tried when using a StatefulWidget. Of course, for the real, battle-tested source code see FutureBuilder.

    -

    Before wrapping up… 🎁

    -

    From the docs

    -
    -

    If the future is created at the same time as the FutureBuilder, then every time the FutureBuilder’s parent is rebuilt, the asynchronous task will be restarted.

    -
    -
    Widget build(context) {
    -  return FutureBuilder<String>(
    -    future: callAsyncFetch(),
    -

    Does this mean callAsyncFetch() will be called many times?

    -

    In this small example, there is no reason for the parent to rebuild (nothing changes) but in general you should assume it does. See Why is my Future/Async Called Multiple Times?.

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +How to Build Widgets with an Async Method Call - Flutter Data

    How to Build Widgets with an Async Method Call

    You want to return a widget in a build method…

    But your data comes from an async function!

    class MyWidget extends StatelessWidget {
    +  @override
    +  Widget build(context) {
    +    callAsyncFetch().then((data) {
    +      return Text(data);  // doesn't work
    +    });
    +  }
    +}
    +

    The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮.

    So, can we make the build method async? 🤔

    class MyWidget extends StatelessWidget {
    +  @override
    +  Future<Widget> build(context) async {
    +    var data = await callAsyncFetch();
    +    return Text(data);  // doesn't work either
    +  }
    +}
    +

    Not possible! A widget’s build “sync” method will NOT wait for you while you fetch data 🙁

    (You might even get a type 'Future' is not a subtype of type kind of error.)

    🛠 How do we fix this with Flutter best practices?

    Meet FutureBuilder:

    class MyWidget extends StatelessWidget {
    +  @override
    +  Widget build(context) {
    +    return FutureBuilder<String>(
    +      future: callAsyncFetch(),
    +      builder: (context, AsyncSnapshot<String> snapshot) {
    +        if (snapshot.hasData) {
    +          return Text(snapshot.data);
    +        } else {
    +          return CircularProgressIndicator();
    +        }
    +      }
    +    );
    +  }
    +}
    +

    It takes our Future as argument, as well as a builder (it’s basically a delegate called by the widget’s build method). The builder will be called immediately, and again when our future resolves with either data or an error.

    An AsyncSnapshot<T> is simply a representation of that data/error state. This is actually a useful API!

    If we get a new snapshot with:

    • 📭 no data… we show a progress indicator
    • data from our future… we use it to feed any widgets for display!
    • error from our future… we show an appropriate message
    Do you think the answer to this problem is a StatefulWidget? Yes, it’s a possible solution but not an ideal one. Keep on reading and we’ll see why.

    Click Run and see it for yourself!



    It will show a circular progress indicator while the future resolves (about 2 seconds) and then display data. Problem solved!

    🎩 Under the hood: FutureBuilder

    FutureBuilder itself is built on top of StatefulWidget! Attempting to solve this problem with a StatefulWidget is not wrong but simply lower-level and more tedious.

    Check out the simplified and commented-by-me source code:

    (I removed bits and pieces for illustration purposes)

    // FutureBuilder *is* a stateful widget
    +class FutureBuilder<T> extends StatefulWidget {
    +
    +  // it takes in a `future` and a `builder`
    +  const FutureBuilder({
    +    this.future,
    +    this.builder
    +  });
    +
    +  final Future<T> future;
    +
    +  // the AsyncWidgetBuilder<T> type is a function(BuildContext, AsyncSnapshot<T>) which returns Widget
    +  final AsyncWidgetBuilder<T> builder;
    +
    +  @override
    +  State<FutureBuilder<T>> createState() => _FutureBuilderState<T>();
    +}
    +
    +class _FutureBuilderState<T> extends State<FutureBuilder<T>> {
    +  // keeps state in a local variable (so far there's no data)
    +  AsyncSnapshot<T> _snapshot = null;
    +
    +  @override
    +  void initState() {
    +    super.initState();
    +
    +    // wait for the future to resolve:
    +    //  - if it succeeds, create a new snapshot with the data
    +    //  - if it fails, create a new snapshot with the error
    +    // in both cases `setState` will trigger a new build!
    +    widget.future.then<void>((T data) {
    +      setState(() { _snapshot = AsyncSnapshot<T>(data); });
    +    }, onError: (Object error) {
    +      setState(() { _snapshot = AsyncSnapshot<T>(error); });
    +    });
    +  }
    +
    +  // builder is called with every `setState` (so it reacts to any event from the `future`)
    +  @override
    +  Widget build(BuildContext context) => widget.builder(context, _snapshot);
    +
    +  @override
    +  void didUpdateWidget(FutureBuilder<T> oldWidget) {
    +    // compares old and new futures!
    +  }
    +
    +  @override
    +  void dispose() {
    +    // ...
    +    super.dispose();
    +  }
    +}
    +

    Very simple, right? This is likely similar to what you tried when using a StatefulWidget. Of course, for the real, battle-tested source code see FutureBuilder.

    Before wrapping up… 🎁

    From the docs

    If the future is created at the same time as the FutureBuilder, then every time the FutureBuilder’s parent is rebuilt, the asynchronous task will be restarted.

    Widget build(context) {
    +  return FutureBuilder<String>(
    +    future: callAsyncFetch(),
    +

    Does this mean callAsyncFetch() will be called many times?

    In this small example, there is no reason for the parent to rebuild (nothing changes) but in general you should assume it does. See Why is my Future/Async Called Multiple Times?.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/checking-null-aware-operators-dart/index.html b/articles/checking-null-aware-operators-dart/index.html index 9974beb..5a05816 100644 --- a/articles/checking-null-aware-operators-dart/index.html +++ b/articles/checking-null-aware-operators-dart/index.html @@ -1,267 +1,42 @@ - - - - - - - - - - - - - - - - - - - - Checking Nulls and Null-Aware Operators in Dart - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Checking Nulls and Null-Aware Operators in Dart -

    - - - -
    -

    What is the best practice for checking nulls in Dart?

    -
    var value = maybeSomeNumber();
    -
    -if (value != null) {
    -  doSomething();
    -}
    -

    That’s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values.

    -

    However! There are some very interesting null-aware operators.

    -

    Default operator: ??

    -

    In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2:

    -
    value = maybeSomeNumber() || 2
    -

    In Dart we can’t do this because the expression needs to be a boolean (“the operands of the || operator must be assignable to bool").

    -

    That’s why the ?? operator exists:

    -
    var value = maybeSomeNumber() ?? 2;
    -

    Similarly, if we wanted to ensure a value argument was not-null we’d do:

    -
    value = value ?? 2;
    -

    But there’s an even simpler way.

    -

    Fallback assignment operator: ??=

    -
    value ??= 2;
    -

    Much like Ruby’s ||=, it assigns a value if the variable is null.

    -

    Here’s an example of a very concise cache-based factory constructor using this operator:

    -
    class Robot {
    -  final double height;
    -
    -  static final _cache = <double, Robot>{};
    -
    -  Robot._(this.height);
    -
    -  factory Robot(height) {
    -    return _cache[height] ??= Robot._(height);
    -  }
    -}
    -

    More generally, ??= is useful when defining computed properties:

    -
    get value => _value ??= _computeValue();
    -

    Safe navigation operator: ?.

    -

    Otherwise known as the Elvis operator. I first saw this in the Groovy language.

    -
    def value = person?.address?.street?.value
    -

    If any of person, address or street are null, the whole expression returns null. Otherwise, value is called and returned.

    -

    In Dart it’s exactly the same!

    -
    final value = person?.address?.street?.value;
    -

    If address was a method instead of a getter, it would work just the same:

    -
    final value = person?.getAddress()?.street?.value;
    -

    groovy

    -

    Optional spread operator: ...?

    -

    Lastly, this one only inserts a list into another only if it’s not-null.

    -
    List<int> additionalZipCodes = [33110, 33121, 33320];
    -List<int> optionalZipCodes = fetchZipCodes();
    -final zips = [10001, ...additionalZipCodes, ...?optionalZipCodes];
    -print(zips);  /* [10001, 33110, 33121, 33320]  if fetchZipCodes() returns null */
    -

    Tryin' it out

    - -
    - -
    - -

    Non-nullable types

    -

    Right now, null can be assigned to any assignable variable.

    -

    There are plans to improve the Dart language and include NNBD (non-nullable by default).

    -

    For a type to allow null values, a special syntax will be required.

    -

    The following will throw an error:

    -
    int value = someNumber();
    -value = null;
    -

    And fixed by specifying the int? type:

    -
    int? value = someNumber();
    -value = null;
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Checking Nulls and Null-Aware Operators in Dart - Flutter Data

    Checking Nulls and Null-Aware Operators in Dart

    What is the best practice for checking nulls in Dart?

    var value = maybeSomeNumber();
    +
    +if (value != null) {
    +  doSomething();
    +}
    +

    That’s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values.

    However! There are some very interesting null-aware operators.

    Default operator: ??

    In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2:

    value = maybeSomeNumber() || 2
    +

    In Dart we can’t do this because the expression needs to be a boolean (“the operands of the || operator must be assignable to bool”).

    That’s why the ?? operator exists:

    var value = maybeSomeNumber() ?? 2;
    +

    Similarly, if we wanted to ensure a value argument was not-null we’d do:

    value = value ?? 2;
    +

    But there’s an even simpler way.

    Fallback assignment operator: ??=

    value ??= 2;
    +

    Much like Ruby’s ||=, it assigns a value if the variable is null.

    Here’s an example of a very concise cache-based factory constructor using this operator:

    class Robot {
    +  final double height;
    +
    +  static final _cache = <double, Robot>{};
    +
    +  Robot._(this.height);
    +
    +  factory Robot(height) {
    +    return _cache[height] ??= Robot._(height);
    +  }
    +}
    +

    More generally, ??= is useful when defining computed properties:

    get value => _value ??= _computeValue();
    +

    Safe navigation operator: ?.

    Otherwise known as the Elvis operator. I first saw this in the Groovy language.

    def value = person?.address?.street?.value
    +

    If any of person, address or street are null, the whole expression returns null. Otherwise, value is called and returned.

    In Dart it’s exactly the same!

    final value = person?.address?.street?.value;
    +

    If address was a method instead of a getter, it would work just the same:

    final value = person?.getAddress()?.street?.value;
    +

    groovy

    Optional spread operator: ...?

    Lastly, this one only inserts a list into another only if it’s not-null.

    List<int> additionalZipCodes = [33110, 33121, 33320];
    +List<int> optionalZipCodes = fetchZipCodes();
    +final zips = [10001, ...additionalZipCodes, ...?optionalZipCodes];
    +print(zips);  /* [10001, 33110, 33121, 33320]  if fetchZipCodes() returns null */
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    Non-nullable types

    Right now, null can be assigned to any assignable variable.

    There are plans to improve the Dart language and include NNBD (non-nullable by default).

    For a type to allow null values, a special syntax will be required.

    The following will throw an error:

    int value = someNumber();
    +value = null;
    +

    And fixed by specifying the int? type:

    int? value = someNumber();
    +value = null;
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/configure-get-it/index.html b/articles/configure-get-it/index.html index 42dc3f1..371bb81 100644 --- a/articles/configure-get-it/index.html +++ b/articles/configure-get-it/index.html @@ -1,258 +1,78 @@ - - - - - - - - - - - - - - - - - - - - Configure Flutter Data to Work with GetIt - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Configure Flutter Data to Work with GetIt -

    - - - -
    -

    This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework.

    -

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    -
    class GetItTodoApp extends StatelessWidget {
    -  @override
    -  Widget build(context) {
    -    GetIt.instance.registerRepositories();
    -    return MaterialApp(
    -      home: Scaffold(
    -        body: Center(
    -          child: FutureBuilder(
    -            future: GetIt.instance.allReady(),
    -            builder: (context, snapshot) {
    -              if (!snapshot.hasData) {
    -                return const CircularProgressIndicator();
    -              }
    -              final repository = GetIt.instance.get<Repository<Todo>>();
    -              return GestureDetector(
    -                onDoubleTap: () async {
    -                  print((await repository.findOne(1, remote: false))?.title);
    -                  final todo = await Todo(id: 1, title: 'blah')
    -                      .init(_)
    -                      .save(remote: false);
    -                  print(keyFor(todo));
    -                },
    -                child: Text('Hello Flutter Data with GetIt! $repository'),
    -              );
    -            },
    -          ),
    -        ),
    -      ),
    -    );
    -  }
    -}
    -
    -// we can do this as this function will never be called
    -T _<T>(ProviderBase<T> provider) => null as T;
    -
    -extension GetItFlutterDataX on GetIt {
    -  void registerRepositories(
    -      {FutureFn<String>? baseDirFn,
    -      List<int>? encryptionKey,
    -      bool clear = false,
    -      bool? remote,
    -      bool? verbose}) {
    -    final i = GetIt.instance;
    -
    -    final _container = ProviderContainer(
    -      overrides: [
    -        configureRepositoryLocalStorage(
    -            baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
    -      ],
    -    );
    -
    -    if (i.isRegistered<RepositoryInitializer>()) {
    -      return;
    -    }
    -
    -    i.registerSingletonAsync<RepositoryInitializer>(() async {
    -      final init = _container.read(
    -          repositoryInitializerProvider(remote: remote, verbose: remote)
    -              .future);
    -      internalLocatorFn =
    -          <T extends DataModel<T>>(Provider<Repository<T>> provider, _) =>
    -              _container.read(provider);
    -      return init;
    -    });
    -    i.registerSingletonWithDependencies<Repository<Todo>>(
    -        () => _container.read(todosRepositoryProvider),
    -        dependsOn: [RepositoryInitializer]);
    -  }
    -}
    -

    See this in action with the Flutter Data setup app!

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Configure Flutter Data to Work with GetIt - Flutter Data

    Configure Flutter Data to Work with GetIt

    This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class GetItTodoApp extends StatelessWidget {
    +  @override
    +  Widget build(context) {
    +    GetIt.instance.registerRepositories();
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: FutureBuilder(
    +            future: GetIt.instance.allReady(),
    +            builder: (context, snapshot) {
    +              if (!snapshot.hasData) {
    +                return const CircularProgressIndicator();
    +              }
    +              final repository = GetIt.instance.get<Repository<Todo>>();
    +              return GestureDetector(
    +                onDoubleTap: () async {
    +                  print((await repository.findOne(1, remote: false))?.title);
    +                  final todo = await Todo(id: 1, title: 'blah')
    +                      .save(remote: false);
    +                  print(keyFor(todo));
    +                },
    +                child: Text('Hello Flutter Data with GetIt! $repository'),
    +              );
    +            },
    +          ),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +
    +// we can do this as this function will never be called
    +T _<T>(ProviderBase<T> provider) => null as T;
    +
    +extension GetItFlutterDataX on GetIt {
    +  void registerRepositories(
    +      {FutureFn<String>? baseDirFn,
    +      List<int>? encryptionKey,
    +      bool clear = false,
    +      bool? remote,
    +      bool? verbose}) {
    +    final i = GetIt.instance;
    +
    +    final _container = ProviderContainer(
    +      overrides: [
    +        configureRepositoryLocalStorage(
    +            baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
    +      ],
    +    );
    +
    +    if (i.isRegistered<RepositoryInitializer>()) {
    +      return;
    +    }
    +
    +    i.registerSingletonAsync<RepositoryInitializer>(() async {
    +      final init = _container.read(
    +          repositoryInitializerProvider(remote: remote, verbose: remote)
    +              .future);
    +      internalLocatorFn =
    +          <T extends DataModel<T>>(Provider<Repository<T>> provider, _) =>
    +              _container.read(provider);
    +      return init;
    +    });
    +    i.registerSingletonWithDependencies<Repository<Todo>>(
    +        () => _container.read(todosRepositoryProvider),
    +        dependsOn: [RepositoryInitializer]);
    +  }
    +}
    +

    See this in action with the Flutter Data setup app!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/configure-provider/index.html b/articles/configure-provider/index.html index 682c1d7..1407fc8 100644 --- a/articles/configure-provider/index.html +++ b/articles/configure-provider/index.html @@ -1,271 +1,91 @@ - - - - - - - - - - - - - - - - - - - - Configure Flutter Data to Work with Provider - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Configure Flutter Data to Work with Provider -

    - - - -
    -

    This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework.

    -

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    -
    class ProviderTodoApp extends StatelessWidget {
    -  @override
    -  Widget build(context) {
    -    return MultiProvider(
    -      providers: [
    -        ...providers(clear: true),
    -        ProxyProvider<Repository<Todo>?, SessionService?>(
    -          lazy: false,
    -          create: (_) => SessionService(),
    -          update: (context, repository, service) {
    -            if (service != null && repository != null) {
    -              return service..initialize(repository);
    -            }
    -            return service;
    -          },
    -        ),
    -      ],
    -      child: MaterialApp(
    -        home: Scaffold(
    -          body: Center(
    -            child: Builder(
    -              builder: (context) {
    -                if (context.watch<RepositoryInitializer?>() == null) {
    -                  // optionally also check
    -                  // context.watch<SessionService>.repository != null
    -                  return const CircularProgressIndicator();
    -                }
    -                final repository = context.watch<Repository<Todo>?>();
    -                return GestureDetector(
    -                  onDoubleTap: () async {
    -                    print((await repository!.findOne(1, remote: false))?.title);
    -                    final todo = await Todo(id: 1, title: 'blah')
    -                        .init(context.read<ProviderContainer>().read)
    -                        .save(remote: false);
    -                    print(keyFor(todo));
    -                  },
    -                  child: Text('Hello Flutter Data with Provider! $repository'),
    -                );
    -              },
    -            ),
    -          ),
    -        ),
    -      ),
    -    );
    -  }
    -}
    -
    -List<SingleChildWidget> providers(
    -    {FutureFn<String>? baseDirFn,
    -    List<int>? encryptionKey,
    -    bool? clear,
    -    bool? remote,
    -    bool? verbose}) {
    -  return [
    -    Provider(
    -      create: (_) => ProviderContainer(
    -        overrides: [
    -          configureRepositoryLocalStorage(
    -              baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
    -        ],
    -      ),
    -    ),
    -    FutureProvider<RepositoryInitializer?>(
    -      initialData: null,
    -      create: (context) async {
    -        return await Provider.of<ProviderContainer>(context, listen: false)
    -            .read(
    -          repositoryInitializerProvider(remote: remote, verbose: verbose)
    -              .future,
    -        );
    -      },
    -    ),
    -    ProxyProvider<RepositoryInitializer?, Repository<Todo>?>(
    -      lazy: false,
    -      update: (context, i, __) => i == null
    -          ? null
    -          : Provider.of<ProviderContainer>(context, listen: false)
    -              .read(todosRepositoryProvider),
    -      dispose: (_, r) => r?.dispose(),
    -    ),
    -  ];
    -}
    -

    See this in action with the Flutter Data setup app!

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Configure Flutter Data to Work with Provider - Flutter Data

    Configure Flutter Data to Work with Provider

    This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class ProviderTodoApp extends StatelessWidget {
    +  @override
    +  Widget build(context) {
    +    return MultiProvider(
    +      providers: [
    +        ...providers(clear: true),
    +        ProxyProvider<Repository<Todo>?, SessionService?>(
    +          lazy: false,
    +          create: (_) => SessionService(),
    +          update: (context, repository, service) {
    +            if (service != null && repository != null) {
    +              return service..initialize(repository);
    +            }
    +            return service;
    +          },
    +        ),
    +      ],
    +      child: MaterialApp(
    +        home: Scaffold(
    +          body: Center(
    +            child: Builder(
    +              builder: (context) {
    +                if (context.watch<RepositoryInitializer?>() == null) {
    +                  // optionally also check
    +                  // context.watch<SessionService>.repository != null
    +                  return const CircularProgressIndicator();
    +                }
    +                final repository = context.watch<Repository<Todo>?>();
    +                return GestureDetector(
    +                  onDoubleTap: () async {
    +                    print((await repository!.findOne(1, remote: false))?.title);
    +                    final todo = await Todo(id: 1, title: 'blah')
    +                        .save(remote: false);
    +                    print(keyFor(todo));
    +                  },
    +                  child: Text('Hello Flutter Data with Provider! $repository'),
    +                );
    +              },
    +            ),
    +          ),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +
    +List<SingleChildWidget> providers(
    +    {FutureFn<String>? baseDirFn,
    +    List<int>? encryptionKey,
    +    bool? clear,
    +    bool? remote,
    +    bool? verbose}) {
    +  return [
    +    Provider(
    +      create: (_) => ProviderContainer(
    +        overrides: [
    +          configureRepositoryLocalStorage(
    +              baseDirFn: baseDirFn, encryptionKey: encryptionKey, clear: clear),
    +        ],
    +      ),
    +    ),
    +    FutureProvider<RepositoryInitializer?>(
    +      initialData: null,
    +      create: (context) async {
    +        return await Provider.of<ProviderContainer>(context, listen: false)
    +            .read(
    +          repositoryInitializerProvider(remote: remote, verbose: verbose)
    +              .future,
    +        );
    +      },
    +    ),
    +    ProxyProvider<RepositoryInitializer?, Repository<Todo>?>(
    +      lazy: false,
    +      update: (context, i, __) => i == null
    +          ? null
    +          : Provider.of<ProviderContainer>(context, listen: false)
    +              .read(todosRepositoryProvider),
    +      dispose: (_, r) => r?.dispose(),
    +    ),
    +  ];
    +}
    +

    See this in action with the Flutter Data setup app!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/custom-deserialization-adapter/index.html b/articles/custom-deserialization-adapter/index.html index 4f775ea..7b4957b 100644 --- a/articles/custom-deserialization-adapter/index.html +++ b/articles/custom-deserialization-adapter/index.html @@ -1,200 +1,21 @@ - - - - - - - - - - - - - - - - - - - - Custom Deserialization Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Custom Deserialization Adapter -

    - - - -
    -

    Example:

    -
    mixin AuthAdapter on RemoteAdapter<User> {
    -  Future<String> login(String email, String password) async {
    -    return sendRequest(
    -      baseUrl.asUri / 'token',
    -      method: DataRequestMethod.POST,
    -      body: json.encode({'email': email, 'password': password}),
    -      onSuccess: (data) => data['token'] as String,
    -    );
    -  }
    -}
    -

    and use it:

    -
    final token = await userRepository.authAdapter.login('e@mail, p*ssword');
    -

    Also see JSONAPIAdapter for inspiration.

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Custom Deserialization Adapter - Flutter Data

    Custom Deserialization Adapter

    Example:

    mixin AuthAdapter on RemoteAdapter<User> {
    +  Future<String> login(String email, String password) async {
    +    return sendRequest(
    +      baseUrl.asUri / 'token',
    +      method: DataRequestMethod.POST,
    +      body: json.encode({'email': email, 'password': password}),
    +      onSuccess: (data) => data['token'] as String,
    +    );
    +  }
    +}
    +

    and use it:

    final token = await userRepository.authAdapter.login('e@mail, p*ssword');
    +

    Also see JSONAPIAdapter for inspiration.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/dart-final-const-difference/index.html b/articles/dart-final-const-difference/index.html index 75edbd3..afb0e49 100644 --- a/articles/dart-final-const-difference/index.html +++ b/articles/dart-final-const-difference/index.html @@ -1,199 +1,15 @@ - - - - - - - - - - - - - - - - - - - - Final vs const in Dart - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Final vs const in Dart -

    - - - -
    -

    What’s the difference between final and const in Dart?

    -

    Easy!

    -

    Final means single-assignment.

    -

    Const means immutable.

    -

    Let’s see an example:

    -
    final _final = [2, 3];
    -const _const = [2, 3];
    -_final = [4,5]; // ERROR: can't re-assign
    -_final.add(6); // OK: can mutate
    -_const.add(6); // ERROR: can't mutate
    -
    - Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! -
    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Final vs const in Dart - Flutter Data

    Final vs const in Dart

    What’s the difference between final and const in Dart?

    Easy!

    Final means single-assignment.

    Const means immutable.

    Let’s see an example:

    final _final = [2, 3];
    +const _const = [2, 3];
    +_final = [4,5]; // ERROR: can't re-assign
    +_final.add(6); // OK: can mutate
    +_const.add(6); // ERROR: can't mutate
    +
    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/dart-getter-cache-computed-properties/index.html b/articles/dart-getter-cache-computed-properties/index.html index 365a1f1..2e1261b 100644 --- a/articles/dart-getter-cache-computed-properties/index.html +++ b/articles/dart-getter-cache-computed-properties/index.html @@ -1,196 +1,14 @@ - - - - - - - - - - - - - - - - - - - - Dart Getter Shorthand to Cache Computed Properties - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Dart Getter Shorthand to Cache Computed Properties -

    - - - -
    -

    An elegant Dart getter shorthand used to cache computed properties:

    -
    T get foo => _foo ??= _computeFoo();
    -
    -// which depends on having
    -T _foo;
    -T _computeFoo() => /** ... **/;
    -

    It makes use of the fallback assignment operator ??=.

    -
    - Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! -
    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Dart Getter Shorthand to Cache Computed Properties - Flutter Data

    Dart Getter Shorthand to Cache Computed Properties

    An elegant Dart getter shorthand used to cache computed properties:

    T get foo => _foo ??= _computeFoo();
    +
    +// which depends on having
    +T _foo;
    +T _computeFoo() => /** ... **/;
    +

    It makes use of the fallback assignment operator ??=.

    Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart!

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/deconstructing-dart-constructors/index.html b/articles/deconstructing-dart-constructors/index.html index 51be7f1..89beac8 100644 --- a/articles/deconstructing-dart-constructors/index.html +++ b/articles/deconstructing-dart-constructors/index.html @@ -1,741 +1,438 @@ - - - - - - - - - - - - - - - - - - - - Deconstructing Dart Constructors - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Deconstructing Dart Constructors -

    - - - -
    -

    Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories…

    -

    Read this post and you will become an expert!

    -

    Photo by Arseny Togulev on Unsplash

    -

    When we want an instance of a certain class we call a constructor, right?

    -
    var robot = new Robot();
    -

    In Dart 2 we can leave out the new:

    -
    var robot = Robot();
    -

    A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:

    -
    class Robot {
    -  Robot();
    -}
    -

    This constructor has no arguments so we can leave it out and write:

    -
    class Robot {
    -}
    -

    The default constructor is implicitly defined.

    -
    - Did you know you can try out Dart and Flutter code in DartPad? -
    -

    Initializing…

    -

    Most times we need to configure our instances. For example, pass in the height of a robot:

    -
    var r = Robot(5);
    -

    r is now a 5-feet tall Robot.

    -

    To write that constructor we include the height field after the colon :

    -
    class Robot {
    -  double height;
    -  Robot(height) : this.height = height;
    -}
    -

    or even

    -
    class Robot {
    -  double height;
    -  Robot(data) : this.height = data.physics.raw['heightInFt'];
    -}
    -

    This is called an initializer. It accepts a comma-separated list of expressions that initialize fields with arguments.

    -

    Fortunately, Dart gives us a shortcut. If the field name and type are the same as the argument in the constructor, we can do:

    -
    class Robot {
    -  double height;
    -  Robot(this.height);
    -}
    -

    Imagine that the height field is expressed in feet and we want clients to supply the height in meters. Dart also allows us to initialize fields with computations from static methods (as they don’t depend on an instance of the class):

    -
    class Robot {
    -  static mToFt(m) => m * 3.281;
    -  double height; // in ft
    -  Robot(height) : this.height = mToFt(height);
    -}
    -

    Sometimes we must call super constructors when initializing:

    -
    class Machine {
    -  String name;
    -  Machine(this.name);
    -}
    -
    -class Robot extends Machine {
    -  static mToFt(m) => m * 3.281;
    -  double height;
    -  Robot(height, name) : this.height = mToFt(height), super(name);
    -}
    -

    Notice that super(...) must always be the last call in the initializer.

    -

    And if we needed to add more complex guards (than types) against a malformed robot, we can use assert:

    -
    class Robot {
    -  final double height;
    -  Robot(height) : this.height = height, assert(height > 4.2);
    -}
    -

    Accessors and mutators

    -

    Back to our earlier robot definition:

    -
    class Robot {
    -  double height;
    -  Robot(this.height);
    -}
    -
    -void main() {
    -  var r = Robot(5);
    -  print(r.height); // 5
    -}
    -

    Let’s make it taller:

    -
    void main() {
    -  var r = Robot(5);
    -  r.height = 6;
    -  print(r.height); // 6
    -}
    -

    But robots don’t grow, their height is constant! Let’s prevent anyone from modifying the height by making the field private.

    -

    In Dart, there is no private keyword. Instead, we use a convention: field names starting with _ are private (library-private, actually).

    -
    class Robot {
    -  double _height;
    -  Robot(this._height);
    -}
    -

    Great! But now there is no way to access r.height. We can make the height property read-only by adding a getter:

    -
    class Robot {
    -  double _height;
    -  Robot(this._height);
    -
    -  get height {
    -    return this._height;
    -  }
    -}
    -

    Getters are functions that take no arguments and conform to the uniform access principle.

    -

    We can simplify our getter by using two shortcuts: single expression syntax (fat arrow) and implicit this:

    -
    class Robot {
    -  double _height;
    -  Robot(this._height);
    -
    -  get height => _height;
    -}
    -

    Actually, we can think of public fields as private fields with getters and setters. That is:

    -
    class Robot {
    -  double height;
    -  Robot(this.height);
    -}
    -

    is equivalent to:

    -
    class Robot {
    -  double _height;
    -  Robot(this._height);
    -
    -  get height => _height;
    -  set height(value) => _height = value;
    -}
    -

    Keep in mind initializers only assign values to fields and it is therefore not possible to use a setter in an initializer:

    -
    class Robot {
    -  double _height;
    -  Robot(this.height); // ERROR: 'height' isn't a field in the enclosing class
    -
    -  get height => _height;
    -  set height(value) => _height = value;
    -}
    -

    Constructor bodies

    -

    -

    If a setter needs to be called, we’ll have to do that in a constructor body:

    -
    class Robot {
    -  double _height;
    -
    -  Robot(h) {
    -    height = h;
    -  }
    -
    -  get height => _height;
    -  set height(value) => _height = value;
    -}
    -

    We can do all sorts of things in constructor bodies, but we can’t return a value!

    -
    class Robot {
    -  double height;
    -  Robot(this.height) {
    -    return this; // ERROR: Constructors can't return values
    -  }
    -}
    -

    Final fields

    -

    Final fields are fields that can only be assigned once.

    -
    final r = Robot(5);
    -r = Robot(7); /* ERROR */
    -

    Inside our class, we won’t be able to use the setter:

    -
    class Robot {
    -  final double _height;
    -  Robot(this._height);
    -
    -  get height => _height;
    -  set height(value) => _height = value; // ERROR
    -}
    -
    -

    Just like with var, we can use final before any type definition:

    -
    var r;
    -var Robot r;
    -
    -final r;
    -final Robot r;
    -
    -
    -

    The following won’t work because height, being final, must be initialized. And initialization happens before the constructor body is run:

    -
    class Robot {
    -  final double height;
    -
    -  Robot(double height) {
    -    this.height = height; // ERROR: The final variable 'height' must be initialized
    -  }
    -}
    -

    Let’s fix it:

    -
    class Robot {
    -  final double height;
    -  Robot(this.height);
    -}
    -

    Default values

    -

    If most robots are 5-feet tall then we can avoid specifying the height each time. We can make an argument optional and provide a default value:

    -
    class Robot {
    -  final double height;
    -  Robot([this.height = 5]);
    -}
    -

    So we can just call:

    -
    void main() {
    -  var r = Robot();
    -  print(r.height); // 5
    -
    -  var r2d2 = Robot(3.576);
    -  print(r2d2.height); // 3.576
    -}
    -

    -

    Immutable robots

    -

    Our robots clearly have more attributes than a height. Let’s add some more!

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final String name;
    -
    -  Robot(this.height, this.weight, this.name);
    -}
    -
    -void main() {
    -  final r = Robot(5, 170, "Walter");
    -  r.name = "Steve"; // ERROR
    -}
    -

    As all fields are final, our robots are immutable! Once they are initialized, their attributes can’t be changed.

    -

    Now let’s imagine that robots respond to many different names:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  Robot(this.height, this.weight, this.names);
    -}
    -
    -void main() {
    -  final r = Robot(5, 170, ["Walter"]);
    -  print(r.names..add("Steve")); // [Walter, Steve]
    -}
    -

    Dang, using a List made our robot mutable again!

    -

    We can solve this with a const constructor:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  const Robot(this.height, this.weight, this.names);
    -}
    -
    -void main() {
    -  final r = const Robot(5, 170, ["Walter"]);
    -  print(r.names..add("Steve")); // ERROR: Unsupported operation: add
    -}
    -

    const can only be used with expressions that can be computed at compile time. Take the following example:

    -
    import 'dart:math';
    -
    -class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  const Robot(this.height, this.weight, this.names);
    -}
    -
    -void main() {
    -  final r = const Robot(5, 170, ["Walter", Random().nextDouble().toString()]); // ERROR: Invalid constant value
    -}
    -

    const instances are canonicalized which means that equal instances point to the same object in memory space when running.

    -

    For example this is a “cheap” operation:

    -
    void main() {
    -  [for(var i = 0; i < 20000; i += 1) Robot(5, 170, ["Walter"])];
    -}
    -

    And yes, using const constructors can improve performance in Flutter applications.

    - -

    Optional arguments always last!

    -

    If we wanted the weight argument to be optional we’d have to declare it at the end:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  const Robot(this.height, this.names, [this.weight = 170]);
    -}
    -
    -void main() {
    -  final r = Robot(5, ["Walter"]);
    -  print(r.weight); // 170
    -}
    -

    Naming things

    -

    Having to construct a robot like Robot(5, ["Walter"]) is not very explicit.

    -

    Dart has named arguments! Naturally, they can be provided in any order and are all optional by default:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  Robot({ this.height, this.weight, this.names });
    -}
    -
    -void main() {
    -  final r = Robot(height: 5, names: ["Walter"]);
    -  print(r.height); // 5
    -}
    -

    But we can annotate a field with @required:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  Robot({ this.height, @required this.weight, this.names });
    -}
    -

    (or use assert(weight != null) in the initializer for a runtime check!)

    -

    Naming things with defaults

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  Robot({ this.height = 7, this.weight = 100, this.names = const [] });
    -}
    -
    -void main() {
    -  print(Robot().height); // 7
    -  print(Robot().weight); // 100
    -  print(Robot().names); // []
    -}
    -

    It’s important to note that these default values must be constant!

    -

    Alternatively, we can use the ?? (“if-null”) operator in the assignment to provide any constant or static computation:

    -
    class Robot {
    -  final double height;
    -  final double weight;
    -  final List<String> names;
    -
    -  Robot({ height, weight, this.names = const [] }) : height = height ?? 7, weight = weight ?? int.parse("100");
    -}
    -
    -void main() {
    -  print(Robot().height); // 7
    -  print(Robot().weight); // 100
    -}
    -

    How about making the attributes private?

    -
    class Robot {
    -  final double _height;
    -  final double _weight;
    -  final List<String> _names;
    -
    -  Robot({ this._height, this._weight, this._names }); // ERROR: Named optional parameters can't start with an underscore
    -}
    -

    It fails! Unlike with positional arguments, we need to specify the mappings in the initializer:

    -
    class Robot {
    -  final double _height;
    -  final double _weight;
    -  final List<String> _names;
    -
    -  Robot({ height, weight, names }) : _height = height, _weight = weight, _names = names;
    -
    -  get height => _height;
    -  get weight => _weight;
    -  get names => _names;
    -}
    -
    -void main() {
    -  print(Robot(height: 5).height); // 5
    -}
    -

    Mixing it up

    -

    Both positional and named argument styles can be used together:

    -
    class Robot {
    -  final double _height;
    -  final double _weight;
    -  final List<String> _names;
    -
    -  Robot(height, { weight, names }) :
    -    _height = height,
    -    _weight = weight,
    -    _names = names;
    -
    -  get height => _height;
    -  get weight => _weight;
    -}
    -
    -void main() {
    -  var r = Robot(7, weight: 120);
    -  print(r.height); // 7
    -  print(r.weight); // 120
    -}
    -

    Named constructors

    -

    Not only can arguments be named. We can give names to any number of constructors:

    -
    class Robot {
    -  final double height;
    -  Robot(this.height);
    -
    -  Robot.fromPlanet(String planet) : height = (planet == 'geonosis') ? 2 : 7;
    -  Robot.copy(Robot other) : this(other.height);
    -}
    -
    -void main() {
    -  print(Robot.copy(Robot(7)).height); // 7
    -  print(new Robot.fromPlanet('geonosis').height); // 2
    -  print(new Robot.fromPlanet('earth').height); // 7
    -}
    -

    What happened in copy? We used this to call the default constructor, effectively “redirecting” the instantiation.

    -

    (new is optional but I sometimes like to use it, since it clearly states the intent.)

    -

    Invoking named super constructors works as expected:

    -
    class Machine {
    -  String name;
    -  Machine();
    -  Machine.named(this.name);
    -}
    -
    -class Robot extends Machine {
    -  final double height;
    -  Robot(this.height);
    -
    -  Robot.named({ height, name }) : this.height = height, super.named(name);
    -}
    -
    -void main() {
    -  print(Robot.named(height: 7, name: "Walter").name); // Walter
    -}
    -

    Note that named constructors require an unnamed constructor to be defined!

    -

    Keeping it private

    -

    But what if we didn’t want to expose a public constructor? Only named?

    -

    We can make a constructor private by prefixing it with an underscore:

    -
    class Robot {
    -  Robot._();
    -}
    -

    Applying this knowledge to our previous example:

    -
    class Machine {
    -  String name;
    -  Machine._();
    -  Machine.named(this.name);
    -}
    -
    -class Robot extends Machine {
    -  final double height;
    -  Robot._(this.height, name) : super.named(name);
    -
    -  Robot.named({ height, name }) : this._(height, name);
    -}
    -
    -void main() {
    -  print(Robot.named(height: 7, name: "Walter").name); // Walter
    -}
    -

    The named constructor is “redirecting” to the private default constructor (which in turn delegates part of the creation to its Machine ancestor).

    -

    Consumers of this API only see Robot.named() as a way to get robot instances.

    -

    A robot factory

    -

    -

    We said constructors were not allowed to return. Guess what?

    -

    Factory constructors can!

    -
    class Robot {
    -  final double height;
    -
    -  Robot._(this.height);
    -
    -  factory Robot() {
    -    return Robot._(7);
    -  }
    -}
    -
    -void main() {
    -  print(Robot().height); // 7
    -}
    -

    Factory constructors are syntactic sugar for the “factory pattern”, usually implemented with static functions.

    -

    They appear like a constructor from the outside (useful for example to avoid breaking API contracts), but internally they can delegate instance creation invoking a “normal” constructor. This explains why factory constructors do not have initializers.

    -

    Since factory constructors can return other instances (so long as they satisfy the interface of the current class), we can do very useful things like:

    -
      -
    • caching: conditionally returning existing objects (they might be expensive to create)
    • -
    • subclasses: returning other instances such as subclasses
    • -
    -

    They work with both normal and named constructors!

    -

    Here’s our robot warehouse, that only supplies one robot per height:

    -
    class Robot {
    -  final double height;
    -
    -  static final _cache = <double, Robot>{};
    -
    -  Robot._(this.height);
    -
    -  factory Robot(height) {
    -    return _cache[height] ??= Robot._(height);
    -  }
    -}
    -
    -void main() {
    -  final r1 = Robot(7);
    -  final r2 = Robot(7);
    -  final r3 = Robot(9);
    -
    -  print(r1.height); // 7
    -  print(r2.height); // 7
    -  print(identical(r1, r2)); // true
    -  print(r3.height); // 9
    -  print(identical(r2, r3)); // false
    -}
    -

    Finally, to demonstrate how a factory would instantiate subclasses, let’s create different robot brands that calculate prices as a function of height:

    -
    abstract class Robot {
    -  factory Robot(String brand) {
    -    if (brand == 'fanuc') return Fanuc(2);
    -    if (brand == 'yaskawa') return Yaskawa(9);
    -    if (brand == 'abb') return ABB(7);
    -    throw "no brand found";
    -  }
    -  double get price;
    -}
    -
    -class Fanuc implements Robot {
    -  final double height;
    -  Fanuc(this.height);
    -  double get price => height * 2922.21;
    -}
    -
    -class Yaskawa implements Robot {
    -  final double height;
    -  Yaskawa(this.height);
    -  double get price => height * 1315 + 8992;
    -}
    -
    -class ABB implements Robot {
    -  final double height;
    -  ABB(this.height);
    -  double get price => height * 2900 - 7000;
    -}
    -
    -void main() {
    -  try {
    -    print(Robot('fanuc').price); // 5844.42
    -    print(Robot('abb').price); // 13300
    -    print(Robot('flutter').price);
    -  } catch (err) {
    -    print(err); // no brand found
    -  }
    -}
    -

    Singletons

    -

    Singletons are classes that only ever create one instance. We think of this as a specific case of caching!

    -

    Let’s implement the singleton pattern in Dart:

    -
    class Robot {
    -  static final Robot _instance = new Robot._(7);
    -  final double height;
    -
    -  factory Robot() {
    -    return _instance;
    -  }
    -
    -  Robot._(this.height);
    -}
    -
    -void main() {
    -  var r1 = Robot();
    -  var r2 = Robot();
    -  print(identical(r1, r2)); // true
    -  print(r1 == r2); // true
    -}
    -

    The factory constructor Robot(height) simply always returns the one and only instance that was created when loading the Robot class. (So in this case, I prefer not to use new before Robot.)

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Deconstructing Dart Constructors - Flutter Data

    Deconstructing Dart Constructors

    Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories…

    Read this post and you will become an expert!

    Photo by Arseny Togulev on Unsplash

    When we want an instance of a certain class we call a constructor, right?

    var robot = new Robot();
    +

    In Dart 2 we can leave out the new:

    var robot = Robot();
    +

    A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:

    class Robot {
    +  Robot();
    +}
    +

    This constructor has no arguments so we can leave it out and write:

    class Robot {
    +}
    +

    The default constructor is implicitly defined.

    Did you know you can try out Dart and Flutter code in DartPad?

    Initializing…

    Most times we need to configure our instances. For example, pass in the height of a robot:

    var r = Robot(5);
    +

    r is now a 5-feet tall Robot.

    To write that constructor we include the height field after the colon :

    class Robot {
    +  double height;
    +  Robot(height) : this.height = height;
    +}
    +

    or even

    class Robot {
    +  double height;
    +  Robot(data) : this.height = data.physics.raw['heightInFt'];
    +}
    +

    This is called an initializer. It accepts a comma-separated list of expressions that initialize fields with arguments.

    Fortunately, Dart gives us a shortcut. If the field name and type are the same as the argument in the constructor, we can do:

    class Robot {
    +  double height;
    +  Robot(this.height);
    +}
    +

    Imagine that the height field is expressed in feet and we want clients to supply the height in meters. Dart also allows us to initialize fields with computations from static methods (as they don’t depend on an instance of the class):

    class Robot {
    +  static mToFt(m) => m * 3.281;
    +  double height; // in ft
    +  Robot(height) : this.height = mToFt(height);
    +}
    +

    Sometimes we must call super constructors when initializing:

    class Machine {
    +  String name;
    +  Machine(this.name);
    +}
    +
    +class Robot extends Machine {
    +  static mToFt(m) => m * 3.281;
    +  double height;
    +  Robot(height, name) : this.height = mToFt(height), super(name);
    +}
    +

    Notice that super(...) must always be the last call in the initializer.

    And if we needed to add more complex guards (than types) against a malformed robot, we can use assert:

    class Robot {
    +  final double height;
    +  Robot(height) : this.height = height, assert(height > 4.2);
    +}
    +

    Accessors and mutators

    Back to our earlier robot definition:

    class Robot {
    +  double height;
    +  Robot(this.height);
    +}
    +
    +void main() {
    +  var r = Robot(5);
    +  print(r.height); // 5
    +}
    +

    Let’s make it taller:

    void main() {
    +  var r = Robot(5);
    +  r.height = 6;
    +  print(r.height); // 6
    +}
    +

    But robots don’t grow, their height is constant! Let’s prevent anyone from modifying the height by making the field private.

    In Dart, there is no private keyword. Instead, we use a convention: field names starting with _ are private (library-private, actually).

    class Robot {
    +  double _height;
    +  Robot(this._height);
    +}
    +

    Great! But now there is no way to access r.height. We can make the height property read-only by adding a getter:

    class Robot {
    +  double _height;
    +  Robot(this._height);
    +
    +  get height {
    +    return this._height;
    +  }
    +}
    +

    Getters are functions that take no arguments and conform to the uniform access principle.

    We can simplify our getter by using two shortcuts: single expression syntax (fat arrow) and implicit this:

    class Robot {
    +  double _height;
    +  Robot(this._height);
    +
    +  get height => _height;
    +}
    +

    Actually, we can think of public fields as private fields with getters and setters. That is:

    class Robot {
    +  double height;
    +  Robot(this.height);
    +}
    +

    is equivalent to:

    class Robot {
    +  double _height;
    +  Robot(this._height);
    +
    +  get height => _height;
    +  set height(value) => _height = value;
    +}
    +

    Keep in mind initializers only assign values to fields and it is therefore not possible to use a setter in an initializer:

    class Robot {
    +  double _height;
    +  Robot(this.height); // ERROR: 'height' isn't a field in the enclosing class
    +
    +  get height => _height;
    +  set height(value) => _height = value;
    +}
    +

    Constructor bodies

    If a setter needs to be called, we’ll have to do that in a constructor body:

    class Robot {
    +  double _height;
    +
    +  Robot(h) {
    +    height = h;
    +  }
    +
    +  get height => _height;
    +  set height(value) => _height = value;
    +}
    +

    We can do all sorts of things in constructor bodies, but we can’t return a value!

    class Robot {
    +  double height;
    +  Robot(this.height) {
    +    return this; // ERROR: Constructors can't return values
    +  }
    +}
    +

    Final fields

    Final fields are fields that can only be assigned once.

    final r = Robot(5);
    +r = Robot(7); /* ERROR */
    +

    Inside our class, we won’t be able to use the setter:

    class Robot {
    +  final double _height;
    +  Robot(this._height);
    +
    +  get height => _height;
    +  set height(value) => _height = value; // ERROR
    +}
    +

    Just like with var, we can use final before any type definition:

    var r;
    +var Robot r;
    +
    +final r;
    +final Robot r;
    +

    The following won’t work because height, being final, must be initialized. And initialization happens before the constructor body is run:

    class Robot {
    +  final double height;
    +
    +  Robot(double height) {
    +    this.height = height; // ERROR: The final variable 'height' must be initialized
    +  }
    +}
    +

    Let’s fix it:

    class Robot {
    +  final double height;
    +  Robot(this.height);
    +}
    +

    Default values

    If most robots are 5-feet tall then we can avoid specifying the height each time. We can make an argument optional and provide a default value:

    class Robot {
    +  final double height;
    +  Robot([this.height = 5]);
    +}
    +

    So we can just call:

    void main() {
    +  var r = Robot();
    +  print(r.height); // 5
    +
    +  var r2d2 = Robot(3.576);
    +  print(r2d2.height); // 3.576
    +}
    +

    Immutable robots

    Our robots clearly have more attributes than a height. Let’s add some more!

    class Robot {
    +  final double height;
    +  final double weight;
    +  final String name;
    +
    +  Robot(this.height, this.weight, this.name);
    +}
    +
    +void main() {
    +  final r = Robot(5, 170, "Walter");
    +  r.name = "Steve"; // ERROR
    +}
    +

    As all fields are final, our robots are immutable! Once they are initialized, their attributes can’t be changed.

    Now let’s imagine that robots respond to many different names:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  Robot(this.height, this.weight, this.names);
    +}
    +
    +void main() {
    +  final r = Robot(5, 170, ["Walter"]);
    +  print(r.names..add("Steve")); // [Walter, Steve]
    +}
    +

    Dang, using a List made our robot mutable again!

    We can solve this with a const constructor:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  const Robot(this.height, this.weight, this.names);
    +}
    +
    +void main() {
    +  final r = const Robot(5, 170, ["Walter"]);
    +  print(r.names..add("Steve")); // ERROR: Unsupported operation: add
    +}
    +

    const can only be used with expressions that can be computed at compile time. Take the following example:

    import 'dart:math';
    +
    +class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  const Robot(this.height, this.weight, this.names);
    +}
    +
    +void main() {
    +  final r = const Robot(5, 170, ["Walter", Random().nextDouble().toString()]); // ERROR: Invalid constant value
    +}
    +

    const instances are canonicalized which means that equal instances point to the same object in memory space when running.

    For example this is a “cheap” operation:

    void main() {
    +  [for(var i = 0; i < 20000; i += 1) Robot(5, 170, ["Walter"])];
    +}
    +

    And yes, using const constructors can improve performance in Flutter applications.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    Optional arguments always last!

    If we wanted the weight argument to be optional we’d have to declare it at the end:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  const Robot(this.height, this.names, [this.weight = 170]);
    +}
    +
    +void main() {
    +  final r = Robot(5, ["Walter"]);
    +  print(r.weight); // 170
    +}
    +

    Naming things

    Having to construct a robot like Robot(5, ["Walter"]) is not very explicit.

    Dart has named arguments! Naturally, they can be provided in any order and are all optional by default:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  Robot({ this.height, this.weight, this.names });
    +}
    +
    +void main() {
    +  final r = Robot(height: 5, names: ["Walter"]);
    +  print(r.height); // 5
    +}
    +

    But we can annotate a field with @required:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  Robot({ this.height, @required this.weight, this.names });
    +}
    +

    (or use assert(weight != null) in the initializer for a runtime check!)

    Naming things with defaults

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  Robot({ this.height = 7, this.weight = 100, this.names = const [] });
    +}
    +
    +void main() {
    +  print(Robot().height); // 7
    +  print(Robot().weight); // 100
    +  print(Robot().names); // []
    +}
    +

    It’s important to note that these default values must be constant!

    Alternatively, we can use the ?? (“if-null”) operator in the assignment to provide any constant or static computation:

    class Robot {
    +  final double height;
    +  final double weight;
    +  final List<String> names;
    +
    +  Robot({ height, weight, this.names = const [] }) : height = height ?? 7, weight = weight ?? int.parse("100");
    +}
    +
    +void main() {
    +  print(Robot().height); // 7
    +  print(Robot().weight); // 100
    +}
    +

    How about making the attributes private?

    class Robot {
    +  final double _height;
    +  final double _weight;
    +  final List<String> _names;
    +
    +  Robot({ this._height, this._weight, this._names }); // ERROR: Named optional parameters can't start with an underscore
    +}
    +

    It fails! Unlike with positional arguments, we need to specify the mappings in the initializer:

    class Robot {
    +  final double _height;
    +  final double _weight;
    +  final List<String> _names;
    +
    +  Robot({ height, weight, names }) : _height = height, _weight = weight, _names = names;
    +
    +  get height => _height;
    +  get weight => _weight;
    +  get names => _names;
    +}
    +
    +void main() {
    +  print(Robot(height: 5).height); // 5
    +}
    +

    Mixing it up

    Both positional and named argument styles can be used together:

    class Robot {
    +  final double _height;
    +  final double _weight;
    +  final List<String> _names;
    +
    +  Robot(height, { weight, names }) :
    +    _height = height,
    +    _weight = weight,
    +    _names = names;
    +
    +  get height => _height;
    +  get weight => _weight;
    +}
    +
    +void main() {
    +  var r = Robot(7, weight: 120);
    +  print(r.height); // 7
    +  print(r.weight); // 120
    +}
    +

    Named constructors

    Not only can arguments be named. We can give names to any number of constructors:

    class Robot {
    +  final double height;
    +  Robot(this.height);
    +
    +  Robot.fromPlanet(String planet) : height = (planet == 'geonosis') ? 2 : 7;
    +  Robot.copy(Robot other) : this(other.height);
    +}
    +
    +void main() {
    +  print(Robot.copy(Robot(7)).height); // 7
    +  print(new Robot.fromPlanet('geonosis').height); // 2
    +  print(new Robot.fromPlanet('earth').height); // 7
    +}
    +

    What happened in copy? We used this to call the default constructor, effectively “redirecting” the instantiation.

    (new is optional but I sometimes like to use it, since it clearly states the intent.)

    Invoking named super constructors works as expected:

    class Machine {
    +  String name;
    +  Machine();
    +  Machine.named(this.name);
    +}
    +
    +class Robot extends Machine {
    +  final double height;
    +  Robot(this.height);
    +
    +  Robot.named({ height, name }) : this.height = height, super.named(name);
    +}
    +
    +void main() {
    +  print(Robot.named(height: 7, name: "Walter").name); // Walter
    +}
    +

    Note that named constructors require an unnamed constructor to be defined!

    Keeping it private

    But what if we didn’t want to expose a public constructor? Only named?

    We can make a constructor private by prefixing it with an underscore:

    class Robot {
    +  Robot._();
    +}
    +

    Applying this knowledge to our previous example:

    class Machine {
    +  String name;
    +  Machine._();
    +  Machine.named(this.name);
    +}
    +
    +class Robot extends Machine {
    +  final double height;
    +  Robot._(this.height, name) : super.named(name);
    +
    +  Robot.named({ height, name }) : this._(height, name);
    +}
    +
    +void main() {
    +  print(Robot.named(height: 7, name: "Walter").name); // Walter
    +}
    +

    The named constructor is “redirecting” to the private default constructor (which in turn delegates part of the creation to its Machine ancestor).

    Consumers of this API only see Robot.named() as a way to get robot instances.

    A robot factory

    We said constructors were not allowed to return. Guess what?

    Factory constructors can!

    class Robot {
    +  final double height;
    +
    +  Robot._(this.height);
    +
    +  factory Robot() {
    +    return Robot._(7);
    +  }
    +}
    +
    +void main() {
    +  print(Robot().height); // 7
    +}
    +

    Factory constructors are syntactic sugar for the “factory pattern”, usually implemented with static functions.

    They appear like a constructor from the outside (useful for example to avoid breaking API contracts), but internally they can delegate instance creation invoking a “normal” constructor. This explains why factory constructors do not have initializers.

    Since factory constructors can return other instances (so long as they satisfy the interface of the current class), we can do very useful things like:

    • caching: conditionally returning existing objects (they might be expensive to create)
    • subclasses: returning other instances such as subclasses

    They work with both normal and named constructors!

    Here’s our robot warehouse, that only supplies one robot per height:

    class Robot {
    +  final double height;
    +
    +  static final _cache = <double, Robot>{};
    +
    +  Robot._(this.height);
    +
    +  factory Robot(height) {
    +    return _cache[height] ??= Robot._(height);
    +  }
    +}
    +
    +void main() {
    +  final r1 = Robot(7);
    +  final r2 = Robot(7);
    +  final r3 = Robot(9);
    +
    +  print(r1.height); // 7
    +  print(r2.height); // 7
    +  print(identical(r1, r2)); // true
    +  print(r3.height); // 9
    +  print(identical(r2, r3)); // false
    +}
    +

    Finally, to demonstrate how a factory would instantiate subclasses, let’s create different robot brands that calculate prices as a function of height:

    abstract class Robot {
    +  factory Robot(String brand) {
    +    if (brand == 'fanuc') return Fanuc(2);
    +    if (brand == 'yaskawa') return Yaskawa(9);
    +    if (brand == 'abb') return ABB(7);
    +    throw "no brand found";
    +  }
    +  double get price;
    +}
    +
    +class Fanuc implements Robot {
    +  final double height;
    +  Fanuc(this.height);
    +  double get price => height * 2922.21;
    +}
    +
    +class Yaskawa implements Robot {
    +  final double height;
    +  Yaskawa(this.height);
    +  double get price => height * 1315 + 8992;
    +}
    +
    +class ABB implements Robot {
    +  final double height;
    +  ABB(this.height);
    +  double get price => height * 2900 - 7000;
    +}
    +
    +void main() {
    +  try {
    +    print(Robot('fanuc').price); // 5844.42
    +    print(Robot('abb').price); // 13300
    +    print(Robot('flutter').price);
    +  } catch (err) {
    +    print(err); // no brand found
    +  }
    +}
    +

    Singletons

    Singletons are classes that only ever create one instance. We think of this as a specific case of caching!

    Let’s implement the singleton pattern in Dart:

    class Robot {
    +  static final Robot _instance = new Robot._(7);
    +  final double height;
    +
    +  factory Robot() {
    +    return _instance;
    +  }
    +
    +  Robot._(this.height);
    +}
    +
    +void main() {
    +  var r1 = Robot();
    +  var r2 = Robot();
    +  print(identical(r1, r2)); // true
    +  print(r1 == r2); // true
    +}
    +

    The factory constructor Robot(height) simply always returns the one and only instance that was created when loading the Robot class. (So in this case, I prefer not to use new before Robot.)

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/define-interface-dart/index.html b/articles/define-interface-dart/index.html index 8c928bb..3e521e2 100644 --- a/articles/define-interface-dart/index.html +++ b/articles/define-interface-dart/index.html @@ -1,203 +1,19 @@ - - - - - - - - - - - - - - - - - - - - How To Define an Interface in Dart - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - How To Define an Interface in Dart -

    - - - -
    -

    Dart defines implicit interfaces. What does this mean?

    -

    In your app you’d have:

    -
    class Session {
    -  authenticate() { // impl }
    -}
    -

    or

    -
    abstract class Session {
    -  authenticate();
    -}
    -

    And for example in tests:

    -
    class MockSession implements Session {
    -  authenticate() { // mock impl }
    -}
    -

    No need to define a separate interface, just use regular or abstract classes!

    -
    - Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! -
    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +How To Define an Interface in Dart - Flutter Data

    How To Define an Interface in Dart

    Dart defines implicit interfaces. What does this mean?

    In your app you’d have:

    class Session {
    +  authenticate() { // impl }
    +}
    +

    or

    abstract class Session {
    +  authenticate();
    +}
    +

    And for example in tests:

    class MockSession implements Session {
    +  authenticate() { // mock impl }
    +}
    +

    No need to define a separate interface, just use regular or abstract classes!

    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/future-async-called-multiple-times/index.html b/articles/future-async-called-multiple-times/index.html index 2239f3e..22f7be7 100644 --- a/articles/future-async-called-multiple-times/index.html +++ b/articles/future-async-called-multiple-times/index.html @@ -1,310 +1,74 @@ - - - - - - - - - - - - - - - - - - - - Why Is My Future/Async Called Multiple Times? - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Why Is My Future/Async Called Multiple Times? -

    - - - -
    -

    Why is FutureBuilder firing multiple times? My future should be called just once!

    -

    It appears that this build method is rebuilding unnecessarily:

    -
    @override
    -Widget build(context) {
    -  return FutureBuilder<String>(
    -    future: callAsyncFetch(), // called all the time!!! 😡
    -    builder: (context, snapshot) {
    -      // rebuilding all the time!!! 😡
    -    }
    -  );
    -}
    -

    This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example.

    -

    Well, let me tell you something…

    -

    This is not a bug 🐞, it’s a feature ✅!

    -

    Let’s quickly see why… and how to fix it!

    -

    Understanding the problem

    -

    Imagine the FutureBuilder’s parent is a ListView. This is what happens:

    -
      -
    • 🧻 User scrolls list
    • -
    • 🔥 build fires many times per second to update the screen
    • -
    • callAsyncFetch() gets invoked once per build returning new Futures every time
    • -
    • = didUpdateWidget in the FutureBuilder compares old and new Futures; if different it calls the builder again
    • -
    • 😩 Since instances are always new (always different to the old one) the builder refires once for every call to the parent’s build… that is, A LOT
    • -
    -

    (Remember: Flutter is a declarative framework. This means it will paint the screen as many times as needed to reflect the UI you declared, based on the latest state)

    -

    A quick fix 🔧

    -

    We clearly must take the Future out of this build method!

    -

    A simple approach is by introducing a StatefulWidget where we stash our Future in a variable. Now every rebuild will make reference to the same Future instance:

    -
    class MyWidget extends StatefulWidget {
    -  @override
    -  _MyWidgetState createState() => _MyWidgetState();
    -}
    -
    -class _MyWidgetState extends State<MyWidget> {
    -  Future<String> _future;
    -
    -  @override
    -  void initState() {
    -    _future = callAsyncFetch();
    -    super.initState();
    -  }
    -
    -  @override
    -  Widget build(context) {
    -    return FutureBuilder<String>(
    -      future: _future,
    -      builder: (context, snapshot) {
    -        // ...
    -      }
    -    );
    -  }
    -}
    -

    We’re caching a value (in other words, memoizing) such that the build method can now call our code a million times without problems.

    -

    Live example

    -

    Here we have a sample parent widget that rebuilds every 3 seconds. It’s meant to represent any widget that triggers rebuilds like, for example, a user scrolling a ListView.

    -

    The screen is split in two:

    -
      -
    • Top: a StatelessWidget containing a FutureBuilder. It’s fed a new Future that resolves to the current date in seconds
    • -
    • Bottom: a StatefulWidget containing a FutureBuilder. A new Future (that also resolves to the current date in seconds) is cached in the State object. This cached Future is passed into the FutureBuilder
    • -
    -

    Hit Run and see the difference (wait at least 3 seconds). Rebuilds are also logged to the console.

    - -
    - -
    - -

    The top future (stateless) gets called and triggered all the time (every 3 seconds in this example).

    -

    The bottom (stateful) can be called any amount of times without changing.

    -

    Cleaner ways 🛀

    -

    Are you using Provider by any chance? You can simply use a FutureProvider instead of the StatefulWidget above:

    -
    class MyWidget extends StatelessWidget {
    -  // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
    -  @override
    -  Widget build(BuildContext context) {
    -    // print('building widget');
    -    return FutureProvider<String>(
    -      create: (_) {
    -        // print('calling future');
    -        return callAsyncFetch();
    -      },
    -      child: Consumer<String>(
    -        builder: (_, value, __) => Text(value ?? 'Loading...'),
    -      ),
    -    );
    -  }
    -}
    -

    Much nicer, if you ask me.

    -
    - Tip! It’s a fully functional example. Comment out those lines and try it out in your own editor! -
    -

    Another option is using the fantastic Flutter Hooks library with the useMemoized hook for the memoization (caching):

    -
    class MyWidget extends HookWidget {
    -  @override
    -  Widget build(BuildContext context) {
    -    final future = useMemoized(() {
    -      // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
    -      callAsyncFetch(); // or your own async function
    -    });
    -    return FutureBuilder<String>(
    -      future: future,
    -      builder: (context, snapshot) {
    -        return Text(snapshot.hasData ? snapshot.data : 'Loading...');
    -      }
    -    );
    -  }
    -}
    -

    Takeaway

    -

    Your build methods should always be pure, that is, never have side-effects (like updating state, calling async functions).

    -

    Remember that builders are ultimately called by build!

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Why Is My Future/Async Called Multiple Times? - Flutter Data

    Why Is My Future/Async Called Multiple Times?

    Why is FutureBuilder firing multiple times? My future should be called just once!

    It appears that this build method is rebuilding unnecessarily:

    @override
    +Widget build(context) {
    +  return FutureBuilder<String>(
    +    future: callAsyncFetch(), // called all the time!!! 😡
    +    builder: (context, snapshot) {
    +      // rebuilding all the time!!! 😡
    +    }
    +  );
    +}
    +

    This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example.

    Well, let me tell you something…

    This is not a bug 🐞, it’s a feature ✅!

    Let’s quickly see why… and how to fix it!

    Understanding the problem

    Imagine the FutureBuilder’s parent is a ListView. This is what happens:

    • 🧻 User scrolls list
    • 🔥 build fires many times per second to update the screen
    • callAsyncFetch() gets invoked once per build returning new Futures every time
    • = didUpdateWidget in the FutureBuilder compares old and new Futures; if different it calls the builder again
    • 😩 Since instances are always new (always different to the old one) the builder refires once for every call to the parent’s build… that is, A LOT

    (Remember: Flutter is a declarative framework. This means it will paint the screen as many times as needed to reflect the UI you declared, based on the latest state)

    A quick fix 🔧

    We clearly must take the Future out of this build method!

    A simple approach is by introducing a StatefulWidget where we stash our Future in a variable. Now every rebuild will make reference to the same Future instance:

    class MyWidget extends StatefulWidget {
    +  @override
    +  _MyWidgetState createState() => _MyWidgetState();
    +}
    +
    +class _MyWidgetState extends State<MyWidget> {
    +  Future<String> _future;
    +
    +  @override
    +  void initState() {
    +    _future = callAsyncFetch();
    +    super.initState();
    +  }
    +
    +  @override
    +  Widget build(context) {
    +    return FutureBuilder<String>(
    +      future: _future,
    +      builder: (context, snapshot) {
    +        // ...
    +      }
    +    );
    +  }
    +}
    +

    We’re caching a value (in other words, memoizing) such that the build method can now call our code a million times without problems.

    Live example

    Here we have a sample parent widget that rebuilds every 3 seconds. It’s meant to represent any widget that triggers rebuilds like, for example, a user scrolling a ListView.

    The screen is split in two:

    • Top: a StatelessWidget containing a FutureBuilder. It’s fed a new Future that resolves to the current date in seconds
    • Bottom: a StatefulWidget containing a FutureBuilder. A new Future (that also resolves to the current date in seconds) is cached in the State object. This cached Future is passed into the FutureBuilder

    Hit Run and see the difference (wait at least 3 seconds). Rebuilds are also logged to the console.



    The top future (stateless) gets called and triggered all the time (every 3 seconds in this example).

    The bottom (stateful) can be called any amount of times without changing.

    Cleaner ways 🛀

    Are you using Provider by any chance? You can simply use a FutureProvider instead of the StatefulWidget above:

    class MyWidget extends StatelessWidget {
    +  // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
    +  @override
    +  Widget build(BuildContext context) {
    +    // print('building widget');
    +    return FutureProvider<String>(
    +      create: (_) {
    +        // print('calling future');
    +        return callAsyncFetch();
    +      },
    +      child: Consumer<String>(
    +        builder: (_, value, __) => Text(value ?? 'Loading...'),
    +      ),
    +    );
    +  }
    +}
    +

    Much nicer, if you ask me.

    Tip! It’s a fully functional example. Comment out those lines and try it out in your own editor!

    Another option is using the fantastic Flutter Hooks library with the useMemoized hook for the memoization (caching):

    class MyWidget extends HookWidget {
    +  @override
    +  Widget build(BuildContext context) {
    +    final future = useMemoized(() {
    +      // Future<String> callAsyncFetch() => Future.delayed(Duration(seconds: 2), () => "hi");
    +      callAsyncFetch(); // or your own async function
    +    });
    +    return FutureBuilder<String>(
    +      future: future,
    +      builder: (context, snapshot) {
    +        return Text(snapshot.hasData ? snapshot.data : 'Loading...');
    +      }
    +    );
    +  }
    +}
    +

    Takeaway

    Your build methods should always be pure, that is, never have side-effects (like updating state, calling async functions).

    Remember that builders are ultimately called by build!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-format-duration/index.html b/articles/how-to-format-duration/index.html index b966df6..10fd632 100644 --- a/articles/how-to-format-duration/index.html +++ b/articles/how-to-format-duration/index.html @@ -1,199 +1,20 @@ - - - - - - - - - - - - - - - - - - - - How to Format a Duration as a HH:MM:SS String - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - How to Format a Duration as a HH:MM:SS String -

    - - - -
    -

    The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing:

    -
    format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
    -

    Example usage:

    -
    main() {
    -  final d1 = Duration(hours: 17, minutes: 3);
    -  final d2 = Duration(hours: 9, minutes: 2, seconds: 26);
    -  final d3 = Duration(milliseconds: 0);
    -  print(format(d1)); // 17:03:00
    -  print(format(d2)); // 09:02:26
    -  print(format(d3)); // 00:00:00
    -}
    -

    If we are dealing with smaller durations and needed only minutes and seconds:

    -
    format(Duration d) => d.toString().substring(2, 7);
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +How to Format a Duration as a HH:MM:SS String - Flutter Data

    How to Format a Duration as a HH:MM:SS String

    The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing:

    format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
    +

    Example usage:

    main() {
    +  final d1 = Duration(hours: 17, minutes: 3);
    +  final d2 = Duration(hours: 9, minutes: 2, seconds: 26);
    +  final d3 = Duration(milliseconds: 0);
    +  print(format(d1)); // 17:03:00
    +  print(format(d2)); // 09:02:26
    +  print(format(d3)); // 00:00:00
    +}
    +

    If we are dealing with smaller durations and needed only minutes and seconds:

    format(Duration d) => d.toString().substring(2, 7);
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-reinitialize-flutter-data/index.html b/articles/how-to-reinitialize-flutter-data/index.html new file mode 100644 index 0000000..8e1a5b4 --- /dev/null +++ b/articles/how-to-reinitialize-flutter-data/index.html @@ -0,0 +1,29 @@ +How to Reinitialize Flutter Data - Flutter Data

    How to Reinitialize Flutter Data

    By calling repositoryInitializerProvider() again with Riverpod’s refresh we can reinitialize Flutter Data.

    class TasksApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: RefreshIndicator(
    +        onRefresh: () async => ref.refresh(repositoryInitializerProvider()),
    +        child: Scaffold(
    +          body: Center(
    +            child: ref.watch(repositoryInitializerProvider()).when(
    +                  error: (error, _) => Text(error.toString()),
    +                  loading: () => const CircularProgressIndicator(),
    +                  data: (_) => TasksScreen(),
    +                ),
    +          ),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-retry-offline-sync-data/index.html b/articles/how-to-retry-offline-sync-data/index.html new file mode 100644 index 0000000..4103784 --- /dev/null +++ b/articles/how-to-retry-offline-sync-data/index.html @@ -0,0 +1,57 @@ +How to Retry Offline Calls to Sync Data - Flutter Data

    How to Retry Offline Calls to Sync Data

    Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives.

    The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException.

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    +
    +final _dispose = notifier.addListener((Set<String> types) async {
    +  // check offline operations for all these types
    +});
    +

    For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    +
    +final _dispose = notifier.throttle(() {
    +  final n = backoffFn(ref.read(counterProvider).state);
    +  return Duration(seconds: n);
    +}).addListener((types) async {
    +  // check offline operations for all these types
    +  // types is now a List<Set<String>> because of the throttle
    +});
    +
    +//
    +
    +final backoffFn = (int i) => [2, 5, 8, 8, 8, 13, 13, 18, 18].getSafe(i) ?? 20;
    +final counterProvider = StateProvider<int>((_) => 0);
    +

    So here’s an implementation example that can be placed in a initialization callback:

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    +
    +final _dispose = notifier.throttle(() {
    +  final n = backoffFn(ref.read(counterProvider).state);
    +  return Duration(seconds: n);
    +}).addListener((types) async {
    +  // check offline operations for all these types
    +  // types is now a List<Set<String>> because of the throttle
    +
    +  types = types.expand((e) => e).toSet();
    +
    +  if (types.isNotEmpty) {
    +    for (final type in types) {
    +      final provider = repositoryProviders[type];
    +      if (provider != null) {
    +        final operations = ref.read(provider).offlineOperations;
    +        print('== Retrying $type (${operations.length} operations) ==');
    +        await operations.retry();
    +      }
    +    }
    +    ref.read(counterProvider).state++;
    +  } else {
    +    print('== No operations, reset ==');
    +    ref.read(counterProvider).state = 0;
    +  }
    +});
    +
    +// remember to call _dispose
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/index.html b/articles/index.html index 43e17bb..e328797 100644 --- a/articles/index.html +++ b/articles/index.html @@ -1,612 +1,9 @@ - - - - - - - - - - - - - - - - - - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/index.xml b/articles/index.xml index 8eefd15..97c76f4 100644 --- a/articles/index.xml +++ b/articles/index.xml @@ -1,264 +1,64 @@ - - - - Flutter Data - /articles/ - Recent content on Flutter Data - Hugo -- gohugo.io - en-us - Thu, 09 Dec 2021 23:17:30 -0300 - - Nested Resources Adapter - /articles/nested-resources-adapter/ - Thu, 09 Dec 2021 23:17:30 -0300 - - /articles/nested-resources-adapter/ - Here&rsquo;s how you could access nested resources such as: /posts/1/comments -mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: -final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); - - - - Custom Deserialization Adapter - /articles/custom-deserialization-adapter/ - Thu, 09 Dec 2021 23:15:44 -0300 - - /articles/custom-deserialization-adapter/ - Example: +Flutter Data/articles/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider() again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.refresh(repositoryInitializerProvider()), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider()).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: -final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. - - - - Intercept Logout Adapter - /articles/intercept-logout-adapter/ - Thu, 09 Dec 2021 23:15:11 -0300 - - /articles/intercept-logout-adapter/ - The global onError handler will call logout if certain conditions are met: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } - - - - Override findAll Adapter - /articles/override-findall-adapter/ - Thu, 09 Dec 2021 23:14:28 -0300 - - /articles/override-findall-adapter/ - In this example we completely override findAll to return random models: -mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } - - - - Override findOne URL Adapter - /articles/override-findone-url-method/ - Thu, 09 Dec 2021 23:14:28 -0300 - - /articles/override-findone-url-method/ - In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: -mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } - - - - Iterator Style Adapter - /articles/iterator-style-adapter/ - Thu, 09 Dec 2021 23:13:36 -0300 - - /articles/iterator-style-adapter/ - mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. +Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent.Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. -final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); - - - - Override HTTP Client Adapter - /articles/override-http-client-adapter/ - Thu, 09 Dec 2021 23:10:10 -0300 - - /articles/override-http-client-adapter/ - An example on how to override and use a more advanced HTTP client. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); Need professional help with Flutter?Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. Here the connectionTimeout is increased, and an HTTP proxy enabled. -mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient! - - - - Override Default Headers and Query Parameters - /articles/override-headers-query-parameters/ - Thu, 09 Dec 2021 23:07:40 -0300 - - /articles/override-headers-query-parameters/ - Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. +mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient!.findProxy = (uri) =&gt; &#39;PROXY (proxy url)&#39;; return _ioClient!Override Default Headers and Query Parameters/articles/override-headers-query-parameters/Thu, 09 Dec 2021 23:07:40 -0300/articles/override-headers-query-parameters/Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. Here is how: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super. - - - - Configure Flutter Data to Work with GetIt - /articles/configure-get-it/ - Sun, 05 Dec 2021 23:12:05 -0300 - - /articles/configure-get-it/ - This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super.Configure Flutter Data to Work with GetIt/articles/configure-get-it/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-get-it/This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository. - - - - Configure Flutter Data to Work with Provider - /articles/configure-provider/ - Sun, 05 Dec 2021 23:12:05 -0300 - - /articles/configure-provider/ - This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. +class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository.Configure Flutter Data to Work with Provider/articles/configure-provider/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-provider/This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context. - - - - Override Base URL Adapter - /articles/override-base-url/ - Fri, 03 Dec 2021 18:45:45 -0300 - - /articles/override-base-url/ - Flutter Data is extended via adapters. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.How to Retry Offline Calls to Sync Data/articles/how-to-retry-offline-sync-data/Sun, 05 Dec 2021 23:12:05 -0300/articles/how-to-retry-offline-sync-data/Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives. +The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException. +final notifier = ref.read(pendingOfflineTypesProvider.notifier); final _dispose = notifier.addListener((Set&lt;String&gt; types) async { // check offline operations for all these types }); For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: -mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } - - - - Deconstructing Dart Constructors - /articles/deconstructing-dart-constructors/ - Wed, 12 Feb 2020 13:43:48 -0500 - - /articles/deconstructing-dart-constructors/ - Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; Read this post and you will become an expert! When we want an instance of a certain class we call a constructor, right? var robot = new Robot(); In Dart 2 we can leave out the new: -var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: - - - - Dart Getter Shorthand to Cache Computed Properties - /articles/dart-getter-cache-computed-properties/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/dart-getter-cache-computed-properties/ - An elegant Dart getter shorthand used to cache computed properties: +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:Dart Getter Shorthand to Cache Computed Properties/articles/dart-getter-cache-computed-properties/Sat, 04 Jan 2020 13:43:48 -0500/articles/dart-getter-cache-computed-properties/An elegant Dart getter shorthand used to cache computed properties: T get foo =&gt; _foo ??= _computeFoo(); // which depends on having T _foo; T _computeFoo() =&gt; /** ... **/; It makes use of the fallback assignment operator ??=. -Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! - - - - Final vs const in Dart - /articles/dart-final-const-difference/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/dart-final-const-difference/ - What&rsquo;s the difference between final and const in Dart? +Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart!Final vs const in Dart/articles/dart-final-const-difference/Sat, 04 Jan 2020 13:43:48 -0500/articles/dart-final-const-difference/What&rsquo;s the difference between final and const in Dart? Easy! Final means single-assignment. Const means immutable. Let&rsquo;s see an example: -final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! - - - - How To Define an Interface in Dart - /articles/define-interface-dart/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/define-interface-dart/ - Dart defines implicit interfaces. What does this mean? +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? In your app you&rsquo;d have: class Session { authenticate() { // impl } } or abstract class Session { authenticate(); } And for example in tests: class MockSession implements Session { authenticate() { // mock impl } } No need to define a separate interface, just use regular or abstract classes! -Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! - - - - How to Build Widgets with an Async Method Call - /articles/build-widget-with-async-method-call/ - Wed, 18 Dec 2019 00:00:00 +0000 - - /articles/build-widget-with-async-method-call/ - You want to return a widget in a build method&hellip; +Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!How to Build Widgets with an Async Method Call/articles/build-widget-with-async-method-call/Wed, 18 Dec 2019 00:00:00 +0000/articles/build-widget-with-async-method-call/You want to return a widget in a build method&hellip; But your data comes from an async function! -class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. -So, can we make the build method async? - - - - Why Is My Future/Async Called Multiple Times? - /articles/future-async-called-multiple-times/ - Wed, 18 Dec 2019 00:00:00 +0000 - - /articles/future-async-called-multiple-times/ - Why is FutureBuilder firing multiple times? My future should be called just once! +class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. +So, can we make the build method async? 🤔Why Is My Future/Async Called Multiple Times?/articles/future-async-called-multiple-times/Wed, 18 Dec 2019 00:00:00 +0000/articles/future-async-called-multiple-times/Why is FutureBuilder firing multiple times? My future should be called just once! It appears that this build method is rebuilding unnecessarily: -@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example. - - - - The Ultimate Javascript vs Dart Syntax Guide - /articles/ultimate-javascript-dart-syntax-guide/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /articles/ultimate-javascript-dart-syntax-guide/ - Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example.The Ultimate Javascript vs Dart Syntax Guide/articles/ultimate-javascript-dart-syntax-guide/Tue, 15 Oct 2019 13:43:48 -0500/articles/ultimate-javascript-dart-syntax-guide/Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. (Pros and cons of choosing Flutter/Dart is outside the scope of this article.) So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! -Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. - - - - Checking Nulls and Null-Aware Operators in Dart - /articles/checking-null-aware-operators-dart/ - Wed, 18 Sep 2019 00:00:00 +0000 - - /articles/checking-null-aware-operators-dart/ - What is the best practice for checking nulls in Dart? +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs.Checking Nulls and Null-Aware Operators in Dart/articles/checking-null-aware-operators-dart/Wed, 18 Sep 2019 00:00:00 +0000/articles/checking-null-aware-operators-dart/What is the best practice for checking nulls in Dart? var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. However! There are some very interesting null-aware operators. -Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: - - - - How to Format a Duration as a HH:MM:SS String - /articles/how-to-format-duration/ - Tue, 10 Sep 2019 23:43:48 -0500 - - /articles/how-to-format-duration/ - The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2:How to Format a Duration as a HH:MM:SS String/articles/how-to-format-duration/Tue, 10 Sep 2019 23:43:48 -0500/articles/how-to-format-duration/The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: format(Duration d) =&gt; d.toString().split(&#39;.&#39;).first.padLeft(8, &#34;0&#34;); Example usage: -main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: - - - - How to Upgrade Flutter - /articles/upgrade-flutter-sdk/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /articles/upgrade-flutter-sdk/ - Type in your terminal: +main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: +format(Duration d) =&gt; d.How to Upgrade Flutter/articles/upgrade-flutter-sdk/Tue, 27 Aug 2019 12:43:48 -0500/articles/upgrade-flutter-sdk/Type in your terminal: flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade - - - - Minimal Flutter Apps to Get Started - /articles/minimal-hello-world-flutter-app/ - Tue, 30 Jul 2019 23:43:48 -0500 - - /articles/minimal-hello-world-flutter-app/ - Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +flutter upgrade Need professional help with Flutter?Minimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. Here are a few options to copy-paste into lib/main.dart. -Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! - - - - +Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! \ No newline at end of file diff --git a/articles/intercept-logout-adapter/index.html b/articles/intercept-logout-adapter/index.html index 45fae49..3145ba2 100644 --- a/articles/intercept-logout-adapter/index.html +++ b/articles/intercept-logout-adapter/index.html @@ -1,199 +1,22 @@ - - - - - - - - - - - - - - - - - - - - Intercept Logout Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Intercept Logout Adapter -

    - - - -
    -

    The global onError handler will call logout if certain conditions are met:

    -
    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  FutureOr<Null?> onError<Null>(DataException e) async {
    -    // Automatically logout user if a 401/403 is returned from any API response.
    -    if (e.statusCode == 401 || e.statusCode == 403) {
    -      await read(sessionProvider).logOut();
    -      return null;
    -    }
    -
    -    throw e;
    -  }
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Intercept Logout Adapter - Flutter Data

    Intercept Logout Adapter

    The global onError handler will call logout if certain conditions are met:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  FutureOr<Null?> onError<Null>(DataException e) async {
    +    // Automatically logout user if a 401/403 is returned from any API response.
    +    if (e.statusCode == 401 || e.statusCode == 403) {
    +      await read(sessionProvider).logOut();
    +      return null;
    +    }
    +
    +    throw e;
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/iterator-style-adapter/index.html b/articles/iterator-style-adapter/index.html index 273a81c..37b2b03 100644 --- a/articles/iterator-style-adapter/index.html +++ b/articles/iterator-style-adapter/index.html @@ -1,197 +1,19 @@ - - - - - - - - - - - - - - - - - - - - Iterator Style Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Iterator Style Adapter -

    - - - -
    -
    mixin AppointmentAdapter on RemoteAdapter<Appointment> {
    -  Future<Appointment?> fetchNext() async {
    -    return await sendRequest(
    -      baseUrl.asUri / type / 'next',
    -      onSuccess: (data) => deserialize(data).model,
    -    );
    -  }
    -}
    -

    Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations.

    -

    Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods.

    -
    final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Iterator Style Adapter - Flutter Data

    Iterator Style Adapter

    mixin AppointmentAdapter on RemoteAdapter<Appointment> {
    +  Future<Appointment?> fetchNext() async {
    +    return await sendRequest(
    +      baseUrl.asUri / type / 'next',
    +      onSuccess: (data) => deserialize(data).model,
    +    );
    +  }
    +}
    +

    Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations.

    Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods.

    final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/minimal-hello-world-flutter-app/index.html b/articles/minimal-hello-world-flutter-app/index.html index 186878c..ce50997 100644 --- a/articles/minimal-hello-world-flutter-app/index.html +++ b/articles/minimal-hello-world-flutter-app/index.html @@ -1,306 +1,88 @@ - - - - - - - - - - - - - - - - - - - - Minimal Flutter Apps to Get Started - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Minimal Flutter Apps to Get Started -

    - - - -
    -

    Every time I do a flutter create project I get the default “counter” sample app full of comments.

    -

    While it’s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen.

    -

    Here are a few options to copy-paste into lib/main.dart.

    -

    Bare bones app

    -
    // lib/main.dart
    -
    -import 'package:flutter/widgets.dart';
    -
    -main() => runApp(MyApp());
    -
    -class MyApp extends StatelessWidget {
    -  @override
    -  Widget build(context) => Center(
    -    child: Text('Hello Flutter!', textDirection: TextDirection.ltr)
    -  );
    -}
    -

    Can’t get smaller than this!

    -

    See it live:

    - -
    - -
    - -

    Material-style minimal app

    -
    // lib/main.dart
    -
    -import 'package:flutter/material.dart';
    -
    -main() => runApp(MyApp());
    -
    -class MyApp extends StatelessWidget {
    -  @override
    -  Widget build(context) {
    -    return MaterialApp(
    -      home: Scaffold(
    -        body: Center(
    -          child: Text('Hello World'),
    -        ),
    -      ),
    -    );
    -  }
    -}
    -

    See it live:

    - -
    - -
    - -

    Minimal stateful app

    -
    import 'package:flutter/material.dart';
    -
    -main() => runApp(MinimalStatefulApp());
    -
    -class MinimalStatefulApp extends StatefulWidget {
    -  @override
    -  _MinimalState createState() => _MinimalState();
    -}
    -
    -class _MinimalState extends State<MinimalStatefulApp> {
    -
    -  int _counter = 0;
    -
    -  @override
    -  Widget build(BuildContext context) {
    -    return GestureDetector(
    -      onDoubleTap: () => setState(() => _counter++),
    -      child: Center(
    -        child: Text(
    -          'Counter: $_counter',
    -          textDirection: TextDirection.ltr,
    -        ),
    -      ),
    -    );
    -  }
    -}
    -

    See it live (double tap to increment):

    - -
    - -
    - -

    Minimal stateful app (with flutter_hooks)

    -
    // lib/main.dart
    -
    -import 'package:flutter/widgets.dart';
    -import 'package:flutter_hooks/flutter_hooks.dart';
    -
    -main() => runApp(MyApp());
    -
    -class MyApp extends HookWidget {
    -  @override
    -  Widget build(context) {
    -    final counter = useState(0);
    -    return GestureDetector(
    -      onDoubleTap: () => counter.value++,
    -      child: Center(
    -        child: Text(
    -          'Counter: ${counter.value}',
    -          textDirection: TextDirection.ltr,
    -        ),
    -      ),
    -    );
    -  }
    -}
    -

    It uses hooks which remove the boilerplate of a classic StatefulWidget. Make sure you add the flutter_hooks dependency to pubspec.yaml!

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Minimal Flutter Apps to Get Started - Flutter Data

    Minimal Flutter Apps to Get Started

    Every time I do a flutter create project I get the default “counter” sample app full of comments.

    While it’s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen.

    Here are a few options to copy-paste into lib/main.dart.

    Bare bones app

    // lib/main.dart
    +
    +import 'package:flutter/widgets.dart';
    +
    +main() => runApp(MyApp());
    +
    +class MyApp extends StatelessWidget {
    +  @override
    +  Widget build(context) => Center(
    +    child: Text('Hello Flutter!', textDirection: TextDirection.ltr)
    +  );
    +}
    +

    Can’t get smaller than this!

    See it live:



    Material-style minimal app

    // lib/main.dart
    +
    +import 'package:flutter/material.dart';
    +
    +main() => runApp(MyApp());
    +
    +class MyApp extends StatelessWidget {
    +  @override
    +  Widget build(context) {
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: Text('Hello World'),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    See it live:



    Minimal stateful app

    import 'package:flutter/material.dart';
    +
    +main() => runApp(MinimalStatefulApp());
    +
    +class MinimalStatefulApp extends StatefulWidget {
    +  @override
    +  _MinimalState createState() => _MinimalState();
    +}
    +
    +class _MinimalState extends State<MinimalStatefulApp> {
    +
    +  int _counter = 0;
    +
    +  @override
    +  Widget build(BuildContext context) {
    +    return GestureDetector(
    +      onDoubleTap: () => setState(() => _counter++),
    +      child: Center(
    +        child: Text(
    +          'Counter: $_counter',
    +          textDirection: TextDirection.ltr,
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    See it live (double tap to increment):



    Minimal stateful app (with flutter_hooks)

    // lib/main.dart
    +
    +import 'package:flutter/widgets.dart';
    +import 'package:flutter_hooks/flutter_hooks.dart';
    +
    +main() => runApp(MyApp());
    +
    +class MyApp extends HookWidget {
    +  @override
    +  Widget build(context) {
    +    final counter = useState(0);
    +    return GestureDetector(
    +      onDoubleTap: () => counter.value++,
    +      child: Center(
    +        child: Text(
    +          'Counter: ${counter.value}',
    +          textDirection: TextDirection.ltr,
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    It uses hooks which remove the boilerplate of a classic StatefulWidget. Make sure you add the flutter_hooks dependency to pubspec.yaml!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/nested-resources-adapter/index.html b/articles/nested-resources-adapter/index.html index 1d9d852..c51eb59 100644 --- a/articles/nested-resources-adapter/index.html +++ b/articles/nested-resources-adapter/index.html @@ -1,204 +1,26 @@ - - - - - - - - - - - - - - - - - - - - Nested Resources Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Nested Resources Adapter -

    - - - -
    -

    Here’s how you could access nested resources such as: /posts/1/comments

    -
    mixin NestedURLAdapter on RemoteAdapter<Comment> {
    -  // ...
    -  @override
    -  String urlForFindAll(params) => '/posts/${params['postId']}/comments';
    -
    -  // or even
    -  @override
    -  String urlForFindAll(params) {
    -    final postId = params['postId'];
    -    if (postId != null) {
    -      return '/posts/${params['postId']}/comments';
    -    }
    -    return super.urlForFindAll(params);
    -  }
    -}
    -

    and call it like:

    -
    final comments = await commentRepository.findAll(params: {'postId': post.id });
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Nested Resources Adapter - Flutter Data

    Nested Resources Adapter

    Here’s how you could access nested resources such as: /posts/1/comments

    mixin NestedURLAdapter on RemoteAdapter<Comment> {
    +  // ...
    +  @override
    +  String urlForFindAll(params) => '/posts/${params['postId']}/comments';
    +
    +  // or even
    +  @override
    +  String urlForFindAll(params) {
    +    final postId = params['postId'];
    +    if (postId != null) {
    +      return '/posts/${params['postId']}/comments';
    +    }
    +    return super.urlForFindAll(params);
    +  }
    +}
    +

    and call it like:

    final comments = await commentRepository.findAll(params: {'postId': post.id });
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-base-url/index.html b/articles/override-base-url/index.html index 13aebaa..ab50c41 100644 --- a/articles/override-base-url/index.html +++ b/articles/override-base-url/index.html @@ -1,196 +1,18 @@ - - - - - - - - - - - - - - - - - - - - Override Base URL Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Override Base URL Adapter -

    - - - -
    -

    Flutter Data is extended via adapters.

    -
    mixin UserURLAdapter on RemoteAdapter<User> {
    -  @override
    -  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    -}
    -

    Need to apply the adapter to all your models? Make it generic:

    -
    mixin UserURLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Override Base URL Adapter - Flutter Data

    Override Base URL Adapter

    Flutter Data is extended via adapters.

    mixin UserURLAdapter on RemoteAdapter<User> {
    +  @override
    +  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    +}
    +

    Need to apply the adapter to all your models? Make it generic:

    mixin UserURLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-findall-adapter/index.html b/articles/override-findall-adapter/index.html index 2fad840..816c7e4 100644 --- a/articles/override-findall-adapter/index.html +++ b/articles/override-findall-adapter/index.html @@ -1,200 +1,23 @@ - - - - - - - - - - - - - - - - - - - - Override findAll Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Override findAll Adapter -

    - - - -
    -

    In this example we completely override findAll to return random models:

    -
    mixin FindAllAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  Future<List<T>> findAll({
    -    bool? remote,
    -    Map<String, dynamic>? params,
    -    Map<String, String>? headers,
    -    bool? syncLocal,
    -    OnDataError<List<T>>? onError,
    -  }) async {
    -    // could use: super.findAll();
    -    return _generateRandomModels<T>();
    -  }
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Override findAll Adapter - Flutter Data

    Override findAll Adapter

    In this example we completely override findAll to return random models:

    mixin FindAllAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  Future<List<T>> findAll({
    +    bool? remote,
    +    Map<String, dynamic>? params,
    +    Map<String, String>? headers,
    +    bool? syncLocal,
    +    OnDataError<List<T>>? onError,
    +  }) async {
    +    // could use: super.findAll();
    +    return _generateRandomModels<T>();
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-findone-url-method/index.html b/articles/override-findone-url-method/index.html index 855d336..b90ddf1 100644 --- a/articles/override-findone-url-method/index.html +++ b/articles/override-findone-url-method/index.html @@ -1,200 +1,23 @@ - - - - - - - - - - - - - - - - - - - - Override findOne URL Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Override findOne URL Adapter -

    - - - -
    -

    In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT:

    -
    mixin URLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  String urlForFindAll(Map<String, dynamic> params) => type.snakeCase;
    -
    -  @override
    -  String urlForFindOne(id, Map<String, dynamic> params) =>
    -      '${type.snakeCase}/$id';
    -
    -  @override
    -  DataRequestMethod methodForSave(id, Map<String, dynamic> params) {
    -    return DataRequestMethod.PUT;
    -  }
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Override findOne URL Adapter - Flutter Data

    Override findOne URL Adapter

    In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT:

    mixin URLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  String urlForFindAll(Map<String, dynamic> params) => type.snakeCase;
    +
    +  @override
    +  String urlForFindOne(id, Map<String, dynamic> params) =>
    +      '${type.snakeCase}/$id';
    +
    +  @override
    +  DataRequestMethod methodForSave(id, Map<String, dynamic> params) {
    +    return DataRequestMethod.PUT;
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-headers-query-parameters/index.html b/articles/override-headers-query-parameters/index.html index 98428ea..9b84e9a 100644 --- a/articles/override-headers-query-parameters/index.html +++ b/articles/override-headers-query-parameters/index.html @@ -1,205 +1,27 @@ - - - - - - - - - - - - - - - - - - - - Override Default Headers and Query Parameters - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Override Default Headers and Query Parameters -

    - - - -
    -

    Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary.

    -

    Here is how:

    -
    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  final _localStorageService = read(localStorageProvider);
    -
    -  @override
    -  String get baseUrl => "http://my.remote.url:8080/";
    -
    -  @override
    -  FutureOr<Map<String, String>> get defaultHeaders async {
    -    final token = _localStorageService.getToken();
    -    return await super.defaultHeaders & {'Authorization': token};
    -  }
    -
    -  @override
    -  FutureOr<Map<String, dynamic>> get defaultParams async {
    -    return await super.defaultParams & {'v': 1};
    -  }
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Override Default Headers and Query Parameters - Flutter Data

    Override Default Headers and Query Parameters

    Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary.

    Here is how:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  final _localStorageService = read(localStorageProvider);
    +
    +  @override
    +  String get baseUrl => "http://my.remote.url:8080/";
    +
    +  @override
    +  FutureOr<Map<String, String>> get defaultHeaders async {
    +    final token = _localStorageService.getToken();
    +    return await super.defaultHeaders & {'Authorization': token};
    +  }
    +
    +  @override
    +  FutureOr<Map<String, dynamic>> get defaultParams async {
    +    return await super.defaultParams & {'v': 1};
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-http-client-adapter/index.html b/articles/override-http-client-adapter/index.html index 3be5df1..f811a8b 100644 --- a/articles/override-http-client-adapter/index.html +++ b/articles/override-http-client-adapter/index.html @@ -1,216 +1,38 @@ - - - - - - - - - - - - - - - - - - - - Override HTTP Client Adapter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - Override HTTP Client Adapter -

    - - - -
    -

    An example on how to override and use a more advanced HTTP client.

    -

    Here the connectionTimeout is increased, and an HTTP proxy enabled.

    -
    mixin HttpProxyAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  HttpClient? _httpClient;
    -  IOClient? _ioClient;
    -
    -  @override
    -  http.Client get httpClient {
    -    _httpClient ??= HttpClient();
    -    _ioClient ??= IOClient(_httpClient);
    -
    -    // increasing the timeout
    -    _httpClient!.connectionTimeout = const Duration(seconds: 5);
    -
    -    // using a proxy
    -    _httpClient!.badCertificateCallback =
    -        ((X509Certificate cert, String host, int port) => true);
    -    _httpClient!.findProxy = (uri) => 'PROXY (proxy url)';
    -
    -    return _ioClient!;
    -  }
    -
    -  @override
    -  Future<void> dispose() async {
    -    _ioClient?.close();
    -    _ioClient = null;
    -    _httpClient = null;
    -    super.dispose();
    -  }
    -}
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +Override HTTP Client Adapter - Flutter Data

    Override HTTP Client Adapter

    An example on how to override and use a more advanced HTTP client.

    Here the connectionTimeout is increased, and an HTTP proxy enabled.

    mixin HttpProxyAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  HttpClient? _httpClient;
    +  IOClient? _ioClient;
    +
    +  @override
    +  http.Client get httpClient {
    +    _httpClient ??= HttpClient();
    +    _ioClient ??= IOClient(_httpClient);
    +
    +    // increasing the timeout
    +    _httpClient!.connectionTimeout = const Duration(seconds: 5);
    +
    +    // using a proxy
    +    _httpClient!.badCertificateCallback =
    +        ((X509Certificate cert, String host, int port) => true);
    +    _httpClient!.findProxy = (uri) => 'PROXY (proxy url)';
    +
    +    return _ioClient!;
    +  }
    +
    +  @override
    +  Future<void> dispose() async {
    +    _ioClient?.close();
    +    _ioClient = null;
    +    _httpClient = null;
    +    super.dispose();
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/ultimate-javascript-dart-syntax-guide/index.html b/articles/ultimate-javascript-dart-syntax-guide/index.html index 8982d1b..96cf3ce 100644 --- a/articles/ultimate-javascript-dart-syntax-guide/index.html +++ b/articles/ultimate-javascript-dart-syntax-guide/index.html @@ -1,817 +1,487 @@ - - - - - - - - - - - - - - - - - - - - The Ultimate Javascript vs Dart Syntax Guide - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - The Ultimate Javascript vs Dart Syntax Guide -

    - - - -
    -

    Photo by ipet photo on Unsplash

    -

    Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart’s syntax.

    -

    (Pros and cons of choosing Flutter/Dart is outside the scope of this article.)

    -

    So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other!

    -

    Variables and constants

    -
    // js
    -
    -var dog1 = "Lucy"; // variable
    -let dog2 = "Milo"; // block scoped variable
    -
    -const maleDogs = ["Max", "Bella"]; // mutable single-assignment variable
    -maleDogs.push("Cooper"); // ✅
    -maleDogs = ["Cooper"]; // ❌
    -
    -const femaleDogs = Object.freeze(["Luna", "Bella"]); // runtime constant
    -femaleDogs.push("Winona"); // ❌
    -femaleDogs = ["Winona"]; // ❌
    -

    And now in Dart:

    -
    // dart
    -
    -main() {
    -  var dog1 = "Max"; // variable
    -
    -  final maleDogs = ["Milo"]; // mutable single-assignment variable
    -  maleDogs.add("Cooper"); // ✅
    -  maleDogs = ["Cooper"]; // ❌
    -
    -  const femaleDogs = ["Luna", "Bella"]; // compile time constant
    -  femaleDogs.add("Winona"); // ❌
    -  femaleDogs = ["Winona"]; // ❌
    -
    -  // alternative const syntax without assignment
    -  walkingTimes(const [7, 9, 11]);  // ✅
    -  walkingTimes(const [DateTime.now()]);  // ❌
    -}
    -

    Unlike Javascript, const in Dart lives up to its meaning. The whole object is checked at compile time to ensure it’s completely immutable.

    -

    Therefore any element inside femaleDogs has to be a const too. Not the case for the elements inside maleDogs, which are not necessarily final.

    -

    Dart doesn’t need let because lexical scope works correctly.

    -

    Trailing semicolons are required in Dart. In Javascript you can omit the ; (you have to be careful, though!)

    -

    Default assignment

    -

    Let’s set a default value of 1 if bones is falsey (in Javascript) or null (in Dart).

    -
    // js
    -
    -var bones;
    -bones = bones || 1;
    -console.log(bones); // 1
    -
    // dart
    -
    -main() {
    -  var bones;
    -  bones ??= 1;  // OR: bones = bones ?? 1
    -  print(bones);  // 1
    -}
    -

    Destructuring assignment

    -

    This is a great Javascript-only feature.

    -
    // js
    -
    -var [dog, owner] = ["Max", "Frank"];
    -console.log(dog); // Max
    -[owner, dog] = [dog, owner];
    -console.log(dog); // Frank
    -

    Not possible in Dart yet.

    -

    Falsey vs null

    -

    Let’s go ahead and have a look at falsey values that only exist in Javascript.

    -
    // js
    -
    -var collar = false,
    -  toys = null,
    -  amountOfMeals = 0 / 0, // NaN
    -  owner = "",
    -  age = 0,
    -  breed;
    -
    -if (!collar) console.log("bark"); // bark
    -if (!toys) console.log("bark"); // bark
    -if (!amountOfMeals) console.log("bark"); // bark
    -if (!owner) console.log("bark"); // bark
    -if (!age) console.log("bark"); // bark
    -if (!breed) console.log("bark"); // bark
    -

    In Dart, undefined values are null. Expressions in conditionals may only be boolean.

    -
    // dart
    -
    -main() {
    -  var collar = false,
    -    toys = null,
    -    amountOfMeals = 0 / 0, // NaN
    -    owner = "",
    -    age = 0,
    -    breed;
    -
    -  if (!collar) print('bark'); // bark
    -  if (toys == null) print('bark'); // bark
    -  if (amountOfMeals.isNaN) print('bark'); // bark
    -  if (owner.isEmpty) print('bark'); // bark
    -  if (age == 0) print('bark'); // bark
    -  if (breed == null) print('bark'); // bark
    -}
    -

    In Dart, 'Rocky' - 2 is an error – not NaN 🤔 Fortunately Dart didn’t pick up Javascript’s 💩

    -

    Function literals

    -
    // js
    -
    -function bark() {
    -  return "WOOF";
    -}
    -
    -var bday = (age) => age + 1;
    -
    // dart
    -
    -bark() {
    -  return "WOOF";
    -}
    -
    -var bday = (age) => age + 1;
    -

    One-liner function syntax looks exactly the same in both languages! In JS, however, parenthesis are optional.

    -

    Function defaults

    -
    // js
    -
    -var greet = (name = "Milo") => `Woof! My name is ${name}`;
    -console.log(greet()); // Woof! My name is Milo
    -
    // dart
    -
    -main() {
    -  var greet = ({ name = 'Rocky' }) => "Woof! My name is ${name}";
    -  print(greet());  // Woof! My name is Rocky
    -}
    -

    Dart requires curly braces for optional arguments. String interpolation is practically the same.

    -

    Spreading arguments

    -
    // js
    -
    -const sum = (...meals) => meals.reduce((sum, next) => sum + next, 0);
    -console.log(sum(1, 2, 3)); // 6
    -

    Not supported because a Dart function can’t have a variable amount of positional arguments. The alternative is simply:

    -
    // dart
    -
    -main() {
    -  final sum = (List<int> meals) => meals.reduce((sum, next) => sum + next);
    -  print(sum([1, 2, 3])); // 6
    -}
    -

    Safe navigation

    -

    name should be returned unless address or street are null, in that case the whole expression should return null.

    -
    // js
    -var name =
    -  person.address || person.address.street || person.address.street.name;
    -

    In Dart we have the safe navigation operator:

    -
    // dart
    -var name = address?.street?.name;
    -
    - Interested in Dart’s amazing capabilities to deal with nulls? Read Checking Nulls and Null-Aware Operators in Dart. -
    -

    Collection literals

    -

    An Array in Javascript is a List in Dart. An Object in Javascript is a Map in Dart.

    -
    // js
    -
    -var dogArray = ["Lucy", "Cooper", "Zeus"];
    -var dogObj = { first: "Lucy", second: "Cooper" };
    -var dogSet = new Set(["Lucy", "Cooper", "Zeus"]);
    -
    -console.log(dogArray.length); // 3
    -console.log(Object.keys(dogObj).length); // 2
    -console.log(dogSet.size); // 3
    -
    // dart
    -
    -main() {
    -  var dogList = ["Lucy", "Cooper", "Zeus"];
    -  var dogMap = { 'first': "Lucy", 'second': "Cooper" }; // could use #first symbol instead
    -  var dogSet = { "Lucy", "Cooper", "Zeus" };
    -
    -  print(dogList.length); // 3
    -  print(dogMap.length); // 2
    -  print(dogSet.length); // 3
    -}
    -

    Cascade operator

    -

    The value of the array.push(element) expression is always the value of push(element). This is standard behavior.

    -

    In Javascript, the array push function returns the length of the array (go figure!). So we can’t possibly have console.log([1, 2, 3].push(4, 5)) result in [1, 2, 3, 4, 5].

    -
    // js
    -
    -var parks = [1, 2, 3];
    -parks.push(4, 5);
    -console.log(parks); // [1, 2, 3, 4, 5]
    -
    -var shelters = [1, 2, 3];
    -shelters[1] = 4;
    -shelters[2] = 5;
    -console.log(shelters); // [1, 4, 5]
    -

    In Dart we have the cascade operator list..add(), which allows us to return the list.

    -
    // dart
    -
    -main() {
    -  print([1, 2, 3]..add(4)..add(5));  // [1, 2, 3, 4, 5]
    -  print([1, 2, 3]..[1]=4..[2]=5);  // [1, 4, 5]
    -}
    -

    A fluent API is one that allows chaining. jQuery is a great example: $('a').css("underline", "none").html("link!"); as every jQuery function call returns this.

    -

    This approach greatly reduces intermediate variables. However, not all APIs are designed this way. The cascade operator allows us to take a regular API and turn it into a fluid API, like what we did above with the list.

    -

    -

    Array concatenation

    -
    // js
    -
    -var parks = [1, 2, 3];
    -parks = parks.concat([4, 5], [6, 7]);
    -console.log(parks); // [1, 2, 3, 4, 5, 6, 7]
    -

    To push or concatenate other arrays we can use addAll in the same fashion:

    -
    // dart
    -
    -main() {
    -  print([1, 2, 3]..addAll([4, 5])..addAll([6, 7])); // [1, 2, 3, 4, 5, 6, 7]
    -}
    -

    But there’s a cleaner way! Using spreads…

    -
    // js
    -
    -console.log([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
    -
    // dart
    -
    -main() {
    -  print([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
    -}
    -

    Same same. Also for objects/maps:

    -
    // js
    -
    -const name = { name: "Luna" };
    -const age = { age: 7 };
    -console.log({ ...name, ...age }); // { name: "Luna", age: 7 }
    -

    (Notice that we have to use let or const in Javascript.)

    -
    // dart
    -
    -main() {
    -  var name = { 'name': "Luna" };
    -  var age = { 'age': 7 };
    -  print({ ...name, ...age });  // { 'name': "Luna", 'age': 7 }
    -}
    -

    But what if P2 has a value sometimes?

    -
    // js
    -
    -const P1 = [4, 5];
    -var P2 = Math.random() < 0.5 ? [6, 7] : null;
    -
    -P2 = P2 || [];
    -console.log([1, 2, 3, ...P1, ...P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
    -
    // dart
    -
    -import 'dart:math';
    -
    -const P1 = [4, 5];
    -final P2 = Random().nextBool() ? [6, 7] : null;
    -
    -main() {
    -  print([1, 2, 3, ...P1, ...?P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
    -}
    -

    The optional spread operator ...? will only insert the array if it’s not null.

    -

    Let’s consider now this example:

    -
    const A = 2;
    -
    -var ages = [1];
    -if (Math.random() < 0.5) {
    -  ages.push(A);
    -}
    -console.log(ages); // [1] or [1, 2]
    -

    There is yet another way in Dart of including logic inside arrays:

    -
    import 'dart:math';
    -const A = 2;
    -
    -main() {
    -  print([1, if (Random().nextBool()) A]);  // [1] or [1, 2]
    -}
    -

    It’s called a “collection-if”. There’s also “collection-for”:

    -
    main() {
    -  var ages = [1, 2, 3];
    -  print([
    -    1,
    -    for(int i in ages) i + 1,
    -    5
    -  ]);  // [1, 2, 3, 4, 5]
    -}
    -

    Extremely elegant! I can’t really think of a Javascript equivalent 🤔

    -

    Accessing properties in objects/maps

    -
    // js
    -
    -var first = { age: 7 };
    -console.log(first.age); // 7
    -
    // dart
    -
    -main() {
    -  var first = { 'age': 7 };
    -  print(first['age']);  // 7
    -}
    -
    -

    Imports and exports

    -
    // js
    -
    -// module file
    -export const dog = "Luna";
    -
    -export default function clean(dog) {
    -  return doCleaning(dog);
    -}
    -
    -// import
    -import { dog } from "module";
    -
    -import clean from "module";
    -

    Dart, on the other hand, does not need to specify the imports: everything is imported by default. Imports can have prefixes (as) and can “whitelist” (show) and “blacklist” (hide). Ultimately, through static analysis and tree-shaking, whatever is not used will be discarded.

    -
    // dart
    -
    -// module file
    -final dog = "Luna";
    -
    -clean(dog) => _doCleaning(dog);
    -
    -// import
    -import 'module.dart';
    -
    -// alternatively
    -import 'module.dart' as module;
    -

    The Great Dane in the Room

    -

    -

    Dart is a statically-typed language with strong type inference.

    -
    - A comparison with Typescript would probably be fairer, but I’ll leave that for next time. 😄 -
    -

    As we’ve seen so far, we almost never need to declare type annotations:

    -
    // dart
    -
    -main() {
    -  var age = 1;
    -  var pets = ["Cooper", "Luna"];
    -  print(age.runtimeType); // int
    -  print(pets.runtimeType); // Array<String>
    -}
    -

    This means we leverage the power of types without stuffing our code with declarations! But of course we may:

    -
    // dart
    -
    -main() {
    -  int age = 5;
    -  List<String> pets = ["Cooper", "Luna"];
    -  var pets2 = <String>["Cooper", "Luna"];
    -  List<String> pets3 = <String>["Cooper", "Luna"];
    -}
    -

    Specifying types can bring clarity to code. In our example above declarations are redundant (especially pets3).

    -

    Imagine a walk method with no typed arguments, assuming callers will pass an argument of type Distance:

    -
    // dart
    -
    -walk(distance) {
    -  print('Walking ${distance.length} miles');
    -}
    -
    -main() {
    -  print(walk("86"));  // 2
    -  print(walk(86)); // ERROR
    -  // ...
    -}
    -

    Gives all kind of weird behavior. The analyzer doesn’t have enough information to infer a specific type for distance so it uses the dynamic type. It’s equivalent to:

    -
    walk(dynamic distance) {
    -  print('Walking ${distance.length} miles');
    -}
    -

    In short: argument types are very important!

    -

    This is recommended, idiomatic Dart:

    -
    void walk(Distance distance) {
    -  print('Walking ${distance.length} miles');
    -}
    -
    -String walk(int distance) => 'Walking $distance miles';
    -

    Type checking, however, can be explicitly “turned off” at a variable-level by declaring it as dynamic.

    -
    main() {
    -  dynamic dog = "Charlie";
    -  dog = ["char", "lie"];  // compiler NOT type checking!
    -  print(dog); // [char, lie]
    -}
    -

    Object oriented breeds 🐩

    -

    Classes are relatively new in Javascript:

    -
    // js
    -
    -class Dog {
    -  constructor(name, phone) {
    -    this.name = name;
    -    this.phone = phone;
    -  }
    -
    -  tag = () => `${this.name}\nIf you found me please call ${this.phone}!`;
    -}
    -
    -console.log(new Dog("Luna", 6198887421).tag());
    -// Luna
    -// If you found me please call 6198887421!
    -

    In Dart:

    -
    // dart
    -
    -class Dog {
    -  final String name;
    -  final int phone;
    -  Dog(this.name, { this.phone });
    -
    -  String tag() => "${name}\nIf you found me please call ${phone}!";
    -}
    -
    -main() {
    -  print(Dog('Luna', phone: 6198887421).tag());
    -  // Luna
    -  // If you found me please call 6198887421!
    -}
    -

    A few things to note about Dart classes & constructors!

    -
      -
    • We can avoid using new when calling constructors – that is why I used Dog() (vs new Dog())
    • -
    • No need to use this to reference fields: it is only used to define constructors
    • -
    • Factory and named constructors are a thing
    • -
    • Dart supports mixins!
    • -
    -
    - Wanna know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors. -
    -

    Checking types

    -

    We use instanceof in Javascript:

    -
    // js
    -
    -class Dog extends Animal {
    -  // ...
    -}
    -
    -var animal = getAnimal();
    -if (animal instanceof Dog) {
    -  console.log("🐶");
    -}
    -

    And is in Dart:

    -
    // dart
    -
    -class Dog extends Animal {
    -  // ...
    -}
    -
    -main() {
    -  var animal = getAnimal();
    -  if (animal is Dog) {
    -    console.log('🐶');
    -  }
    -}
    -

    Class & prototype extensions

    -

    These are methods that extend existing types. In Javascript a function can be added to a prototype:

    -
    // js
    -
    -Object.defineProperties(String.prototype, {
    -  kebab: {
    -    get: function () {
    -      return this.replace(/\s+/g, "-").toLowerCase();
    -    },
    -  },
    -});
    -
    -console.log("This is Luna".kebab); // this-is-luna
    -

    In Dart:

    -
    // dart
    -
    -extension on String {
    -  String get kebab => this.replaceAll(RegExp(r'\s+'), '-').toLowerCase();
    -}
    -
    -main() {
    -  print("This is Luna".kebab);   // this-is-luna
    -}
    -

    Static extension members are available since Dart 2.6 and open up very interesting possibilities for API design, like the fantastic time.dart ⏰. Now we can do stuff like:

    -
    Duration timeOfSleep = 7.hours + 32.minutes + 8.seconds;
    -DateTime medicated = 5.minutes.ago;
    -

    Parsing JSON 🐶 style

    -
    // js
    -
    -var dog = JSON.parse(
    -  '{ "name": "Willy", "medications": { "doxycycline": true } }'
    -);
    -
    -console.log(Object.keys(dog.medications).lnegth); // undefined
    -

    Javascript is a dynamic language. Misspelling length just returns undefined.

    -
    - Checking for an empty list is easy in Dart: list.isEmpty, in Javascript we must use the length for this: !array.length. -
    -

    In Dart:

    -
    // dart
    -
    -import 'dart:convert';
    -
    -main() {
    -  var dog = jsonDecode('{ "name": "Willy", "medications": { "doxycycline": true } }');
    -  print(dog.runtimeType); // _InternalLinkedHashMap<String, dynamic>
    -  print(dog['medications'].lnegth);  // NoSuchMethodError: Class '_InternalLinkedHashMap<String, dynamic>' has no instance getter 'lnegth'.
    -}
    -

    It is known that keys of a JSON object are strings, but values can be of many different types. Hence the resulting map is of type <String, dynamic>.

    -

    When we misspell length on a dynamic variable there is no type checking, so the error we get is at runtime.

    -

    Equality to the bone 🦴

    -

    Another gigantic chaos in the world of Javascript. We won’t get into it – just say that for equality we only use === to tell if both objects are strictly the same.

    -

    If we need to verify equivalence of two different objects, we’d use a deep comparison like _.isEqual in Lodash.

    -
    // js
    -
    -class DogTag {
    -  constructor(id) {
    -    this.id = id;
    -  }
    -}
    -
    -var tag1 = new DogTag(9);
    -var tag2 = new DogTag(9);
    -
    -console.log(_.isEqual(tag1, tag2)); // true (same ID, same tag)
    -console.log(tag1 === tag2); // false (not the same object in memory)
    -

    In Dart, === is identical and isEqual is ==. You can override the == operator to check for equality between two objects 🙌

    -
    // dart
    -
    -class DogTag {
    -  int id;
    -  DogTag(this.id);
    -  operator ==(other) => this.id == other.id;
    -}
    -
    -main() {
    -  var tag1 = DogTag(9);
    -  var tag2 = DogTag(9);
    -
    -  print(tag1 == tag2);  // true (same ID, same tag)
    -  print(identical(tag1, tag2));  // false (not the same object in memory)
    -}
    -

    -

    Doggy privates

    -

    While a solution is being worked on for ESNext, there is currently no proper way of defining private properties in Javascript.

    -

    Dart uses a _ prefix which makes the variable private. And we can use a standard getter to expose it to the outside world:

    -
    // dart
    -
    -class Dog {
    -  String name;
    -  int _age;
    -
    -  Dog(this.name, this._age);
    -
    -  get age => _age;
    -}
    -
    -main() {
    -  var zeus = new Dog("Zeus", 7);
    -  print(zeus.age);  // 7
    -
    -  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
    -  zeus._age = 8;
    -  print(zeus.age); // 8
    -}
    -

    Makes sense?

    -

    Uhhmmm… we are setting the private variable and it actually works? 🤔

    -

    Private in Dart means library-private. If we placed the Dog class in models.dart:

    -
    // dart
    -
    -import 'models.dart';
    -
    -main() {
    -  var zeus = new Dog("Zeus", 7);
    -  print(zeus.age);  // 7
    -
    -  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
    -  zeus._age = 8; // ERROR: The setter '_age' isn't defined for the class 'Dog'.
    -  print(zeus.age); // 7
    -}
    -

    Setters work in a similar way.

    -

    Futuristic hounds 🐕

    -

    The Promise API in Javascript is analogous to the Future API in Dart.

    -

    Both languages support then() and async/await.

    -

    Let’s appreciate the differences through a food dispenser that will pour out dog chow in 4 seconds.

    -
    // js
    -
    -function dispenseFood() {
    -  return new Promise((resolve) => setTimeout(resolve, 4000)).then(
    -    () => "DOG CHOW"
    -  );
    -}
    -
    -async function main() {
    -  console.log("Idle.");
    -  var food = await dispenseFood();
    -  console.log(food); // DOG CHOW
    -}
    -
    -main();
    -
    -// or
    -dispenseFood().then(console.log); // .catch();
    -

    Very similar in Dart:

    -
    // dart
    -
    -Future<String> dispenseFood() {
    -  return Future.delayed(Duration(seconds: 4), () => 'DOG CHOW');
    -}
    -
    -main() async {
    -  print('Idle.');
    -  String food = await dispenseFood();
    -  print(food);  // DOG CHOW
    -
    -  // or
    -  dispenseFood().then(print);  // .catchError();
    -}
    -

    Is this really the definitive syntax guide?

    -

    Well… maybe 🤪 Pending for a next revision:

    -
      -
    • Enums
    • -
    • Annotations
    • -
    • Streams & sync/async generators
    • -
    • Workers vs isolates
    • -
    • and more!
    • -
    -

    As you may have noticed we simply highlighted differences between syntaxes. Not comparing their merits, popularity, available libraries, and many other considerations. There will be another opinionated article discussing which is the best tool for which job.

    - -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +The Ultimate Javascript vs Dart Syntax Guide - Flutter Data

    The Ultimate Javascript vs Dart Syntax Guide

    Photo by ipet photo on Unsplash

    Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart’s syntax.

    (Pros and cons of choosing Flutter/Dart is outside the scope of this article.)

    So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other!

    Variables and constants

    // js
    +
    +var dog1 = "Lucy"; // variable
    +let dog2 = "Milo"; // block scoped variable
    +
    +const maleDogs = ["Max", "Bella"]; // mutable single-assignment variable
    +maleDogs.push("Cooper"); // ✅
    +maleDogs = ["Cooper"]; // ❌
    +
    +const femaleDogs = Object.freeze(["Luna", "Bella"]); // runtime constant
    +femaleDogs.push("Winona"); // ❌
    +femaleDogs = ["Winona"]; // ❌
    +

    And now in Dart:

    // dart
    +
    +main() {
    +  var dog1 = "Max"; // variable
    +
    +  final maleDogs = ["Milo"]; // mutable single-assignment variable
    +  maleDogs.add("Cooper"); // ✅
    +  maleDogs = ["Cooper"]; // ❌
    +
    +  const femaleDogs = ["Luna", "Bella"]; // compile time constant
    +  femaleDogs.add("Winona"); // ❌
    +  femaleDogs = ["Winona"]; // ❌
    +
    +  // alternative const syntax without assignment
    +  walkingTimes(const [7, 9, 11]);  // ✅
    +  walkingTimes(const [DateTime.now()]);  // ❌
    +}
    +

    Unlike Javascript, const in Dart lives up to its meaning. The whole object is checked at compile time to ensure it’s completely immutable.

    Therefore any element inside femaleDogs has to be a const too. Not the case for the elements inside maleDogs, which are not necessarily final.

    Dart doesn’t need let because lexical scope works correctly.

    Trailing semicolons are required in Dart. In Javascript you can omit the ; (you have to be careful, though!)

    Default assignment

    Let’s set a default value of 1 if bones is falsey (in Javascript) or null (in Dart).

    // js
    +
    +var bones;
    +bones = bones || 1;
    +console.log(bones); // 1
    +
    // dart
    +
    +main() {
    +  var bones;
    +  bones ??= 1;  // OR: bones = bones ?? 1
    +  print(bones);  // 1
    +}
    +

    Destructuring assignment

    This is a great Javascript-only feature.

    // js
    +
    +var [dog, owner] = ["Max", "Frank"];
    +console.log(dog); // Max
    +[owner, dog] = [dog, owner];
    +console.log(dog); // Frank
    +

    Not possible in Dart yet.

    Falsey vs null

    Let’s go ahead and have a look at falsey values that only exist in Javascript.

    // js
    +
    +var collar = false,
    +  toys = null,
    +  amountOfMeals = 0 / 0, // NaN
    +  owner = "",
    +  age = 0,
    +  breed;
    +
    +if (!collar) console.log("bark"); // bark
    +if (!toys) console.log("bark"); // bark
    +if (!amountOfMeals) console.log("bark"); // bark
    +if (!owner) console.log("bark"); // bark
    +if (!age) console.log("bark"); // bark
    +if (!breed) console.log("bark"); // bark
    +

    In Dart, undefined values are null. Expressions in conditionals may only be boolean.

    // dart
    +
    +main() {
    +  var collar = false,
    +    toys = null,
    +    amountOfMeals = 0 / 0, // NaN
    +    owner = "",
    +    age = 0,
    +    breed;
    +
    +  if (!collar) print('bark'); // bark
    +  if (toys == null) print('bark'); // bark
    +  if (amountOfMeals.isNaN) print('bark'); // bark
    +  if (owner.isEmpty) print('bark'); // bark
    +  if (age == 0) print('bark'); // bark
    +  if (breed == null) print('bark'); // bark
    +}
    +

    In Dart, 'Rocky' - 2 is an error – not NaN 🤔 Fortunately Dart didn’t pick up Javascript’s 💩

    Function literals

    // js
    +
    +function bark() {
    +  return "WOOF";
    +}
    +
    +var bday = (age) => age + 1;
    +
    // dart
    +
    +bark() {
    +  return "WOOF";
    +}
    +
    +var bday = (age) => age + 1;
    +

    One-liner function syntax looks exactly the same in both languages! In JS, however, parenthesis are optional.

    Function defaults

    // js
    +
    +var greet = (name = "Milo") => `Woof! My name is ${name}`;
    +console.log(greet()); // Woof! My name is Milo
    +
    // dart
    +
    +main() {
    +  var greet = ({ name = 'Rocky' }) => "Woof! My name is ${name}";
    +  print(greet());  // Woof! My name is Rocky
    +}
    +

    Dart requires curly braces for optional arguments. String interpolation is practically the same.

    Spreading arguments

    // js
    +
    +const sum = (...meals) => meals.reduce((sum, next) => sum + next, 0);
    +console.log(sum(1, 2, 3)); // 6
    +

    Not supported because a Dart function can’t have a variable amount of positional arguments. The alternative is simply:

    // dart
    +
    +main() {
    +  final sum = (List<int> meals) => meals.reduce((sum, next) => sum + next);
    +  print(sum([1, 2, 3])); // 6
    +}
    +

    Safe navigation

    name should be returned unless address or street are null, in that case the whole expression should return null.

    // js
    +var name =
    +  person.address || person.address.street || person.address.street.name;
    +

    In Dart we have the safe navigation operator:

    // dart
    +var name = address?.street?.name;
    +
    Interested in Dart’s amazing capabilities to deal with nulls? Read Checking Nulls and Null-Aware Operators in Dart.

    Collection literals

    An Array in Javascript is a List in Dart. An Object in Javascript is a Map in Dart.

    // js
    +
    +var dogArray = ["Lucy", "Cooper", "Zeus"];
    +var dogObj = { first: "Lucy", second: "Cooper" };
    +var dogSet = new Set(["Lucy", "Cooper", "Zeus"]);
    +
    +console.log(dogArray.length); // 3
    +console.log(Object.keys(dogObj).length); // 2
    +console.log(dogSet.size); // 3
    +
    // dart
    +
    +main() {
    +  var dogList = ["Lucy", "Cooper", "Zeus"];
    +  var dogMap = { 'first': "Lucy", 'second': "Cooper" }; // could use #first symbol instead
    +  var dogSet = { "Lucy", "Cooper", "Zeus" };
    +
    +  print(dogList.length); // 3
    +  print(dogMap.length); // 2
    +  print(dogSet.length); // 3
    +}
    +

    Cascade operator

    The value of the array.push(element) expression is always the value of push(element). This is standard behavior.

    In Javascript, the array push function returns the length of the array (go figure!). So we can’t possibly have console.log([1, 2, 3].push(4, 5)) result in [1, 2, 3, 4, 5].

    // js
    +
    +var parks = [1, 2, 3];
    +parks.push(4, 5);
    +console.log(parks); // [1, 2, 3, 4, 5]
    +
    +var shelters = [1, 2, 3];
    +shelters[1] = 4;
    +shelters[2] = 5;
    +console.log(shelters); // [1, 4, 5]
    +

    In Dart we have the cascade operator list..add(), which allows us to return the list.

    // dart
    +
    +main() {
    +  print([1, 2, 3]..add(4)..add(5));  // [1, 2, 3, 4, 5]
    +  print([1, 2, 3]..[1]=4..[2]=5);  // [1, 4, 5]
    +}
    +

    A fluent API is one that allows chaining. jQuery is a great example: $('a').css("underline", "none").html("link!"); as every jQuery function call returns this.

    This approach greatly reduces intermediate variables. However, not all APIs are designed this way. The cascade operator allows us to take a regular API and turn it into a fluid API, like what we did above with the list.

    Array concatenation

    // js
    +
    +var parks = [1, 2, 3];
    +parks = parks.concat([4, 5], [6, 7]);
    +console.log(parks); // [1, 2, 3, 4, 5, 6, 7]
    +

    To push or concatenate other arrays we can use addAll in the same fashion:

    // dart
    +
    +main() {
    +  print([1, 2, 3]..addAll([4, 5])..addAll([6, 7])); // [1, 2, 3, 4, 5, 6, 7]
    +}
    +

    But there’s a cleaner way! Using spreads…

    // js
    +
    +console.log([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
    +
    // dart
    +
    +main() {
    +  print([1, 2, 3, ...[4, 5], ...[6, 7]]); // [1, 2, 3, 4, 5, 6, 7]
    +}
    +

    Same same. Also for objects/maps:

    // js
    +
    +const name = { name: "Luna" };
    +const age = { age: 7 };
    +console.log({ ...name, ...age }); // { name: "Luna", age: 7 }
    +

    (Notice that we have to use let or const in Javascript.)

    // dart
    +
    +main() {
    +  var name = { 'name': "Luna" };
    +  var age = { 'age': 7 };
    +  print({ ...name, ...age });  // { 'name': "Luna", 'age': 7 }
    +}
    +

    But what if P2 has a value sometimes?

    // js
    +
    +const P1 = [4, 5];
    +var P2 = Math.random() < 0.5 ? [6, 7] : null;
    +
    +P2 = P2 || [];
    +console.log([1, 2, 3, ...P1, ...P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
    +
    // dart
    +
    +import 'dart:math';
    +
    +const P1 = [4, 5];
    +final P2 = Random().nextBool() ? [6, 7] : null;
    +
    +main() {
    +  print([1, 2, 3, ...P1, ...?P2]); // [1, 2, 3, 4, 5] or [1, 2, 3, 4, 5, 6, 7]
    +}
    +

    The optional spread operator ...? will only insert the array if it’s not null.

    Let’s consider now this example:

    const A = 2;
    +
    +var ages = [1];
    +if (Math.random() < 0.5) {
    +  ages.push(A);
    +}
    +console.log(ages); // [1] or [1, 2]
    +

    There is yet another way in Dart of including logic inside arrays:

    import 'dart:math';
    +const A = 2;
    +
    +main() {
    +  print([1, if (Random().nextBool()) A]);  // [1] or [1, 2]
    +}
    +

    It’s called a “collection-if”. There’s also “collection-for”:

    main() {
    +  var ages = [1, 2, 3];
    +  print([
    +    1,
    +    for(int i in ages) i + 1,
    +    5
    +  ]);  // [1, 2, 3, 4, 5]
    +}
    +

    Extremely elegant! I can’t really think of a Javascript equivalent 🤔

    Accessing properties in objects/maps

    // js
    +
    +var first = { age: 7 };
    +console.log(first.age); // 7
    +
    // dart
    +
    +main() {
    +  var first = { 'age': 7 };
    +  print(first['age']);  // 7
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    Imports and exports

    // js
    +
    +// module file
    +export const dog = "Luna";
    +
    +export default function clean(dog) {
    +  return doCleaning(dog);
    +}
    +
    +// import
    +import { dog } from "module";
    +
    +import clean from "module";
    +

    Dart, on the other hand, does not need to specify the imports: everything is imported by default. Imports can have prefixes (as) and can “whitelist” (show) and “blacklist” (hide). Ultimately, through static analysis and tree-shaking, whatever is not used will be discarded.

    // dart
    +
    +// module file
    +final dog = "Luna";
    +
    +clean(dog) => _doCleaning(dog);
    +
    +// import
    +import 'module.dart';
    +
    +// alternatively
    +import 'module.dart' as module;
    +

    The Great Dane in the Room

    Dart is a statically-typed language with strong type inference.

    A comparison with Typescript would probably be fairer, but I’ll leave that for next time. 😄

    As we’ve seen so far, we almost never need to declare type annotations:

    // dart
    +
    +main() {
    +  var age = 1;
    +  var pets = ["Cooper", "Luna"];
    +  print(age.runtimeType); // int
    +  print(pets.runtimeType); // Array<String>
    +}
    +

    This means we leverage the power of types without stuffing our code with declarations! But of course we may:

    // dart
    +
    +main() {
    +  int age = 5;
    +  List<String> pets = ["Cooper", "Luna"];
    +  var pets2 = <String>["Cooper", "Luna"];
    +  List<String> pets3 = <String>["Cooper", "Luna"];
    +}
    +

    Specifying types can bring clarity to code. In our example above declarations are redundant (especially pets3).

    Imagine a walk method with no typed arguments, assuming callers will pass an argument of type Distance:

    // dart
    +
    +walk(distance) {
    +  print('Walking ${distance.length} miles');
    +}
    +
    +main() {
    +  print(walk("86"));  // 2
    +  print(walk(86)); // ERROR
    +  // ...
    +}
    +

    Gives all kind of weird behavior. The analyzer doesn’t have enough information to infer a specific type for distance so it uses the dynamic type. It’s equivalent to:

    walk(dynamic distance) {
    +  print('Walking ${distance.length} miles');
    +}
    +

    In short: argument types are very important!

    This is recommended, idiomatic Dart:

    void walk(Distance distance) {
    +  print('Walking ${distance.length} miles');
    +}
    +
    +String walk(int distance) => 'Walking $distance miles';
    +

    Type checking, however, can be explicitly “turned off” at a variable-level by declaring it as dynamic.

    main() {
    +  dynamic dog = "Charlie";
    +  dog = ["char", "lie"];  // compiler NOT type checking!
    +  print(dog); // [char, lie]
    +}
    +

    Object oriented breeds 🐩

    Classes are relatively new in Javascript:

    // js
    +
    +class Dog {
    +  constructor(name, phone) {
    +    this.name = name;
    +    this.phone = phone;
    +  }
    +
    +  tag = () => `${this.name}\nIf you found me please call ${this.phone}!`;
    +}
    +
    +console.log(new Dog("Luna", 6198887421).tag());
    +// Luna
    +// If you found me please call 6198887421!
    +

    In Dart:

    // dart
    +
    +class Dog {
    +  final String name;
    +  final int phone;
    +  Dog(this.name, { this.phone });
    +
    +  String tag() => "${name}\nIf you found me please call ${phone}!";
    +}
    +
    +main() {
    +  print(Dog('Luna', phone: 6198887421).tag());
    +  // Luna
    +  // If you found me please call 6198887421!
    +}
    +

    A few things to note about Dart classes & constructors!

    • We can avoid using new when calling constructors – that is why I used Dog() (vs new Dog())
    • No need to use this to reference fields: it is only used to define constructors
    • Factory and named constructors are a thing
    • Dart supports mixins!
    Wanna know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors.

    Checking types

    We use instanceof in Javascript:

    // js
    +
    +class Dog extends Animal {
    +  // ...
    +}
    +
    +var animal = getAnimal();
    +if (animal instanceof Dog) {
    +  console.log("🐶");
    +}
    +

    And is in Dart:

    // dart
    +
    +class Dog extends Animal {
    +  // ...
    +}
    +
    +main() {
    +  var animal = getAnimal();
    +  if (animal is Dog) {
    +    console.log('🐶');
    +  }
    +}
    +

    Class & prototype extensions

    These are methods that extend existing types. In Javascript a function can be added to a prototype:

    // js
    +
    +Object.defineProperties(String.prototype, {
    +  kebab: {
    +    get: function () {
    +      return this.replace(/\s+/g, "-").toLowerCase();
    +    },
    +  },
    +});
    +
    +console.log("This is Luna".kebab); // this-is-luna
    +

    In Dart:

    // dart
    +
    +extension on String {
    +  String get kebab => this.replaceAll(RegExp(r'\s+'), '-').toLowerCase();
    +}
    +
    +main() {
    +  print("This is Luna".kebab);   // this-is-luna
    +}
    +

    Static extension members are available since Dart 2.6 and open up very interesting possibilities for API design, like the fantastic time.dart ⏰. Now we can do stuff like:

    Duration timeOfSleep = 7.hours + 32.minutes + 8.seconds;
    +DateTime medicated = 5.minutes.ago;
    +

    Parsing JSON 🐶 style

    // js
    +
    +var dog = JSON.parse(
    +  '{ "name": "Willy", "medications": { "doxycycline": true } }'
    +);
    +
    +console.log(Object.keys(dog.medications).lnegth); // undefined
    +

    Javascript is a dynamic language. Misspelling length just returns undefined.

    Checking for an empty list is easy in Dart: list.isEmpty, in Javascript we must use the length for this: !array.length.

    In Dart:

    // dart
    +
    +import 'dart:convert';
    +
    +main() {
    +  var dog = jsonDecode('{ "name": "Willy", "medications": { "doxycycline": true } }');
    +  print(dog.runtimeType); // _InternalLinkedHashMap<String, dynamic>
    +  print(dog['medications'].lnegth);  // NoSuchMethodError: Class '_InternalLinkedHashMap<String, dynamic>' has no instance getter 'lnegth'.
    +}
    +

    It is known that keys of a JSON object are strings, but values can be of many different types. Hence the resulting map is of type <String, dynamic>.

    When we misspell length on a dynamic variable there is no type checking, so the error we get is at runtime.

    Equality to the bone 🦴

    Another gigantic chaos in the world of Javascript. We won’t get into it – just say that for equality we only use === to tell if both objects are strictly the same.

    If we need to verify equivalence of two different objects, we’d use a deep comparison like _.isEqual in Lodash.

    // js
    +
    +class DogTag {
    +  constructor(id) {
    +    this.id = id;
    +  }
    +}
    +
    +var tag1 = new DogTag(9);
    +var tag2 = new DogTag(9);
    +
    +console.log(_.isEqual(tag1, tag2)); // true (same ID, same tag)
    +console.log(tag1 === tag2); // false (not the same object in memory)
    +

    In Dart, === is identical and isEqual is ==. You can override the == operator to check for equality between two objects 🙌

    // dart
    +
    +class DogTag {
    +  int id;
    +  DogTag(this.id);
    +  operator ==(other) => this.id == other.id;
    +}
    +
    +main() {
    +  var tag1 = DogTag(9);
    +  var tag2 = DogTag(9);
    +
    +  print(tag1 == tag2);  // true (same ID, same tag)
    +  print(identical(tag1, tag2));  // false (not the same object in memory)
    +}
    +

    Doggy privates

    While a solution is being worked on for ESNext, there is currently no proper way of defining private properties in Javascript.

    Dart uses a _ prefix which makes the variable private. And we can use a standard getter to expose it to the outside world:

    // dart
    +
    +class Dog {
    +  String name;
    +  int _age;
    +
    +  Dog(this.name, this._age);
    +
    +  get age => _age;
    +}
    +
    +main() {
    +  var zeus = new Dog("Zeus", 7);
    +  print(zeus.age);  // 7
    +
    +  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
    +  zeus._age = 8;
    +  print(zeus.age); // 8
    +}
    +

    Makes sense?

    Uhhmmm… we are setting the private variable and it actually works? 🤔

    Private in Dart means library-private. If we placed the Dog class in models.dart:

    // dart
    +
    +import 'models.dart';
    +
    +main() {
    +  var zeus = new Dog("Zeus", 7);
    +  print(zeus.age);  // 7
    +
    +  zeus.age = 8; // ERROR: No setter named 'age' in class 'Dog'
    +  zeus._age = 8; // ERROR: The setter '_age' isn't defined for the class 'Dog'.
    +  print(zeus.age); // 7
    +}
    +

    Setters work in a similar way.

    Futuristic hounds 🐕

    The Promise API in Javascript is analogous to the Future API in Dart.

    Both languages support then() and async/await.

    Let’s appreciate the differences through a food dispenser that will pour out dog chow in 4 seconds.

    // js
    +
    +function dispenseFood() {
    +  return new Promise((resolve) => setTimeout(resolve, 4000)).then(
    +    () => "DOG CHOW"
    +  );
    +}
    +
    +async function main() {
    +  console.log("Idle.");
    +  var food = await dispenseFood();
    +  console.log(food); // DOG CHOW
    +}
    +
    +main();
    +
    +// or
    +dispenseFood().then(console.log); // .catch();
    +

    Very similar in Dart:

    // dart
    +
    +Future<String> dispenseFood() {
    +  return Future.delayed(Duration(seconds: 4), () => 'DOG CHOW');
    +}
    +
    +main() async {
    +  print('Idle.');
    +  String food = await dispenseFood();
    +  print(food);  // DOG CHOW
    +
    +  // or
    +  dispenseFood().then(print);  // .catchError();
    +}
    +

    Is this really the definitive syntax guide?

    Well… maybe 🤪 Pending for a next revision:

    • Enums
    • Annotations
    • Streams & sync/async generators
    • Workers vs isolates
    • and more!

    As you may have noticed we simply highlighted differences between syntaxes. Not comparing their merits, popularity, available libraries, and many other considerations. There will be another opinionated article discussing which is the best tool for which job.

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/upgrade-flutter-sdk/index.html b/articles/upgrade-flutter-sdk/index.html index 6fb87cd..7eec3ae 100644 --- a/articles/upgrade-flutter-sdk/index.html +++ b/articles/upgrade-flutter-sdk/index.html @@ -1,201 +1,21 @@ - - - - - - - - - - - - - - - - - - - - How to Upgrade Flutter - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - -
    -
    - - -

    - How to Upgrade Flutter -

    - - - -
    -

    Type in your terminal:

    -
    flutter upgrade
    -

    This will update Flutter to the latest version in the current channel. Most likely you have it set in stable.

    -
    flutter channel
    -# Flutter channels:
    -#   beta
    -#   dev
    -#   master
    -# * stable
    -

    Do you want to live in the cutting edge? Switching channels is easy:

    -
    flutter channel dev
    -# Switching to flutter channel 'dev'...
    -# ...
    -

    And run upgrade again:

    -
    flutter upgrade
    -
    -
    - -
    -
    - - - -
    - - - - - - - \ No newline at end of file +How to Upgrade Flutter - Flutter Data

    How to Upgrade Flutter

    Type in your terminal:

    flutter upgrade
    +

    This will update Flutter to the latest version in the current channel. Most likely you have it set in stable.

    flutter channel
    +# Flutter channels:
    +#   beta
    +#   dev
    +#   master
    +# * stable
    +

    Do you want to live in the cutting edge? Switching channels is easy:

    flutter channel dev
    +# Switching to flutter channel 'dev'...
    +# ...
    +

    And run upgrade again:

    flutter upgrade
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 30ec260..4f6684d 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - Categories - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Categories -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Categories - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml index b4bc870..ff09308 100644 --- a/categories/index.xml +++ b/categories/index.xml @@ -1,10 +1 @@ - - - - Categories on Flutter Data - /categories/ - Recent content in Categories on Flutter Data - Hugo -- gohugo.io - en-us - - +Categories on Flutter Data/categories/Recent content in Categories on Flutter DataHugo -- gohugo.ioen-us \ No newline at end of file diff --git a/css/fonts.css b/css/fonts.css new file mode 100644 index 0000000..adaeb8f --- /dev/null +++ b/css/fonts.css @@ -0,0 +1,38 @@ +/* latin */ +@font-face { + font-family: "Fira Mono"; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(data:font/woff2;base64,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) + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(data:font/woff2;base64,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) + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: "Inter"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(data:font/woff2;base64,d09GMgABAAAAAJMsABIAAAABbAQAAJK9AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoJVG4GvChzGBj9IVkFSiT8GYD9TVEFUgTgAhQQvbBEICoGkdIGGOguFNAAwgpAYATYCJAOKZAQgBYVcByBb31hxAj3tBniuN6ukw52P33vBuMVztxAUlCV2NsL2OKCgF0j+//+8pCLDJYMn7VZgHLyoNmREZh9lbHvF4EJUjM3HGFUdvaOH981IbAnNcUbugudEcMCQTbObBb9NJUS8W+kqiAxRQbCLtOwyul/ySkmaVAGL9jSHpNZhN6SwG7dNglojjanjxomvQRcbFz4UMS/tg3JSkSGUyEgyzp7Z2ul9f/tDB82vGMgFoymt/zQjt9pPHq/30AcF/cDiY3lq9e7m05dES69y/i4bav39e5FwyiyOde7GpEfrb81avgqwW+JDpNhxe/rP8zqtc9/7X/9LCCFAlC5KtSQECHpsXLrcAJdxGA90gTHIIFwqODJRutywKXFIJ6xSYW1cNiaddDZxYSdNqZ3NkIb+f9Tp3yfJA2wC2fwT2r/azR+b7qdnG+imf86uwd/tfrKEEUQkClGIAQUUooABBQwRYIgDBhzibIdPW4c6m2zSMfnncJr/n3KrvwllCFBqxHR3ujvtoI29rJw5zBxm/gZqTzPLzt/9ffjLtpsKve+o6GB3pkU7AiJCGkoMUGIRilAJRShjJSnJAx7hEYpQCS8J9Hz79Vl1b3fPm1lI2JGKZkegAIUJC4PyCxvFTub42DiUkZG7v3n4z+7/26cL/W5/cAArmheEAzhSCnLldtffE07t/dVKWolFWmARi7TglVjkNV7wGmS8YBkWWSbCxo5McEISYlNXcUgjOzghLYlxLAniunPMDZdyCc1wLdPQDr1jrkyPSWnr9pgOl9GlTEbtUJfESqKkiqs6MlFsgWV7ET4+5ayeyXExiSfNdDxpN23A0NXESapphxS0A9/lsimciqmQAgpSgQIKKKAChSlIYQqDY3JIgzTMiLmz54162ButmBWaRVI0y7ayPRdazdxodw60Ynfu/PHx0/labuXGDukEN4hYtt1Q+lEVSR5EKJoCMv/ADmT+2d9ifKIpQicWSdn/Jbipe3Eur6mbulc3fTlM6qYmddtraopJXlI3uO0VTHGLCwZMaorVXamZDnrronV4yNs/XfYdmUzEKpLjynHOsLkyR+Y4xxibGebemHuzdXzHnXOybNxpji4kmYYoOk4rKt1++aW+3wVJ23pLyAtlCAqhUItHKIVG/+Dpf6536AXoMxrzZatR1pi6Hj/ZbFFrVKJCUa7V1GxW4gQLf/BH+BCdQqWi8bj2GJ6Ptf+di5hHaEy3b+xiEnVRTebdNKlEk0QUbaL1JfB7eHjaz/rOraoXnMwHXAK5wv+kO9N22aNehbJuXpYQJKFikABQEOmGCWC4S2CZqlUVWkxOTiInWyjlCzObxukRPuWcWhsdAUztfwD/oR0gADAQ5gYI5Z4pNv2zg0TLmm0jFpHScvbT5Sct2LvS2F74UDeGAMJo9MFOOie/o6sAq+PuuCUyvLvFuUp2rn0CBawA2L0rPbM7aoSxGxs6UHNLeA9acIfO0rTl2Tqe/79X1bbvAvwiqDTACu2fDjlh8pVK2iezlsj0evZT+8P/H/wNMD8BQfoECBkkJZ0PgJIfAMJBESOCFGkSpBS3Jqc0SentETBjkLI8YFGhS0ovnkzbpbTtlFKWmVn5ZOVllrNYz2LXyraV5Tqr5WwWHf751j6z8/qGqAKooiMjTISNc5PuGrxTIaqEFaPCZeHWqa9WyD0rd3CutE3bZ5A/YGP21x+TsJsDSvPrU0eEKpdLjjs4GqMiUGJOsyRp2gGp/J0asAISRk7bEbUm4o9lVIisUP77eSghHD5GVao6VaNlhS78f7909r+9OZTUItdh5CLcOltS2qe1dYli4ihVGDAOjXHBaYU/hq/5INH+2OQoMYxYr34/zNU/NGQvNHlZlo50RKRjpBizd9e9bmujSkvv8rzmkUEGGRoREelIR0REZJfhshO6N61QUfAEfAIiwzTLbsm+rOIoydH9x1haYvr8u3O9XDe1NrFqAJEIAgLK1LP75EC4IEP2AUwgosZiNcqQCvVIoyZkOweyx17kcHWQ2xzIjw6LGYfFXw4Ln93QsKCIcYkj2d0Ok3X2jXb+/zgCRBMBBkABoAHQD/AGC/YsPABQqhQEAMHQpzU0pAAISTMkh41oLJ4IipKsqJqOSdYsUDtJ0QxbwQmipMi67eKHAIABAIr50oryViaoYKXxW4FmT+oYY+eBxqYdu+kD53cyP8ow3OQty+sYgkMIQmj8r7U3GhkFDR0LV7qoDFFpGiLQXCUVdQhhCHzzf7MAVJJkYzu/aa2A5uyPHa3QEADwSQCd9Xl7K2QAAYiAkTGqOcdBYWYJ4ET3ayDn5u6x4t1+2qdPZjVTIc4KqD0fNPm/ZyTi6l3vUjf1UTefMDrGe6MPWtqDXuVxEiqNacI5bXZ8N3FRrYi+bRGB6J61eSyt+No8UafGgXJkzr86J+0zXsRWu+neDeJwIBy87zfD/lmv+sSRgwh0uTwZQNeS48q/lv1cs9dM3c3cHQsRpEuhxDSjqQP2BeQ3LcKhZj40xrPJkF2EAlUhx1VBTkAY/j/tb6VU/KgFCxEqXIQo0WLEiqMXL0GiJMlSpEqXwcgkk1mWbDkscuXJV2CJVVZbY6111tugTLkKG23yDzerVKtOg0bNWrXZqV2HTvsc1C1IJAnZYCPNJu06dOrSrddOtkFDYoaNGpMgmCIKkcwKmxOxIEYVp0lIStHdsSQNWbZiFUbIkmdHkvxJQwGktchiS6QttVKHVQo22ewBfbaa/sebn+BkYwSYbBjgTVB+Jj69liPehgC4K77UiZYGeKEIK5aWhVOgh/fy8zCw99bQ4/Epsa9Jzr+/46drDezfQXKqFmJsPuldFwt1tGNhnAlmscz1j9yZQKUp580+uSz1mWR98m3+RTbZAx+wK82WZP3Jt46R+ywfpAaPePMwZiT1LM4D6mM9HK68zKBQay8yvYAxyf4mqUg0Z8s+/MIRAEMu3YgPcuL0GV7Ummbgu0ob2vqBL3M9wxRqfn7Ibx413lmsQ9AZFmPETaY7uXhHufWqLHOKM0AXrPOUcnb3fcD7a4abXHeapqOGfsSF8QbNtV+gQx50YkxojW4OQqlwRtnaaGUG2B120k7Hm480fKAr3ixnrZOjcRw3K5RHXzUGHwQYuX/AXec1X84vkB/hpLcSOnV1VjsHIiwQQyVeE6hsf/Xv/ZM3Pyg5Q3lrAAgMDThadMeS6AI0i9nMYS7zmM8CFrIIK61uk9KFaAGtdHJsOP4FmzJ24HSfaFSVwGcQK7sOeWQOHAERBRIyURqJzSmrBV4fuzp657hTLo6YSz7LS6+AieNFa1QB1rKeDZQt87WDDVsxgYkXSWIDCGmp7Pt0BPyneosBULjIxtVLGCk27Tc5AV7t7tPlaPwdgAGOgIgCCdmoBrMWIwi00yCxxwFHUKB1LoouwBU3juIOBg+8CpbAb+NEDryRIAoC0RCNrQaZZqPk++53pk+SsBwvRT5d9l3hwNbjIuAJWJV8E9QQO3aGGMqQ1/nkpIOozG77mSu3uMIGundsbpcC7x45YvBtJeCjhCMc5dhw/AswzmaD6p3Rcy8MFvPYbb6xNRXbwE7a0zGyFCbAc17Pa8dRPmvEL2j9SvM13wzfdprpa158+PCx2Ww2mz1lEQlanD50aB5jlPEbMhLr6YPcQUBEgYR8vCQHrBfDwmOO3rYx6jDtQlc2CuMjvuGb/o0R7RWHiavBjK22/IwXKliGFYdW5U5NOx3j6DAJwuYXqvCMOX7NhVPYonJymFgaNXauPvpSSHeqpY5+RvCE8dQHH2nP7qf5o92mH20oEDq0g7H7QyN+VDtlCNf0fvtQdqR5vs7p/u8mRxvx63pazTHHweojcbIlvH71rb8+IUAbg9WbgtE1ABOsUCTghhZ1qwlwBEQUSJFHYQWSDTLXax7MN286G9nrOTzWz3X6PUrwaTCClU+CMbBwOHDiwr0YLdSKBWNMWEBALxgmcqFg1I6WzXGcEduxNiIwsCbZs6lc/T6gI54EEkkimRRSSSOjxsJkJjCvZWGBnX8nC11ldnn4ATbrAthi+Ac11NlK5U7QTocHTT80OoIKhAUGelS3njIk6+gHxsvHjfYT7efwy+ut7xoco5a4rhd/rZJJGp1GRJ9qqZq2u6IGODnIIR6knsM8xMM8wmNfSc/P78ZoQb9iA99/guyXvQTw/zsF8Ns+BfCfvQ4wq8vvHCp/bMSfyxRv3vE1dWHv00xgSAJgwKEtexIAAMD09wV/dbYV5h800UTc8qMVGN6mERuLN8y9AkEqT6RDr1LrXdjtnekAFNSZvO/mO4Hxn5k1tlodR6jr36PYGVvP9p75NJp1sQPLyPonUj58UsDk7Bpj/qAf6oRq6G2DBuEyPJNZmKfZwOezVFsW+JIpFYgXKPNPnV6DTVnl3FVxrwQQ0gy0LRF/JhrS89uN1kyKYUG3xawe8WzI2i2stqY/saXR/AOZRXwJdYCRU2tMcbePthap8EXOPe0ARaHESKiAOqXxNwhrtJqCpDtTfqlwbTMuvvsjv4btV4mFQLKJN4tUqPMAeYfq501eaqjTxRuoq0aP2WywA/MZlHb+yWjxHz2bXzmCpyDWcWnfYCm9FEIm7UAAIWjfdYpwTkZperZ6Pksdvo4WyUpIU4Ybmk+DGn+34hteSjZUcViUzw7uVeu6XL4z09jA41oYSn6FKqIR6FZk7Iu5hSAT24ncM78l54embXKJzW/IIx6P1GDdePi4hM9yVbQMRxIqXSWuKUGytl+4rJbLErZmC8NxgqmOQEK54z9j4LPyKzFbObUWj068nYinwiYjW5WFY6oZ+Fsw7q8wc8WWrwVN8s53VozRaN0PagrpYZ+QFZ0q9PIyvvqnLsvA8lpBdX6pz4Sy/rkZQzmT8RjD50dNr3sBdmCG61TsAgavT+HaSV3F1Gj312tDURnAeugj9x4kx6R7AHxk1tQREOfDt9HKxvn9NwYQjiGFEiyFeVszP8u8FO24dJiUY1zJ5MwxKPYhWr5KtmhaW0uPld0xMV8nkfcynIrlAY7EVKUZaT41K1vnr07hTGB4A17PpBhOMm45X+y5IO3Egj5W7a5Emz93+3sgP1t2YyS/lUbjADJnFUkJdfaPJ/REsHpgaGdh6OlkpA8SteX/WGJKy8B8DaWNhxMPQUoGrNKknGaybULgslV2JsaqftZreM5T5yj7nqNEjK1GLng25P8r4buvKcyEzbgaIZKWRozBZId6mGFVPfkqDeOEjVqkPDvGF6U9QE9LZld3FKqUof2QX0hK17AFm4471HiEkhVmXEphK8ZOY8Jv85kVasl82APqfAio3VC8DNYtrJC31Mod5mw69JaO00yexWd+PXvSp55BofMR9aTCO7XTQn3KR6bVyeOxr3mJbgpAKUKW6rcHaBM8HYJ7MnRmhk5rpvP7dWxMydhTwTyl3ItGKgmnvdbamf15kdvZnOHJDzyXgXdEE1BMYxetLlu9OuWy0Oy6kfpIV3bOZ7bZlEORjpi1tLjs2VnRHNQvQs0sJv2V6iPxlLrlofz31W1NmOHK+cL+DMiw83bWGiRwcOkDJVa5Izva0I1N4uFHyfYKUm8/Xph6u/Ly1Kfh+e4xTWntixo9xGNcfVibbi/JDjsM29eTRs6MxM7CHmaW9V50ZadDlF8jWX79PEMnZsxQUbljdJ6oUVTHktUY3Wd0wFbbCcO11SA+ku2xavnEvtqxJ176pBtAvYcn2t6ODUI26q8OjMVtaG90MADa6RhAnbKjVx3YlvOxzaLXCqkwf8hgjAK7v+71avnSmeUVGyZxE2ZED1P3a6PET3Dsrtd4nFhAz7496069HXl+KgQvvWbn9L1OohTdyUpcdvsNy/+8B9vImxbwlcJWIhEvz8WnpoFrU4OYUWAf7dJg/hOs/49MPKIGaDio7bJXh4O6/ZdTyOt6NXvLvbao0qpVyFZbVevQQdapW41evRQ72eoM2mW9UePeN+m6j6WIPnHErNP+J+KsjJhzsuJ8Tks6bw52wQc2GPApBld9To4h/yfPsEV1uBwpCuGVqLKK/40m3bwTPm9yPU7awb9ZUGxE+lVDFiqsHgfINZKlID3cWVklVRpCcT5elo61M0SYR4UGDYxMIjvMJNRQEgUXEGWDZjEEfnl5/LLykSQUFweuAPHihYqFuok/Gg2w0CIBExcDpkYIHitWLjBftCwN2HNQIpreMDVQ0NQ+EBIHQECyhWUTJQHiqxqUJwBA0k2MAhOHnFhxNQBA7QIis1la2vlFOA10zZhFsHABphS1cgAWkHsyIJsCCVBgjq8LpoOxaoF3vmR1aWEcSwAaKwXSQz33hChuSuXbh0k8pZqfJFkEdSyF3DHCGkzFEHUVywzUy4zIqmmOaZr+yWchOVS42QCFigRoxaV4bQzL1zPJZZEWCsOILdmhei0bNwzH8TY/X1yCoWjR7swxYowWPDKIc5Giep40ZT48zAUDAqvzJVu/HzOBv7Ze73EmIB+QpwCQDsgwz0BDXsTRUQCRKS4bHuUPEAzxc11HSXCDkhe+hzBkKKGdUcqUQwCppag6SSYFJHgPI0GyWNR7BEhgQ2l1Bn+DQvwSsIegkgzRNIIKJLAzGkRuPGN0hWgbzWSkxhNrIbT6m8TLdDSaQ9SN1CShoVJGAyURqE2KoUJEqLrREy4HMYlrTEwUsYncAxBhBlH86g/jPdlqogfRmNm00ysVekSDTwuN/RDZkV1/arz/19JJH7c4YDgn2nag4MpW12L+PVnbgspzO3e0o+b89+uwXbz9tBUgiKN/szGpnTPLHyeSKPm9kTPwR9QaZquZ5juw1BvfDP5TjxQUBA+vOMb7kOX5wOAszF3YPFJpy+9bSR8fyadLbOrEyBmcf/3wT/esutB84Xi5gesMHRrvXAXu+anwhF9OQH1iMqJqfp2URCbGRoQ4wEyqV4kKeetG0YpZlCBYZe8mGd8PJamNtWJUZLMulHBa4dUBpIUfgV61hw7q4X4xascIYbCKjZNhxAwcOEUq6VV1TM8VZac0tIxRg0aFQRwmRqKdAVTJE1HZiSvt+Eo7UdmOJ9uJSba4ZCeisMUUdnzRjhXteIIdLdji3LZxW4xZkRsLzWIRgCartG5qe2SZqNyPxTgoovcKUKSehYlhO/rm5OgR2LhTtaxrThWvQ4hWiDqLqSW9SxBjLfn5hIppRJsTUISB/Ey4ZrRPxhyVIcOPQddc0O7T7D6B9m+uOd2enpLjIrRHXHOhe+6Ryw3tBieeQIz+q/ZnrnA2h7h2tWVcGSASQ37RSEn3nKATdHwjtFhnjebXsfDmUDgFesqgpeRRNdzC14aFjzFpAn8o9tA/Cnu6cq0yWiyDEa1RB7BFLJbK6LWZ94Rt9J6sr5wkAf6mRDkABTHiJJBIClKRHylJIhkMz2IFa249SwjRvCdOyOS7lY0+P/hTritzmALfdEwczERMI3NRko6S3pjJxstjk8ydkjdlJtM2ZzELWcn1JHIr2eR1luBBSmXrtLlSm+ttpmoHanVWoUvlzXW1kk/3d6vyj/gn74Z5S5P2+F2neD02nCUUtn8x7k0zPgjONHArs/Y3+9BSepYSu5NM1CHStFxNTDneT0LbB58l2VYEj9vhcLB1WOlqj4CHx4iRGrlb4Hb48dTImO2vftw5CVNkcUgWqo60WuWtU9ajZKe6YzrmfeqospPqHtHyQ9f8wrSbATYwXSrjTF0a05J2toQEc8PjtqjRYpcutTQtIvrFTZHE6DJMMVJTqJw1umzRZ7uaw9rmXLaoZFnNGYlRY66ZMGXGscsVu/7AUcge5zkKR/pOkqQkSQAAmJlZ7fxbPtPPxRRqo/GfeJb7d4PF4bVvpWpxCfRAtrtfwEOwkwRCm50kSRIAAKC47cx2+vEZ2xhjCMWJHbMvVv/BgHVMzULDpSautMSX9mgZjp1cllOMlHK0zITkg6zm06RyJ2p1XFtr+dZVrqdSO6t3rE7zfdrRyp2s3iO1+mHX+kXT3RpyAMCoRKAeN+3I9GAwgctDBMbATFFhFpswKksQCmKmNA05JKpRitJS1CtTWXl6LKSSFE3L0IJERaVpRYZKts/FrJ2W3GyvM1Y9YMuzXnLBoset+oBNL1pyzLozNmN1dC1cauJKS3xpj5bh2MllOcVIKUfLTEimIicelGxobaK1lm9d5XoqtbN6x+o036cdrdzJ6j1Sq6EqTRY3NxiLrXLC6ude++T1zNjE3D2csLHhTa2y2dkLT93SyNIqWNhIVBKhHkIahV5MsuR4SIFRSpSZ4gBHWODDlx8HfwrhJL69aKW11tkob9p2exxwzKw5H1pwVMlxJyUBz3UWzz5QyPrSnXPOkSQpSRIAAGZmll1X6xk4Coucc845kiQlSQIAwMzMFpEkSZIkSZIkSZIkSZKkJEmSJEmSJEmSJEmSJAEAAAyisIgkSUmSFgEAAAAwMzMzG0RhEUmSkiQBAGBmZnGklHvsduhzSKB1zuOQQPOmICIiERERAAAAY4wxLc/zdLK63tyiIfKaFFv9anBIlA0g0IhlUooDmMruW1gmSwDnaGGptaxYUksAyBvf168SFEtAmPKBDzKDDJp88iYLIQpFQ9rc66wU1LECvFeQqz0O4RUbyqohGNuV7dFCohUpQUZ0MIekpQjeNiMUbnjQE144l+iBxU0eon3NR6T2GcxpxjYJUjCEh9t3NSuy5EQ08ZAe6zS0rdv1GBSPpwuNXEHmW+Gj9LTUtOlYNO2P6h36LSUeIzSUMM000zb9+QQsrLbDTqefy7TC40/3fpl79NyNFtiixVuBFg/rPt/gMs/fYFWmrr8sZG+aEaX8mrvU/qtRABZwahEzzbBGt36Hzbtq2RlPmDATjIVGyJvB0bOQWBIleHTr6qnasea7Vq2L/biZQQgJo2V0D2s8HuWZEjfNsbk0pTk9F2di5lbxqluepS57PV7jy1jOukUFgOgwTk8jQDJCnlOBHEJ0yNqoRqiLWuRhVTRy8fjC7m+z79NasBidNMQMokHXVuioWEroOWMGryKWE8tGpVHsVAY6J4RF16B8DwQ3HxRDPxJV/SmI3JFORaioi3/hmDBfkCy95SDEPVg8y3ZQ1NT0yzDlAB7AenMEtjRrgP5UR68dSu9seBM9vOOI65QjIi/SAO0ZICjeAqnkFFSl0tutUSKx/CvnaJFWPw0q5suR4v3UWJ/yyKKzwmuJj61JxzLyFwdBgdKpTfPtcUqJRx2/9F3qb0e1Alt+maJSubZEtMW8rDBaZ40SmaL19kRCC1HVmnKySl2lh58S02PwskvbWSTMLgWjt66hotM2VaYtwRnL4OZqWpDyxXGFmgDbOWTZZbdiHMsCWwKRawjQeP3QQ4GiWihaSp3tH/pmIM/ykGrw9Jq2+7own0Gagij+Fpaw9Uy6cRnG3J9m8WbwxjAs4er3vggzzzgORzz5bY0xBmMfIonktyzKGFOrYGkZf/CMybDCuad1fOGYTCMPAbj2lGUqxpiNWETiqac4xqNM1gYBijz0sG845WqyifQVFd1b7IeLMDnGOzCiZ5H8PB9jLMZFHITJFuzn51Em1xjCSTzZMujnzjiTZzhxkUi2/MkdfwcC+RNT89Bxr208G7P/4En9/uh5bvpHrov7Y99pf8NPx44QvTulAfKYUq2As45HdMRHJVhP1jIdvJL2pVYF4VpO7tUGLNyrmT1owp9KXP67JZlfZrsSSLN6oEDcnyljAkHWXihUiVVJ3R9Yw3HpARTRqNv0mu4zvR5QLE8uVeQU3hBMD6CECvJCz8Du0LTGD9pNZA6dlUp/qumuPGA+VvRHu7i0dRkesAD7hq9YTLtzY71GtnnxKq5aUjjG2EZtnhAgNoy4gYZebfAiaifTQw3oQmvbYIXW9D2IDdMhIIMKtilroVRw27b2SWVKLEPs8ZZcxQbS+DHargYkWntxwDSVHUNhUQabNXAP2HGlh5K951SPUCZGLXUbtjvdPXYdF5bkJMlhlaicbP1bGbZqsy2D0t/iUfOUX1qrLLbwLfFfOjv7m0reMmObsrdt944KjMSuTYFeOmSkqZtHjxzPfeysN0XsjkIPE6riK2GVBKspilvB6rK6rTVWtkhIxQogAXq/aWGNmjSHVZiwGIteUAKNgw45rOvXBCtV7dNt1Jhx11kxt1IBXjSpOhnzZZPVqLWWos4666mSxk2YZCV8UpLP582tJ7/OP/7dCADogE2+5FFL6sEC82ElXIt+CShZ8St/EreVbcIswO2mP5uw0IV/AUw/6fKVh90quOLU46cLfnrbbMVVfPVfN782f/f8Qzefv/n6rYpblbdevvOvexX3Kx8+/6hj64Gt3Ba71b3V86/d2+u2O7Z7vszutO60P2/dtSQ25tplXkTyv3ztga/lvsZ+7YW9ju9R++mD1kP34SOHbYf/8nOR5ii19wSia7bW9EYGowFu7t7Jz0Yom2+gASEhoQCs2hwsAMqv4LLylgq/rvm/Xet7T2dfYI398Fx+HmgvAPPFgF8C/ktAew3ob0DwY/xbwH4LEqZRpgvktwF6B8jvAPweMN+DpFkwPgD8h6D6EYTPQ/UTAD8L8mdB/ywoXwTri2B9FbRvgPcNUL4D+Afg/MAykQHyE8vMPPB/hPuxUttiWkuy+U409uU3luUyIQujQv+FsvoTGhXTJifDr41yjzJUE7UgZwXNbOsiAQYdNer0aad0zRBlGk1s94s/BrRp2xO1gPbx+cj/c3CVNP3b5XYF2ssqQ7E2cctVJQXJSbo120m9blkldREdKJFmpIUGjU2jy9lw/S0P3IvNWWHtfQNW+W9MDl33vijX0vNEyz7KHYvam9QUtnVsLt5f0a+EAHPRo7EIeFlsG2kRQ0tvOiOdVonQ5ry1aUOmfhC4BpoaIhzGPtHlDm4/GROGot6gzc0XkfhL7jcyBq5C184yQjFLWaI4olzFgJlDT1ykeEfFheU+jr6/lr/9szdqxBAw/kV4SZTdTmVWwMNCyOsRcgJEACSICZJCBhX8FFChFlHCcETwyAoqEJGQiSYLVgcqtp570YXefDHLMCzfThauiEsRRdFOC2OZYaSO4wBp1fUOgHf95fxz+LSZERM+PzAtFbDdULHsoDXlmFC3y9Vdd7sAt59RAboTABRkAPTU6OXsmxPQUQGSsMu+tDnoHNBxdquD/BAdPYMCK1So0mIPJwQAzaMOwiMWMOlYRBH41izCHAfYk/FjlzCLI5ZKz+hlZEcsVy60QkfzWcgG6nw/wgArounivO8QOnu8iJ7wefu/XhY6xBdmPpbNLObjxB9n3Jm7wT3IWblKzsE5uQaumfOGHCGPPcH+b/YTjqB8uTyAnlmRofi5Xfnn9Bs+wDEce+/ruSZtjU7LwJ/Pc1/Odc09+fHGH5s+Nnr7AN7bvIK35C14kdfw/uP2u8tTyxc+qnw4x34FKQJs8iGgW5QZ7lO6ir3Sxhw3xPRyMBwz+Bq63BmSEV3GtL+G5T9okB3yHh2ixMeqphFMJ0TobwkQipf+WczCVz9IvxPAfAuc0anRaVrUUGihRZZYahRrE387gJvdbIutaqDealPs7cPLoV+HZm/HPk54xX4Pe9Wwq7GbzyE33XbeXEh8SbaOuItm3xGigR8sE8NptTs5hSNS4BiJzE8ArUBBwkWIFJaT6H+/gVtNlOAd9ZctX6cGNylSbIES85VabLkVVlr2Ww50rLNLotv8SxUmv9m7/sB2LXZogrJbLl6a6ujiv+1k2wUBtBiioySvndWoa5iwbFNBcygQ8GiBD5Orwwf61bSYtJ2WYPgNLVXHDleW8fAkWq6OL+9dIV9TQq3sHoAjFgz2OEDng+AfIP4FELcHwsYM12OElmRg3mHNIBop5nUsVg4p5pCiEK3eOJIQeFJMnES5O1XKI/SFrKhoyKJSCijmG0flQlypQrwzkNJalY/XBkEgjozjVH4zhkX3XEVIeSRtYnLhjMYkYyvjRlvUF5EV5dK8dxlqqi2oy5Cz3Rm24SScCgpuc/rJmWUZpaG1jpJv7TkMo2pDtcOgWXWyTb+hwrx/DqEB9G9sJi3Omrm6QYLYbRhiDqzSmpLm5aw6yYrWyGPX29b+8nIZJyHtuAo8oTv0tc89i9KVtI8vlL5HF82YnG/DQd1WseKGQT422lWTXFc/P92z11Wr8YOo8JiYs0itYN+/XuLMljF0K0IgHyMcjFO998ARX2AwlIOUBtOrmctiauuatmlqxG/u6dvPpBzeMx4uUc6Jl7xXvh8EcntJBXdg42UMUKmLrD7skei5bsEw9M7F3Zg+Pg6MBmIc2SlMwo9dS2Jh/K5Bjs7NEDK+47uIq+9sZ8lK5DWuCqPeeMJPguwyjiEORXfDhSTUl+tJ2VrQ473d4MB3GLpS5GpZZQ+dG8/4X9HAcIUF8r7i0m0W0/L4H9TeUKMXI3JulP6fXtBMsIicmbHBHWtC3CtuhdSqaJsqk8KTenqdfIa+SYhjyOX0IncLl9VnmexNfRbyJw07Ve1E0s1XV0Fi2YUoy0fO13lJVDwCW1ZgxbiZHov0MQTtwpRISpYc+R4hCl+0WW+Udoj9lF6M6PI2claHtWQilr0n5CnVRLZ39t9fmB5gSuRce9VBLvzSIi1JtnN1LyjRYDbZNHMpdwOO4A018B4T47SBEd/g7jhPai8o06GD2r0hotOmvGidBKWoEB4VSfG+GLvuHz6VB970yFWNicIMhjglALrTqLPG3q1HPqNOUMFO4bAkytsDM3kQ4CGZtrB3dTGPkL7APj9Dfwvdv1Yxf0Ks3SabnRB7Ito2F02ul6WX2zmeHgFMcFxo3guKM0xS9aJ234krbjqUpX2TuHKPPx92W9mVlrRAsJz77rx38ht9Yd1QrTb0U0PXYJno8aPSn/iVP899FkL6RBL+q7TFPXdY4ozEfZvM0IdghKIK7Z6JP941KcsWp6+zT/fwYZfBsYxvhKEc6XNUAewgeaQlnqDW45FfjPMhoYADnibQtzXG8KfGFnK3MlEQtLN+5vg6uCC7Z3d0lUmsklk9cLKm/u99nQENIeH1frg6gcHmQdKg265DGGIYS7Y5Gm2P3a7cHdQQmLqTnhvfN0KxqwMHqGLdDLwWPBx/Rd8IqCQ3rS9LZ8ZVi3AjIN8FnasXYOuDPJFpTgKEgWlgj8cIDxzvfCiKbcPJh2Dfh5pEfF3iF7HHZy+HoO9Oe0Kj4qIaTNbkqSUXn8QQZmULUXf3g51ds7dj9vd2p1Nns9oCkzVGYKs+JH2bMjvBUXGEt+fZwhiUhWJ0JFSb/huo5bLH3ERLZ/XbjBzrDYb2LvZmZu9UQ1iwTa0iGlKuz+1wif1KlLpdaTCZniR2ooHFAQ0PYYIylVaHujfC8ZbUkLx3TrpGLtk787TcZFDsMoknxhf5pyJpF8mjmhLxtnqXf/CqCGbpVkZ+ler537OlDdxmvG5V1Eaoz0EoN2AMIuzKLAJK2nR2klr0GUpvKJc7ZGEKJ92k13qMpK/uBhdpqXPsAv9rBVu94Xku0NrG55JbOxXaUmxCnYpJkZe23TRnMl5w+eIuYkXnInE1zsQ7Bo6LEs0l5dUkmlbkVv3dQfJdTaFAkEJs+HPrsFDXaRJKdldiXJPiTiQ3NpdMkHO5ey/VB+geNFrQbrhlI9pS18NKWF8Vk9oE/lQ33pVqOgksHOIjoGu/XSlBTRBL4JY/8CS4fEkO3d43XCnEZmak6P+Lbo7LX18m4Wmuseb/zjeNwEgAKiEGalAxraiFYVQQ29/J8xh/j3cLMkz+aocF0yGDzrmJwlLdzTH2uYbDA1OqAKHcV32ntssztWl1IdrgXagksJfSPP4foRHGGOUOpKpfyKmNX75mVvntcTP5CW6Ok3trmnWZxrbNA5O3r6hW4UwBLFpQp7urymxKtxO7lW1aH9xqtRW2sc/eM8Uj/9RxSMVmdYPWN8I0FjGTBwGUzhcnMsqZe9QfGh1NcpeDhfO40lOiDywx2aqdCwdWsRP7eBTsuIq+4oj2kPd3CPezfYYdx7tA+6gd+xgeSUdtVx/gQ9cVjcI2nLo6XlbhU7LLxKaa9Adimb98QON9UU7KyZAHy82LpuDZqblOJYKNrjRKT1YpnkY7pjuFrpuBdt7K6Hv8vl/zK+n6WrY6xzPrycpqvDar/cBWncxgXn3aGfW2Z2kOIO63cNJXMeO4w5XkeTwBV4/rprdi8mX7mJtqRqpWA5+GdBOonY0bysq9jPZ4cZl3TJ970QSTR7iHEcBp8Ezm6aZ0Tyq73EHaMr3NG3iry28IJJW3r+Z6mM2Bp/u/m3mt5fLD0ZAHqNlIPRqWJDKMnv7MtWZQyfgimxzXUtE4tle/FnCsQVusKzS+iOc8vLP2jRMfa/Af2Ty1SeEYWW34jwskn1ZwnQeK223RohFv4gX+FdBOa0qRChx33c/QWsiZ8RAQSsEYVrro8+CwDDT4Ih/0C15/eDvPBy4kIoHYeyjXEPeWwGHw2r4B0VLM3KxLK7eeS5cjCGf4RxH5eaoPPby1QuuUgN8s6e4EB7niBwJe+0bsZAymnrGAHDcZfSOzTBDKGeRKrAn1nXiUmPUE0jXasMNI9hk5TWwnSe4laaLa597WC2LgDEZw4gn+Ip3KD7mz9QTlMrQfi73XOsndCryxBt7bY5eoNeGeXvPBhm4Fs4Xotk1tOTdDuM2boH4oCqolKVaw37ZNnRRGr422+U1x6IXjkRp2Oeip1eRCwV12rvkcnnVcnqXIzhQ0vXaoJ1rSAz3vfIbPqS6vy6LGFxZJKOLe/C/XZYtcPt3fWs+CeNyEnjGli1QlvpKIXCc2XHepyvAAzvCa+GNAikzsFCKtO0wIANMPKp7SPgbVcOGqSlTBCGW3+DKKQEC5EXB46nA4NxSO8JM29NoKGmIMo7ub4XuMzT7m60vYa759Elvh6Bfo4EBex8f7GvDNh4DTpSAeH+ZKuJfXJKtAnzRhNX2Y7yKZkYAcZKxcV64++b3XGdFbRwxRgeF3Xs0qXG5rKvlmvOfLt0trX98YO0mJF4oSTmxOz6cOhyS0Uk+Ojs3fB989ytwMaaaebUoetSGPGI0Kk2RkgKGPkCMcV0dtU47fVB+s+e+9PmhY867TW8u/qytj1m3NjPnHT8132PcAAhMZnRsfzziiX80PfT//XuqfYyJ+/I/Nsw1OE+t3IvU7ieTlzIJEtyY+zwUARIqUkqT95dTL3bZVYUX53nni94cZEkYtiBOZGqQEXnXaFWTKRf3R80kyMpeSTEbHhXK9dbAxLwWKRE7y93U6Y35D27+l/65fi5yfFd2rbrSpEiTCmo2ok3v25NxLKtvOk0tqwUE3DwN/naZ3fSa91IoLbEIcn6pQ3Fk22LVz3+lXLRubg5n17tGJp8N8+gtPW8isaiF7c4mViGs1RTIyYl/e+lrD6DSQkhYlwOwCerefEKhOit4ZkQKdjtYDJGw0CKXAK1x1ZZaKMZxvxWbfsWyXd68VXHQCY7QaRnqs/uxixFaDSo8R37ZTyBMy6iB/WV4fFwaxfztvpdnv2MqQltSBlyvmlvawdX80oSiv4IOWAN0KodhguiP+yzpCBrNi9f1K6MLP2Z4a7QsXqnXN+j+vv/+ufToNN5mbi7s+m9w5DKSTwJFhQl8ZIrEBIuiyoY2XrgjDmHiV86ecB2rU6TUqZmc+ma7oCWaicMJyZPilWVLH+50oajjIbtA4uL0BBPUAxc1bn4+cuhmS2hjj70PL9T5pWr5gg4VNeQwX0G9UdvTJrmpZk6DLLv726wR/dZyqu4vJKX8Rwe5IJacVXsEm7v/p/tlVZWvBEWC/bkpsUTr8VWgKZ5D8/g1xFiB+huv5nPHDH4GX0fm+1Tq0+dE3wF55f5dr9+zkt8SLxmh392ejwYsfQGYHrDkeKDStcWcaCD6EAPXeX+ZW2NqXC6GsCJVFPgpsSvdTE9x6EuxH2vxdYcGLbbSlQnPMj67wLi+QDfCr0Fw1Ei/EAorqvBsP/foBKp8ItMpre10Enf+0Eux4yJtX/+5j0x9IPMHECc7h7x5JkC9R7N/ja4yA1PL4/O5rNToBy1hkyQz3kyPNc+LQcGLWk0sb3y3KpaWkXcFG3yudSIo5R3j8ggQvguXsDgyXPWNJoOByL+YdvTNS333x/SV5eSZU+RdZEEZoJPTMVkEUmdwWFdmKSpGNbWGx9YGJGRivREZgoOlemPGXfuAlcNf8/uhMGv70PAe/Mc94j702mKb9iMSbFxaR58bozLL54qTnBaf6s9cf5ZXj6yyTEvZjX6G0Mrr7/6/CTiwyEqDck68JRdAXee9IvBxS+k5sITVnBW1dE/NxbN7b4sI6rpm8U+SB7Q8SVHwIcpT/wpHO6k5H5PXH1E3qXm8nftlor9OenKgdiIkqaISvbd/qj4WITpbXirkkGUFbzA7xmbpKUSVxG3BRjcc2c52xbz70ka1vLrZt393+SKliTY1yuY1bfLs8fVv/YKr07WOlEadRcVnKAWtKJ7mPwevYm9CY0J5sJ218aa/VvT5Z1x8TkVcP21gDBJJpeGNUwUBMxr1yUW0spL+PuE3krqwTN8TsaBOQZMSDwCqh8Rw91RezttZHsb65qErbs0JgNFdxAh6wUwekNbD2x59cCqLuGYUTAOy66sw9fyMkOSRJvddlTvmFBZ1MTwe6QWBJCL3fNrWVmmBH2f9XU3t8S0b+HZ2whTVG5ggj60Z0zvdg19faI3UnJuuEMZF59aobq0BneH9w0+CQ2/6DchEr9mvPI8TfoorKOnF9zBaXR9oQFwO4j8tdAwTSGV1u5uPSCy0f84qAOLY2cWlsppN2MZoyCh6DDumpkX45OFyDd3b2urWlcenbTpWXAXF9hT2LPz3t5YSFybRauXBSooaRVGIBXdo99Yy9/0/mdi2ptffw3D3YAZERgMDcUz3xX+eDxiIugJeDYYGFV3syo8vMeXCqruHmKdscqF3mx9L22zuBWcBCz5WqgraBydPv1qNv6eadiDgTTehLmxDfoUNyEtpSeT/3fQELTG0aXRi9KUgTRsdSLanGou2NfuKn9SfqvbrYN2LXP0UYFRbunZk7Gy3d1BT919yDZ4rMZxdk6XjEt+0UJKVTc+TF8vo4l12Wb+etzlHA1vPpUSuAlK5uRPvr4wUzAm6lTfxRhjaCOdg4tR5oh2+snpvS1q+eJxrnby0pqH7aUlmx2jEps8xghZzJQH8EqY0yD044u+4hLb1JbKe4shEmMbQw9qTmK5tbZrPzZzl1C/JZQx8t5vREyzYHcwdzq9onS4m+KdQMtS3kXbOpu61F1dN/drat7phGDuJMb+9/Kk5/j/zh5o+C80OfKsxgk3s2ZR4+UPPHr3p4RbKadCYkpJl05sGti8MrzNhqMlYQUTk+3d48f7kG7JwB+aUgys68TVkD2nGSXUyEhqWu6kuTe4ygPc6k8aC88yeAJ6OVrgEd0jh0H+1VW3/lckEhYLbsGpuuCb0YlndF07S10nzK2Hg8kzme4D1564iknMPQs4LzRpICR4bcYYjoqgqB9Wk5UJNmoJWB67qjIKd7sQEK4zT80i2p5Y6p2k0+mirdwVUlAqiGQEpHtUM/b9mplAA79O0WpoNaYI/fo4pcCFJmyzZQDGiGWVonIAe/sAhTK4aZLG6P19KdkgpDY3Ehc2PWHALUW5I3ZrUjFEqVAJOrqtWlo2fkU+MzzTIPtBn2i3gKlUDLRYGxbTRabIcotBwKAiSuhVOpS80jivqM723jq3yvh0/pt5KUr/TQzmGzstRhhrnntcw0/8mO6+wMxsjL/xlvTHq2c5vx5dl71TdOEl+XF4Vtib4z1ddPR32rdIV9ulYL5F1gLYhkIz8T1iDTVhrEH5bm4AxD9eg+tGeBBgRABjPmSsiUVXLRd0BgBqf7oc/z3jQlKcAladewOjum0jm0FxXYVp+1aNZ5m2HGsDur1MsChFLQPQHi9m3llwsEq4LPNdv4n+zMt73va/ufTQkqS7lVXUpUJ/3kiYPwMm7Fe3LrOdRjeNpblHwcrpLniSMM4NLGQPhLRuHTfkzg/gpGqpJlaq0imt0XtfD/XeXNxsE9CpdakmRkCKO6nlCu8SlsFXGBErOP1Ph939bD39UVGNV9b9Ulgf0AP+PwvfO6j3fXQ8fNlRVg6N4+EY7/zvXF0sp/T7pl7PS7otrn/4/dI9OWcfc6aC4HAEEOir/kvnr92gqQ1QX+q0xW44RnTySV3DIQlJLZT4g8R18bbleIfXtoWLm+Repsmu9D8a7zY3MfoZclQKZwseXJ4S8S75cUk1V+/VgmZy48g09NS+l7FM0VSAQ5l0MorVRKeGNHUFrCiDe9ckf9+k7ehS8ptw6MK5yp+v/Y48Nf+03Q6wefQESPDkPy3wb8B+dt3Spr7UkGHEvomGQ7/2UU0F5ZAwTACsOF+0q6v0rN6/7FK8MtBVP01NvsE7S7c9lFAI//a/79Vl1a9FPa+6Hu4XIv/scpbkxnsMtqeqrf3EwIbBLwfKmf4QtP8zPh0FjBdY09p8/1ybm6v4af3Yi/TXSh7RO0BdC1NoFNjFGneKFW/3lz8Xi3nfnl288KZvJp94oKUxencgui+J45LLeOiJz0ezMsALvDHQbVkPgDeNckrQrWGH7brvr8NvwMrEbJcG2Kkly19rk/eADN930Lv2t4UKWM9w0DaHvizz3JcslKA7XxEhBG+1PbCt6cXyqZDUvigyS83DlwM7aIPR9LGwAZONfCnwuDiN5I7gmJbgHxeO5fTd2BaRm9gfgmEIfnq1p6Q0CjG34JPPznwuN8upoiuWNCU74KPRth92/o75y62PbPnpaczR7QmO1MEB7u7+eOddmaX1l4vjyPdpfJtOagomuFM9LvvB+aJeA3tWpapB5hUsUTPflBukvBthRWvM+pqhSfTB9nBhrjU53T4IS1m8qDm7K7Elnn78XdYhTnLD6n1TU9y8yaTK+pepQfUW/yd2z0NQMCsf1CbA5tKWZwlCLdvjqPl6JXWYw7jMckG1OB3Q3Q0ol30y1DTkE94+M9s81M/XxNgYLkuPie3mVgWXNTX79fZGQXkFIjXi9KSqLt+PgYaxY2Jryi8Vikf71LbJV05y/pbt6/cmGbcMcd5V8HW50H8kpCrEKs4xkm7VL75VKw5x2ErTgmh99bX5YURyOrI4nWTN9d7eSqXfewq/usta1FS4nJQ9gzSciZyrkoM7U8Jk8DH2qZMvQp/H0zP4q9GOPsbEAtO+eOUwd/bEfvAzLwv5gKiD2pU2C3mzD0MtHdEpHXySkRoIstZ7PY06iaKRrH3bqOXumjV5gUftNM//CvmoSaxbacLUYLOCWdeW0VC84/jX0q6danORiahcvU+nfrKPSR9pIxl4Z/P7yO4/7H3uZFcPMHHSgX/gMT7Y5bjs4z3Zr7Oi7CrcvZt6vU9cM2R063Hu00ZMXKBsllx8SdcUjbztrxUjPnsvNG+a3Y5fLOCVKKLPEv/uF4zJJc6v1TgfhCHJlaoqe1egKzo/rV8jmjmGsf0yu36a4U//SdKIEEvFgKkq/p882QNpeeiC1WNOX58BPtiV5POroCRvlejHReZuAUjemy0lgM7pdCQHTKaH/e9uB0FBPsYX9nW3p9cQBUC1oxvFu3aOVjPuLSpXzblfe6rO4ePZbXC20jvRCRvR70irqXch+Szg6Ev+MMntGSOycQ7H6cpzUo5B3e3X+EY9vaqaTO75RZpqek3spXUSFMdLkVVPh8mcXrk3WqqAO7FEHfo/bxZAdauQ75tOhFgXRqvEsiP9slkAjAvYZZma63SCRMCejhv0YogAbzFiF1r8DIns7MnM7OyRR7XHVxJvSc7AgDry11Jn+mEEeZw/52l1P7sKjCOMewiMmUy0BNBvTHWQ6W4hPjxVeW/wQMeUnvvizXuQz2r8bQ/Nf+C8KRR75/a2LjyKP/sb5k9xXPi3jtJoca8nlOmvrBpS1NLZDbcP69OXFdZ4U74H/j3V/1SP6rb3H8e5mhk7d/TEIdEyuj04Af/Tuu2KXC3V/y/5+57O0BwJmLXSpPyb65mFUk5YclDGXBnRB8T0jYRUiecOLJJQg8X9GpnwAkMNv0dPGOcij19V3oKLOhjSHNoQjb9Y5SKF4YSpz9aOPiMF5xlB0cuewTJiZ+5nQS2P604ssE8LP12od697R2BQrent7WnjZ7MZxM7gqlRnqgQi2sgol5UpmP/3Kkzl7idoYmRWJQYc+9HyVVqggoTlaKd+cWV96hNHanEeVqQuqd7U69mwmpi37MGbiWt+Y+QV2FrQL1fV8AEtjp8sWQMFsl+0QEqKlizWVIFTUEdFimwvmMj1GdJ+cqFjzgoOjEl9cB0BdrX2Yax5t7Unz9jqUmI8x2MySa3k7Ort4m+5sS1MMvhQ8OhYMRXYdm7tJSrmZHh2GPx2IdtMz2a11KfL5SVxdjHt31PERgxIGZ++T9TwvK1/e23N3D+RLccKGIRuJHR/NJJGEJE0mi8Ypg5C8pUXP3TXa5YBovVEgayXtawD90SJAPPoaPHaF5KJ//dClcpnGID++iwgpvew0LX7woNADd6DlsOJj6hb09+rC9ZBo96MroL18YMAHmcw23Zc4rdZU5Ptq2wlwBUtUKj8mLSklFpwKBYxQu5uYuFhYWjNGFYWbBNIbu5kbHYAjTaAy9zYF6jnc/xCfUDxfr5vxRqfjdBdHw0vhVofPubK+Nz9Ak5A3eDCMx3B7h5Rhom27m7X5IpXW/E49V1j7YU9b4oeMfYHhpkFqesfQgv/r576BrG5v25F5uZand66XU3Cweg57Oy6UyMvi1ciYfQJwAfRW9izNvgXE3NTXDwtTdv4wt3F1Baair6z56XghJfJxPonJFs/337wupjFwikckEOOlwxsjx1Lij+dDIZRxn3PWUpPBxircjwPbAV1lFPWW4dCdrorm9C4Xo/5P9aSzRIzzBvgLv6V1TkOalssPd0UVAqK0YfxvBOfPtQMkb3rsaIfdkShc1xdslluj2k/0Reek/OlDtK/EY99P5dD8VyCcrl5CXP7GUXN60XJT9ZqfLF7tcQpD3z5OfXkk3C8wNJNByPI0yHtXnmETSge1xcEeF/PN9t0eL84B4EVPvtro54KNNwi1xf8eTqex0/GLv7ykxZzoyRUDxdyopOZ0Utf2VTBIC7cn126fDC85KNUm2+Z6OSaHXJQYG8hJPkniklFpioE9+LJlcTdwWsCgVn9N6O4xZdCMkpTGGWvN3oiKkGsZtTSHn855FAJ3zXddhtn3temUrCqIxl/UWjqEszoOG1Uu/DH4Qqvve0q9UWZYa/buXXjwjulosptOLxVdFxTPguw0yspfuK19aRIPQmd64KN+QFJRPNh6Hy47xm2l8PT4y8my8DGObW3A8LmhpCJI0C7TymTNB6acJ9904OCKRGemGKQtJD60NJXKC3ZzTwnC4fJzbvBQ+qWo0gMG45BN3KhTPzk3cDXlBsbKYGJFWOesPnn5BIHvDvRqa+HHH4nCUaJO7g2UFlOXnjAYknpaqnt92LAePIx/PxBP+ziAjKGZPRLpI5FQXTBe5A3UF6UfpCyZzKckpvTeiwe58fIcDi+Vxs6wj8a87A029z67uvm1R1jXBx4/DfjAC0R8T4skJ7WFRzTEJ1M7JaHYrkcMICTlJIzgn2iIjQyBhOWlgSi+qhFR12XdpiBqAbj5nwS+rJJjQ1EhThCTCssoD/ZNYo16ZtBEvKss/MKs8EQbJgdU24oOzSm75sWpcE0zssaaYU3FEZ6oxGmuOORFH+RzCiHZ2ZuBDcHS8szM9Gti5wIP9LggSZe4MNvU/vVHisR58PFCriSpsRZNt7PF2gZwsIiYBZR0V1VBBdH4LBCTtYUDlcXD8HroO3/qROa/t4noLzmJ4EbdgZH9SKNHcjyp9en3APkR7HmS7Njy/3lyrh0yP6qUk/7TT80i/qEc235gO838jl53C5kMyKQhUTqkOk+tCBYeAqCWrbzkMyy+RElRIqaohyRsc72ZSUyNGBlOZRedTw0ZSTxy4EWGlgdTwkbklKj6kmhofXI0/QMATDVftzZ67zDqI4lZtKVrOxV/fhtksgD2E8tHX0+RwfRgVX7ur3O/Mfc7LCypqrkBdWh/vP62GAtWpy5ek+/onWYgQHaxZoI41wicUNaQw2H+J5Ram42Z2TAeB8AwFdPn8vs+9dxJEZ2dAqetB4fPGFur75MYiy1xTAdhjsqwEOut+24J0Mz7Hzs0t1iwN4qtA7+Y8xFk/nd6b3TCE7H6SVy67AEaafSQa0Qy8/yxwFfu+/PLtW/07bnwyVAXef6JacrC1D+meo8L8eNaFCG134bBmb9ZT+YprfCRU+KGTrsPtxCuSvyTtdQby6v5KyXntkIToM3t+dNfhpODsXvCb5Qlot7YPvAH+UyS3uJO/Th6FN7HoByLrB4Nc09l+v5g5e7WjLGrAT1+x9+nYlUu18Iflk2XFepcMs5397d6Bm5r4qOuHvr3Zp4+crV+JnePK47uO4Dluu2up6qf4YNeR/aKrXnqLdhW9aB9ocxkYcapZOnU5gK0KAaTIVGFukkFdB1Pi6bIto7JUYU7md+w1qVIPEU/nxZ4R770iDI8zdRmauHddN6Fe+rWSoHRtLOLQMhnw8bq1SLzeJ14TxGvem8SawKQhTNGJ0MBVLvJELgspxhk9I2M/FJHxpy2avlosErZyXCos9f8iy6hBlmp8sdb1Mu7StEa+H0P0JQBtDLOcuuMttxQPvtPWtQkXGiL4n63ysNVNemBtaV7GwpaoeV9ts/xuq8Zhm3a+S/8KUDi4vKwcCvBNh7c+65rrFbsVj2xcvGX5ovPs4tG1t/UsD9ajF2CocZoz9NHPgBu8obXzheII89hx/zjsic0Um7G56lx+rgOMRm00TXYX6r8Dq7G2/LtAl/PLXRJ2ZZPqSgKRxpUKDio8+xuw1jlv/hxb98Jf6mdfLtqrU4lGJfUar7mrc3Lu2j6uuk/25162zy+mUjm5aNx0HqIw9mAJAqvZTDO7mXJkpc8XaEg0OsFwZX9+ROXkonHTeYhgPBAFXv6qVKlBCjHx+8zMApHOb7NvkaL8t8UsvW0BmOj0VATQBYopYQGlLGQRi1mipfkq+C/uZcx6cypvtgzfqZ8DE956+uK5wKVPvPijHaB2oo/v/XzsnjNwzgVSK3hufACgYwSwAqTVLz5qbrpSP8P/S3X3EWQWEL/MBgPT31fZXwP0E3Q+F3Xb8qwsmVLa/xJluIX94qUTzWBeGtlqL0WDEdOvKZqUqQyp60rvQYzZChRd4X+1KCuzLChrBUjs3xuAXoQzA9h3nI0B1840HNcdIAbiTUdbytoKaO4uy+mRoXeVIa3VythBozmc2E3V/6QsRbNPtbD2HEHnAOG+A9BcoFj6YPFmqNPGQ3WKs5WZyBYPwNW2VH2AGbTQhhsCtKs+7Q3FDXr5GXAWW95tp70Bt0EVevQasGHAdXN1tfRk+UggJBB27x7Ar5lwvLKx3QCzVI84ducixUe3f3oATBalf1gU1yQ9IRsw7Db+pwKkoY7+cK53lmxTB2CqxbJsD0+NKcwgY4CJ6Jor9GdyBTBs3QoxXFyWXV4zZ+nQbLZvhU+Azzt1PT2BwSAjuRQqRxSgzdI+qvZQ9vkXtLsbRf9ilDyEfBz+SMQwFIfheNSPSuuslyMtzoFZCTKyq3X5TlywqaxKlvFmpTmr+MY21l2H0lJH6ckr0/4g5fU4MviHBVWyQpZLbyYdNH50KxkoVdASnPKnK4oW5lbaD6zWpa2mFLa03vCgQlsDj2FSHA+VUf+gWTHrHSUtzoFZCTJnFShfFQAnI5uuWnomRwtds9jTEmxL6yUOWE8zmIl/1pSRcArzM0zeNoG0/YE1zLfcR6ZNDNirP0QDvfnPKgBkGRaTokAR8HdX+G6+K7f1/P/6d73+E7/wK6/yM1p4lN/lTd7mhPapTao+IUOLfsRRR9OSTLSM5/0e6DuN9+p279KSPlhJ1CDyiMOcp5r8ovMKJYvqXrkL8iflH9jdpxBozlY4BZWCvqKoq2il6Kzop9iwB7mHs+finhml/UpGSkglTyWe0mOlD0pbsEzYNdhtZQvlh8qre/33EvYm783fW6KyQ+WSiljVRfXmPuV9Yfso+8b23dz3ZN87NYhaq1q8Wp+6qTpKnao+BHeGz+6P3//ogPKBvw/8f/CfBwsPrmika/RqHtKc0HxzqE7LUMtOy0MrVCtOi67F0arWOqsl1Lp2OO/wlcPftV06cJ0wnSqdfp2bukG6/+jL69v09fVt9N30A/Sj9VP0mw3UDIwMHAxCDOINcg1OGtQZtBvcMXhp8N5g3WDWMNbQ2RBrGGWYbFhgOG44b/jU8IsRM+KNgo3IRleMZY1PGEcaJxozjI8b1xifM54xfmj8+gjsiMMR3BHakZNHekxkTXab5Jh0m9w1+WwqbVpu6mDabNpletF00fSFmbRZq5m72QXzEPMy8+cWgRYCi9uW2yydVupWCCu21XvrA9aR1nnW1210bfxt+LY7bVnbettfCDXCitBDWCNcEf4IAiIZkYcoRjQgOhDDiEnEAkKCeGe3y67YjmHHsXtg98JuEykgi5C6SFukD5KJFCLHkDPI+8gV5Bpy016wp+zh9nr2CHtP+zCHXQ5WhyMOLIeHDr8dCx2zHcscR1FqqABUOIqokHBZS1H9qEX0NrQW2hUdi25E30L/cNJ1SnMadVpy+um8f3OvHCOmR3da/AL/x2+nGAIWIEHACqgFAGUomoF7h4rgidlotoV6eOoDPdS5iqfOqKvyP9hFHDlfo6csFNSDBMxS/V1VNYZBBzOt6wdH7UQbFbSlCJy/jV4yB5/dG+zs22SiJ/F0C5WYskEuvbmewYoVj9iPSiWWFRFgPjHqSMyb3Zrh2HHXmcXdWpu9H4kI7Vmu5z3bAsEU35BTbBNlELkpTLBdCAbYj9PnRZ4s2O/RMoEf7oK62B96xJqCAQzHhOrXSdFTt88AyVIjV7OUyCCEtQE3c20wrOKuvTpEiVWeguCEXq+42Uo8Nz70/CdX+7iuW4Ukj0ThyD03NAF2sK+94eQ6QL3LPH481FTsupVEBNGTdoube6cfnzpV09TWRxvONlWfopZq47NoRjF1VIMXxAcwDjGO/gcMoAtn0HCzrejCIC6PN1D5y1Ik77/99PXPosCfXz+9fyGB/FX4/OrB/XuvPv2QetiN6uNMlIUkIGzQkP9OTfueEnVW1E0sTNJUspj3CRg55h+qo0byyOTOrP4DQO4G5aQeMkQhQxA4eciXAwWHmdig/sMKJux8+r6cpZBUqJClvU/XnNwlir8OX7KYm7jJ87PjPdyd5x9ZvcXSk8W/yY6r5QtHjhfDr74FYYp5Fp7hdQkNLy8sYJQNE42RGJX52nc7CW0kz1YzL/CQUWbmxpSSzpkE0OZ4hfqiLM8ye0HlXLeVAhlr4wIsuKq+PtMCcrRYu1SqBans8DWkA1UQ80qdXEM1yWUKjSW8RefxEYAQrgUlugPUmlz+V5USGYjrGE7Da6WJ5f+Yz/VVpd1OooMqLqZm8IN9uXl3+9R6lS6do8I8B2oT2wxfT0M9Bebhk1keKraol6NgX9L8PXX2Nny0IszsVaoiHGGEzX9yzKdjkpcgXihpRnnuEHdWwOngiAZuey5q+0gKaDwriGiSaf/mPEPfdvslyVqZR3lwxuEOvYlCtNS7XOIcOJWRzQePX2HO8mahqxYJLaDPD7MR7g6B2nMckwmfmSnoEDEPDCEMtR9aKLh3MNIbTWDgADr86gJTqlXENz+ZlWbCt95asHTG0Q8uLmu11DjUU3JgWnyrCMf1eLHxCLP/tWbqucIe4SwHunv5JkEBCf4PflsoG7sSqi7EU3ZYV6ji8pSW4KjuLT4pnBo7Sgdn5V7y0IFObgZtSlUPxHLX2lR0gMlq+VhGmI8ejSEPyX/iDvfj7WDFBbt4hBOS4VPUr0mhc+FOVaKOKQm+BRxO6UQEjSp7A9I62Ey7fqAXShAT0Ovun1vrfP+gxtWkcmIt/kAzGnu9AUQeiX5hac2Jr/ZAb9F3FRa82sNQ8IAtjNekm0lbDVa5B1uW/eANZ2czFkGHcNXIgBnRfp1WdwTT+nZugbcWO9et7s+N6IXAyG39Aljoh0tTw/ABQza2b1dlR+V7DPVmNDZfe9uxyY7N9+jNODaLJdtasGPY0D8mAq2BMrg81LedK4cLryLbl0krfOqNuaeNu+0E5zAUwP1/UI75cnqhgzdFTwwfuk/Mgvko1alnoprT5B9OaSfbmsA94IDcnRfZ0rRrCnbUuf22MLPLEJ5OFO8JXPdWDZtba7Ye7ikB9sK/XDn+aAv/4XIVOs6Rp7TSqI+wDzIJ9RbMYy0CnuXq41cf3/dpCPSEXIJwAzJ6BdmzI5qXIJ8gmLMYyQHQSute4WU1iyEMU0Bi7KFdOzgROKRUTJrioYG5uyBVpGUPrvTNp15S/PYTIc/Y/gQvRc5GEGQa3WF4vxws9hxb08vW+iqy6w+Kw/zI9AwqZ5FL0eSDFvSeiATekwg5q94TK26GsBq8rHQiVnqGg3AoClKCuvryeoBXJtKrjiq+jdpMNoWhdITZIwFJgVkTUxz3zWSXsdE/qxkkZ0y3Z7xgX5rxl6NNgenZaNnf9lqE0FfmFsPqpVvvCkCDKTBu2RZBphMtwLjhlHnuBj2CMSqhCvbk6Hziqkor97gVdLcw20gFOYN80izpATORjHegMeUB5s7AGhN4EYJoDEvfwa6O0T9gMZlbp8K8Iu4WJAGVCOKPYb7VzAnT7OM0B3ww1iOC3kBIHWhwDXXQmAu+PVUtlNvZQre7JoYfK54wjHKMTeN1kcFHS9fCexXeAGEfTehX3R6qS43ktmDHKtvc11hMVxmDvjW2WTPm1vM1OIii2l6+5xYIWBHbayAQQrbFxYfMHriOquXHCDpFewEH/RBn0ANZnhIxpDjjXw0vcSlVnvvY9h/bmjUPJhmHcdB++Bpo8BgEtrBs2Kkk3jKb0ymSQv/jC9teS8/WqpLq6o275u+Xh+AlRQWGCGckYePv97vd2wL3uP5gXp2sW+e8PMIobxK28q5szmYlq1g8BOdgK0dA6QIc9dHVxwLKyiWwSdH6RoS7O1b2Y83FMH30hp5wHrSL8CRztOe6J+cH+NGO+REdw76sR4ZWVA1z8I80NyIH9G0iu+asC7B1/rfUpEflCR4YTsdynlWn4e52nTKEuTv8C2DhaTj3RLG+aC/1yckziZNPBPWQlScB60q3eT3mmcyZcgVSoNcMrUXvMxew9yEFLOKkEtALAdOYLlrCZpTl8Usyr95DKij7/SpRK2TSJ95j2d5i814MagochsHW/zjPIKnORx+aGFeqevoGfzDPzvbKFXBfeE8s1KVbl03I2KAjuhU06AUNdfc70uei64gz/mTFM7oSBxUWuBth6qyIXOVgNvJ/sFcUnvBmup9wsCkLfpEahwtGzSYBjhEan/ij3fhTukGpWG/3Zxe7jA+/rHJFRUPaGFdBT3FJyW5pf5cZ6Hlucq/UlcAAGUqcuTHlodFneAhZ+UXvVRdNr2zyKxHLeiQdSo+M59+hoyCy9xf663xOc0ivOiv62lplg29BDYFbe8MLJS8DoBDqSuNR8QvOm26iCtMF/PJMI5XkxIyM/vDOXPt9jzYEwkJkX5LVz4NfSDTkEgQVFwRGgdGR1MIj3h6R1KpHWTj8+UVNIzdtRuTq9KcrmCkuKdopNrQrgTb6ztSIxxOAYknukApDakQ4tXXf0DOsq1t5XjjylgrpZ5L0gUM4EzqTIruVCGzCLrZcoZ/3rU6YjT7lLuqTkClARifDKMxkEFIDFbdP0pycOITC5KTEP1ofjHJqejJ5R73cZm+Qh+HOTMHOZtRzJWvX+/mU/NMd0bDzBsFICr9IAMNlgHd1hIXy+3O8X6e0O5s0rMfgwu9/v7s4UeZtfETuHfn1dCC9/y2pfI05yoALgsidL295/ti2L9rwYiAC5gj5wMtc/uyiC0SnGVpJ5bevh7z68FOLwIRhoZR7XtLX9JPELlS6+uJEYF48b3VPFsVeHiIF7sAkwKOS91L54O2D+Ybbmmb3XystlUggDbHPtbAxftYldci8vvhOZCOw3ZD2qXI+Et27yjH/uEiFDMWoxKfFHREDQ/y2XE/b5jX5tQRYBxjcmH3dAxCIQKAZDpsK/taYSXKGFb0trtN81F2fk47eOHh8h6ZC0InhfOmNMOmg11qnafZaEnuxJzt3cRwPdLFbCfkgQEFFSm4nXudkUBLsFNwiTbCUJGgxjHyLAj4MnLj8Czu+LBadDbEpJwU2XixnbCxLBsm9D0584hbodJ3nlDRXOGVF/86NlcHmYeNP3VYxuehNj5qIjiothvKWQn4ORDc0ytiPHp/CzC1AczA5rya1q9XAPpBnRgytUM3sQIFCZVPCXHywpGhxj421E6vbnzLqmmcv4uWjg+lGEZf9oe8FOKpeiDbk29p83WgIL8Qpba6QIq2yIaFJNkQ0oaertOXa23ZFQ1OIVayveRReULJsrd3EMxItSCfRuCrxwM559gPRDbXE+FG4UJsvRw8PZETvkWTKDXrJn1sPQDCq7T2fuATV4PQBE46KEP8NHoTuVzM1NLJnAcUkD+ZfZ5ghuvK1A8KPb4Vky3ZhhgG7a9I27PnkdsWWyCBMWWwILmkCq2bz0xBCaK/AEXDhmsUKqqRAkGu1dzJeGrwbVGZfLQbh93UZ3o5IgBCCWVM+tNtFV9yciLp/WSlW+MycfFsupj8nwfV0Pw28TJSYr5ekaEWeuGPfSY18pT+Zdz+QzMfxrSweaLIOyaHFNeLtT0AEcvsmGCW2Gct9MVfZW+D6zToDY+NXPe7KDThTE2MjhnoJGl9qpvaSO9UcsYm1rZO1Gu/HY8GCbb/3bBxHBbH8Dta0vUXfE2CaG1P0Ml4mMcfISLXWz4Z92ruSo7Hz0sMRXwJjnGzu5WXkMp8k8xtGhlKvM5TVTlOLRCUL6etRJ2JG0U/s9avZRwocQSQx20bFp/HuqbP1zu39w/H46FSm7i6B6NgdNgtkXNUfXJYFfuUw/Okh9SnPAzd0BADMRUf4flBuXqFGbEqqL4fUvA3j3ZWhKUUzXP/7S7f70O36uQ/IHoOfyGy5uzQVviv2lHm9cpSnRLuNoYHBRF6zthIHUfj8IdEq1Ehy9RHJfsxXFowfHQjxEgPTePJyBNZOzmlXBFmgZUuGvjfeLfm9CQNfzb25O2ru2aY34xGzRZKkLWZH/JG4/3RQkJXicAJLYdRppdjtb7Fl9qnnitGwy7xP1thAmnKD59PwhqKhjWxdxYYmfBzenNK2dgi1JlrL2uCTOoTTzaqzEsdrpaxVTcv4/dEoW8Y9j/mzKb9EubzrU7S2q1f7y56jOcGKPaJ+YyJSnzAnLvuOkVFH9AUgP01CI4UCi7D8CYPjn99ceUKWt63C0zGrLabnSio/ZH5DuuD5Uu3oV63zlSDcVgmxdR+0xXDtALP6rdDrp30usoLNLmc/gnvzlxg74M8FjHdsJoIgQtSXtFQoc9it9tljec/zyB726SFwkdKKqyn+7IHYvry9r8t2t63rZa1WciwHmYVX4Mg4fct+NnXI+jAZ5kehmgyOT2JNZYSHOckpEUtSYzT7OlGGMqVc1PPZxVcTqGSfKLvigkQglL4w3vV8D0JZx46JRdyS39YqmczDmsMEXIu5OsNKA5yBMF0QxWe62nLMjIf8OpX7Disb17tU0zSMkbOmvtYXpWpxc+krA0gGefoirWXFyc8S2HeWQ5rWhm3qjBr7qNvSAqVpjS3QnOgPjaAxpUwElZiIj7h0g+2C67RzaQhUjnMWmKoKpN/W0qL2+1XDJ4fUaQcWlTi2IR0eyCCbQnvoiIcT8MwWmWUz2OEPwz0CFEFulko9OH/ATHQOyyLNcBLOmcUHe6r4mrHCYKijA7E/zzodR04S3d0ch9JRYn7ENDZHdk1DnIJXq8cfFq3cDQRJ9lCFWlhNnqKXrlve9aB7ZkeOoIsFnTliFYM8DjpKb1PWh1J28qySj4cGf5sG2aKPNJ2gmzcVZ0Dj04nj23lmSoygv3aUKmGZBlfGMQfaWrCVmzlPsZCHLZfews3xUiMX9iBeYlVptZJfC692m1JZ0ySWuKML6UPsQZgi0XZZVuJuvS/csnFu0sSEQAMTgr5lOCIbyzEVQTwd8mPLQtcWMcdLqwba7hqkWcqZiW2gVpXewhdN91TsgGhwbkS7YGP3lZMDM7a6GJ2vnq58kHccp+k8vk+y3w7Ol8Kor2MLwRok4IpOktzIMAIXYWkTQl6u9aRj0nNjKqUFFhszPMWEOXBHHCUBT7QzVK8AoOywqoKs1OPCxm3R3E799S03T9YWfRe22NWlhAmjuq1T+cP2VCY7cmlhLVHyfqGPrrHTi3xLymsKMZpD5aLBKjVfYtsFDCjgIBhRgcHlH/jOq49kk3jfVSaZy1fTk8Ec/4FMkE0qlg50iv6Jp1K7UasCNC+BX+zY/6a1s22OP6m5e1V5Kyv76Nrwp6lXNb+jROF0G01+1PTbC67SCcgy8/aOo5/6ZY8zjm62UvloesO9pJdfON7hp/gJ9x4R1+cwAjKH89AJek1bbFkrEryxGoDnnWDESCVAhg7C8kx/eYPiPBpofPZky+HJKM74Iu2gJZ1aE+kSqDwlnTV5MQ5rUuqgvsyD4dWa0s1ComfcVzqwkQzh/BlvnwIMduj1UjXOr5pa1dEsh1T6DI3RrFk6LVE9RXgTfk7nXvzf+oYw2z2D5WreRMnxdwtlaoYHNxF96o47wrL6kZg4LMQquNyMLwrDm3QGK46AcT7s+gqIRw16xsqM/d8sBoyzn6HcpYBl8ZYy6TOzZGkhjFFpnh8l1pGXQ6wvhjN8C82hLJyYObk26oskZITwC/dtvnyKrD92mWjk/ik1w44rlGS3X0XMczm5fk6/zJxPAVrj4NjFe+M8D4Vk7HpC6ZoQpfbqcdPxhuYhPKzUYINLY53utVKX5Zmh/vf9hOFwCfQr2A/HTGZFKZEHSWmLXFUli354wN+Ig7oCJKFnZlRa5Jh7rBxGvntWig9SrXLcV4gF+wH8bM9Zl4UuOvWbQjSRA9di7+KYW/EhG5T7nJkVEXHMP5eYMOCjd8NF4Xel0Cqw9d8Tgh8YEYYhmIdRWVvul1/5PaW7ZzwMk0D8BZqHTrkA0ILdksjyRHXKpMOyx8PYVYph0JQUPdPGO9Sh8rCVarQLH6QWLnnegkLWNHA1ONmx3Sd4DnQqFyhfFQs1d+fE11OyDzzdcVG/IJf3nlUu3+N24EqNNlyFmuHdri7f0Fx22a1BUjtsAUUE/MV+HmhaP0cyZKkgj0Dd1BOGddVKiQQJN8MaHs6Ae01VFDgKjxmVZM2KGwfnsypl8jmSayY/ulUJ9kJ6vqP0OLgpMOP9cxxCuD/bCg+2WFAhkzBUDthR7FQcKpfEpLLv1gN4dj4YFCPKTL/982FpNz2qCIDDQYX080ujNqj1xXAviNn3z2n3mihWEG2NmAmNqX5dSW4ryGhFsjvAOAQaE7DSGff+ShMQz46inj2uFJsjGtcCR33wYsEOECNjEhR+hMulQWKs8y+vRPNRCWtK7ixH/OAJgEVu4kE8FsAEpmogu6dO4tzwUEgXIU0QLWxhSYsLcBYuzrlAlic0OVglt7SpcqnTTOLyCU3QS8awJTquvfR+HdeyrqrKQgFnkCFJFGE/EYQEh+JMGOFOz1B90OgOhVH6GwO3XzwjLqMFu2LQ4t70orpSVMDyUZGrAciMWB3X7G3UEthj2vRpjT5uaTIBsxPpHWNnkFkRExz76ZSU5NCX9rDVFLpOADpMkaJ6g9SeUzqa6NA8PM2EvE2r18IifwTe504n46Dy0vt7buM+iutbxLZSQAEE2uXgOOubwTrPaGj5qrfSzdwrHCiHZUCCniUanLQ9x7TuX8fyyWE1aLrP4tiH0Fq9urnqdqRfGFVY7Sw4ZF4BhW/nGTblcgxV4HjeuHCYab545MVGPPSKmSvk54JsmisJ7Qsxkli91B5Z9QI0AfpPqPtECtCSM570BdiBsR1k7VgobJ9abgOj0+Ie2GxcrSHSr5DPx71wwV5jNty0wtSO+Q9qhq36RpDiYSvJkWfKxG9LIhlRjo1MZOmwNDiHC8DAKRh4olRuFtELMmMuF1NBfSPMNLFTtNurFuy0OR6UFsVpe8vlZLGkdrmJCL8ReX2SLJFSzWbvUdlZ4uz+PISB+h9KLRGsCDyselRYnXjqBSK5nH3wLONsA2RFUD0q7YxYWFyz0gxhNQAjIm2GONqpURux5sYsMQcEzsCIKuiKDKruS4v8GUXSiKeSE2/QQ4aqds+gHMuxlW0DRXpU0P18sDg3NqD23F2LtYQW7F8tSe1NF7mGUkzbDkP5CRWORiC4JVSBCsLR36lnw3HoU/mRKW8f15txzIk69Hj68AK8ptLu7PJb7yGDspk37OmDrKXtkXW2usuVDelJzzU3WjAux1wM37iueBn5vPF9UZp5qYdLmAir+CdIHJ38zuxJ6pnu4lNgv7hcw3R6S6BDJcS8hRLemRry6QgqVr+VDXYZOYMe3ma6skaBml6CZ+je7J7ujfFUbFQLP0YETY+qmHWYFd2Nw7u2M2YLaaZrOWio5m+uPkuPYobaPZkwAsrWIMOVTHH1hvJ7i8oFKZ2tduJTStXimZyTuVo7mC27wkll4BA7s2Xd+2w9aMnQymQCI1C+kM3joe0vfTKWGFdub0RYlQhniH8x6bR7rsYjSal3xSrq9q5ZMYKJW1RZdQoSCj4X+JysB/GZ/6F2zBqtA786axMaUvZeH3rjfxOjs0ZS/DzSMXaNe4aJqAhhjMQaipt8zi1l0qc92domv9zVLbNmxvQeAhi+ebV+EZtHg7lRO9Lan1oqRgD5Ahfhim7wZdmrRHbhnEAfcJExlRK6zzAYJqMbRc041ikTl53V80NszSFTG7Z/IcLqyVf6gcJ4UoYiLBGPtoQvy2YKH6m6no3grM1+O1Ong7bWK/vFPCHGPfVM5xj5O12+uTYEIYDjh76u0qzvUV+n72HfWmjQZL3Msr+1XMtoWgfiB/B9qZeLavyQmgBk7y5RxwHCnUlmChEPfldetzF0hQb+/kvOh5sR2vY7wjEs+nle+YdqQIcg6ezCc1WgBY4KF4l8dNOlUffZmFBC00pgcJpsOlkJXM83/YTGGgK6+iCxA62uZ00ilkQvj9ZvtqzK/geoHeS7JLy/GiLQ7FoG5f/v64l6v/kb1PhaEgfMkvLzFpbFlKZkWHZ6igT2g9dkZPkPzZ1U1aSSbpJFY5fkiF3uluEncDOTIWsco78jeNCi5lPb5bhSnFFMajEIujGd6eRj9ebQgO2Wl9jweRsevfBnQE/9UKud47BypYzqAfaIMT48onfkZ/+hfgz86yJEoANO+EiJc4QWicYOqqot6Hi5mikamvFvwD5w+LEMTKnNUEvgrpzHbG5whBwlBEUVRdiiSU0raa+/qaVmidPzN+CLX2gt1qquo/a9585oPgFDuPvoGCchW0DiGQF62yn74luRkZwMcbIp0/ej65BPVgP4PhRgQMEzYxBK1CqFPKhl66kpwIDt5akM27giSaFOuOITwCnxBghs/XhBbg+zTr16hTWg8T/rcTjyBzXQ2I749Zm9yZd/dWleP7aqF69F7wGZeXeQErHjUprvW5f1TDTZpFb80g6NsATN7XtRD1+J36YRuMmfHcQWWeqMDdn55dQvr31JPEkZjtruO7l3BLU52vS3RnuzDCgpTJ/h1WdjgvA/vw9BuKAeyZ/wsMacrtpAw0kx0hnEZ+MwoKWU8eYOujk2k2EwgRVg/PgSnQ2oT611CwgjUUl5OuM2QOc9LJr7zERvm6O5wdZfifbN1HS/FsXERSFrrJvMhb6J7oWFjuG/QDdaPTjNMVNeCC0HC4bDfWotdfDG9rzSkkBDR0jOXJxktZLqrllUZevB9n4gQNJInLpkthjcw44mDuOsIreFtyTZIs87LK83kElNfXkeOpzLeB3nDGu2FzCNVkNwAbA8A7eEB06twtcykK3RiGKvxFNPX1lRfcmkIBxQyB3+fqAaRqIM+Q5l+BEOFwOA0Pt8CuBWREsIu2ssOKLbYivi7lTwVbNqpGVcQ0fuDv+u+4AjR8BIiiuvwZnN54x9degtzo5jZhmvdhcBHwZ1mTpd7AoImGSDOXk9EBWXBh3DpaedRx/QGC8915+c1ivUnQW5dW0OyS2O+1fHVUS9BSH6OAAmWg6KZTV7eGJ7PHLb8GcOTFNWvP7UrWx5e2sNsmq2rLRwHgO3ORCk0RWLqwrTDc4C23LWn+ovJPYaMYKuCy3Pi+IBc8ZE9OnetLWA8IT6+fZL93UlIFwvH2owzr0WXCBApJD61MIXJoJ1Sa6OZXrXisq6gONrOb9W9q+ofEy/fi6BEpAbNifqs59J5Ld98E1bwNsCkmOXy/h9QhAupSjFYc99E9BPkzm/WtkwCAa2/v/kzt93uzcTa7LBfQYlbaSeaNy57AZP4ftyatxteM2snMBL8K9V6aVRyZKk775PU3fix28HBxulSgjbidhI6Jyy/z7FltwOprtlcrYd1DJOFsqrW55uQQ4sQtgGH1WsbtQG2ONIA17Q757j0/sPj381ouaSK6ZXw22Nh4Uk3+G04Lj/WlfTOyJcpsN3z+2f4rGfbn8Nfij8JW8XlxPSBQEjRNRVQAM2waBfntycgGODJMlr2JwjFbwjnbFJ+3VZBZ48osLX8BbrOQJX4T+f1CRFzVnIvdun5GOV31+i6XtXJPEaetHLzzRgqa15f3HZkiIuyZcqtNj9HWvlaHRG4+M8xuCo7Wz5A62TOGZUm9/+YsJWruTNc9MJMX9JET0YtkWtOJZHn+N2Ja3Leqg3s/ZeqZ7QFqeJ86QFs/Fy8U3M+wAu7YDJnFk8XPwuDfl3yJSWyNNGIfOqg8Ebgk01IUokjwqO0bCXnPxuGxQKqoijSfMPOyDpparkKSzWdjL8+pa/tIgP8oZUq4yqJa1EUSbsxt0r1V/NxfqhDy6+Eguu3SJcm29g01Vh8i2sfqzcGppxHPdWBW9I3Lgu/stCNhn46rjgFbDSakyxMirGUp0G6idB1owWmk+LNeb1Lc5ZJj9tcm1ZHjvJ5PheexFTD4Zpo+UScrOHlb/Qd+OXcc17m+Dtup0CX122q3c6Ac6o/by2uH36UYXHUBSg55YwJAWeUBgc1wafX7x6RgDUK1R3rnk5bznGOWyuRnZZ8XtvSB4z5BvCt+FF0rTqCGT88yNmNNVXk95kyEWGS+Q2i3ADu0fOZK0/YO5BY8G9elx7oRSLMwuH9a5X0eB5/QGIXhNQzQ/hLqN4mjJGuEIK4r9w8L85r1v0cy5mKz/sl5/33BS0sKI/IRVvA+32IXcgSg1l593ees45NJ5y52fxQkK24ODA+wG0zn7HL67FMuTn83CzaH0KewOyg4CbSCTWOS5LqJ2IwK3FyGJTeBYAY2zd2Vty2+mrG3VJrxP60jnRDfRXjg+xHfThIRtkL5yegAf/4RwPC2DXQ+du9gVYPzkXtchWOPtirLFgxMXpEx/KkcpnRIhOhgP9pu9pfQNn4Thx8h5L4Pa+FERL4UT16EFUCf/fcawLO5N3MnnVqok4MKRuY70FVdXS8evxo/Qugay//XJxTxxFVVqABavaFhXUK80edzAKkkM1ojI6I+3Wrb6cqmhaEqA3FRBva7yCYocTECBtrMS2npCK5EpVfdgwDsTbeiM2YNLTNZpuCUxdVMOEJwrUFTIzLCd4Zmd45zCUIaRCxznNDkHY2+z2UI0/GVvPgu39vN+s5BTjfJTHpj5RdhqVjLMH9DQO+hhix43qEjhPrzAPuQ+M3wYu35hUA06TlM6FtsUG00yRiPNhgh/ubFAJvkDgssPrMJmEJ/I2VvYaM5zHsXG9Yrdi47Ib9g+kneiwVCmSU/rUauXuRirpXjH08IihAfXB1NfXfvDCSUe4Now+etsYxHaKB1H1+k/5H9w4beWVs37FRbAmjLZKnIeqYIo0QGwglN3q4Lhs74YwoeoYsR5nvvmUTNjxeOeZhFn3AXH/33BjuHH4M67JgwEVxjSxvv2cOy6gaB6xgI+gJaBsATFvZ+lGTwrsji7bTkJyQnhDzu0uya/HFFF5es1NQwmY4dN+JnBc1ofmOM92+huzywxuKOdKdIKGvdCQpxXF7v3InejxURnZM6y2LXOoGexZFHJPCzwGYzFpGHfDTf826IhJHS9v+PVRRIpq8ZohlCYslwth1AR5D8xVcLptwF2ewdI9j6M58FoSvrBntYZm69w6mN9deNdu53ZsSfy5DuMW/qqsOCOTmMwaFxZ8Tuk+bSZ9oA2kFFC+5IG3OqR8Jxwy+LtT9mQmKoS/oWJuZiO70778tHWyWezg+iMfHYgRQudsW/c3qxE5Ao8+Ix/HPtVY6XoEjx0SYz57fBQk0sO2Iqrotl0RqnICaztm2wI2swmxo3Yx6sW3Sgt4zNOPIHzyhjC7wdhZ92VTteRyGHkM4/AToiAaTO6WSNDO+OMR8vl+dyHWy3uTgfpqmfKOMm4btSq/lr+dNNO9kYrTSOUrZsLfRJzFYKJw7ckpEJK68q5aW+bLrYe9sCIMj1xBBv/4jT6NjLYjEVN6E5K+gykksh+w05s7BbKv6OVBYp5elPIErt5a6LMHDm+L0Z53huNqwrowWfJlsNG3DMRtSxqBIxNCcFvNJYs2rvuu3Z7nry0/qeZSOOxCIAQIwZoRds1IXfn9kYOy3WiJsDd6dD0dRDsK5EtDTPI20j4lDtFUxuL9aWO1PbCOI3FEoMky+/wVjbbNmgwcOTquWwmy08Y3IJPhnaQEhea+iVHP4Kxf8jvSyjM9iC9B3mdYJJiAEVHAO7D4sq350Q38LmGX1NIpkQrObtXgyOhwbLhFUZqtvmjf0BFsaX7WGOJP12Y+Jk3H2fc2TBzDVZ5Rc5Qcr0U6SX/kTPn2afAunVejEpReN7O7ihlTRSQPNzM0bpgbCBG1whyQw+bDiO6WjF5SUejtnwer9OjsfkZxVOVsBglT8rEuFvQ3ZceD42qZPsx56kazmYFkKQoROaaANSbTB64cqvIzW1b9kfghe2DuG2YKO12OCuQmAld89nBF4vtUvVU+GBpzpktxhsK2BGKqFLx6kjTkDcMk2Lhf4vK2TGOV0NcoVZGkHpAMZGHzBKsZDTvjGCs9EccQZfIKNetWJypDE+HZGCEnMw8LRb8e3u6LLd/4wueiJB9Ks2n0uKTvbfSuYvMPv0gXcJzkOdy0cZIcJmVdVGk5fUrNWpgdxJIwJt8Xim4pyNHe/04EYVgY3r661P2yynWIjK0vqJVym7CV+uIFT24vZ1hTLMC76nR+t8iDo5Bn5FtowbzIFaa8hMP6W+DyF/PCETSsmr4l8OavY/FDN/oirT3j/Oj5w9IDAXP+reaSY5vLSt2mcMHqnnkAPbsRWo9MiInt7fzqx01TgGQZyDev0bSxZGY20eQs2jpCOaSN+pGLdw8t907VBklJOMI7AcctIIDwo4RRNiR0bbbBg5VgMi27mfGWLUysWdaiq8k9YgEjHc0kW87WppvHzGotW0CY5ZZTTHqVHMzD782ir4GfhuU8lBX1biY1Iw5Ipeqg3uyLGah9y9zIZUfmFRryxWq/bp72UEOdXzhr1e1P7tesFovDPVnbl5Ujs9L0ItCXfc2CZ4togYZ6w8w6yk53W5WLS5lIfXsTEyZYDCO3djHFOrtGiZX+aBZ04MbehKmUmcVmmhxzQxUmen32qRqypoA0jxbgWUVMzhWN3lKWyDsoDLZgTAXoeyg0wXa180BaJ69c96J3Lg2eHH0Yr88HavOfXbwQdZaZWPIQfL7Y2KKPPx5J2XSR2XlVyhBw96cTg4tfiy/5HaeaMOYklyFjxx5J8KDoi1h7b9wcvLAEtC/Rb2taOHuMOd6KMp8s/xChfQyLy9dfBkcGo2nqTUFTRkFIu9u/n1EMl6VMW9j00n5wMsfJcZDAlz8atbQILM5yaeA8M8KzTF2p6t/wJ5J6j5UE8j6nkftxHeNVf5dCEP/xUcVLIOzThpXrRvIEDdB8nDZUMWKiXn9rNsRXr9VgZR0Jjaq/agoQuXAQYu1PX1S9mOWI03b4enZ+tGxK0OFH7VO4cXw56Cy7octovj7BRw8WaAIjMEExud3NXIHjQJdkhH2onP08DFHUM5rcTijDW3Vo7VuVKqlWUbJ2X4RP+n4Dtp9eHAU9IUuA1wf/+Tl2MFVs0/lA5md8PHE+jDJZLsdYIXiGRjJEnCHAjWMjJY+mix/IgXFBrPmbipUA75g62nLZu2T7FsZ8ETTEGFgXvu9XUEllX2qnqviqUynwNIWGx/xPwR1HIpyrGOlIGVm7NRdQAoqEbz5L1WO7Zp0oR7qY7albykI0VSEHiIDgDfh38cKKzRjabsRtPL1auuJ5eCCz52if+mzbcFrJmWlLG/fyoujk+VWVaILZqjNA46v8hlsV4z21b/6y9m0eot8ZfztL4Q5/Sfm5SmoSnYFCX3ROSMKnc/0jZslOV4Bi7W6h1KGeWtL78OxD2TCivajVd7+vAzVB9Swsk+pws9nu9aVQEVx2iLh7sSpjLtwTKiKqCWI4culcEljKXw6rF5ny/QEwaq8ztCl2SJlNO5geATKyy5i+6xVO1t3Ra34RleoLjCbs8wvU/DQ7rPo1YUma6ciaNbQ8NELjXjUs+7X9XRqjgRTdmMSQaVz2uLDunkV9ZVD0wYLHFT0/noFb5HQB1TSNsMtBAX/X146eQgfQXciRGy70WBoaLGQWzc+CxV6jr9jeOxgb2SN5r9UOe6BBcIsyxmEbN9ZX0UmIh8hGHV568mttjTsbySebi+DiRwZ7rk96fUvHmU6I1zO9o3vFIoK9JiGuTuQK1amO15Q0de1qbLC79rbe9aBHrIDSRKATNIxjppc83LawGexLXxoBosCHDymDHLGjoaiWzlGoaV0nu8gVriqESxwZTFTFZvicA+RcbZm+gXPZUwDUyXKn1Jskqm/q0XjcTh46Wrt+/nCiQO78QvD8nw8/4Hc5evbH3Ax/hbqTvs6w8fyUGtJD4GzQv/iedbAYXtA9+dnYJe3PS7vUoM1ZV01N1LjKvMqbpOtPI7/e7Urqa6SnHGnDvjB0yiYWVaAGiN4NjsfiWBX8cuUpu/Warv9QhBOWj3U8gNiKH8VboNP5SufmvyvVsgp1Y3H5ZnT4U9aZb5bNSJ2eVsb8aelcddcCmkFN+Nlla8JfDNcoeH4Cmyz+LqKUlImDE/4F3tZ8uiRcAwtmA13d2EvHNV7oFzx+Hjum1Q/ut4uGj2k1n+sea/bueezmr4lH/8h/rZZ8a8z2dJn6Wt+sIWjkzHy1SSuortvJUjXpfNT63XBnZO5OLLxIgg949NuAqw3vXWIZDa0ncHZpW7taFaVRq1/gFKtgpKzIT4oofUiLP9X95op8/7l7LC22/DFURLHf+4GwIpMESml8Ub39VT1CZrBpe4as1IR7El3GgeUA+aRtc60kzUcnlLT+7CN4bl3irg+oCgJCyS56YEMyCWUbH7MXcBvR1i3pix0zdFbS59G52INeHDzh5sF4WJT3lF9KIRmnWH9kst9fJJ7YhGY8kuTTfxm4tBFRtdH1iu7Cp5HhPT1W536IvzY2xhYd40385nbyVRxHjyrpW9zIEpXee4XLyqEU1SAzr76QCvdOf3Klnjk1dNt26gIs/2OTYLRKjSRsftkPlGOdaFgy+nIkaX0qVh7RR42DbqTI5fcp81miPp9vsViUzPE6A0UsOd94T409pXIkqT151h+oJovjIaami3ca5Ca/ild0ORQ4xXvOL/qFCZnuXR/zFAk472Qc0E2X/CCz9LGl9KLpmY82tu+FW5ik0bEwk06RKEvo/0d/YKcf5j8TROKabht90JdilpyGycqMlqnHdxQJq6EhfSyz3ZvD7C3amSNNlwqSMuXdZYNNyiY3UvFKkdJmppA/Zw1ORdVVd8Z2HvmJV+eJk/SyGLvU4DrVx+g52nguqBuD2IWHd7MPdAzqhu3YxP5zh9mo9bjzWHv1KkoPrUtQa2a2S6uMSy4Bv14TLlt/rlrPJxD2fgN5yl0ZFTr04hZZPghfJn5J6KVfbjqLAQdj8qjUCFoF9gUgImCHXblForhFHL+mjv2p2ZzJAhEWWe9m3H/Dr6zgLZnNU4IZVt8mxKHvMei6vGHq8YXP9sSqIQQDRIkcmJpZeCSx0aOFGbH42iWhfuna4dm/UUMFBAaZrYu/pVl1dNMybgmtg1qO16G3MnVtEr3lozPfOZ3x3JuguLsm3HP87OAtgb3/XrIiOs3A7R+gPyL5NVJ6/jfUWpY5RXNWWvHObVER/434lf+MeIODd1qaleZH7gxaUwsCeCOQZfK3XpqyzEG9r71B+0es8el5b356nECOfodAjUEzDpm66mVc/VGh1wTNyo1f8wr1nAGy3wnE4zMGsKI3aU+Nfrn3B2LZ60zAuSoXsVAWA7ZETAKavCjwfUSE8j6ozc/L/RsSTdvbfKQyUG2UgYx7Kc9/vZazG4ZMwR802rKn6l9KshBk7de2Wq+EQigm3RfphDEuAJu+YXnl8fdgpSv7CKG6tsAtaJH28oAwKyUB1hUkfAX3+/VXj0x+T4wCFoaW5eGWYJT5htwhYNBbDIYNpR6qR5qjNaYQn5PqTN49crA0wCmrWCJnp+DOOAYZp96qKE4Da0MBaGqJ6Cg59dfKF2v4ADjFe4oHQLcxvM8GKsFmq4Jfj/8OzIphRnpCJatYWTm63OHgmGJfi+gFssPcBl5TV5O63Z3dihhr9XLVgQV4Pzmf2717/eWhZxUb5Sk+GkCDTAmCJ/dOEg9UdevL/V3RWLJ3Rwp0oPs4MBXUlBgC3CI5Rk//BU6VxACdjDCVBE4m3AjQPhECesi3sCKVqDVA9CQoi6YBOzoUvZFEOOoezZ5HS42QNhTz1/rS0ueF8/KFub2TAlBnbaHDkCGTB6FJLFN9OGhmnvH4Htrdms0bjQ4wplR8LQyHBcCXVKFwYVQIEhqEEAYUTyVW1WbkZtZUIMRRCzqEpqE6UTrdqx1pa6cAMIZAh1CFW3e8iQrHlbVGLFbStL/ZK2EuKYuXWggPIguu5AWd+RnLev6+tqSI0JOUVeMxI8zk8uVqQISaiD7BdrquNOhfQnqaRyeAJDsR/ExzuYwz0ky1q4fHNpJt9VUJ3clNzwYMBlQwL8CzjQ7uKYQQNYslCVKGyoB/vI52oHbolgmLo+YqwJGiQVY+eQkeX2le4ajXg9jds5bZcgptRethtt56C9Eh7b7oEO31p06eklzZHXu8pRk8fu0LZvyZ/CHb8B0evIEy1/5wbpBnpgU+niVA7dy0puyLBZK7qbcEYjvuKN3mcbvUn70ssTpi5tAGB8eUSMVQLRxtycm4EfaNWS47QzWqUJpOJtyBZYNpCEcWRusp6CkotI7d7rph4uxoYPVNFoSRhO7ZwgnT7QAzMEbBbLHs1Yhc3Bi8rMMBsLXgER8ARXMUAnxtdcdZrIbX2FI5Zuqf5ElowS7Fh9VjYR/FgCO9WkOyLsLDNzrqMVGI/qunoXZdXwLNgBN252kUskR9yqjQxcoOKZBkpFhSgVlzlCEUKkhjRivisxDVYbJU8+0CO7AJ8ADBtbGvCQynoMKUCuCgOqMghOtsy7InvmoKknLNVPAkru4UmEHEvBhxeYt067pZnubTXjgKxTGVxjECN8bDIVdFinxrFDQU6RlzZ6tNfjfWDbBwiTY20LB7OJH6na1/xHxV0sCl8c4mmPmKTw5g6RJ4fAvERn6XBop50B/HkMZkupmipZX+daCJsdIOfXZUN2rgiBhKS/9L11sOkHTt2/enkzeTFhly6ud1sEr3M68I51c3ttBVvCt+BDQkBh63nCJnzCI2cWOn4Q8FA6knu7czp0p7DvpsRklWmK+Yus6jUlfPx4pX68XXxp4nUCdRNMf5DxL61o8l1p5YV06sV8SGY0Ku2SV91zi67mXpL8N6m/RMrDwDNhOwbUu8Cr/ObA6dYn0GS4PLfnmZhnmXoAsYZsPG4dJXTwVQY2zbuurcdNK/O56wLbV/tgQcYOW1QxzPJWULxl4wvteohN+uAlpQ14cpVIT2cBpaRIOdCTl9gJuWN42l41aX8lou/JEMJNco/zNeI1fXp7QFZV4OWNwTtj3VxxTt4OwWeWRJ8nYI1b1Sxmyt4bmJ4P/EMWB4+TJJxrydUw6PQTvIHdh0zBx42nVdEUN4u8ZjZbCZ/LVv/aZfttPcpD6aTaYIg8XuP3iE41eG5YWvCEOaMps/wDF8Hc8yfxj9EDIZq0e0aWW52SJ94ee9gOzSmPXKfQOlZePDlKBKbm5XfGapDt8ia53rpHV0kH85eDJLYvt+1/hzfQVmszWBH/HFpsn7WLV4yhZPVqT11nPk1TWhjNaaC1lqiGWMQkMCScRCTfJ6loSqxBYzgzzC+HgdWiI/ADHsCcLw27YrON5aDyB4bfG3vk46M3C0l1DFDQYHVCRr51U1uoJyXc2ISZ3mRbdyNCUz6xMtaxm154l9oYm4392nmCC60rlgmyZkQ2E0YyJKYCccoBYRNpHVQgmKbDmTrJwzd4mXOv1cFLxzdcE5n2rCpPIy6jEJjDLEDr1PEv2qCI+tj5YDLOrL9zoOKkyds0f1qAVnTzUnUSUPpTbgDJwjyy9aE9fyKzay6NOa5m7XZmoPLMbmV36mrCH+FA8IsfWpMHwaWKe1HfeKyx6Ao6JWTJRlqyiLnAxxQvxy50fa4LiaKUm8LxFMGSj+DNs9Kbeprcv13V1Xa88bydApYkcLEmchTe5XUqX0edBSXLaRyW6uZpPdsET2lloJ6gn1l+dzXJkB7v1Kiz7L21DFcHIDk/Bjn6mYTPEgNDr9P1q0OLkNXzhDbJurjV4gQMubc0rhY1v8kEFVfQKKEnh+iq2vCj59i9+srOM5X/EJbxXiTyfPzysmnt3Cxatw+pk+1fopxs7sR+RTRkycaIOd9tro1hl+zou7rs5upJupqNRCHTw/Sav6eQzCPHbfqlJvvi3PraxtqtX2ugn0aVOgK7mb6Zg4Do11DNvN7jESxAjNubMYMicc07Re4uzuqLEzaxWe5VEg18dDnLOuno3VpndJg1ZXwsm9apNljON2Pe5VBxEIMzYCgCka60wZ76UQ8kVeOQJa4j2sDKdXVRDQ81mOA6oAVBGev4CkCoarn2A8+vQ4CBIKQbG7TvUCU4IL9uyD8OsXgZlgbrIPR83Q/ck6UQ5HQvYXMkcz4L6ExklchK8+ZVJ3X/CuChiqwIkMGVMzouxVjT1/awfXNb/cSp8utnM7NlTv18nikgJnqUja6hVOnY00xH7OQYOs7jQqSNXQVFg1obWNpOYzNKbOzAtDbdrXOCIh+OVZuCdf+GgqYefQwvB4Kn5zSR9WSDpjuUoPyV8qpc5xDVXK701XV5IJfWCwvsx+KqisL7HMMGPcN5QMttB5puvyhCxHr9YDPU7OAjy+tnP+/vN4TQSuD3vvFxlcg8WbCalIHgqY25hcMbVCTuNZjtvESFW93+pzsl61Q1EEoV3tt4o5ZhuGvhlat4yzQ+3pM5z9PUpGnK+sgVZJAa6ekVp+owu5S6X5As2UshklD1rZnkcDDQa4dXO8loeGoltoXp0RiWePUgaiTq2ebYQvqcfV+JX3c9ZmFjOWFHKeMqP1XmEXrrlTjS0S59q/0WcY4woM07Pz9W6XH8oo9yzOsKaIMd+1MkqPzjdZBeKLQpFa8qJt1eO44ooAfRaa1nDQRqiCqoyiiDihndrhk32ojXdS94CVokeS9HjWF/SjuFoaWRpz/sIMgBtskWkIdDRAxzW8iBSYd3pzQz2zJVcLtVArWxrelSlmm8ObNFQcRNroipyK0FFkSFIXQQQddsh+l0q3i6uC1gu3XTeHNHPcDLRLVPAeCx3fQMSeM3dsD5CxcklmdI9pQrxtlRYMWUgQDlGOA+NDa7lnbwFgCCENmTeGKdRqUoSaQRlKkG1QUIRKXx/QWh3C++nmfz7hVCR91HMr2ICVPvLSKHP0Ba+r1uIDZaUb3XQmK66aGSvLswp1KjjyYb0XlQg2Re/Re+EbuLO+UgiOy2+aTXQJwkBSb6REXh+YG4gk3wspTH3+fzY/r+HASsYnDg65y3rny3Xw8ed69SKUTiKs3rFz3N1NwhAR7m40EDcnqfM6+u2HNzN1ytdSB1sdhNu6qSgJlOb6yiuuT2fEWQJxIVqN1dTGZazujqbrXoxfU+n9soqiwwyIv6lEmG3L32mGSYNVbKbPFYUeEflODHcNtmH5IznzKCJfmcDd68iZFGmpU8RkpKTQLTTzGRIbTfDJetmJ4yB/saoWKbBPTuGIBiJFR8B6/pUVQLOSWVM8Pv3Z763pkVeMgybZN5Kd7IqJAQEHWCwHjK4HjSs4g1skt9uLLS5r2NF3bVAK4UZXuG59JKl0+hXhYOEZN8E6zTnvaq6DoSaNWMZRGuPsxYZ+m0cgxvv1hilqidvBuZMle0wfywPZm1BMipxf6JTbH+dEBZFk9DYFLQXKvtOUdD0+HjxwmGSCLDTVilKNOOSLlMgkCvXo0WmNJpJuWTMOUWbeREJnecnnUHWSlYojOcZKsblDiF5VFKkwGTJpRQ5qjq7rUXfsTZo9oUeog4/+2EDF6nZDukDzgiS8lVSGFPZj5KBIIs47mhIKJLVmwBhedQmn4TR1z4/Aj69IExtSeD+BeyKoCyUScilCv95l/LDeltMlXK/Za1lbdIjoDNgpPDCRqg7KsGOnKmW0yhb5pDOjEOIsBMdpKYYxeLgHm8ma1O8wWCos/c1kM/MVgZvn9vy6EoFuMO/06buObmPrj6nh7NS0bp1+sxbaC8IaDUvTLcPB3mA3gqiRNWqjSuMEyRiU82zifgWgqwraaHWjoA7qSD3LKi9c9vMaP9OrJFlYMdI3QU4kLcaW5rG4luAbkIq/4EpofH048w/2e/GaIaa50a2wafbqldbv2PSrcqL4HMQPEya0giuiX0Yuw19ZJy96s8FJxBL+MviLBJdqDQOfHEEYYOuUvwVVxGT4GFA2jVk49xrxK7wOs1V8ay/bzBuQ+DYzBp0pMA/A9jOKDu5pf1wYzr0l95CFtXpREg2dDn9WM7pfnk2mzCpYOcmn8STG5vEM1pfrLdj77dACLYSljM66whoaNPlCfFcq0K+E6dxmxx9YzQI3wzuZKtnZwyYy/zKH0ojbKsrtAjeuadKqRGB+aD9SGIvbHXNyBOfOUC3LsC9aSRJSXyD9UeOKLnZlZJ+i5Li8buvKZJj0G8YyyB9lpV2SpvQD+G4huecidzD1fZdZiG/6IhAchqODEZz9sVin2TX4DlTBOyV6n5o4Fea6vJYstPDmPpJh3mrkPDhJ0wSFfBJaRZra1hMhyKxeww2csiS9QF09Lu59tkkFa5qVcEqq2iFFuEpohUQYFl7On4K9RH1dRQ2sAc9+pmYLcTrvZchmsWEykzoETqiyFpH2CU2SvGTLD1FQE0lL/bzRF8tO34D03uDSZCg4yzJtimUdloW062ASxX+14B5T/CPccVB/aGwXjsARKr97cY+Dn9AG0gbLzClnatC6QZoxY2bE7gg31K/yo46AlkLBZlKWAzrsEVIm0NJyNOwdsEtTmkxkYITIw44buK9lLOltPS0hTMWsZIUa6Z7WTLhOOR3n2m9J0EkE6BSQVhf21gaCvUosDtIOa8jjndJLZJGLjTRhx2mHZ+BJovbFebiNoaxOU66slQttmDKkZXalVnG2JpRNpqpvpKHNsto6CXoKt25tZ1ByjYbz/jDvHrS9k0JYXqlgbht6hL5bSWpNHo3o4rd4Z/F9Para4xLbTAdXtuIRWVZGFVHuM8OpNgpUrtoDrHfQVBr2Qi4FR+bOur1l7xvXXZfD6eg3u7lSrhquGIfAk66zD2V3F1fkSaO4sIDHZQedFhCmQZiW6QwsSKkTzIBtFRwZkShGJMRM6vFIGMSQAJpe1FhWp4ElKxkOsSKPndOc9aYZ1jhmQs7cwzofyoEGyu6c2eLZDXlAVoc58LLw5AtmtsSAZpsIFLkJMcS2RnD8oVkoge89wxlc7YK2I49DvoxSYht7g9LI5hXvHRRc/mU4NVlOYQ4BR2iPy9ncKV2XOfUchcWDzixVeVjzVVOqs8OkmDF4CbL10sBOGxn84RrZLIa5lSNrOxd6YRkBeX/ypJYQlZfUdeu3yEDUdV+f6WKXI3reVRyucIqo2zvlb5DJ7Uor+WpmQhvqXJLdUc7yTp7uoow6wYlFTGiEZriidaCnS6Vl3R7DUpGvf+mrw5/r+11ppWXdx0l/YtyqodIoX1qBbgoUvy0I7m4zaU0MRySUH3Q0cdqvkeaSiatrOpwsxTR2KJHLjG5l7S+p7G66uZzK8SEOrgtfXxNI58uPwh0puhjVcAE639A3rVvF2IN5Se7WNw2fQdsprtuwnNWOhOYK/Eee3ViGwIOG0CmlsGK5rLhedhUjuarYKquKjKwp0rKumJNtX1uPNTRbreCAhB+pvERpoanxpKQVEHB2i0npRtIiEVVINxGUwCzi1YouiB4jjBROp6gC5pFnZvDWizrIMdTdxIq8ZKVN0MHV+BwgXcg48sPGzxUuppnl+s1iSKw2fau1lBHibbsgYrnsYmFspXgNxhknUthKAyoslCdLJgunV6x1Dlv5QV8tgB/7XnaLAElwrgAahiENrMK8AWyDQj9+WQsj6izTrifzWbaS500WkrVYWZq2lo8sTdcq2aHZsdt6k54bzGNgtrutYcLOGkEH618NedB6cgs/4FTt42UHTi+uYSk3LneKUxLWzTrWtVhp2rHLwVqv03jebmGdgCFF184mSa2UiiqNrQZJjKP6/zJNwHFNSqzc6eBQxYvEcsJ64jDEiVhNaCXKNE5ELYEmShJOvNp1aDJDVRUgKgx/0U0ANCW40cIGEqsQcTJUKodfV4BaL6uBgUYAAFJDHuzsB0HkUr9GLAGTsKA6R9HofeXyFr1zW4YyO6WBsWsdVZKPOD/zQq99GieR/g2BqI8Ix8/FFvvdjWy6dteb9ijHkd/ZXXhRobRwVxVA6c0K0o0AlH2SYKQ3I8vv4llf1HDGPo0yQgW8iXQWcoWFTrJp735vcK7vJZtUxUnl0laLFZ9wrql891vBe8N7QlDeC3L4cq4l6oVF+MeO6SW570+WB6/MOrGWA91TSZToeXqpXVAaSiC0EV0PKk0slWjpniAQ41RvXKsLWFtTcBY3+JJ7jQ4716cHOYcyHo73OSvC3GeBTSc9Tnpfmfb09KlyBCvZvVmzD2YgK8DZPQrxftTLUhnimNjVrsfX7p7RNDJS9mugeg+heSk/0Fzs9bFwHI4kP4L4MjjAs7BVudwnl2Br91T3sdVw5i3a28k5w96qTyv7PrlWCkrTaORNN73UPM+cQVSZM5U8Ms8zaAjo/5uev+K4Y7ta2o/NkMuq3yGE8Z6GKjTw4Z/BRri1xLSxF1VIPpwGTXa9dedQCY5SSIzR1LEk4VLSaV77YcDpTjEppA3GTiEvoaYROGLZQ1Ci0+daVk/giD0UrGTV+rDageKvA9ehl/9hUY3ZANZspmyKvLcYZwx6dR3NXYRGru5WPrqi/VpfxLndsq42qq1hijdPd3E1v1JNEa2VNZr5RbXxbRulN1a3iCJ+ZDUBrW2ynKoXxVqnpJy8oKcyRYIgaEraUJG3MTj0nNMv4PMPHr58/frNv6Epg9zhp8vP7t4Y7+YAQbdKRITm/bLPjgqd54aHv5XY3YMIlzCaLdeupmbmGEBJCD3qrm+ABhHV4fjIIGeES3BUehJilSq/NiwWu7ragcUajrNbeZcaU+aTGyoeu2SOJpc5czwv37r2D+lbUvf9SVAQFw6qS2tQ4d8Z+tuPHgxS8RuuwI0Nvs47u0fqmwJHdJdul7nphCdAHfZPo9oxjdwMGE7anmYSk2OLXJZRR8OlZqmnDOT6c1ilmviJWfPhDrue4RGgBzv/KEf+Y6gqLFVQrDFVJSviiVKEqRoqQTtSGHp4j7UYHduJYAo/hzEgygT7J4P1G3QMi2XHXbnx9jBD2LZR/nsBjzeXoFfFjO1J5efUTlYc4kbKWIbXelSjh9Ej6DGYjUEviYNcHt959Y6j4RHyspkImvRHLyKsz2eMkaXCpz20NzCLcMii1cGLtEgN9sQIcZ8xj+FDoznoCL7X/8hkE3OkEzjhRn9W4PGMl6ypxH8UmeQzA7/dMlUN2Gv20S9kWLNWTiSc2OdePgRzz2PsKe+8f2HGlFtOafUrjJFWOJ7w+D69b5w4WJphY62gtvDocW1viedYf4a2QiUnpGfvW5MRa6DnmdTxVsM77cW9xNQaLL0jkIHnjnL7liPFPtXSHv9GBUfOlVgmWn7esniF4TKoZvZNBk/PDHcRnE0z3FUkw8e9Ba+kq2Ka/0pV9QoTN3BgnyWP+aD3OATNhtmN0yv2+6gUODy7mx88ZKwmkRP0HLy4kICVn3fqxGIiGQX0JRYq7eUn15qMB3JJm45fXUZnsTDnLQH96b/O/xcMufjtFrI7O7hGd9Wn7bxwM3TqOwmE44O2XkIP1Uo734mHOi+Wd+hJ0PF1n355PFa6MfotOIwF/geTLigDm4w9+38yyATf6xcpbgXa9466f9xCbuN1Rcrf/pZDMSmH/Vf9LzomHpnMN1B8ZYNJao0LfMP4VloOV5JleAV3wr/iAPvKkavNQaFsayYLL2gb4IqNnIpY6kvWgfGTbQQATY6FWFIwZpbMwE+SQt+3h0CVXy8NscUGoj5+qCVMZ64xXtgySk11Jq16xEnTpbsbuMEENiuRSB3DZ67gU/t7ZPHekMCMAEAAoME/aXttZORPnTs27LYCAACI//l3awAAfPJY+YMrCTocdE9pLgUABQYACP61no83pu8FvxnHZhD6BKIjLgeYpwFWTLbhe0fpGWYPwDDbR5jf5G1WkQVlcBZEtoXZuFC3K14vTLRKjn/pI4Qk/Rylqx2++6iPYdvw99V1WVa6T2L2hGOoT+Oa0lVI4lzQwC1ZFNZe5vE9VL+Fr7bhbh9aveJSiMdN4LbQnZAatNaNkYRkuiki4P32jeCtGMCH+UXFsKUh22T8anXgPhpHbR9CBCtkSthyU1dZ4j3kLwzAlmowbWBt5YCTo2rqABX1P9CK8ymH9NQYVPvy8jUT5taRRFp2jL8uk5ZmPFVlpgdM8cwPVZ1MjdNfO3FVm/NhpM8yaXXOIaoOr/IQgISraOYq3Egm4E5pruJaZYJKp5KWFdvp8NCJ2pfyF4/yIOGKz6nGNKws3alGc/qs3fmRhOkpfibN5RkC/ACK9e3jyoTF1SVhqAEsncwOCZfFgIqbVkHuzL1NU4bLKYmpCZNE/gg8lfwY84MZAsSU6/W0QeCgtDYkxE4zn8v4fCVzY1NRwF6W0M0kPYt7SPNlnY+7gbFsfqdJTGcE/Ee2cVaJcE3jTq9iz7+LlE1ezs/5i2xSmV6lKsdwZBFbVqnMDI4cozLt0ZolKnOMqnR07j25a1YbmrgvMN6JRK704HR9YNE++QdPs7FNHYDLUFjclP+woHDSCTBVQszkDK8VorvDRNK8zdrFSBkA10wnMAOhmvaW20vkfcRHF2Dr+h4RQ4HslgcUkQSZMks7nKQLryIRtT4Zel7W8o+dnORVTHo1rIncvoJ9owJlJQA3CBuIiruB0ehv4MyGGwSRphtEeX5pUIiMcCMNSzy3QAFQx64GLao40hCIHHc2BKPLhBIyxwxrYTpENESgjmcaotDmDw0xyPFWQxxBuX7J4lHFVxzVxm6vdk0a2TjoZTNPHXoVIdRHV2rlGKLt9Na71DbN6tUmdCzUKYotTm3XQS8tE2bFHnQUydRQoyZR+U41TGq12SHTKDsEU1tTgdHpxZQy98Vu1KlFtXY5TMyyFCpWptwa5YoTihj7gdHm9NomRDs0aZsbq88uqk00MquWGz8/zfLUM6spJs1YtKEOtfVU7FXpYL5UqIWpQkrjDLnOMlabWaq5Vp4r1MrxjK9Hx1J7oLQnbVbhgEBZs86t06TTDpfAjgddpE2LOn/rpfZwaFfNaosKHVdrO/5/gmpxAgA=) + format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, + U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, + U+FEFF, U+FFFD; +} diff --git a/docs/adapters/index.html b/docs/adapters/index.html index b23caad..66f5912 100644 --- a/docs/adapters/index.html +++ b/docs/adapters/index.html @@ -1,431 +1,93 @@ - - - - - - - - - - - - - - - - - - - - Adapters - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Adapters -

    - - - -
    -

    Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data’s building blocks.

    -

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    -

    Overriding basic behavior

    -

    Several parts are required, for example, to construct a remote findAll call on a Repository<Task>. The framework can take a sensible guess and make that GET /tasks by default – and it does.

    -

    Still, a base URL is necessary and the endpoint parts should be overridable.

    -

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    -
    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    -  @override
    -  String get baseUrl => 'https://myapi.com/v1/';
    -}
    -
    -@JsonSerializable()
    -@DataRepository([JSONServerTaskAdapter])
    -class Task with DataModel<Task> {
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -
    -  Task({this.id, required this.title, this.completed = false});
    -}
    -

    What if the endpoint actually is at https://myapi.com/v1/todos/all?

    -
    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    -  @override
    -  String get baseUrl => 'https://myapi.com/v1/';
    -
    -  @override
    -  String urlForFindAll(Map<String, dynamic> params) => 'todos/all';
    -}
    -

    Here’s a non-exhaustive list of overridable members:

    -
      -
    • baseUrl: must be implemented or it will throw an error
    • -
    • urlForFindAll: defaults to type
    • -
    • methodForFindAll: defaults to DataRequestMethod.GET
    • -
    • urlForFindOne: defaults to ${type}/${id}
    • -
    • methodForFindOne: defaults to DataRequestMethod.GET
    • -
    • urlForSave: defaults to ${type}/${id} if updating
    • -
    • methodForSave: defaults to DataRequestMethod.PATCH if updating
    • -
    • urlForDelete: defaults to ${type}/${id}
    • -
    • methodForDelete: defaults to DataRequestMethod.DELETE
    • -
    • shouldLoadRemoteAll: fine-grained control over the remote param on findAll
    • -
    • shouldLoadRemoteOne: fine-grained control over the remote param on findOne
    • -
    • serialize: can customize serialization (like the JSON API Adapter does)
    • -
    • deserialize: can customize deserialization (like the JSON API Adapter does)
    • -
    • isNetworkError: whether to retry a request when back online
    • -
    • type
    • -
    -

    Every adapter has a type field which by default is a pluralized, camel-cased version of the model class name: Task -> tasks, Sheep -> sheep, CreditCard -> creditCards.

    -

    It is typically used when the frontend and the backend name classes differently.

    -

    And if we have multiple models that all share the same base URL? Isn’t the above adapter constrained to Task?

    -

    We can simply make it generic and apply it to any DataModel in our app!

    -
    mixin JSONServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  String get baseUrl => 'https://myapi.com/v1/';
    -}
    -
    -@JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class User with DataModel<User> {
    -  final int? id;
    -  final String name;
    -  final String? email;
    -
    -  Task({this.id, required this.name, this.email});
    -}
    -
    -

    Important: As the repository is generated, any change in the list of adapters must be followed by a build in order to take effect.

    -
    flutter packages pub run build_runner build
    -

    Trouble generating code? See here.

    - -
    -

    Any number of adapters can be added and they will be applied in order.

    -

    That is:

    -
    @DataRepository([A, B, C, D, E])
    -

    after codegen will become:

    -
    RemoteAdapter<User> with A, B, C, D, E;
    -

    Custom actions

    -

    Not every API perfectly aligns to CRUD endpoints. Here’s an example on how to create a custom action, using the sendRequest API.

    -
    mixin PaymentAdapter on RemoteAdapter<Payment> {
    -  Future<Payment?> createManualPayment({
    -    required String paymentType,
    -    required double amount,
    -  }) async {
    -    final appConfig = read(appConfigProvider).instance;
    -
    -    final payload = {
    -      'payment': {
    -        'app_id': appConfig.appId,
    -        'amount': amount,
    -        'name': paymentType,
    -        'provider': 'manual'
    -      },
    -    };
    -
    -    return sendRequest(
    -      baseUrl.asUri / 'payments.json' & {'v': true},
    -      method: DataRequestMethod.POST,
    -      headers: await defaultHeaders & {'X-Client-Id': appConfig.appId},
    -      body: json.encode(payload),
    -      onSuccess: (data) {
    -        return deserialize(data as Map<String, dynamic>).model;
    -      },
    -    );
    -  }
    -}
    -

    Notice that a Riverpod Reader is available on every adapter as read, too.

    -

    The createManualPayment action can be invoked like:

    -
    onPressed: () async {
    -  final payment = await ref.payments.paymentAdapter.createManualPayment(
    -    paymentType: PaymentType.LIGHTNING_NETWORK,
    -    amount: amount,
    -  );
    -  // ...
    -}
    -
    -

    This is the signature for the sendRequest method, that performs an HTTP request and returns the result of type R via onSuccess:

    -
    FutureOr<R?> sendRequest<R>(
    -  final Uri uri, {
    -  DataRequestMethod method = DataRequestMethod.GET,
    -  Map<String, String>? headers,
    -  String? body,
    -  String? key,
    -  OnRawData<R>? onSuccess,
    -  OnDataError<R>? onError,
    -  DataRequestType requestType = DataRequestType.adhoc,
    -  bool omitDefaultParams = false,
    -})
    -
      -
    • uri takes the full Uri (you must provider base URL and query parameters, too)
    • -
    • headers takes the full headers (or defaultHeaders if omitted)
    • -
    - -
    -

    With all these building blocks adapters for Wordpress or Github REST access, or even JWT authentication are easy to build.

    -

    Many more adapter examples can be found perusing the articles.

    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Adapters - Flutter Data

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    +  @override
    +  String get baseUrl => 'https://myapi.com/v1/';
    +}
    +
    +@JsonSerializable()
    +@DataRepository([JSONServerTaskAdapter])
    +class Task extends DataModel<Task> {
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +}
    +

    What if the endpoint actually is at https://myapi.com/v1/todos/all?

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    +  @override
    +  String get baseUrl => 'https://myapi.com/v1/';
    +
    +  @override
    +  String urlForFindAll(Map<String, dynamic> params) => 'todos/all';
    +}
    +

    Here’s a list of overridable members:


    typedefaults to a camel-cased, pluralized class name (User => users)
    baseUrlmust be implemented or it will throw an error
    urlForFindAlldefaults to type
    methodForFindAlldefaults to DataRequestMethod.GET
    urlForFindOnedefaults to ${type}/${id}
    methodForFindOnedefaults to DataRequestMethod.GET
    urlForSavedefaults to ${type}/${id} if updating
    methodForSavedefaults to DataRequestMethod.PATCH if updating
    urlForDeletedefaults to ${type}/${id}
    methodForDeletedefaults to DataRequestMethod.DELETE
    defaultParamsdefaults to {}
    defaultHeadersdefaults to {'Content-Type': 'application/json'}
    shouldLoadRemoteAllfine-grained control over the remote param on findAll
    shouldLoadRemoteOnefine-grained control over the remote param on findOne
    serializecan customize serialization (like the JSON API Adapter does)
    deserializecan customize deserialization (like the JSON API Adapter does)
    isNetworkErrorwhether to retry a request when back online

    And if we have multiple models that all share the same base URL?

    We can simply make the adapter generic and apply it to any DataModel in our app!

    mixin JSONServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  String get baseUrl => 'https://myapi.com/v1/';
    +}
    +
    +@JsonSerializable()
    +@DataRepository([JSONServerAdapter])
    +class User extends DataModel<User> {
    +  final int? id;
    +  final String name;
    +  final String? email;
    +
    +  Task({this.id, required this.name, this.email});
    +}
    +

    Important: As the repository is generated, any change in the list of adapters must be followed by a build in order to take effect.

    flutter pub run build_runner build
    +

    Trouble generating code? See here.

    Any number of adapters can be added and they will be applied in order.

    That is:

    @DataRepository([A, B, C, D, E])
    +

    after codegen will become:

    RemoteAdapter<User> with A, B, C, D, E;
    +

    Custom endpoints

    Not every API perfectly aligns to CRUD endpoints. Here’s an example on how to create a custom action, using the sendRequest API.

    mixin PaymentAdapter on RemoteAdapter<Payment> {
    +  Future<Payment?> createManualPayment({
    +    required String paymentType,
    +    required double amount,
    +  }) async {
    +    final appConfig = read(appConfigProvider).instance;
    +
    +    final payload = {
    +      'payment': {
    +        'app_id': appConfig.appId,
    +        'amount': amount,
    +        'name': paymentType,
    +        'provider': 'manual'
    +      },
    +    };
    +
    +    return sendRequest(
    +      baseUrl.asUri / 'payments.json' & {'v': true},
    +      method: DataRequestMethod.POST,
    +      headers: await defaultHeaders & {'X-Client-Id': appConfig.appId},
    +      body: json.encode(payload),
    +      onSuccess: (data) {
    +        return deserialize(data as Map<String, dynamic>).model;
    +      },
    +    );
    +  }
    +}
    +

    Notice that a Riverpod Reader is available on every adapter as read, too.

    The createManualPayment action can now be invoked like:

    onPressed: () async {
    +  final payment = await ref.payments.paymentAdapter.createManualPayment(
    +    paymentType: PaymentType.LIGHTNING_NETWORK,
    +    amount: amount,
    +  );
    +  // ...
    +}
    +

    This is the signature for the sendRequest method, that performs an HTTP request and returns the result of type R via onSuccess:

    Future<R?> sendRequest<R>(
    +  final Uri uri, {
    +  DataRequestMethod method = DataRequestMethod.GET,
    +  Map<String, String>? headers,
    +  String? body,
    +  _OnSuccessGeneric<R>? onSuccess,
    +  _OnErrorGeneric<R>? onError,
    +  bool omitDefaultParams = false,
    +  DataRequestLabel? label,
    +});
    +
    • uri takes the full Uri (you must provider base URL and query parameters, too)
    • headers takes the full headers (or defaultHeaders if omitted)

    With all these building blocks adapters for Wordpress or Github REST access, or even JWT authentication are easy to build.

    Many more adapter examples can be found perusing the articles.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index e89b121..0c82f0a 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -1,324 +1,14 @@ - - - - - - - - - - - - - - - - - - - - FAQ - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - FAQ -

    - - - -
    -

    Why are save and other methods not available on my models?

    -

    DataModel extensions are syntax sugar and will only work when importing Flutter Data:

    -
    import 'package:flutter_data/flutter_data.dart';
    -

    Errors generating code?

    -

    If you have trouble with the outputs, try:

    -
    flutter pub run build_runner build --delete-conflicting-outputs
    -
    -

    VSCode users!

    -

    If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue.

    - -
    -

    Also make sure your dependencies are up to date:

    -
    flutter pub upgrade
    -

    Can I group multiple adapter mixins into one?

    -

    No. https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

    -

    Does Flutter Data depend on Flutter?

    -

    No! Despite its name this library does not depend on Flutter at all.

    -

    See the example folder for an, uh, example.

    -

    It does depend on Riverpod but this library is exported.

    -

    Where does Flutter Data generate code?

    -
      -
    • in *.g.dart files (part of your models)
    • -
    • in main.data.dart (as a library)
    • -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +FAQ - Flutter Data

    FAQ

    Why are save and other methods not available on my models?

    DataModel extensions are syntax sugar and will only work when importing Flutter Data:

    import 'package:flutter_data/flutter_data.dart';
    +

    Errors generating code?

    If you have trouble with the outputs, try:

    flutter pub run build_runner build --delete-conflicting-outputs
    +

    VSCode users!

    If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue.

    Also make sure your dependencies are up to date:

    flutter pub upgrade
    +

    Can I group multiple adapter mixins into one?

    Not yet.

    See https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

    Does Flutter Data depend on Flutter?

    No! Despite its name this library does not depend on Flutter at all.

    See the example folder for an, uh, example.

    It does depend on Riverpod but this library is exported.

    Where does Flutter Data place generated code?

    • in *.g.dart files (part of your models)
    • in main.data.dart (as a library)

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 2ec0882..6e550d6 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,290 +1,10 @@ - - - - - - - - - - - - - - - - - - - - Docs - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Docs -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Docs - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml index 031d54e..9cfb333 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -1,93 +1,23 @@ - - - - Docs on Flutter Data - /docs/ - Recent content in Docs on Flutter Data - Hugo -- gohugo.io - en-us - Mon, 20 Apr 2020 19:01:08 -0300 - - Quickstart - /docs/quickstart/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/quickstart/ - Add flutter_data and dependencies to your pubspec.yaml file: -dependencies:flutter:sdk:flutterflutter_data:^1.0.0# Highly RECOMMENDED (but not required) packagespath_provider:^2.0.7json_annotation:4.3.0flutter_riverpod:^1.0.0dev_dependencies:build_runner:^1.10.1# REQUIRED! Please use versions &gt;= 1.10.1# Highly RECOMMENDED (but not required) packagesjson_serializable:^6.0.1Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. -However, json_serializable and path_provider are highly convenient so they are recommended. -The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. Basic configuration 🔧 Annotate your models with @DataRepository() and mix DataModel&lt;T&gt; in. - - - - Repositories - /docs/repositories/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/repositories/ - Flutter Data is organized around the concept of models which are data classes mixing in DataModel. -@DataRepository([TaskAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote. - - - - Adapters - /docs/adapters/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/adapters/ - Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data&rsquo;s building blocks. +Docs on Flutter Data/docs/Recent content in Docs on Flutter DataHugo -- gohugo.ioen-usMon, 20 Apr 2020 19:01:08 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: +dependencies: flutter: sdk: flutter flutter_data: ^1.4.4 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +However, json_serializable and path_provider are very convenient so they are recommended. +The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. +@DataRepository([TaskAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. +Repository is the API used to interact with models, whether local or remote.Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. -Overriding basic behavior Several parts are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework can take a sensible guess and make that GET /tasks by default – and it does. -Still, a base URL is necessary and the endpoint parts should be overridable. - - - - Models - /docs/models/ - Mon, 20 Apr 2020 19:01:08 -0300 - - /docs/models/ - Flutter Data models are data classes that mix DataModel in: -@DataRepository([TaskAdapter]) @JsonSerializable() class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common. -The json_serializable library is helpful but not required. - Model with @JsonSerializable? You don&rsquo;t need to declare fromJson or toJson Model without @JsonSerializable? - - - - Relationships - /docs/relationships/ - Mon, 20 Apr 2020 17:21:33 -0300 - - /docs/relationships/ - Flutter Data features an advanced relationship mapping system. +Overriding basic behavior Several pieces of information are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework takes a sensible guess and makes that GET /tasks by default. +Still, a base URL is necessary and the endpoint parts should be overridable. +The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: +@DataRepository([TaskAdapter]) @JsonSerializable() class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common. +The json_serializable library is helpful but not required.Relationships/docs/relationships/Mon, 20 Apr 2020 17:21:33 -0300/docs/relationships/Flutter Data features an advanced relationship mapping system. Use: - HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class User with DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;? - - - - Initialization - /docs/initialization/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/initialization/ - In Flutter with Riverpod The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget. -import &#39;package:flutter/material.dart&#39;; import &#39;package:hooks_riverpod/hooks_riverpod.dart&#39;; import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;main.data.dart&#39;; import &#39;models/task.dart&#39;; void main() { runApp( ProviderScope( child: MyApp(), overrides: [configureRepositoryLocalStorage()], ), ); } class MyApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: Scaffold( body: Center( child: ref. - - - - FAQ - /docs/faq/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/faq/ - Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: +HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +The former happens when wiring up providers and the latter during widget build. +Local storage initialization Here are the configuration options with their default arguments explicit: +ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: flutter pub run build_runner build --delete-conflicting-outputs VSCode users! If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. - Also make sure your dependencies are up to date: - - - - +Also make sure your dependencies are up to date: \ No newline at end of file diff --git a/docs/initialization/index.html b/docs/initialization/index.html index 7139f52..2c68a7b 100644 --- a/docs/initialization/index.html +++ b/docs/initialization/index.html @@ -1,392 +1,105 @@ - - - - - - - - - - - - - - - - - - - - Initialization - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Initialization -

    - - - -
    -

    In Flutter with Riverpod

    -

    The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget.

    -
    import 'package:flutter/material.dart';
    -import 'package:hooks_riverpod/hooks_riverpod.dart';
    -import 'package:flutter_data/flutter_data.dart';
    -
    -import 'main.data.dart';
    -import 'models/task.dart';
    -
    -void main() {
    -  runApp(
    -    ProviderScope(
    -      child: MyApp(),
    -      overrides: [configureRepositoryLocalStorage()],
    -    ),
    -  );
    -}
    -
    -class MyApp extends HookConsumerWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    return MaterialApp(
    -      home: Scaffold(
    -        body: Center(
    -          child: ref.watch(repositoryInitializerProvider()).when(
    -                error: (error, _) => Text(error.toString()),
    -                loading: () => const CircularProgressIndicator(),
    -                data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
    -              ),
    -        ),
    -      ),
    -    );
    -  }
    -}
    -

    Let’s have a closer look at configureRepositoryLocalStorage’s arguments:

    -
      -
    • FutureFn<String>? baseDirFn: Optional. Takes a function that returns a future String with a directory path where to initialize Hive local storage. Defaults to the default returned by path_provider (only if it is a dependency). Not needed for Flutter Web. See below for an example.
    • -
    • bool? clear: Optional. Whether to delete all local storage upon restart. Defaults to false.
    • -
    • List<int>? encryptionKey: Optional. If this 256-bit key is supplied, all internal Hive boxes will be AES encrypted. Optional, defaults to null.
    • -
    -

    And now at repositoryInitializerProvider()’s arguments:

    -
      -
    • bool? remote: Optional. Overrides all repositories' remote setting.
    • -
    • bool? verbose: Optional. Overrides all repositories' verbose setting.
    • -
    -

    Re-initializing

    -

    It is possible to re-initialize Flutter Data, for example to perform a restart with Phoenix or simply a Riverpod ref.refresh:

    -
    class MyApp extends HookConsumerWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    return MaterialApp(
    -      home: RefreshIndicator(
    -        onRefresh: () async => ref.refresh(repositoryInitializerProvider()),
    -        child: Scaffold(
    -          body: Center(
    -            child: ref.watch(repositoryInitializerProvider()).when(
    -                  error: (error, _) => Text(error.toString()),
    -                  loading: () => const CircularProgressIndicator(),
    -                  data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
    -                ),
    -          ),
    -        ),
    -      ),
    -    );
    -  }
    -}
    -

    In Dart

    -
    // lib/main.dart
    -
    -late final Directory _dir;
    -
    -final container = ProviderContainer(
    -  overrides: [
    -    // baseDirFn MUST be provided
    -    configureRepositoryLocalStorage(baseDirFn: () => _dir.path),
    -  ],
    -);
    -
    -try {
    -  _dir = await Directory('tmp').create();
    -  _dir.deleteSync(recursive: true);
    -
    -  await container.read(repositoryInitializerProvider().future);
    -
    -  final usersRepo = container.read(usersRepositoryProvider);
    -  await usersRepo.findOne(1);
    -  // ...
    -}
    -

    Other

    - - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Initialization - Flutter Data

    Initialization

    Initializing Flutter Data consists of two parts: local storage initialization and repository initialization.

    The former happens when wiring up providers and the latter during widget build.

    Local storage initialization

    Here are the configuration options with their default arguments explicit:

    ProviderScope(
    +  child: MyApp(),
    +  overrides: [
    +    configureRepositoryLocalStorage(
    +      // callback that returns a base directory where to place local storage
    +      // (if the path_provider package is present, otherwise you MUST override it)
    +      baseDirFn: () => getApplicationDocumentsDirectory().then((dir) => dir.path),
    +      // 256-bit key for AES encryption
    +      encryptionKey: null,
    +      // whether to clear all local storage during initialization
    +      clear: false,
    +    ),
    +    graphNotifierThrottleDurationProvider.overrideWithValue(Duration.zero),
    +  ],
    +),
    +

    Customizing the duration of the throttle on GraphNotifier will determine how often Flutter widgets are marked for rebuild when using watchers.

    Repository initialization

    Use repositoryInitializerProvider without arguments:

    Container(
    +  child: ref.watch(repositoryInitializerProvider).when(
    +        error: (error, _) => Text(error.toString()),
    +        loading: () => const CircularProgressIndicator(),
    +        data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
    +      ),
    +),
    +

    Flutter with Riverpod

    import 'package:flutter/material.dart';
    +import 'package:hooks_riverpod/hooks_riverpod.dart';
    +import 'package:flutter_data/flutter_data.dart';
    +
    +import 'main.data.dart';
    +import 'models/task.dart';
    +
    +void main() {
    +  runApp(
    +    ProviderScope(
    +      child: MyApp(),
    +      overrides: [configureRepositoryLocalStorage()],
    +    ),
    +  );
    +}
    +
    +class MyApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: ref.watch(repositoryInitializerProvider).when(
    +                error: (error, _) => Text(error.toString()),
    +                loading: () => const CircularProgressIndicator(),
    +                data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
    +              ),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    Flutter with Provider

    See Configure Flutter Data to Work with Provider

    Flutter with GetIt

    See Configure Flutter Data to Work with GetIt

    Dart

    // lib/main.dart
    +
    +late final Directory _dir;
    +
    +final container = ProviderContainer(
    +  overrides: [
    +    // baseDirFn MUST be provided
    +    configureRepositoryLocalStorage(baseDirFn: () => _dir.path),
    +  ],
    +);
    +
    +try {
    +  _dir = await Directory('tmp').create();
    +  _dir.deleteSync(recursive: true);
    +
    +  await container.read(repositoryInitializerProvider.future);
    +
    +  final usersRepo = container.read(usersRepositoryProvider);
    +  await usersRepo.findOne(1);
    +  // ...
    +}
    +

    Re-initializing

    It is possible to re-initialize Flutter Data, for example to perform a restart with Phoenix or simply a Riverpod ref.refresh:

    class MyApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: RefreshIndicator(
    +        onRefresh: () async => ref.container.refresh(repositoryInitializerProvider.future),
    +        child: Scaffold(
    +          body: Center(
    +            child: ref.watch(repositoryInitializerProvider).when(
    +                  error: (error, _) => Text(error.toString()),
    +                  loading: () => const CircularProgressIndicator(),
    +                  data: (_) => Text('Flutter Data is ready: ${ref.tasks}'),
    +                ),
    +          ),
    +        ),
    +      ),
    +    );
    +  }
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/models/index.html b/docs/models/index.html index 82f16f5..61a74b5 100644 --- a/docs/models/index.html +++ b/docs/models/index.html @@ -1,377 +1,71 @@ - - - - - - - - - - - - - - - - - - - - Models - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Models -

    - - - -
    -

    Flutter Data models are data classes that mix DataModel in:

    -
    @DataRepository([TaskAdapter])
    -@JsonSerializable()
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -
    -  Task({this.id, required this.title, this.completed = false});
    -}
    -

    This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common.

    -
    -

    The json_serializable library is helpful but not required.

    -
      -
    • Model with @JsonSerializable? You don’t need to declare fromJson or toJson
    • -
    • Model without @JsonSerializable? You must declare fromJson and toJson
    • -
    -

    If you choose it, you can make use of @JsonKey and other configuration parameters as usual. A common use-case is having a different remote id attribute such as _objectId. Annotating id with @JsonKey(name: '_objectId') takes care of it.

    - -
    -

    Extension methods

    -

    In addition, various useful methods become available on the class:

    -

    init

    -

    The init call is necessary when using new models (and only then) in order to register them within Flutter Data. It takes a Riverpod Reader as sole argument, typically ref.read or container.read.

    -
    final user = User(id: 1, name: 'Frank').init(ref.read);
    -
    -

    Important: Any Dart file that wants to use these extensions must import the library!

    -
    import 'package:flutter_data/flutter_data.dart';
    -

    VSCode protip! Type Command + . over the missing method and choose to import!

    - -
    -

    was

    -

    It inits a model copying the identity of supplied model.

    -

    Useful for model updates:

    -
    final steve = frank.copyWith(name: 'Steve').was(frank);
    -

    save

    -
    final user = User(id: 1, name: 'Frank').init(ref.read);
    -await user.save();
    -

    The call is syntax-sugar for Repository#save and takes the same arguments except the model: remote, headers, params, onError.

    -

    delete

    -
    final user = await repository.findOne(1);
    -await user.delete();
    -

    It’s syntax-sugar for Repository#delete and takes the same arguments (except the model).

    -

    Notice that init was not necessary here because the user already came from a repository.

    -

    find

    -
    final updatedUser = await user.find();
    -

    It’s syntax-sugar for Repository#findOne and takes the same arguments (except the ID).

    -

    Freezed support

    -

    Here’s an example:

    -
    @freezed
    -@DataRepository([JSONAPIAdapter, BaseAdapter])
    -class City with DataModel<City>, _$City {
    -  const City._();
    -  factory City({int id, String name}) = _City;
    -  factory City.fromJson(Map<String, dynamic> json) => _$CityFromJson(json);
    -}
    -

    Unions haven’t been tested yet.

    -

    Polymorphic models

    -

    An example where Staff and Customer are both Users:

    -
    abstract class User<T extends User<T>> with DataModel<T> {
    -  final String id;
    -  final String name;
    -  User({this.id, this.name});
    -}
    -
    -@JsonSerializable()
    -@DataRepository([JSONAPIAdapter, BaseAdapter])
    -class Customer extends User<Customer> {
    -  final String abc;
    -  Customer({String id, String name, this.abc}) : super(id: id, name: name);
    -}
    -
    -@JsonSerializable()
    -@DataRepository([JSONAPIAdapter, BaseAdapter])
    -class Staff extends User<Staff> {
    -  final String xyz;
    -  Staff({String id, String name, this.xyz}) : super(id: id, name: name);
    -}
    -
    -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Models - Flutter Data

    Models

    Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository:

    @DataRepository([TaskAdapter])
    +@JsonSerializable()
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +}
    +

    DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common.

    The json_serializable library is helpful but not required.

    • Model with @JsonSerializable? You don’t need to declare fromJson or toJson
    • Model without @JsonSerializable? You must declare fromJson and toJson

    If you choose it, you can make use of @JsonKey and other configuration parameters as usual. A common use-case is having a different remote id attribute such as objectId. Annotating id with @JsonKey(name: 'objectId') takes care of it.

    Freezed support

    Here’s an example:

    @freezed
    +@DataRepository([TaskAdapter])
    +class Task extends DataModel<Task> with _$Task {
    +  Task._();
    +
    +  factory Task({
    +    int? id,
    +    required String name,
    +    required BelongsTo<User> user,
    +  }) = _Task;
    +
    +  factory Task.fromJson(Map<String, dynamic> json) => _$TaskFromJson(json);
    +}
    +

    Unions haven’t been tested yet.

    Omitting attributes

    In order to omit an attribute simply use @JsonKey(ignore: true).

    Extension methods

    In addition, various useful methods become available on the class:

    save

    final user = User(id: 1, name: 'Frank');
    +await user.save();
    +

    The call is syntax-sugar for Repository#save and takes the same arguments (except the model).

    Or, saving locally (i.e. remote: false) with a sync API:

    final user = User(id: 1, name: 'Frank');
    +user.saveLocal();
    +

    delete

    final user = await repository.findOne(1);
    +await user.delete();
    +

    It is syntax-sugar for Repository#delete and takes the same arguments (except the model).

    Or, deleting locally (i.e. remote: false) with a sync API:

    final user = User(id: 1, name: 'Frank');
    +user.deleteLocal();
    +

    find

    final updatedUser = await user.find();
    +

    It’s syntax-sugar for Repository#findOne and takes the same arguments (except the model/ID).

    Or, reloading locally (i.e. remote: false) with a sync API:

    final user = User(id: 1, name: 'Frank');
    +final user2 = user.reloadLocal();
    +

    withKeyOf

    Used whenever we need to transfer identity to a model without identity (that is, without an ID).

    final user = User(id: 1, 'Parker');
    +final user2 = user.copyWith(name: 'Frank').withKeyOf(user);
    +

    id will still be null but saving and retreiving will work:

    await user2.save(remote: false);
    +final user3 = await user2.find();
    +// user3.id == 1
    +

    Any Dart file that wants to use these extensions must import the library.

    import 'package:flutter_data/flutter_data.dart';
    +

    VSCode protip! Type Command + . over the missing method and choose to import!

    You can also disable them by hiding the extension:

    import 'package:flutter_data/flutter_data.dart' hide DataModelExtension;
    +

    Polymorphic models

    An example where Staff and Customer are both Users:

    abstract class User<T extends User<T>> extends DataModel<T> {
    +  final String id;
    +  final String name;
    +  User({this.id, this.name});
    +}
    +
    +@JsonSerializable()
    +@DataRepository([JSONAPIAdapter, BaseAdapter])
    +class Customer extends User<Customer> {
    +  final String abc;
    +  Customer({String id, String name, this.abc}) : super(id: id, name: name);
    +}
    +
    +@JsonSerializable()
    +@DataRepository([JSONAPIAdapter, BaseAdapter])
    +class Staff extends User<Staff> {
    +  final String xyz;
    +  Staff({String id, String name, this.xyz}) : super(id: id, name: name);
    +}
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html index 565040f..057b0e1 100644 --- a/docs/quickstart/index.html +++ b/docs/quickstart/index.html @@ -1,418 +1,93 @@ - - - - - - - - - - - - - - - - - - - - Quickstart - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Quickstart -

    - - - -
    -

    Add flutter_data and dependencies to your pubspec.yaml file:

    -
    dependencies:
    -  flutter:
    -    sdk: flutter
    -
    -  flutter_data: ^1.0.0
    -
    -  # Highly RECOMMENDED (but not required) packages
    -  path_provider: ^2.0.7
    -  json_annotation: 4.3.0
    -  flutter_riverpod: ^1.0.0
    -
    -dev_dependencies:
    -  build_runner: ^1.10.1 # REQUIRED! Please use versions >= 1.10.1
    -
    -  # Highly RECOMMENDED (but not required) packages
    -  json_serializable: ^6.0.1
    -

    Flutter Data doesn’t require any library besides build_runner for code generation.

    -

    However, json_serializable and path_provider are highly convenient so they are recommended.

    -
    - The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. -
    -

    Basic configuration 🔧

    -

    Annotate your models with @DataRepository() and mix DataModel<T> in.

    -

    Example:

    -
    import 'package:flutter_data/flutter_data.dart';
    -import 'package:json_annotation/json_annotation.dart';
    -
    -part 'task.g.dart';
    -
    -@JsonSerializable()
    -@DataRepository([])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -
    -  Task({this.id, required this.title, this.completed = false});
    -}
    -

    The annotation takes a list of adapters.

    -

    Adapters are mixins used to customize the framework’s behavior, ranging from the very basic to the extremely powerful. They are applied on Flutter Data’s RemoteAdapter<T> base class.

    -

    Let’s start by the most common configuration: the base URL.

    -
    mixin ApplicationAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    -  @override
    -  String get baseUrl => "https://my-json-server.typicode.com/flutterdata/demo/";
    -}
    -

    Next, we’ll pass it to the annotation:

    -
    @JsonSerializable()
    -@DataRepository([ApplicationAdapter])
    -class Task with DataModel<Task> {
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -
    -  Task({this.id, required this.title, this.completed = false});
    -}
    -
    -

    Default serialization

    -

    Flutter Data ships with a built-in serializer/deserializer for classic JSON.

    -

    It means that the default serialized form of a Task instance looks like:

    -
    {
    -  "id": 1,
    -  "title": "delectus aut autem",
    -  "completed": false
    -}
    -

    Notice two things about our model above:

    -
      -
    • we used int? to represent the actual type of the id identifier field (null when new)
    • -
    • fromJson and toJson() haven’t been included as they are not required (Flutter Data will automatically use _$TaskFromJson and _$TaskToJson functions generated by json_serializable – but they can both be overridden)
    • -
    - -
    -

    We are now ready to run a build:

    -
    flutter packages pub run build_runner build
    -

    Flutter Data auto-generated a Repository class for Task.

    -

    It also generated a Dart library at main.data.dart which makes Flutter Data initialization effortless. It’s out-of-the-box compatible with Riverpod.

    -
    -

    Trouble generating code? See here.

    -

    Here is how to make it work with Provider and GetIt.

    - -
    -

    Next step is to configure local storage and initialize the framework:

    -
    import 'package:flutter/material.dart';
    -import 'package:provider/provider.dart';
    -import 'package:path_provider/path_provider.dart';
    -import 'package:flutter_data/flutter_data.dart';
    -import 'package:tutorial/main.data.dart';
    -
    -void main() {
    -  runApp(
    -    ProviderScope(
    -      child: MyApp(),
    -      overrides: [configureRepositoryLocalStorage()],
    -    ),
    -  );
    -}
    -
    -class MyApp extends HookWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    return MaterialApp(
    -      home: Scaffold(
    -          body: Center(
    -            child: ref.watch(repositoryInitializerProvider()).when(
    -                  error: (error, _) => Text(error.toString()),
    -                  loading: () => const CircularProgressIndicator(),
    -                  data: (_) => 'Hello from Flutter Data ${ref.tasks}!',
    -                ),
    -          ),
    -        ),
    -    );
    -  }
    -}
    -

    Once the data callback is invoked, Flutter Data is ready!

    -
    -

    The configureRepositoryLocalStorage setup function has several optional arguments.

    -

    You will have to supply baseDirFn (a function that returns a base directory for local storage) if you do not have path_provider as a dependency.

    -

    For more information see initialization.

    - -
    -

    ➡ Continue with the tutorial for a Tasks app or learn more about Repositories

    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Quickstart - Flutter Data

    Quickstart

    Add flutter_data and dependencies to your pubspec.yaml file:

    dependencies:
    +  flutter:
    +    sdk: flutter
    +
    +  flutter_data: ^1.4.4
    +
    +  # Highly RECOMMENDED (but not required) packages
    +  path_provider: ^2.0.7
    +  json_annotation: ^4.4.0
    +  flutter_riverpod: ^1.0.0
    +
    +dev_dependencies:
    +  build_runner: ^2.0.4 # REQUIRED!
    +
    +  # Highly RECOMMENDED (but not required) packages
    +  json_serializable: ^6.1.4
    +

    Flutter Data doesn’t require any library besides build_runner for code generation.

    However, json_serializable and path_provider are very convenient so they are recommended.

    The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.

    Basic configuration 🔧

    Make your models extend DataModel<T>, override id and annotate them with @DataRepository().

    import 'package:flutter_data/flutter_data.dart';
    +import 'package:json_annotation/json_annotation.dart';
    +
    +part 'task.g.dart';
    +
    +@JsonSerializable()
    +@DataRepository([])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +}
    +

    @DataRepository() takes a list of adapters.

    Adapters are Dart mixins used to customize the framework’s behavior, ranging from the very basic to the extremely powerful. They are applied on Flutter Data’s RemoteAdapter<T> base class.

    Let’s start by the most typical configuration to access a remote API, the base URL.

    mixin ApplicationAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +  @override
    +  String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo/';
    +}
    +

    Next, we’ll pass it to the annotation:

    @JsonSerializable()
    +@DataRepository([ApplicationAdapter])
    +class Task extends DataModel<Task> {
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +}
    +

    Notice two things about our model above:

    • We used int? to represent the actual type of the id identifier field as it is null when new (it could have been a String too)
    • The fromJson and toJson functions were skipped as they are not required (Flutter Data will automatically use _$TaskFromJson and _$TaskToJson generated by json_serializable – but they can both be overridden)

    Default serialization

    Flutter Data ships with a built-in serializer/deserializer for classic JSON.

    A Task instance in JSON would look like:

    {
    +  "id": 1,
    +  "title": "Finish this documentation for once",
    +  "completed": false,
    +  "user_id": 1
    +}
    +

    We are now ready to run a build:

    flutter pub run build_runner build
    +

    Flutter Data auto-generated a Repository class for Task.

    It also generated a Dart library at main.data.dart which makes Flutter Data initialization effortless. It’s out-of-the-box compatible with Riverpod.

    Trouble generating code? See here.

    Here is how to make it work with Provider and GetIt.

    Next step is to configure local storage and initialize the framework:

    import 'package:flutter/material.dart';
    +import 'package:provider/provider.dart';
    +import 'package:path_provider/path_provider.dart';
    +import 'package:flutter_data/flutter_data.dart';
    +import 'package:tutorial/main.data.dart';
    +
    +void main() {
    +  runApp(
    +    ProviderScope(
    +      child: TasksApp(),
    +      overrides: [configureRepositoryLocalStorage()],
    +    ),
    +  );
    +}
    +
    +class TasksApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: ref.watch(repositoryInitializerProvider()).when(
    +                error: (error, _) => Text(error.toString()),
    +                loading: () => const CircularProgressIndicator(),
    +                data: (_) => 'Hello from Flutter Data ${ref.tasks}!',
    +              ),
    +        ),
    +      ),
    +      debugShowCheckedModeBanner: false,
    +    );
    +  }
    +}
    +

    Once the data callback is invoked, Flutter Data is ready and the Task repository can be accessed via ref.tasks!

    The configureRepositoryLocalStorage setup function has several optional arguments.

    If you do not have path_provider as a dependency you will have to supply baseDirFn (a function that returns a base directory for local storage).

    For more information see initialization.

    Prefer a setup example? Here’s the sample setup app with support for Riverpod, Provider and get_it.

    ➡ Continue with the tutorial for a Tasks app or learn more about Repositories

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/relationships/index.html b/docs/relationships/index.html index cf49930..5fb4385 100644 --- a/docs/relationships/index.html +++ b/docs/relationships/index.html @@ -1,461 +1,115 @@ - - - - - - - - - - - - - - - - - - - - Relationships - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Relationships -

    - - - -
    -

    Flutter Data features an advanced relationship mapping system.

    -

    Use:

    -
      -
    • HasMany<T> for to-many relationships
    • -
    • BelongsTo<T> for to-one relationships
    • -
    -

    As an example, a User has many Tasks:

    -
    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class User with DataModel<User> {
    -  @override
    -  final int? id;
    -  final String name;
    -  final HasMany<Task>? tasks;
    -
    -  User({this.id, required this.name, this.tasks});
    -}
    -

    and a Task belongs to a User:

    -
    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -  final BelongsTo<User>? user;
    -
    -  Task({this.id, required this.title, this.completed = false, this.user});
    -}
    -

    So long as:

    -
      -
    • Models have all their relationships initialized
    • -
    • The API responds correctly with relationship data (for example a User resource with a collection of Task models – or just IDs if models are already present in local storage)
    • -
    -

    we can expect the following to work:

    -
    final user = await repository.findOne(1, params: {'_embed': 'tasks'});
    -final task = user!.tasks!.first;
    -
    -print(task.title); // write Flutter Data docs
    -print(task.user!.value!.name); // Frank
    -
    -// or
    -
    -final house = House(address: "Sakharova Prospekt, 19");
    -final family = Family(surname: 'Kamchatka', house: BelongsTo(house));
    -
    -print(family.house.value.families.first.surname);  // Kamchatka
    -

    We can infinitely navigate the relationship graph as it’s based on a reactive graph data structure (GraphNotifier).

    -

    Defaults

    -

    For relationships to work, they must (a) be different than null and (b) initialized.

    -
    final task = Task(title: 'do 1', user: BelongsTo()).init(ref.read);
    -

    By initializing the new Task model, all its relationships will be initialized as well.

    -

    If we don’t want to supply a new relationship object like above, we may provide defaults like so:

    -
    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -  final BelongsTo<User>? user;
    -
    -  Task({this.id, required this.title, this.completed = false, BelongsTo<User>? user}) :
    -    user = user ?? BelongsTo();
    -}
    -

    Since relationships don’t have const constructors, we can’t do this:

    -
    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -  final BelongsTo<User> user;
    -
    -  Task({this.id, required this.title, this.completed = false, BelongsTo<User> user = const BelongsTo()}); // DOES NOT WORK
    -}
    -

    (It would be more succint and since the user field is non-nullable we wouldn’t have to use the ! operator as in task.user!.value!.)

    -

    But we can get somewhat closer and use an internal late final in order to keep the field non-nullable:

    -
    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -  late final BelongsTo<User> _user;
    -  BelongsTo<User> get user => _user;
    -
    -  Task({
    -    this.id,
    -    required this.title,
    -    this.completed = false,
    -    BelongsTo<User>? user,
    -  }) : _user = user ?? BelongsTo();
    -}
    -

    The downside to this approach is we can’t use @JsonKey on a private field (_user).

    -

    Inverses

    -

    Inverse relationships are guessed when unambiguous (one relationship of inverse type).

    -

    Not in this case, as Family has two BelongsTo<House>s:

    -
    @JsonSerializable()
    -@DataRepository([])
    -class Family with DataModel<Family> {
    -  @override
    -  final String? id;
    -  final BelongsTo<House>? cottage;
    -  final BelongsTo<House>? residence;
    -
    -  Family({
    -    this.id,
    -    this.cottage,
    -    this.residence,
    -  });
    -}
    -
    -@JsonSerializable()
    -@DataRepository([])
    -class House with DataModel<House> {
    -  @override
    -  final String? id;
    -  final BelongsTo<Family>? owner;
    -
    -  House({
    -    this.id,
    -    BelongsTo<Family>? owner,
    -  }) : owner = owner ?? BelongsTo();
    -

    If you wish to disambuiguate or to be explicit, annotate your relationship in the House model:

    -
    @DataRelationship(inverse: 'residence')
    -final BelongsTo<Family>? owner;
    -

    Here’s another example, a tree structure using custom inverses and Freezed:

    -
    @freezed
    -@DataRepository([], remote: false)
    -class Node with DataModel<Node>, _$Node {
    -  Node._();
    -  factory Node(
    -      {int? id,
    -      String? name,
    -      @DataRelationship(inverse: 'children') BelongsTo<Node>? parent,
    -      @DataRelationship(inverse: 'parent') HasMany<Node>? children}) = _Node;
    -  factory Node.fromJson(Map<String, dynamic> json) => _$NodeFromJson(json);
    -}
    -

    Remove a relationship

    -

    Given a Post with many Comments we want to remove:

    -
    final postWithNoComments = post.copyWith(comments: HasMany.remove()).was(post);
    -

    Works with both HasMany and BelongsTo.

    -

    Removing a relationship does not delete its linked resources (the actual comments in this case).

    -

    Relationship extensions

    -

    A User with Tasks could be created like this:

    -
    final t1 = Task(title: 'do 1');
    -final t2 = Task(title: 'do 2');
    -final user = User(name: 'Frank', tasks: HasMany({t1, t2}));
    -
    -// or using an extension on Set<DataModel>
    -
    -final user = User(name: 'Frank', tasks: {t1, t2}.asHasMany);
    -

    or a Task with User:

    -
    final user = User(name: 'Frank');
    -final task = Task(title: 'do 1', user: BelongsTo(user));
    -
    -// or using an extension on DataModel
    -
    -final task = Task(title: 'do 1', user: user.asBelongsTo);
    -
    -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Relationships - Flutter Data

    Relationships

    Flutter Data features an advanced relationship mapping system.

    Use:

    • HasMany<T> for to-many relationships
    • BelongsTo<T> for to-one relationships

    As an example, a User has many Tasks:

    @JsonSerializable()
    +@DataRepository([JSONServerAdapter])
    +class User extends DataModel<User> {
    +  @override
    +  final int? id;
    +  final String name;
    +  final HasMany<Task>? tasks;
    +
    +  User({this.id, required this.name, this.tasks});
    +}
    +

    and a Task belongs to a User:

    @JsonSerializable()
    +@DataRepository([JSONServerAdapter])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +  final BelongsTo<User>? user;
    +
    +  Task({this.id, required this.title, this.completed = false, this.user});
    +}
    +

    As long as the API responds correctly with relationship data (for example a User resource with a collection of Task models – or just IDs if models are already present in local storage) we can expect the following to work:

    final user = await repository.findOne(1, params: {'_embed': 'tasks'});
    +final task = user!.tasks!.first;
    +
    +print(task.title); // write Flutter Data docs
    +print(task.user!.value!.name); // Frank
    +
    +// or
    +
    +final house = House(address: '123 Main Rd');
    +final family = Family(surname: 'Assange', house: BelongsTo(house));
    +
    +print(family.house.value.families.first.surname);  // Free Assange
    +

    We can infinitely navigate the relationship graph as it’s based on a reactive graph data structure (GraphNotifier).

    Defaults

    For relationships to work they must not be null.

    final task = Task(title: 'do 1', user: BelongsTo());
    +

    If we don’t want to supply a new relationship object like above, we may provide defaults like so:

    @JsonSerializable()
    +@DataRepository([JSONServerAdapter])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +  late final BelongsTo<User> user;
    +
    +  Task({this.id, required this.title, this.completed = false, BelongsTo<User>? user}) :
    +    user = user ?? BelongsTo();
    +}
    +

    Inverses

    Inverse relationships are guessed when unambiguous (one relationship of inverse type).

    Not in this case, as Family has two BelongsTo<House>s:

    @JsonSerializable()
    +@DataRepository([])
    +class Family extends DataModel<Family> {
    +  @override
    +  final String? id;
    +  final BelongsTo<House>? cottage;
    +  final BelongsTo<House>? residence;
    +
    +  Family({
    +    this.id,
    +    this.cottage,
    +    this.residence,
    +  });
    +}
    +
    +@JsonSerializable()
    +@DataRepository([])
    +class House extends DataModel<House> {
    +  @override
    +  final String? id;
    +  final BelongsTo<Family>? owner;
    +
    +  House({
    +    this.id,
    +    BelongsTo<Family>? owner,
    +  }) : owner = owner ?? BelongsTo();
    +

    If you wish to disambuiguate or to be explicit, annotate your relationship in the House model:

    @DataRelationship(inverse: 'residence')
    +final BelongsTo<Family>? owner;
    +

    Here’s another example, a tree structure using custom inverses and Freezed:

    @freezed
    +@DataRepository([], remote: false)
    +class Node extends DataModel<Node>, _$Node {
    +  Node._();
    +  factory Node(
    +      {int? id,
    +      String? name,
    +      @DataRelationship(inverse: 'children') BelongsTo<Node>? parent,
    +      @DataRelationship(inverse: 'parent') HasMany<Node>? children}) = _Node;
    +  factory Node.fromJson(Map<String, dynamic> json) => _$NodeFromJson(json);
    +}
    +

    Remove a relationship

    Given a Post with many Comments we want to remove:

    final postWithNoComments = post.copyWith(comments: HasMany.remove()).was(post);
    +

    Works with both HasMany and BelongsTo.

    Removing a relationship does not delete its linked resources (the actual comments in this case).

    Disable relationship serialization

    In order to keep the relationship working but avoid persisting it, use:

    @DataRelationship(serialize: false)
    +final BelongsTo<Post>? post;
    +

    Self-referential relationships

    // in Post
    +@DataRelationship(serialize: false)
    +late BelongsTo<Post> post = asBelongsTo;
    +

    Relationship extensions

    A User with Tasks could be created like this:

    final t1 = Task(title: 'do 1');
    +final t2 = Task(title: 'do 2');
    +final user = User(name: 'Frank', tasks: HasMany({t1, t2}));
    +
    +// or using an extension on Set<DataModel>
    +
    +final user = User(name: 'Frank', tasks: {t1, t2}.asHasMany);
    +

    or a Task with User:

    final user = User(name: 'Frank');
    +final task = Task(title: 'do 1', user: BelongsTo(user));
    +
    +// or using an extension on DataModel
    +
    +final task = Task(title: 'do 1', user: user.asBelongsTo);
    +

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/repositories/index.html b/docs/repositories/index.html index 5e70139..bedcf1f 100644 --- a/docs/repositories/index.html +++ b/docs/repositories/index.html @@ -1,467 +1,201 @@ - - - - - - - - - - - - - - - - - - - - Repositories - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Repositories -

    - - - -
    -

    Flutter Data is organized around the concept of models which are data classes mixing in DataModel.

    -
    @DataRepository([TaskAdapter])
    -class Task with DataModel<Task> {
    -  @override
    -  final int? id;
    -  final String title;
    -  final bool completed;
    -
    -  Task({this.id, required this.title, this.completed = false});
    -
    -  // ...
    -}
    -

    When annotated with @DataRepository (and adapters as arguments, as we’ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote.

    -

    Assuming a Task model and its corresponding Repository<Task>, let’s first see how to retrieve a collection of resources from an API.

    -

    findAll

    -
    Repository<Task> repository = ref.tasks;
    -final tasks = await repository.findAll();
    -
    -// GET http://base.url/tasks
    -

    This async call triggered an HTTP request to GET http://base.url/tasks.

    -

    There are multiple ways to obtain a Repository: ref.tasks will work in a typical Flutter Riverpod app (essentially a shortcut to ref.watch(tasksRepositoryProvider)).

    -
    -

    Understanding the magic ✨

    -

    How exactly does Flutter Data resolve the http://base.url/tasks URL?

    -

    The Repository class depends on a RemoteAdapter which defines functions and getters such as urlForFindAll, baseUrl and type among many others. We can override these with an adapter.

    -

    And, how exactly does Flutter Data instantiate Task models?

    -

    Flutter Data ships with a built-in serializer/deserializer for classic JSON. It means that the default serialized form of a Task instance looks like:

    -
    {
    -  "id": 1,
    -  "title": "delectus aut autem",
    -  "completed": false
    -}
    -

    Of course, this too can be overridden like the JSON API Adapter does.

    - -
    -

    We can include query parameters (in this case used for pagination and resource inclusion):

    -
    final tasks = await repository.findAll(params: {'include': 'comments', 'page': { 'limit': 20 }});
    -
    -// GET http://base.url/tasks?include=comments&page[limit]=20
    -

    Or headers:

    -
    final tasks = await repository.findAll(headers: { 'Authorization': 't0k3n' });
    -

    We can also request only for models in local storage:

    -
    final tasks = await repository.findAll(remote: false);
    -
    -

    In addition to adapters, the @DataRepository annotation can take a remote boolean argument which will make it the default for the repository.

    -
    @DataRepository([TaskAdapter], remote: false)
    -class Task with DataModel<Task> {
    -  // by default no operation hits the remote endpoint
    -}
    -
    -
    -

    And syncLocal which synchronizes local storage with the exact resources returned from the remote source (for example, to reflect server-side resource deletions).

    -
    final tasks = await repository.findAll(syncLocal: true);
    -

    Example:

    -

    If a first call to findAll returns data for task IDs 1, 2, 3 and a second call updated data for 2, 3, 4 you will end up in your local storage with: 1, 2 (updated), 3 (updated) and 4.

    -

    Passing syncLocal: true to the second call will leave the local storage state with 2, 3 and 4.

    -

    watchAll

    -

    Watches all models of a given type in local storage through a Riverpod ref.watch, wrapping the watchAllNotifier.

    -

    For updates to any model of type Task to prompt a rebuild we can use:

    -
    class TasksScreen extends HookConsumerWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchAll();
    -    if (state.isLoading) {
    -      return CircularProgressIndicator();
    -    }
    -    // use state.model which is a List<Task>
    -  }
    -);
    -

    watchAllNotifier

    -

    Returns a DataState StateNotifier which notifies changes on all models of a given type in local storage.

    -

    Will invoke findAll in the background with remote, params, headers and syncLocal.

    -

    findOne

    -

    Finds a resource by ID and saves it in local storage.

    -
    Repository<Task> repository;
    -final task = await repository.findOne(1);
    -
    -// GET http://base.url/tasks/1
    -
    -

    As explained above in findAll, Flutter Data resolves the URL by using the urlForFindOne function. We can override this in an adapter.

    -

    For example, use path /tasks/something/1:

    -
    mixin TaskURLAdapter on RemoteAdapter<Task> {
    -  @override
    -  String urlForFindOne(id, params) => '$type/something/$id';
    -}
    -
    -
    -

    Takes remote, params and headers as named arguments.

    -

    watchOne

    -

    Watches a model of a given type in local storage through a Riverpod ref.watch, wrapping the watchOneNotifier.

    -

    For updates to a given model of type Task to prompt a rebuild we can use:

    -
    class TaskScreen extends HookConsumerWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchOne(3);
    -    if (state.isLoading) {
    -      return CircularProgressIndicator();
    -    }
    -    // use state.model which is a Task
    -  }
    -);
    -

    watchOneNotifier

    -

    Returns a DataState StateNotifier which notifies changes on a model of a given type in local storage.

    -

    Will invoke findOne in the background with remote, params and headers.

    -

    It can additionally react to selected relationships of this model via alsoWatch:

    -
    watchOneNotifier(3, alsoWatch: (task) => [task.user]);
    -

    save

    -

    Saves a model to local storage and remote.

    -
    final savedTask = await repository.save(task);
    -

    Takes remote, params and headers as named arguments.

    -
    -

    Want to use the PUT verb instead of PATCH? Use this adapter:

    -
    mixin TaskURLAdapter on RemoteAdapter<Task> {
    -  @override
    -  String methodForSave(id, params) => id != null ? DataRequestMethod.PUT : DataRequestMethod.POST;
    -}
    -
    -
    -

    delete

    -

    Deletes a model from local storage and sends a DELETE HTTP request.

    -
    await repository.delete(model);
    -

    Takes remote, params and headers as named arguments.

    -

    DataState

    -

    DataState is a class that holds state related to resource fetching and is practical in UI applications. It is returned in all Flutter Data watchers.

    -

    It has the following attributes:

    -
    T model;
    -bool isLoading;
    -DataException? exception;
    -StackTrace? stackTrace;
    -

    And it’s typically used in a Flutter build method like:

    -
    class MyApp extends HookConsumerWidget {
    -  @override
    -  Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchAll();
    -    if (state.isLoading) {
    -      return CircularProgressIndicator();
    -    }
    -    if (state.hasException) {
    -      return ErrorScreen(state.exception, state.stackTrace);
    -    }
    -    return ListView(
    -      children: [
    -        for (final task in state.model)
    -          Text(task.title),
    -    // ...
    -  }
    -}
    -

    Custom endpoints

    -

    Awful APIs also supported 😄

    -

    As we saw, CRUD endpoints can be customized via urlFor* methods.

    -

    But ad-hoc endpoints? They are not a rare finding in most REST APIs.

    -

    We’ll see how to to implement these in the next section, Adapters.

    -

    Architecture overview

    -

    This is the dependency graph for an app with models User and Task:

    -

    - -

    -

    Clients will only interact with providers and repositories, while using the Adapter API to customize behavior. As a matter of fact, Flutter Data itself extends this API internally to add serialization, watchers and offline features.

    -

    LocalAdapter, GraphNotifier and the usage of Hive are internal concerns. Do not use LocalAdapters for local storage capabilities; these are all exposed via the Repository and RemoteAdapter APIs.

    - - - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Repositories - Flutter Data

    Repositories

    Flutter Data is organized around the concept of models which are data classes extending DataModel.

    @DataRepository([TaskAdapter])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +
    +  // ...
    +}
    +

    When annotated with @DataRepository (and adapters as arguments, as we’ll see later) a model gets its own fully-fledged repository.

    Repository is the API used to interact with models, whether local or remote.

    Assuming a Task model and its corresponding Repository<Task>, let’s see how to retrieve such resources from an API.

    Finders

    findAll

    Using ref.tasks (short for ref.watch(tasksRepositoryProvider)) to obtain a repository we can find all resources in the collection.

    Repository<Task> repository = ref.tasks;
    +final tasks = await repository.findAll();
    +
    +// GET http://base.url/tasks
    +

    This async call triggered a request to GET http://base.url/tasks.

    Understanding the magic ✨

    How exactly does Flutter Data resolve the http://base.url/tasks URL?

    Flutter Data adapters define functions and getters such as urlForFindAll, baseUrl and type among many others.

    In this case, findAll will look up information in baseUrl and urlForFindAll (which defaults to type, and type defaults to tasks).

    Result? http://base.url/tasks.

    And, how exactly does Flutter Data instantiate Task models?

    Flutter Data ships with a built-in serializer/deserializer for classic JSON. It means that the default serialized form of a Task instance looks like:

    {
    +  "id": 1,
    +  "title": "delectus aut autem",
    +  "completed": false
    +}
    +

    Of course, this too can be overridden like the JSON API Adapter does.

    Method signature:

    Future<List<T>?> findAll({
    +  bool? remote,
    +  bool? background,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  bool? syncLocal,
    +  OnSuccessAll<T>? onSuccess,
    +  OnErrorAll<T>? onError,
    +  DataRequestLabel? label,
    +});
    +

    The remote, background, params, headers, onSuccess, onError and label arguments are detailed in common arguments below.

    The syncLocal argument instructs local storage to synchronize the exact resources returned from the remote source (for example, to reflect server-side deletions).

    final tasks = await ref.tasks.findAll(syncLocal: true);
    +

    Consider this example:

    If a first call to findAll returns data for task IDs 1, 2, 3 and a second call updated data for 2, 3, 4 you will end up in your local storage with: 1, 2 (updated), 3 (updated) and 4.

    Passing syncLocal: true to the second call will leave the local storage state with 2, 3 and 4.

    📚 See API docs

    findOne

    Finds a resource by ID and saves it in local storage.

    final task = await ref.tasks.findOne(1);
    +
    +// GET http://base.url/tasks/1
    +

    Similar to what’s shown above in findAll, Flutter Data resolves the URL by using the urlForFindOne function. We can override this in an adapter.

    For example, use path /tasks/something/1:

    mixin TaskURLAdapter on RemoteAdapter<Task> {
    +  @override
    +  String urlForFindOne(id, params) => '$type/something/$id';
    +}
    +
    +// would result in GET http://base.url/tasks/something/1
    +

    It can also take a T with an ID:

    final task = await ref.tasks.findOne(anotherTaskWithId3);
    +
    +// GET http://base.url/tasks/3
    +

    Method signature:

    Future<T?> findOne(
    +  Object id, {
    +  bool? remote,
    +  bool? background,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  OnSuccessOne<T>? onSuccess,
    +  OnErrorOne<T>? onError,
    +  DataRequestLabel? label,
    +});
    +

    The remote, background, params, headers, onSuccess, onError and label arguments are detailed in common arguments below.

    📚 See API docs

    Save and delete

    save

    Persists a model to local storage and remote.

    final savedTask = await repository.save(task);
    +

    Want to use the PUT verb instead of PATCH? Use this adapter:

    mixin TaskURLAdapter on RemoteAdapter<Task> {
    +  @override
    +  String methodForSave(id, params) => id != null ? DataRequestMethod.PUT : DataRequestMethod.POST;
    +}
    +

    Method signature:

    Future<T> save(
    +  T model, {
    +  bool? remote,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  OnSuccessOne<T>? onSuccess,
    +  OnErrorOne<T>? onError,
    +  DataRequestLabel? label,
    +});
    +

    The remote, params, headers, onSuccess, onError and label arguments are detailed in common arguments below.

    📚 See API docs

    delete

    Deletes a model from local storage and sends a DELETE HTTP request.

    await repository.delete(model);
    +

    Method signature:

    Future<T?> delete(
    +  Object model, {
    +  bool? remote,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  OnSuccessOne<T>? onSuccess,
    +  OnErrorOne<T>? onError,
    +  DataRequestLabel? label,
    +});
    +

    The remote, params, headers, onSuccess, onError and label arguments are detailed in common arguments below.

    📚 See API docs

    Watchers

    DataState is a class that holds state related to resource fetching and is practical in UI applications. It is returned in watchAll and watchOne.

    class DataState<T> with EquatableMixin {
    +  T model;
    +  bool isLoading;
    +  DataException? exception;
    +  StackTrace? stackTrace;
    +  // ...
    +}
    +

    It’s typically used in a widget’s build method like:

    class MyApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll();
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    if (state.hasException) {
    +      return ErrorScreen(state.exception, state.stackTrace);
    +    }
    +    return ListView(
    +      children: [
    +        for (final task in state.model)
    +          Text(task.title),
    +    // ...
    +  }
    +}
    +

    Why not used a Freezed union instead?

    Because without forcing to branch, DataState easily allows rebuilding widgets when multiple substates happen simultaneously – a very common pattern. The tradeoff is having to remember to check for the loading and error substates.

    watchAll

    Watches all models of a given type in local storage (through ref.watch and watchAllNotifier).

    For updates to any model of type Task to prompt a rebuild we can use:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll();
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    // use state.model which is a List<Task>
    +  }
    +);
    +

    By default when first rendered it triggers a background findAll call with remote, params, headers, syncLocal and label arguments. See common arguments.

    Method signature:

    DataState<List<T>?> watchAll({
    +  bool? remote,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  bool? syncLocal,
    +  String? finder,
    +  DataRequestLabel? label,
    +});
    +

    But this can easily be overridden. Any method in the adapter with the exact findAll method signature and annotated with @DataFinder() will be available to supply to the finder argument as a string (method name).

    Pass remote: false to prevent any remote fetch at all.

    Note: Both watchAllProvider and watchAllNotifier are also available.

    📚 See API docs

    watchOne

    Watches a model of a given type in local storage (through ref.watch and watchOneNotifier).

    For updates to a given model of type Task to prompt a rebuild we can use:

    class TaskScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchOne(1);
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    // use state.model which is a Task
    +  }
    +);
    +

    By default when first rendered it triggers a background findOne call with model, remote, params, headers and label arguments. See common arguments.

    Method signature:

    DataState<T?> watchOne(
    +  Object model, {
    +  bool? remote,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  AlsoWatch<T>? alsoWatch,
    +  String? finder,
    +  DataRequestLabel? label,
    +});
    +

    But this can easily be overridden. Any method in the adapter with the exact findOne method signature and annotated with @DataFinder() will be available to supply to the finder argument as a string (method name).

    Pass remote: false to prevent any remote fetch at all.

    In addition, this watcher can react to relationships via alsoWatch:

    watchOneNotifier(3, alsoWatch: (task) => [task.user]);
    +

    This feature is extremely powerful, actually any number of relationships can be watched:

    watchOneNotifier(3, alsoWatch: (task) => [task.reminders, task.user, task.user.profile, task.user.profile.comments]);
    +
    Note: Both watchOneProvider and watchOneNotifier are also available.

    watch

    This method takes a DataModel and watches its local changes.

    class TaskScreen extends HookConsumerWidget {
    +  final Task model;
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final task = ref.tasks.watch(model);
    +    return Text(task.title);
    +  }
    +);
    +

    Note that it returns a model, not a DataState.

    notifierFor

    Obtain the notifier for a model. Does not trigger a remote request.

    final notifier = ref.tasks.notifierFor(task);
    +
    +// equivalent to
    +ref.tasks.watchOneNotifier(task, remote: false);
    +

    By default, changes will be notified immediately and trigger widget rebuilds.

    For performance improvements, they can be throttled by overriding graphNotifierThrottleDurationProvider.

    Common arguments

    remote

    Request only models in local storage:

    final tasks = await ref.tasks.findAll(remote: false);
    +

    Argument is of type bool and the default is true.

    In addition to adapters, the @DataRepository annotation can take a remote boolean argument which will make it the default for the repository.

    @DataRepository([TaskAdapter], remote: false)
    +class Task extends DataModel<Task> {
    +  // by default no operation hits the remote endpoint
    +}
    +

    params

    Include query parameters (of type Map<String, dynamic>, in this case used for pagination and resource inclusion):

    final tasks = await ref.tasks.findAll(
    +  params: {'include': 'comments', 'page': { 'limit': 20 }}
    +);
    +
    +// GET http://base.url/tasks?include=comments&page[limit]=20
    +

    headers

    Include HTTP headers as a Map<String, String>:

    final tasks = await ref.tasks.findAll(
    +  headers: { 'Authorization': 't0k3n' }
    +);
    +

    onSuccess

    Overrides the handler for the success state, useful when requiring a specific transformation of raw response data.

    await ref.tasks.save(
    +  task,
    +  onSuccess: (data, label, adapter) async {
    +    final model = await adapter.onSuccess(data, label);
    +    return model as Task;
    +  },
    +);
    +

    RemoteAdapter#onSuccess is the default (overridable, of course). It esentially boils down to calls to deserialize.

    onError

    Overrides the error handler:

    await ref.tasks.save(
    +  task,
    +  onError: (error, label, adapter) async {
    +    throw WrappedException(error);
    +  },
    +);
    +

    RemoteAdapter#onError is the default (overridable, of course). It essentially rethrows the error except if it is due to loss of connectivity or the remote resource was not found (HTTP 404).

    label

    Optional argument of type DataRequestLabel. See below.

    Logging and labels

    Labels are used in Flutter Data to easily track requests in logs. They carry an auto-generated requestId along with type and ID. They are provided by default and also by default finders log different events.

    Some examples:

    • findAll/tasks@b5d14c
    • findOne/users#3@c4a1bb
    • findAll/tasks@b5d14c<c4a1bb

    Request IDs can be nested like the last one above, where the b5d14c call happened inside c4a1bb. In other words, during the request for User with ID 3, a collection of tasks was also requested (presumably for that same user).

    In the console these would be logged as:

    flutter: 05:961   [findAll/tasks@b5d14c] requesting
    +flutter: 05:973   [findOne/users#3@c4a1bb] requesting
    +flutter: 05:974     [findAll/tasks@b5d14c<c4a1bb] requesting
    +

    with the nested labels properly indented.

    Watchers also output useful logs in level 1 and 2.

    Log levels can be set via the logLevel argument in log, and to adjust the global level:

    ref.tasks.logLevel = 2;
    +

    In order to log custom information use something like:

    final label = DataRequestLabel('save', type: 'users', id: '3');
    +ref.tasks.log(label, 'testing labels');
    +
    +// or
    +
    +final nestedLabel1 = DataRequestLabel('findAll',
    +  type: 'other', requestId: 'ff01b1', withParent: label);
    +ref.tasks.log(label, 'testing nested labels', logLevel: 2);
    +

    Architecture overview

    This is the dependency graph for an app with models User and Task:

    Clients should only interact with repositories and adapters, while using the Adapter API to customize behavior.

    LocalAdapter, GraphNotifier and LocalStorage are internal concerns. Do not use them.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/images/apps.jpg b/images/apps.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a49c1e425f8b3edc40cf4a0e8a99a3a1d445da9c GIT binary patch literal 39042 zcmeEtcT`hN*YAPQ5s)q&0qI3L(jvWyH0dQGy@o2GNE8&L3n~aG2o^vDq*n=51Qet< zfdDFkAc+VD5|VrHY47)b>#lY0UH6~6?mIZ={4!_H%-(zUoY}MINSY;~fs>|&CWZhR z835b?{{YeoP-KAc^9BHOb3hUR02+Xjj0J#zhz$G#$hZN@-xvT)$$0+8)@0&;(vSl{ zvL8V4Cyf($KTcrF$F={wLvoS;YVa2em~TEN|BIT!_A%ry4D^A|0391W6BF=m;}PcN z6&&shk07nkp7xE12vL`l3l5ic_k>^ZlJ$TG$sycB2M_ZSRFOR^dsYan9p>q+Zmn_@DG24g5y~|IxsIH1Hn{{6_=-|7qYKZ^tVb zbaA3UUj`s;18SC_s{{xAr4T_y*|UI}u8BFtu}cP~-}uaLcyf|2eJ%^Aqu97k`(O*F z8&6tg!kFmk!7QyU3{5T={Pqf&(C#52f#fFvASgH@%-Tp-(81A3koq$~4mx~vz&U{0 z-6K3i$I|k`ahreLf4BelWq(0gzlHyL*@q z05BdqoPt+9e86@XKY{pcu%}-z05GwESlh$b-4n!@Kr9^;1V6^tK`ai^hk&>o#A;Xm zrA?oI!S3!?{%+sh-RE!ohg@JykO_Ui@Q^_F=-)s7Z(f1|BSGE$PNLxTgm0L!HFyVQ zBAX3>n;qj5Al?eTa?t|BphHfE^8=;(1C!JFMjG3K7^ElX^$6EHcIP=jeAd%l-wedO zAT|sRym&nJ$K_YN{S1%&bNSzj-czuNy9<9o>-ET;ni2;EgbyNe)Z1TkB9fXy*KAP*3s z7+<~P^4~OJk=Doji-6^7UcpAXAO`t?xOj&d9?O1A9}*M}qTjqhl6?J4j_ZPaLLNl; zUNQzTs2|7+5BJ~vp8|1{SFp~XI)S)&g*zPc_FFDbFMR_LgR(5nmxFv#TnLG6bUcgnb{OIq}KkCW=-oKw-{aqsf_yYD21egJV;O|Hfdx3TS>dg-L z1eW;y{rj)pJwRRq!F>GeznAHNQe6OhJ*JBMt6f2+zbL5;sPw6fsSK$kD7Y!KDKsc9 zfYlTngU`7e2YYxECo{Gqcyc)jwsR{!GQzxV&o6FVRgT1Ly|c0K>osUqq^$aTog$S;w*lKYT{lE;wWB+n#&Kwe7zlDvt$n|zpjiX2V;jeHLRKVgYf2ctgS<@sLzVE~FGv4QT^MdIExmY(Wkvs3=$|1Sw=d8#bn}rSPB# zrHH3UrzoH(r)Z++qnMyrp}7*H_S*O9%o}@iPt4?b{>q#3;n??JSwvBd_ z_A@P>j+su3PK)jmoj=_Tx(9UCbp3Q6>2~Sq>4oUe(Oc2`(O;*3K>v#VE&U4p!3mZV zk|*>|xSWVQk$Ix*MAwPA6T1uy45AF@8Jrj*7%~|u7 z#&O2)OtegAm~@!jm|~c6nd+HFnYK>So)kT)chdc2{K>+TttV$r?lH46%QIUr2QjBJ zzhE9@{>nnlBFbXG;>mK8t{A9HZe96Hh;D>wkoy} zHViupyArz{JA%EC{WUw91HvK7VZsr}k;PHRG0kzv$;YX~>BX7CSgkjYosWgC~`zj%S{ioL7?9 znm3mB3GX}JJwARuBfb#6e7;`3Eq)IE^Zfq&_xL;cHw0J(v<3VG?g^j-HU-%Qbp!(i z9|-mdVovj(Ha;DBy5#i8X}pk_kgZUHP>s-{FrBcPu($9%;T~a(h=7Q>NSsKe$ov`F zGiqmi&*YsMIP*(XOw?X9S+rU7tJo2rqa$-wrc!1_mP7V}Y=UgF>~}d4 zIVZVnxdA!iS>>~VXP=&3kY|xMl~0gwlmDS0soplGOwRBTbiDoH7MDHSQr zDzhq^D<>=WC?Bb)s)VUjt8A!>s9sims5+y@re>*@uJ-mE5E zcQj-)0yJJ|eAN`w^wNB)xuzwg<*rqth1M3-zO4ON8x1`Tb%&NhSI-Nd_dNgn{JM^W zj=#=Jo$tD5b;EQUb${up>s{09(ue39>8I+C7_b=F8Wb2T844Nt7*-l$jFgRHjk=5} zjm?a+jb}{wOgu~~OfaUZrq@jS%ublum=&0lCm+ddVxJ+=ja4&V=yJB+X;T4RBo=2X?H_!8)_dGYew7hb>*1fg7bG*O$ zX!+dr+3=K5~=>G>7-Vf~H$i~WBESOk;>kOJ)kYl3KkE(f&+vjhhO_rdw$2>4it zR7g??I#fOMekdl)EbMtWS-5L>O9UI}yuXVSkGvJRa#j0k;Z9IjkuL-I@e0#$>OiX_aKFlH<6#O8(lBIL3bnI#`}b`2{{Qr z6YUe*Zt~r{esk@X(XGlP#-y;MnPiRR;@cFr{cew>D5m765K}!4c+iqBl7A8eGp<+;bT_Igt-9FuGJ+PjIUWeYvKC8ZwezX3! zZw%k`4(JS^-fF$=7*ro@9a0-=9#$D{dZ+xZ@xAi<#u1f~rcu?=mJjDXw2f(wb&f;F zyC?J~-b|WI4o_X28k@GAo}F=-LC<>5ew_=P!_Hrw$1hy}Nck~!@#JFe67N#!vcz%? zS_S=jMStbps?F-cn#bC=PvM^kpKpF)_>#LWuwL<1;cLf+;l_te=grUGLcZa*lD3(* zAAT4A-mr6i=N-lY^BEh4CH+X><=QR#sr0jF&vI{RKWHESD;39uD?d;>7&x>)T*pTd zs0j~_B#zpMX2g%AAQCCWJLFK~Q_LGBG6ZTu($00u_@VEq9456*w=`F>OUKH~Tj zfm@;9=#Trq;6L_-zn`f9Ks5-C-F3Y#0C)vvQ7|)H2Y_Q&{nB}WTv74w43-?HaBoG0 z-+=5y80ebdNTgjp0HAIIfTJ)H3IB*hI(iE373Kh-EA)@O<}o!DxUYDub&RG?IpL1) z|C;{Thk_-4$@uSgP;x~@rQ<69N+{iAW z5!S8kX15;0h$vnOOQ5CW;5@~}eMVGFTtZSwSw&UtoVuRAfuWJHiK)#cTRVHumGkiQ z^7ird^AC@Ryc&gwj!C?ED=GPQN@~vCd-rqm9^@C4K6(1=d0BbIi@N%T#-`?$*0!GB zzWz4@ZwH6QCnl$+XJ+T-S60_Peg3lkbz>9zWB2FY{x96Y;jvs~0OSv`{+8_D>{Ed^&Fv=@-hqJD`?&nIng!^J{jF!Q za!mA(VpbSw>&P_%Nx)3>S)R=s{Vozi&ceMTxID7l?n?vq8A|)@Q-?Ckg92_=u-wC% z?Ul8`Pr?RcN|m0YL%|}sE7+YZ>3G{bKYRq?QmXk(OmMOS35c{tWUYUJ{-`2WDDJl6 z)_aFsUc4;WdAp69BT{dEX2)>eM8TPuT#a*ys$;<~>q2JK;}SNNe~EVs2$&DdcMf9g z`z$Eq^e0da1fKE*n4$a^Y4a3ev4-r2>H_8L=^LgRPqxDt)rRUVq9{|W^Mam{fa~qh zu5D03?+#y;riugqS8~Dk?20HsK*0nJNc~vfFDC&BcW|&3?NV^NXu;Ri{!&lec_BG) z{yZCDur<8(?OG;v%zoH~M9v4(`=?CfMlo(RC7*q`mUzg_7Os>Hp*X*`6<4s?za;_n zoZB}r>-#xlxmqd)6MJu;Q0*GEgnof!Iw=zTzN<&oR7>5J9}ZZNGEEXk9 zvw8hviar&wg(0ek9j1P6Lrhzz_oD6SosIcdSAD)_zfqNko|nRoI%An`qx|8S98R$f zubf<6uN4fPSl_xzyZaWm@rBL$U2H4;2fC$OvOZCD&~sR(jL-M2%Jk^@<7|C~X%1e? z5~|0|Dt}z~)G0#<$Bw>XIN#YW-#n3BAM|vgmIHeoAvf_JX$QyAIALETcNaG;6Ih-1 z+m1>I7I^VE0DBrU&<8v5ZKjiREO2j@IQR_lX3dm=Z)V@1S3~57k&=!6@PqHCdM0Q* zZ{*lbPX2taXE5nAuI%gC+}3#iaZB^PAjBuVBs>1cMC$U@*OKhQXMBqX`Gqi@q1XHI zF7s|vrhNo5#`e!0%lmsxn#e# zTS1I>*i1dkE7bbkj6PsGbu!=8-s%0kfj8fY4O`e&9bd$MZS*|~JbHxk=aEZ!S#%Qn zIBC?49-q(pIRPjB=`l3SCCsLTw}uO{B}q6j-YFKxa`co0_>3l_nnt&(_@*DNz)m?_ zS2}1ixc1b)DR5AxYTQ7il6|qG*5t%yof@mIvG<8n#K!pdD6YKKUpM*+3I(T?#+%v- zVZ)o#P5u(;kW(i$u?pb2*RFV5!Yx!XjmS*gefxVY2ig;w~6;`H1 zcEmacd(W6g0;pX`K)0MS&x7r~0D&|or}oRk;VXu%w(AK78U4c^D4^Jd7jjsI=L5+u zAunew3}4FYh1QGpxe7aDDL8UAIknkdXI>NQJ2~I=jrZ>0Gk@mpt3q}W?~2^ssjFPA z%ON{tHej(i53TH^<~BSj8>vJ;kw6UB|c`m*LdTvY63WHOWLR)_VQuh_O8TzGu# zm-ZvF4Onb<2PE}<*(k=!d5~zy;7gd&sRw5 z^lBev&W8KSs7*Vb(0x;jHOQc{`hr$ ztBwdK#}*%#@hAmSl8~5+(Br&sw;#ENc>S~q`H7Gktj64n zd}g0mGkL4Vu!^6mnJA{gjrO={eOSS&CPYf{Ia{>wlyppdFYPO@WM_J)|T2Oe4}Of~Gc? z&tcptiHJ-TzpQ`r)7iJs+of#J3<}N(alBxSAm=1MiK>ZQc*B{u=!9vtwx}akxYhscu~+{ymwitX@UD zw37$-nFLUtJ_6q+-X!2Q3qck)y7rz&cjj_a>UURlELO5#ML*E!Ns!thw`F2(3dPgh zs^Ty!Sl%+`0ErV_K4OP5g5%k1ISMvY4C>i$zJJ|?V2AnW_r-u?{mzX}KMwIX*Blow z#pF=>?fDlE4eq}pdhGG1mX*QgH=9oSUzHU}S`{hct95R~Zof_)^*A3*dbHLrkfW6Lig9vz1eOWCNybOfScUhGE^-^o zc;}qni=+&2iV%}aQUwFWj|!olM+C%nU7cHmzQ`ACx&SCDWU{7~^lri`0CM?Fi^S34z+N=X2^6j__RRqoY{TftKI&TD-HxRiFo z>K4njUzJEpx>Jk!R@M%gNHtxnGKiOT1iS7+VNCJE{q+JYLTRx#9erwBGDW3B&TauU z6YzxPhUBiAc`-eZn>2J@YJ&yKd^x|zhP{cR5$O3sT9M55>a3|9r5_~v+hH~fzNHoZ zP8qq`?kW}KZ)0mhNJOXPB*V2+jYCInkPeWj*`&-X5 z4)GLM8h^^+qy`AAd9c^cJQk@$_Kd}*#PG1w;M&$P)jYLMcsaVDcaVK(ZV&=x(w2-< z#nqRTrNnauwAsDBjAm~eul8uoD#{nXsJN55Qz@FkN+(_|ylT`3r-~ECh*o0dR{03( zZYiaXX62g&x4Qd6oO@I?YJZa7tSN;wmv$N)-6sLTs5y`QiRP(ls5gq!Z%K@stBLz@ zZD4~yVAlKVue6?CP$)tt!dz`HJ}lin<9)%ipe;(rfb9|+o0S3ZUo$KNiE+%rN$!Fg zmeM|n^LP^@c1s8w-?+N%e@(!mw)HiK-Tp8 zKpCEb!bFM@*yY~jp?opIaT*xcb}9xhpOV4K?4m-S_9D@>qmgSbM!PI<>H$PLAIwhw zejbWT6a&lpc_!Q7OU@y5UwPtpZ_g>l=mfBc&4Pva$J6+KK@>h65)XBO5=}<}Gb`ERXlMi{Vwic^-7nwFkQi*0L^kWz% ze6M&b7Vm(Y*@s~SdRA8NqN@zG_a1F<)%pj5+9(@ z)x>j6DpG4qG>CW!X8np46vI;+L%bmgko*#x;>=Uu&=9?lp1!N^*TiTCo%p3>kEJI8 zRD;AR63|q$orb>>XNcw8764a4V%;bb`p?5S)0kba}JnhdL(!>apnCeN#q$S4Lr@hB`Xg?Xgo zr@iH#al_}JV?-AnTCHkSf;5eDlH#-8zZjnwYWcNjFEre>XojLlwnN=fZ zCiy3Q+OtGU?$`nUG0hoaWd45X#{E{xK(^R?q+19mO^&~WlNWz45&Dau~u z{R%Y_5PjzCz(DPnf~UO?NPxb&6jqf;BZGH~2W_$$x@8lNH;$j?&dn%a-ds|gda0>B zFPfut`^rQ_le3E9Z8Q1o&MCGn5ov{6hH8UHb>;pez2FLBeH2)&$2(0d}P z${OY4`QtGJC9YOef(+vGcePmaY>VZ6{^+^W!sD$Ih0ozr-}*W^1D5zd5N!A1Ts_U) zj5QvSj|29klg2**MDrY4JvV zK<;ZCl}E}gRPHn2uHhXJt)*~IgHR;q+bVmXe{I!L>&gK)8)}~Ml`c?CM-->1PLG?d;0R1#0_&%q7O5B%t=M=~I*O!( zD{sp8UG4i=_G<@p$PU2<{E4G5%*Emx5Oh>ecEvZpsLCvsfP&GK=XlqVl9z>uZKrMb zuI5JmOQsd<4WVzYdy@C(cO2TD^9nx<&%oIgMdnU+o0_P4KMR;ELtV^sODEta;v`ld zdFg#UbbEHSDx)SSKq)o+>(DKv(}y)r^PT&?f!kJP ztyk0&gbevxg?VQ%=HSA@anu~=g})X*8`{hWTY|PXY|aJH!Gc%++~3 z$!z1NSk8RfZqU4I3dyO}ttA0f0x6mdD^QL(m)URAD!cUUQW@%g30uWmzd|28*Uy(1 zf*T6nzZ{!sfP9op;E*CRkN|A+79@!C&CZ-Xkwt))Al)%3(-8XjS?#2z(Mo$^vvVxH zvYA8grb@W+U=Un(w9!b>FptXpbdh$<-oZT7471kT;>lLoJ0ENEo?zG9mYX^gtMU4< z7+jm+OzC^e%*bx#PDKR7(Xa3Vrn!GnWk;7qV6o@0v(P;3)*E^^f7X4tqKmIfE z9rENE40Zpuiiyaa&kMD2xDHgp@h!9bFUPBEA6Pd7R+eWA_su4e=pxiB`y`~d1^2aL zA_sMK9-`p$k#`;2unLv3l=X)CzT4#3O|%(9!w0VbA;~@#u@7eJ;{tqP&b@Ig*K6ZTY0OTTN{`OtH};k#rJ%u)V*&D=B&moxwI$3q*<1X zWo3a#uU*0B0-3HX#cHVLlgX-@FIi6Y!#WWx`;dgE{byNDcXM&sQD^rfAFC3W?TPe- zcu3h+F{XF_9B#Bm2Q%=-jS7>Qfi|X29hg%x4{B&f1eUhePQ?e<=6t=r?Aekd^$L&4 z5juFufmCt>b&?o~MAvGwjCoBz#o0d(;J1ff!OWyKRJOn2dz*>fvb?S#oxc9q237(Z zkkM8o`09O+!r02F!{^0TvNAi^gE)KTPC3gg-;Q`=Ca3b{8dvG1jvHl-GJ>h*#J;LIUeMNlO;Jb{kR|4=d7vHQzEi7&94un&r#<1n6c)5RP2)b-ZKIX#NFOUju zH)shO)A2HKj?>bb(3Kh{zg_>frN)Y((~b2FH=<0WGh+aCMiVuF<$TR*?EWMuLoHEk z(@p3#CV7h$ogrm9R+4Lm&%j|yI%`9cC5f4y$0856*XK?%Gm z;QN3EH;8wSQ$2bVuR2Fio%x9rKnxA^{NkMEmRZU|dhzvK*pW8pJL;2NZU?B-$+BVq zBKB*|9cWO^Lh*h$Xi@QTEUmb2c#{CwT!C+^tA^=Bl}A98g~Ozmo$t#Cyz!6Sk)}uy3)T&<<7&Q=}!^y4eC$fE-H(8Z()UNDLW z00RaPG6k5CelVO^SvM*R#VIF@!m6eb1^oC0XW*xA$&3dKzop2j>pw+v{ccY=Kt~V+ zjRG7fbOo$wW{VoTuu^sd>1Dy{7sHU1qRCkm;8f@Dq}BOCq_uW3aC_Bj*O3bur9lqy zC=o0Gi1k01OmU#&<%-3xGHuo1$>Lm(o^-M`79j3+yHQMO8kIIZp`H)wobh4KfvU(1 zzotDU9J2Nrskw}SgT83;{`%2t@Qi|wAa(RY)8=WwyxlD{5Avknhm8VWZmZ1AAiXVo z{#uSRj+Tei{S@>32o_+e#;-Jsz z`WEMVNt%YOJm|Y$*2~z)aKvRyco~7c&m~#_bB6#%v7CfQ38&$U3F|~%)HG^5X>s0| z#c=a2?O`@-wbau?^0bdq7;W5 zohq*xEuIfp6WESIzt>*E?<2rr?er8QIc;cCr@08Z4jGJeX=`MTP;?Ay0r;>(y|DRx`E!hqt6``I2A&5=$AdHW_u zm7St-5bUF@q=o~xU4u?k()c%{HjmFGx#w@Kj()s+(c+Za25i!>3gYUQ$MIFcGeI9R zS(lwkG?9setj?l*?_q{#U1dJTOMd*&aG~8wHY!i^vbfd5pZ)QBT`u~&aa3Z|1y242 zua~w1Pz6o+gW?oywH|L7U-BET_ucQenk>v;#|9!@ntmK$L}uUYF=Um$H+PdlXJtWY z2wtmH7`dd#VX4>Fb1H*DtYH@}Q_aVyFu8cYeu2t=m7gTQ%BiVrpjH;p|Gc`{NuYfN ztF$>#@bF&V-4^f|b}|?#vkWdD+jrNp5=j6kfXqS#UX3yW~eDNPd(ju)N0W7W&%b+xIX zoytCmp5vyM61HG|T9h%=1l|d}1mfYE=t{!4KIj2Sv9d>!-^wX}u%>g7QDI6QIE*>P?hP1a+9ihd$X1(Ji@h z=cBA0^*oh+;UyA4tNd-CcoVx1Qyk98YL1@>PDWxAi43Jj86EDWjmIbfhTsb!p--Q`(~SCTgQ~LhOhQ8 z-}fiiG(Il6NNW@iJD$mYAo^wDq36sDKP$HQCLyY{cU6wc-_GgTtsdz+ZVngfdp3Io zlXZ=R+WdDnuSlAN4StR4xheFqv>6HpG|=E$@*}e*t$1I|4S5}S9&TbBtERj+66?` z?5^V`)|}-Q?4D;|)75?Z z%Aa!wep)XviSARyfD>__`KnR#2ag{$=rtleYn7iisEUMfUu}_@??Mf)CL*DbP1RrF ze6`&{0ToL1rk{RZGLW`-{8FKRr`}~47chC$m_}r1KDzlS#bwh?b3h*sA~91`~mOnMhl3rxf~TG`Z^*khSfA zP&=G4UxDHz;RM#+0XLCa3^I`@hvTsV&8%fBP&!Ci{AodKN*IfhWtiiu5UF$E2l{Zh zp79HYuT!IKO6H;qI%8Ez8VYZCG<>VB$PEXkkjq+BQ^q4e*Tf16e*_`Y;_=Fh1QUn5 zmRRk|vtu2?PaYzlZn8@B<%G$fpgU1l)PCv4-5ao{r*H5in-cku=+71@+LGAy?KJf0 zjYF-T#^)I;Rnyap)cenCL$dV;hzDIiDJCy(NKBeKbEdsqp+3`!M%IoJSikMR02Mh# zumJ-azFApIl9QJ)4@U35sF)*l=cx%i8Q?~H zXF`dl;V4*u%fIbr=nIva@ajc9#k#D{D>t4binTD`*oM7C)S&vNYWW;Gx zB#at-2$JbE00t#8oJ@G8@>4|iL_0I9}4e%fTX@cm>= zUVj!nV!){t^ZnMUlxvg~<_+qEJzRaRSmBglyJe1Hn)-mm;_J+JJ`|}(PmjQvbOm;^ zxLK^n8J>vbcsjY=Q0Z#QaFJtN^rUHB*E7rD)15B-_xI1R-^ALU@m_lKp|?l1?jtdl zhse-$bh8sX*#Vy+CV*S2H{T9QG0-gw%#%JC#y)mu_R8U!E&s_Ttm|}Yo`huDE(OP+ z`WN$-#n#(md{Rd|#ouQz6_`q*o$(ZEtHfX6P>1j8iacu`RB?{iVaO`$OrFhtC=|Vb zoV}>ZBKvGDu98XsD}V7Z=rX7u1sr8UJ>f~PTF$Nort1PUpC-M=l)e=fwg_A*9Bq+{ z6w4P~?;3rFsHv#nc@}c1@1p5=3?Js%sc-Ba2SeZ(?t#W*sp*av#i?2x6~+UbdZt)Z zTA)|wCkDd`ud*BU;GciQe zleurcdGlBA25AgeZ*pu8y{~{RM%Q1l?OtdZ&NTakjvK>YoJIC}BfAkiD?2H!-<8^H z1UBM%RetczPW-&N`z33F;qE|5&CbNdiEX7qnuuWv2Xu3aV3HCbSt@P|FkUBfyX7>J zA>PCD+OgZTxUoXQ;!=arid!rA8U#-(y4Cg=7=CWEUc`FekMZ!#vTdB%@yb7yg{q4d zxt+Zb#=H$1$BmRU+*K-XG_)zk8I|V3AoM4fB{3h|gcul4%LxbNaB=n#@Zm z>6Q%B;Y~2OW`Xq~nmk95fXmLyM{HAsd&ur86q|A%R<55Zv3dM#eJr0;U#Q#-<)Z)s=nm)jfgcLYa{mGYJIaQlIk)WDYZ3m{5tI4EYs(lT>>p~D7?N*qnL4C29+rn~MVvRkL~Y*FvZQW^;;3vxoW z6u#FTwrGr9*ziaazt@pt+Rc6`Qlto|-s)vmkF25&;{23;b{1h;@Wtq0^4mUmief}K znY@pw`>@q`0IjdmSD%`+Gc^8L!;JI#e5u1vnmv{NcHXVH=?B4uudf*9NRn z(w3%)`#bJi4^?ZU4n)td{ZuA^v8e8-cv(d3KKN=%xb6!*0e<5XkQNknO~Zg6Nci#o z#720v|BO|T@seh45<~ujpO#Uqx73K(PELfk1y!8dhqyDcQ5$VqkJ7%M(lB!ltb0(;B=|gZzlQ*WVz2njk(4Oz$YBzIlR^?WsRp|E1@fy2oR1M1N?wRB zHY{I>Y)B33mXteZwc|^gMjW2bnu^@?ytbuq7*(t>uTBDB#c#h3n3snQM3o%BP9Nb4 z*Pu8tB!O+e7Y%=-cl5ARc`V{c)v-zD_8Rv~c<9rM{jUJ;j3+iEfQPO#9C&F24^d*VSx);8MerV<5PeKDCzf@U)Xwgr~cJ^k=iC zf!Uu{2GL~*D+4y*U$Z^t47jO|Be-&pZVO`y(f8YPU8#GxYiHWGF?bfudKkK>NZpqtI0_Hvakbkp@iHcn24S;3qxV!eGx9{)Hkmi&mw- zl(kPS20SF**|#SFN%KebL_XrM;?j~|Zl}WZ`YY5_AhSr((EN-=8!E@s(e{ZL#{v~L zy=CWy%g%NqUOoUk8{hU?+nEdKQ>`dpM2NwN!<^XavGAZ!IK$qhs>Xm-0-$3_|ll!+smy1!oTs zsJADags%yt&-GWW4=kt5!+Ko-Mv=C$2Jyu`KS1pOQngqg*)901rZ_Bqx14dbja@KM0W0C0vobV`|PlfG0vjWajhv* z#;_~l+Q6K#fDH^dp5>Z~r37tol4pJcKb27_)zauHf?#|S04gg@Jt_H(0AoeNy6cGKlIdk#(c_bc_wgE&N~K4V2A9Nw;t7_;1(&x4dfpOL!bL= z3l*ATmcUK5{@7fVbl(NVHZIfQNFLA6!Pm}8{qi6(JU+S?QB2p16(G_*!p6@lVSe?R z)7wmF3dqbJy=zOijGoV!&$(KB+BWFU9qw}{9;o>f9pc#t@>p2E94{hvg}OJ^zHM6h zz2QJ_!I>A8CT(9frk6gdC|s2gZ0BbuyAncMv-5;VFXjPi?Mw~fWVpf6ZEe0`il`#F z%-)rES?S7$uE=MIr0@i$e3?3zvw@h|k)1Y^uQ@t=-;or>?D1j&NFHrbT-usI3inkM z*86oiE_Zz!_U+E5y@HDo+oO2jD-p>x#$7L&Xb~6J2Z+++@dAz-1JK)zu}q8$gQq?Y zt5im^-}8h_CO_cr$u-P1ynk5F0kwf4klnJK{0?!}pjD(2*f8GJoLe~r{fWkae7=2Y zzm=bPuCfF8CwS-=Y6#aTuWhrZ=~VHA9D&aOZ&Q;GW->J|)RK8jPB=!Z3=)AMSJVwuuA%zakQ zTtSX2o5L(s)E&KnJGUL=<4#`pOs69XH)@&g+H|%}H!cjcwzjqukpRm{_$lh5=*6;@ z*8CQ-r`bhDY7l7)^7?eR=v>eodw!a?5p-Koe&f5zi|HA=yxQn}8$ET;Y8;=ZOXd?v z1+s-wVbhYg`c{-@1R*`>BjA&{rva{nfmg z^U_`K)boZckCTo%UeqVLW*Y2kH49vbk>Gy&Hk4%#erp+Ho0Z`7JX`Y)AFTh|O2DI= zt7buNv_gp42*J9N^%7u44%|)V;Ic^oJ&Z_~4Sr;O)+MbFhO?-Sh!v`N?U7~J+&tlR zJ0`HTxlmGFKKP*8he)gX)OE8MW4)YUuTt(BQNt^DTTBow;$)jKHFgItRT_UETh^b& zpOuPYCpcnFJa_N*Ys=2W+3-G66>Tj4=ud}~*lbHHIn)C61MWT&E)X2RYXvUvO*{|I zZ}kypk6!n@>m$O<;r6XJC6tphHA2tosyZ-A!R)GeSB4wb{FHypY`5as;{uOvXhZ#> z_00nhB7RN>R+UT!eUB(ijP!~2h;V+}l4@u?3#W+^78mcTc5u&{Kw&Jha8gkND4b|= zuN)sjbw7A4PDQzf-(Mwfrc-RjBlo+ra$PeAR)nJ*TO#OH_uX)9r~qfQmNx*;5NNdM zUmyYLP+sNtM*VIwGi3=&0rc0;`-za(P87?z z87)o=-M%i^Y;x&n@O&d2Hd)q(oaN~U*HH6foM2gIyhvQ&tE>ySLhN#1C;Nxsh{ANU z(B}x3W$8qVyTe^95BQzaZhc%m=Xy_3XqV8ceHXcEPUIhd%UMuHFq5t`O^k|*9}QNZ zGW5zeJU^;*uh}EO6KRKP%q>UyKyfNeXwDw9t2w<^xc1dqP20%8t<9}G&btB4*t5YQ z!^QW|WVg_vup#N0I~)5yHlt1#NI7`6-M6nWzSK^(b3NcN7c}8qf=&S180n3gqc)n& z?WDxnMF#12}-?{Z=di7 zmxR*250{|0n=f)@K;&VONzI4UXU}JyHk{(Py>hma=GhWNh?|Bbm*N4sc9)ETTWnUw zK%%f|F6V4V)1xW9pED2VFgQ|!;K_z@|i zu{E;T@y$pxUVKg9djT%~bsHnb=-}I`Hl0JnmM!%09;J*KHn7-N>9UDlj%3mWKIsaD45~ABtN)tiah|n!#h3 zhS4p()#bT`0jYIA?K2aNJ2abPyT$eXW9rR|k_eOk(cYIvLm9{as>l|y%QnhZ*2un1 zk}YXMDBC1tC)pXsl6@x>AtZZK_I>PY$j%UEknA(1G0f6^y64<;|M#AI@0)vH{9oJ` znCLvbiW24I|qWRz?YD2ld)^;Fn#V<`v*nhaz`r-a1^mlbn%wu$>?tKS3;?rXy!^x2&{B8EmXw$Wa}+F37(A0B=v7k zvyQ~lp4S$cFjzW?xGH#ZyqEthG1?~-J`wRQgSAdeD0JXl|mUZ zs>?N*{gJr3N{4ztO!Kl;s2be?a)S#Tm1;Len_wpPn>)-?e$4S{(-_1FGr)$eB}UVYeUBgZ822a)^D@*q<+`}=0Bg0%FVrWgqo(#Qdgu6qA87LyQ7(KQ+<@FS!}R0g_NzBEeY+QYzKZ1y8Rk+% zxji~9P7Gcvrt~&Z1-RsdmAV;&to~Bz7ZI+-kvL}zfO%I0{YC zbZ@3vI)>c2=;L0!Ga}rP;QeB1gg?Dqec472mz$wc`GKN@TwgC*yoI+RM}pnS7ka>T z3*_2QfI5#aPkkV2Mdt^14xjp#t8s(8+~ckxiN5&mM?3KKB`AMT zRxcQ90cLRtVStD>Cu%Ta!q}}7x%|!Cy_y!jt=y{$XlX9IoX{fhai=MxW%I(Z8HIU} z+@N7u1vA4!_W982t+fpT;)c-}aB^|XhqMD!%*u@Q&-DA}SjT8unp@lGvP`X{1i#$z_ z-%_aIJ)e-Y$md6>EcD5NB=$GvFI9@{P^5;LGsfu~$*9bgow2#mQimI*K#;m0+8_60 zk#MX?Hgu5IPi#ZGKq95d}xKq4jo+ob0A2l1~7@*8agX9*N;wOS6ex5LbX5p|l zbgkI=OU13>imwj#X<_{S^5|jnGd=wypp8ZPQ!M|5SZbCdWeSr!VFr6N1jXL3&|)Km zpDE+GBRYIB`CxWeL`)&eL8rxr)#rBzoUUfsW~hy$x1sRF&!yY6-S8%760iTdu_Rin z6mzr~IHV<>HDKjbYTJVb3utyyifVWq0z-pjug3CKtG``4uPSgTZFWe0cU}OT2xZyp zx`}m;_vkQ0=a1|6*$GYkq4RDaeoJAZWK`|^rcKn3PdCL(`~a`s9g0gS30GzSKrjS% zP;;N%1#DBB`L zfk-I496dbUVYacxM#wT~rWbMY@DH=w{Wbe$OYE-e)og)`&%=igt60C>2G7+~=(mUf z9@*zZ=`K7+u8=8-S~kHc$Gq8_5BMr5Y3tTM;#76JhKgD@lzL>Q5uOze;Fh9nf2k;g zMt~4oHU~LvMqwJn#v;+O1Yt--kzEX$vWUdx#(QuMta~9OL=oQLpV8t&HFT_;B=G$& zmADBON*O@_1;#P%qvbJB)>Dh(lu|Hh1QFSNvVZB<%-Y<(6!p994Bc-Kezo&~FS_Va zI0$=bWuN2?i*u2jq-tP7q2R1ARSal3A3fApAZ8*{jE2Vm9RKJI49fx8;)YZP66H6u z{p{ks3e#@dJKcbU?E~mnIGE!v)qdt<_zrpxA4p-o1&rBeFloYXEcXx?`>?=wKu}@^ zW{fRI>%BkIiustLvcvtCYU!6@NK!C9$|LaHeG1 zuRTnL>$#DOaI=MX$6YrL_S9RERy+g$3-ce83xI}^o3kB|zf?BB9Q`&BR{p>EjF$c{ z)$k-eMTO#mQ^}?1E+Vi-znnMXNbDfWgO8Jx?h`ms8h+oLGy&XqK=84->jB(FmO$Vl z7mf#@!5d&wN->4zv>x-Xg3oY74*sPQc>(7DZx*;0;Tc;0QcXQarsxrecHsqZr~mnL z3yYN?O~`LVEmobNf_zN5e+s#ROo%zo-DW>vA&5_s3Ib!12ipL)&Pyq)KK-}Mz*u=B6+82e2zH|hRx;INSk4xS87gk zvZSM5cXO4M@GmsyW@>x}%f7Fm&2Nv0;1T`sWo~@eGzn5^L*PTRSr5^UGnXNBc@qxh z`t;d1UYMj>Yv8LuO)Ll16)?S)7J@If*H!x1U}YdM?8>s}4nL>OOJU#+S3?2)Y=TUO z+x!}Pm*jGTn!z<&@cq}EnR^0)+C7iSw75XT@1qo$&Jd1S4tsP-dGxr_#HDtA@pwQD9DpCxf`Xjp&esx5Lu*HOZIegtHpbVMY7n}a`_*rXHOG-&0{Wp!5!k0Lmo@!J3 zUqqfmx&x@Wavc6Hf$R&%Oh&WY!4wycjJ|H`nHSv)UfFDS{S_O}W+?6!1px@&vXg%B z`JF;B=tVcRu6*yR&X#s#wa_;kEiQ&A0h4$U=j6nF?MoMK3~NM5TA7y{ugVPi-_Q#& z1iVCApoBFl>OMN_S|lA&xdWI+Z*xj1<4@WItucQm zFQoS`cGqh=kF)Ce5u9XT8ub8(`j!Bc8@&IZ0~l-WIDiOu2IwamoFrv%8A=vOEoU^# zOfGZZo9(!(TCHn`0e# z#V=Uyk*9%Rpzt2vE}rmi%aKCzX6MrAzF$= z$Pu4J8rl5usmt8DH#WS=V{pUQi`1{lGL4K}BS=GD`2jXX5caVVOWaxeh(LL~2sSo4 z0Q=71^RDu=wZSliFWV;jWB?A+FGiq+DGc8yNnC)=8jimi1U!-lgH2;vN)B(~Od)@% z-kuF`llYj392#!h{i~{5z`~pMrakS%y^~-MET-##;);PH8Wf0$jl;-Z84E*qx-Hn& zC1QTuVu!dH-d?{x`s=0S8Eccj(#|k3X$|#pwX3AHP`=vYrE)5BW}wOC>yMTXpaAPl z;+_~Lh*KDH%Lzl)&Z*PJ;67eVF7e~qJ*50s%VkgqvP+F(0wj+=AWJM(IPYkfIMFWX z!NB1Lc61Uw$@OM(+`G&Uz0oF2E6G1q0+!(9Z&k4os9P#ChgRk|T-;Ij16M*Wt}X9& zu}=R{*RxFAfHV~<>7<)uOyy1&451T1*?9qgjYQ zA1_$X*q;iuMd|l8M7|JBQ_t?yHiehG^2^XEre;mo7fP%3wJg~g87NS2*ZUA$GGy{3 zYtKrzc0a^(e6Aso?Vaw0(InwQqy&2l<$S{)y9wgNo$!cY{+CKp#BB}#u#tr-DCzpP1kh>l&xuQcr1n4hC)Nh8F2cf`-GN2j;HY9qEC~Ce zpOp}kcddw9Mw<<*Jtx)w;?Mq2863_@Qiu2S!0Q9kkj`n#Mty5dX?-msarbe`i$B6_ z>6e@^#sYH(8|l}nrN27GKkI&eGg@>24gq5y01M7_a4*Yp`TD1~m?EZKt{gx|*ciLq z-^HI}&TU~?)$-zUx}B2H>!&xh5fDD^>vu{}Lj|wgZWSnZ9)`zTPOdeEBkj@fr7R3> zyub3}^#*KstwJ*SW>cLH;TQoAH25~WDG`|op<)?CzCjXXw@Dm*=!HlM-7Xv`Mtf_m zW**{{6NDd=%zRwsJJht&<)=^Ut_n}&dVP!7Ja4#eDJYoqZq{VMuId&4TWlPOm-unA znlc4vB^k2S^?0HM6d73~tahKL%Y@z5lq6mw)B{`N44{+!tawC8bR($(5EZbGI)W}! zCfDk87Y5cqJHK5~YyIw<^U@xN--dj=OZy|GEbfBk6*40BPTS$*n*jW zG^-@9dC*X8V(_tnqM;Z(zj>dYs7#q#YlIA?ag#L3sjx?d95}IzkGj?F%4xwq&qQYq zy@9+CEWhFfGvtVKMTeXqKES;pi`Eo|Xrc&ADh>lZ(8RG@;b>!yyi2FNFQy@O*{$w) z=}0gx+C(^Hblvt%>Ax`F^$`f&3ArWomx>3zU+@!o7BE*$lqJ8XTqN+}(+P?gP!y6? z+H~(8?qa^;tKAJTCI4%xmQ$r3@ zu9fz_pKeX27^YDXg)r5_1a0~wFo4nkc&Ici1gC#+0U;Vwl+dMu^{U@6hTDFLe$doD zb0jTI8RKmqdpRNVAx+-KU^z*~aA+J_4#mFY9{L`-p?|=+4qb$!mlgZ-jFxwE1HPeO zwatIp^L$nw9ouy0Imj-=^4OTD^lzU-IzeMV=QVC%iT$e=v8%O}J9(ltyg6kRk99={ z#@BK_x{5qwe%$42%dv99#AcT?Xf7;~4H9m?LHZW{eGO}ej9P0N+Hb}bEiGFR%rM4k zo^Dgt_vXC*NGm(EFI!WRaCz>02)&|YsHE@8tK{y6i z6w6wlQnw{rY~jU7ubt&ao_k^N16c+k*n<|2n)|$ISw7~o{H0=t4uTGR-oyJog4gTX zococq-FeWMkF)P_S_RZk3@o*0pLjMJaD#qLa9=k#;i)cD^S76Hn9@f2y8Xa!vueWf zCp?_P0vy+PaBF~r zQNRkS%)0y-H5UA0o8S<`*h->Oq{xFB5dF(QfedbN?q^9tl}cq1@(0fjKR<__x?ftD zVRW8&5NKUvbAtZ~o*SYtOyRy#0I@XyP9{USg}^&%fsucBYM#+DDUPqeol}8q!!>E$ z@|4B(Ea*#9(-h_zW|hZdYSM!BdNOE;b4uIm?$Ys44;=8#R!{c9-ZL+3mY zd(bFl@BVl3Hwhn?S)HF>^T^oJxJjSR3=V;q8rBkp!+RIFr%~7C2$yxk3BYd(teARXPY5TNIP+i7zHpWqOgP0cFr*>#Qkcj+%55!C zk{+&nkR?83d%!z^`-3b3n+tu$%rym_-gj0-~MXpJtj?!|H0hFw# zP%Wf6CR}-sL6vtRq5R89>g;$LDWzyITleslU3uRcHc;lB2hs}}7ZPEo$P&8{>}}>8 z#t;cqT`BMz*<=sE7|b2O9=^Cn@A)*t4#N^>HPxCDESKQV$j)_Sj0Smsn%RMl97Y%K z35qXxXvm=#GsE;B%}Og2DAChD%E43o8ker)+ zw1+an*i$eG8nW-TYB4Fsy@Otjs;|HATKaOH3)HCDil+*-Jbe7FKXzrU}w;{u5z%Fs!Poa5M38XT7nupxskZ@qiF`l zz1|Ke^mom=IqKpW20UszZqkb!R&Db&ZM!l>i4s_GMK%PQ4av3mLiTft4cH&GWiFOw zI$^OVX3a{mKQByE1oG6RY=_4j6nGOU{?gn*F5GMp?W}&k)U0sQQe@y zb&~F8InKKAa=5ufNhqU>O|6oXaJJ;Ea_H_jytqq}#r`&#CD9`Yi2Hg;_pt>{+5CsQ z1J=Yl>ra+@Q-fsWTI0mM#Xq@cr!iia{>ESQeh>P2je|n78a@fa>O$kf)#vP$P(wqI zlw3iP*Eh$MV~?4xQBd8mK8d;qUm%0$q&nSk@P4)t+PKCW=w}GQ0{?3_cdyvLq$BBa zGlJUJnzsk7(=Ne#B*6~w#rb)?L=2eP4rY#XlpASGnJ?35Lb=_KKKhU`;v*y;le5A) z2}uKHeKx4Bih_azK8jdq{T3!}##^x-L5N{qe~?m)SeD5);2CQhxMG3MSn;)`C2_jg zxE3{R$7!&gKJHM&nsuvj$YrES>AU;Cd>F>NSu}`zgj}BikU((~N3LC#RS?^mY%KRd ziPQ&rkpje3?(;&yB06IZgs>{5Bqx9HRNdg{jB#DugU=~ffga#I&ywv;70#JI3IN)T zBG!LXm~rF}4M;YaEdffr{&S|Lj^O;D9k<%di@a&$CMi}_UTM;^#)2AijB2sF*^6ud zp%C~gf+X<@iDjMwCI!!-rxgU)=C(76eiZK7gdd_%S99}%t?4q}OMTU&foFmb28fn~ zcKj^466Q{X5J==4Z?@gEV9uJfH^*c(lw$1s3V-%_zM$8w(AUGZKshw8;843{7RK@! zzMk2|-hn+y&{7Crs5{?Obg_#jDAzpZ%gLXVVAC<t$V3g`q|rXIaI|JqPTvp|5ISmThSpeVnf{o$pX%5C zrOqeQa;%}zqTt+(Z6g`^TIeX}uFa(L%N&mc_2p3^*9VvHJ=&KFWm+6L{uJNv=bCNW z3c$ky!?+88#K7^$I#3+g0}^9l$A=S4!GIYD05Vq76^3;mani8!vzPu6uOk(siW1Y? zzrcG6rO-PQT>&E$J(=j_0_N?y8lLW&{#aRFdQ{^!VGcR%CmG_BDQY;&gz&3`n5&7lffn-``V|9o{c>YfHj`m5 zGLl)oSAXpZn)r5W{61f3@rdXbatpj?1q@P#9x!_SNS1;0f&nvdtHS zk2ocJY}LNFk{yzanw$w{avS1r=+wtD(PGrZ>un7Z^|#X<9M3T6xU78pqD19aVP ztJkw$(7Z>sGCJAIZ#`fZ+BXG-Bn*WhC<(h8q@aoe9NFKBr~jLYpCktc+HbL ztxCT@oi7r>TlxO!ENx5PZ4cBxXV)IqpAHQ@I9HjFIB_$h<9)3{vyZjW*23s_R?z;9 zji6(|#J0Oi)&AmQDT5oATj-eguhG(#VzZ-$GfR}#P4YXfb1-ef7c?SuRTb+U>kq#| zP?QnIA`<-t)EHCD46Pe)+-zv`lfNrqNbAZoGAQqkbLj07n}hLT)Ippskh)Sep@c?cNtBQsGiw1VC-zX|~Nx7hcTC6_yY z4InTL%g#v%Li>kPP+P+O#|@)ynZohu&tEw9t6 z@&*+}ho={bQhRaodG8FP`YogI6Sv&Q`?9hd=LVF$A%~^AZofcjTDKtQNTTz9$UV=A zd?>5)FRU=zCnk}{(nU|{5w;@C#^FYkg(BWsEg?dtEKQJ`y-arL=(xhvyRw0!>jRKG z8J8+F8M%Zb=pWtqZ74ty#W`t|OVnEC&56Bx+V&k#(KiRe10TV>syOeY-sYK{?%E+I zgmaJA5USt_ZSVB=^B%ifpYKbM*|bq-R{fQ}LEiqu`5W2`epM(+=)t`D=BFsPJZS!h zNjp~#)ekXSY=@us7te~JUN~ruh6xuF*!z^iIk1~|_>5HUnjmm;yAwn0>P~M?L>2;M z8gnI9C_z|AM3sYF#<&k_Bkuzo5|xQsH3?~69qVj!BW(f+ZVy25_S^uw$`Y@30Y%)5 z;#_#jtXU7!S6S~DNg`fl0{j;(%zCH=>9n%9iWavCJFx5IYNQ)HDo}10Ox1Orq>KG3 zXN*rWK_l4RKug~lwmhs{8+I;Ns(km_)%t~wu>aG!P2vLj4E2S%OD7{6X!}3c>rDa8 z6(4!r?CBHBtSK*KNY{TRNoJ!czfNivaCH_dm2_UL1`|`=o51liKmQB;oK6kWa z4_>MpciwEs3{lUqkDTQEEds@Q(UMpX6yxR`31&a~_df4r?X~six$u|_0KktKB_-f$dcya@XMvZ#;OniZP|;PO|iG+3|F7sX<8eqj>SvjW^D zd_$HkD7Bd1N}E~9c|_9)@H=3UR`I6L8)7Dxf3FuN;F{MtlLGxB8L$I3WZGG@%tp=fvXeGC2=As4EDHu3d04gB|3KioT8<= zKmubx32M*Z*6!T;nC0o}Dz;MKG0|XO#Qbf31X1_W}K`(p$~i16ViB+paBlNSX$y% zD2@|E)HG&qwOmtwbFIBK$lgFA`nK4EK+&jz}eGn3m+o3eKxnld}XkXGXSZti9~o|ca6vk|{GkMw~T zrz78`JPbuLAqwXxA<#yk8ILlBfeA==bi?^6Q&9HC@7{g+rNJ=8avk>%uFc+p2Z&&% zS0b!oO-1AS_D* z4$gFk7T3)!eRjXT{2DBhN7aZeLR&_L)4^l_%%BGu8*q82PypMN;{4tv&rgW%V87YA_wo>40;^Psoy6M{GOB~1x92`Nb>$my zHL0c4c5ZI4eSb0(MvXzaGGD=m?;6s+!70Qnb?FeIaTkV=+_2zU*h4}=&2FIxPOQ12 zk%IiR$DW_R+`c3X$-~^I;<+o#I#`v!!N_|zfnl(e%vK9upN9}c!;p!N3qP6(Z#7HV zEcLPm^GcR0g)R^`GrZzAO7HtjsO1qEF=?dB`4swKoO_QQ3&H;rNg*0C1!HurctQw- zU{}j4epX(dd!86NBCe!-x$*0a5yLHG)y(_RvFGxIKw}^h@10a+bKHP@H&E9zWOh5I zoh56+-PV9)JR&6bz=+5UvnCfb=%nZjLRl2oSa!+-rtr(vs%*>Rv==6p3RwiI2a(T! z1wf>EUzJD|M6@8}6J>)OOr{hIeD#ePOgH-r~dk)CjCHo z<~LeGsau}y<~JKxEwL|c^?AC5W2Q5R($LVP;MkvDwazJ@amJS-G1<(5s+_OUImnkC z(m+ls2#gdv4T1G>a8HPSDoj9u*SN+aV4*GdmGq(ahp6w=KDGV5y9ycj$Tn@Z`p+vN zd4O=+9SHF%n8fampCd$u;e0W1QHKq1F1J!OWITzz$}T8;&m^73Jm*yEgMn9>xox$` zRC|QMq$0MQbSDm&1hW#usL6qMH&Kf?8D`D+2-ZJ5!i`k$ds_tJ=OQ3<-^m;2jRw0N=P zqj(wC4@T;)GPdkF_Pkk!uSZGFVpc`^pU-V2RJ?X_ zm-MJ@BJKwBYxd3lT9NE~m=)3-_`N6_$pl`1p9dO{<*P(!9X*ScF5u~9@UK9iXgb+5)ZmYycw19tM9)wx$Hdh`VV*? z)Qfzpp@A#cMDLG&(&^{Pr8itvR7iG0;p^&uo_S106sN|`Q%d_eW%nQgdn4i98`7z;x)51hU=0XWjc>wn4|V!ERkCLB+xRH#_)y{syEbsIQpg*k%3KYXr7gEeyavpZvS zD$)%StaWs3EquI^cC9#f>X8e=at?X3BvEo7;&NRh8E9n*R|jD&iwGj%A>^{}#`8#` zHtam^dDaKF5V43eS$x=OOI<GaxvR*EA4dGg`lN6?9 za;=s!;Zy@kd`Ws}@7WOcen)wMccNDQ1+3!Gn<{lFBzB3<5tQrt13)Mu;O8hj;a`Cc z0e;?5a9Y3Nh9Z`q7A5ne(;8niQHK0mg@!yifzOQOMDp+w5|YohO{^eyexi#nt^_)d zLYqN75H8A8QJr%tg)WHATE!m@XuLLzX0~PpN}HaP@t6rq)YJUAYKTWnLI~I3z% zC$TT1os%{Aa1%#;Czg5mPUbSlRZvR~Mln`}?V5=E04q}~whoPVF=yrG2_UATiTVskJ?q=r6W0NTzPvlhP^kYgkXkf$gME8lglkLX&{t6>;}=Zw5kynr`_R z=~^#^{YP)K__-WCej29>oWHf+0>fnz7%s#hI}vP7^hW;dOa`pc9~agi52(b0-@D#E zQ-piXzOgz;wKts)aOVGfvva;M?pGQSP+akXy^m-qvj7%U1`O$hhqgm#P0z;QhPVF4 z`qp_krW!m(=(o|O7o_R9i4ktbl=talWSi^V1Jax^u)9?XTi;MAbiJg`yY@h14`&h! z5K1h${GXVNCJae#^Zvs^-yAIiGYhQM_Y_#!HoI)>mR=#pqtUtiI*T}wO};s0cCVp0 z+^&temSzb3g(Q(DiithC< zcU5W9)0yB8c{mztaKGKgbgr+zFIep=3pFybW^~!FDK#ig;8H0~rZLy$VW9d+^;5C{ zH<;j$fzZ0;F(v5c{f4wO#t*+J-b$|87N`sURF$}Ke;=IBLJ)?N*mUr3$x&dpG!V&+ zFat*$)k^kLIA@ME)ifCnLz7|(rzvM!DDxb;>_=szR624iJWnqb zS310gi2!BQiOs@S6PSpSJJ5@NsoatdSj-nlDvmRL1xEU9IXhko!*$YH-+m3T2UoOM ztVbvRK;Et>m%96oLvT3ej)a$c09>Z19#Bv;<39tqepJ38(TlR6RvzuobWN6RPf)b+ z^VFf2mltms&s>YZ-Q@&nY!3qrgdb9Sr` z%yUdZIZ#1vNuKj!d``Z)MRg=<7Py ztX-S9jh$ZR(sLAfD(7BPTI4d$y5TgTw0+^@yXgcrArh-D$|dxx_iy2@l`>~Xh3r0|Sbes( zw*C;HNw57~lM9;%8r!r^OJy(3^I?cc(z5k!Y#kS-9^9@;quW{*i@ z+i5EYSZ58x@|xy=Hrub6<4!KHui3wZ7|Lf!i`$&P5mE5<33tgo&==S}OXDSt;rXZ^F?1M)KjzkGlL*8<@T-B*`Dn0VKdN8ISbvs1f$zIM<+fX zk{mss2H$_W?$syvFf?7#Et}oqems!P@gdn5?J;4Gm#*o1_}3cNY@{8QRd&2yE+I;( zbA&Qb4grW^QWG>vE~F^!MFwYKbYnijfhJ0)K&70vFo>jsuTKJD>`wHPTmhxFt)_5O zEML1Vt!`Uan@mPkz4X?==v~97*3urng#~;6ywg#p@E+-oE5PbqOOVAtU#-&Pyy`JK z8fF+1OcEJl-P{QZGT=M{I$z16X`{B1 z#~sS{eg*Ye#DDy`I;oR1A+cTZ!#O^BC7H#0mwOP5b)Cq^m2Su;Qe;Wagso5H@&Q4~ zc@0B_aQ-RJYmT<2cZ!N>|E&tXabvLkL&n_5mcG`YRzV6c>ta zYQz+=2jviT)GqAWiR3VSS?)-ZYzV+l4KNsN-G2Uv8X<6_EkRPqWPab7#LrDMQ{D$q z9cmnG@LQWw^x3bw~WO5r)+Mve%I1K8k51b z`uKIp?dcm9s;fPbd@tZ!8o=nk7)G*dzyZ!YobZNaw6{XMzocPfr$k?GV3*UuD_>z- zE2$Ybj|6lt-BeKNCnvSa{;3rorXD(ta@N`yCRXp0saY^nDtBgGU?#bVbwxu=+}LNdiBOv}l17DwMHC1H81a(Ae;fv+S`w zeAcS2)cJ3y-i)%2&*>xYHk;&7UBE&V^$6b66s|^oh4c`h#g_vO%UF6><&yd=cq6A8 zjQMohzGMnm{JQEbfNp8&XaTiGZYN8WratYTq7tN0oulLLaL|u9e9jYcH*e%ngyKAZmDJ}8Kc*%_UM3KWyJW`!Gv7ZgR6{$UPS+E86ns;g|7PV7Uq{_K zoAT2PC=!YFP9w2;_ahtE`T+^$0J+5PV-vvyJ+|mC%ktRmCO@Ixv?<+?I-`1nB0B#| zV&q3e_>7Qk+^Fp|r4D#vU|9`;;va1(KPPh)<8 z>fFHn-D92Pka~h6FmI4rDt)qPTFl{Jt?t(HTRktRB+OG#RMbzhD5Cf;E&NQy1?fKB zlWvro?!*XS`~Y=S4^Y{E1UDBQtYM%)R_X_5`P3on|8XZoJg&A8!e;yAd!Kvx-BVZT z*tZHk4Vj~-%aVr-A2!|-l+g$huLH2#apGh?HUX|gW8gq7i)0RR)8xZh4IMz}8KhWI zKcoNP&AZ?8RqTe3A4u1q23&Lv=x@*Gmtekq#z5``LI6O!9)5}pyhkrw=I5#gE+9Af zBaC4c8*zm*Op(~JSb{J*wxHZq zXh_3itabmZl9eD(N1-i>;?zI>q5jqK-C-25Ys(#!&~(>j%_t->Ztg{_e&;$=~tR(RyfQ zqfo0KJ4xbYBwlm9i;VA*BpJ^oT-Xfq3w1PAJ0NQ2DQoSAnEGEkezp}_)C|WO94+4( z1T_!sUtI^Hf?_U(I9eSd#7Z5i2TDtaTypa~S8}qX+=XvZ3CgRAA@5bA|B)0!`@+~| z3jGvO-5OwV=>HfyTTIn9rWjczZrJ#RMk%#I`C z-?@f=7ydhue4{3D*Q8r0`EoF|S;c#n=q`ouK`ZBY=luR6MnM6!gON;63GbX~3ssT+ zJ~1xwCWcUHn6bMrt{NY>@S)}Itip{o`WrcNqGi368zP6Xw{P{(3Tx^s60^+@YYt@J zyIU`A90>Pvd5ntTAQP*?M_k`jvQwoQ)Qds!a>{k zBtkomUC;AEzttP!CFEZ1KHA9tjk8Kd?himF>a3#K^NG6~$*SRsT{ic0?y;PH0=X9d zgGwr6^!=t(MvFu@o5642BzuNtmEfd&+`0owD5(UcY?1hKay^cQ%L@pooBNh!R>cuS{xWX-FGaf z9JZcKR&S;qTJ9=EqFERS7NB~9v+JE1o&E9vFk}ozCP6t@m*~=k` zByBPR{>;|0$Ev1Kod9uF{E-!`_cq4@Mh$Iq)1FL7_GV4&HB?F-SRu) zriS*bvnFXPBXs7f>>o(g-d+{fmm*mFW(x10owxKy|3~hAAd%wKk0nG6uacC-|iQFJQf1x8)3vyl_;YEqNFoyqHmJtmK?>y3mR zoY?DfSWXwd`Hvl({u94H_y13%{ofDM|9>Lw|KZ;J&nMFUKbY?Sx68$UmcRdx2crIG MiRnK}9DkSo3q^|2`Tzg` literal 0 HcmV?d00001 diff --git a/images/default.svg b/images/default.svg new file mode 100644 index 0000000..3e2b87c --- /dev/null +++ b/images/default.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/deps.png b/images/deps.png new file mode 100644 index 0000000000000000000000000000000000000000..09f32373317f3b9f3ec5146645260038fae3099f GIT binary patch literal 83660 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 Jfj%YTKLB8XUDz!f=2fT_W8hL~5XP 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 - - - - - - - - - Flutter Data - - - - - - - - - -
    -
    -
    -
    -

    - - - Flutter Data -

    -
    - -
    - Docs - - - - Articles -
    - - -
    -
    -
    - -
    -
    -
    -
    -

    - Persistent reactive models in Flutter. With zero boilerplate. -

    -

    - Flutter Data is an offline-first data framework that gives you a - configurable REST client and powerful model relationships. -

    - -
    - -
    -
    -
    - -
    - -
    -
    -

    Apps using Flutter Data

    -
    -
    - -
    -
    -
    -
    - -
    -
    -

    Features 🚀

    -
    -
    - Repositories for all models -
      -
    • CRUD and custom remote endpoints
    • -
    • StateNotifier watcher APIs
    • -
    -
    -
    - Built for offline-first -
      -
    • Hive-based local storage at its core
    • -
    • Failure handling & retry API
    • -
    -
    -
    - Intuitive APIs, effortless setup -
      -
    • Truly configurable and composable via Dart mixins and codegen
    • -
    • Built-in Riverpod providers for all models
    • -
    -
    -
    - Exceptional relationship support -
      -
    • Automatically synchronized, fully traversable relationship graph
    • -
    • Reactive relationships
    • -
    -
    -
    -
    -
    - -
    -
    -

    Working on a Flutter app that talks to an API - server?

    -

    You want to fetch data from a REST API, serialize it, store it for offline use and hook it up with your state - management solution – all that for 20+ interconnected models in your app.

    -

    Trying to make this work with http/Chopper/Firebase, json_serializable, ad-hoc caching, Riverpod wiring up, - custom loading/error states (not to mention sync’ing with local storage, Hive or SQLite)... -

    -

    - PAIN 😫 -

    -

    But what if you could get it all working smoothly with minimal effort?

    -
    -
    - -
    -
    -

    Compatibility

    -

    Fully compatible with the tools we know and love:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required) -
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!
    -
    -
    - - - - - \ No newline at end of file +Flutter Data

    Persistent reactive models in Flutter. With zero boilerplate.

    Flutter Data is an offline-first data framework that gives you a +configurable REST client and powerful model relationships.

    Apps using Flutter Data

    Features 🚀

    Repositories for all models
    Built for offline-first
    • Hive-based local storage at its core
    • Failure handling & retry API
    Intuitive APIs, effortless setup
    • Truly configurable and composable via Dart mixins and codegen
    • Built-in Riverpod providers for all models
    Exceptional relationship support
    • Automatically synchronized, fully traversable relationship graph
    • Reactive relationships

    Compatibility

    Fully compatible with the tools we know and love:

    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required)
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!
    \ No newline at end of file diff --git a/index.xml b/index.xml index 41a886b..fed7444 100644 --- a/index.xml +++ b/index.xml @@ -1,346 +1,99 @@ - - - - Flutter Data - / - Recent content on Flutter Data - Hugo -- gohugo.io - en-us - Thu, 09 Dec 2021 23:17:30 -0300 - - Quickstart - /docs/quickstart/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/quickstart/ - Add flutter_data and dependencies to your pubspec.yaml file: -dependencies:flutter:sdk:flutterflutter_data:^1.0.0# Highly RECOMMENDED (but not required) packagespath_provider:^2.0.7json_annotation:4.3.0flutter_riverpod:^1.0.0dev_dependencies:build_runner:^1.10.1# REQUIRED! Please use versions &gt;= 1.10.1# Highly RECOMMENDED (but not required) packagesjson_serializable:^6.0.1Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. -However, json_serializable and path_provider are highly convenient so they are recommended. -The latest flutter_data should be 1.0.0. Please check for all packages latest stable versions before copy-pasting dependencies. Basic configuration 🔧 Annotate your models with @DataRepository() and mix DataModel&lt;T&gt; in. - - - - Repositories - /docs/repositories/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/repositories/ - Flutter Data is organized around the concept of models which are data classes mixing in DataModel. -@DataRepository([TaskAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models – whether they are local or remote. - - - - Adapters - /docs/adapters/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/adapters/ - Flutter Data is extremely customizable and composable thanks to adapters, Flutter Data&rsquo;s building blocks. +Flutter Data/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: +dependencies: flutter: sdk: flutter flutter_data: ^1.4.4 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +However, json_serializable and path_provider are very convenient so they are recommended. +The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.Fetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: +Make sure you went through the Quickstart and got Flutter Data up and running! +Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial +We now have access to our Repository&lt;Task&gt; through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/. +Inspecting the /tasks endpoint we see: +[ { &#34;id&#34;: 1, &#34;title&#34;: &#34;Laundry 🧺&#34;, &#34;completed&#34;: false, &#34;userId&#34;: 1 }, { &#34;id&#34;: 2, &#34;title&#34;: &#34;Groceries 🛒&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, { &#34;id&#34;: 3, &#34;title&#34;: &#34;Reservation at Malloys&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, // .Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. +@DataRepository([TaskAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. +Repository is the API used to interact with models, whether local or remote.Marking tasks as done/tutorial/updating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/updating/A read-only tasks app is not very practical! Let&rsquo;s add the ability to update the completed state and mark/unmark our tasks as done. +First, though, we&rsquo;ll extract the tasks-specific code to a separate screen named TasksScreen: +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. -Overriding basic behavior Several parts are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework can take a sensible guess and make that GET /tasks by default – and it does. -Still, a base URL is necessary and the endpoint parts should be overridable. - - - - Models - /docs/models/ - Mon, 20 Apr 2020 19:01:08 -0300 - - /docs/models/ - Flutter Data models are data classes that mix DataModel in: -@DataRepository([TaskAdapter]) @JsonSerializable() class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } This enforces the implementation of the id getter. Use the type that better suits your data: int? and String? are the most common. -The json_serializable library is helpful but not required. - Model with @JsonSerializable? You don&rsquo;t need to declare fromJson or toJson Model without @JsonSerializable? - - - - Relationships - /docs/relationships/ - Mon, 20 Apr 2020 17:21:33 -0300 - - /docs/relationships/ - Flutter Data features an advanced relationship mapping system. +Overriding basic behavior Several pieces of information are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework takes a sensible guess and makes that GET /tasks by default. +Still, a base URL is necessary and the endpoint parts should be overridable. +The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).save(); _newTaskController.clear(); }, ), for (final task in state.model) ListTile( leading: Checkbox( value: task.completed, onChanged: (value) =&gt; task.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: +@DataRepository([TaskAdapter]) @JsonSerializable() class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common. +The json_serializable library is helpful but not required.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}); // ... } Hot restarting the app we should only see five tasks, but&hellip; +It&rsquo;s exactly the same as before. Why isn&rsquo;t this working? 🤔 +Turns out watchAll is wired to show all tasks in local storage.Relationships/docs/relationships/Mon, 20 Apr 2020 17:21:33 -0300/docs/relationships/Flutter Data features an advanced relationship mapping system. Use: - HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class User with DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task with DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;? - - - - Initialization - /docs/initialization/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/initialization/ - In Flutter with Riverpod The setup involves two parts: setting up local storage via configureRepositoryLocalStorage, and then waiting for Flutter Data initialization in the entry point widget. -import &#39;package:flutter/material.dart&#39;; import &#39;package:hooks_riverpod/hooks_riverpod.dart&#39;; import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;main.data.dart&#39;; import &#39;models/task.dart&#39;; void main() { runApp( ProviderScope( child: MyApp(), overrides: [configureRepositoryLocalStorage()], ), ); } class MyApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: Scaffold( body: Center( child: ref. - - - - FAQ - /docs/faq/ - Mon, 01 Jan 0001 00:00:00 +0000 - - /docs/faq/ - Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: +HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! +We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +The former happens when wiring up providers and the latter during widget build. +Local storage initialization Here are the configuration options with their default arguments explicit: +ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: flutter pub run build_runner build --delete-conflicting-outputs VSCode users! If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. - Also make sure your dependencies are up to date: - - - - Nested Resources Adapter - /articles/nested-resources-adapter/ - Thu, 09 Dec 2021 23:17:30 -0300 - - /articles/nested-resources-adapter/ - Here&rsquo;s how you could access nested resources such as: /posts/1/comments -mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: -final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); - - - - Custom Deserialization Adapter - /articles/custom-deserialization-adapter/ - Thu, 09 Dec 2021 23:15:44 -0300 - - /articles/custom-deserialization-adapter/ - Example: +Also make sure your dependencies are up to date:How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider() again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.refresh(repositoryInitializerProvider()), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider()).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: -final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. - - - - Intercept Logout Adapter - /articles/intercept-logout-adapter/ - Thu, 09 Dec 2021 23:15:11 -0300 - - /articles/intercept-logout-adapter/ - The global onError handler will call logout if certain conditions are met: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } - - - - Override findAll Adapter - /articles/override-findall-adapter/ - Thu, 09 Dec 2021 23:14:28 -0300 - - /articles/override-findall-adapter/ - In this example we completely override findAll to return random models: -mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } - - - - Override findOne URL Adapter - /articles/override-findone-url-method/ - Thu, 09 Dec 2021 23:14:28 -0300 - - /articles/override-findone-url-method/ - In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: -mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } - - - - Iterator Style Adapter - /articles/iterator-style-adapter/ - Thu, 09 Dec 2021 23:13:36 -0300 - - /articles/iterator-style-adapter/ - mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. +Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent.Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. -final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); - - - - Override HTTP Client Adapter - /articles/override-http-client-adapter/ - Thu, 09 Dec 2021 23:10:10 -0300 - - /articles/override-http-client-adapter/ - An example on how to override and use a more advanced HTTP client. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); Need professional help with Flutter?Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. Here the connectionTimeout is increased, and an HTTP proxy enabled. -mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient! - - - - Override Default Headers and Query Parameters - /articles/override-headers-query-parameters/ - Thu, 09 Dec 2021 23:07:40 -0300 - - /articles/override-headers-query-parameters/ - Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. +mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient!.findProxy = (uri) =&gt; &#39;PROXY (proxy url)&#39;; return _ioClient!Override Default Headers and Query Parameters/articles/override-headers-query-parameters/Thu, 09 Dec 2021 23:07:40 -0300/articles/override-headers-query-parameters/Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. Here is how: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super. - - - - Configure Flutter Data to Work with GetIt - /articles/configure-get-it/ - Sun, 05 Dec 2021 23:12:05 -0300 - - /articles/configure-get-it/ - This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { final _localStorageService = read(localStorageProvider); @override String get baseUrl =&gt; &#34;http://my.remote.url:8080/&#34;; @override FutureOr&lt;Map&lt;String, String&gt;&gt; get defaultHeaders async { final token = _localStorageService.getToken(); return await super.defaultHeaders &amp; {&#39;Authorization&#39;: token}; } @override FutureOr&lt;Map&lt;String, dynamic&gt;&gt; get defaultParams async { return await super.Configure Flutter Data to Work with GetIt/articles/configure-get-it/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-get-it/This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository. - - - - Configure Flutter Data to Work with Provider - /articles/configure-provider/ - Sun, 05 Dec 2021 23:12:05 -0300 - - /articles/configure-provider/ - This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. +class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository.Configure Flutter Data to Work with Provider/articles/configure-provider/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-provider/This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context. - - - - Override Base URL Adapter - /articles/override-base-url/ - Fri, 03 Dec 2021 18:45:45 -0300 - - /articles/override-base-url/ - Flutter Data is extended via adapters. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.How to Retry Offline Calls to Sync Data/articles/how-to-retry-offline-sync-data/Sun, 05 Dec 2021 23:12:05 -0300/articles/how-to-retry-offline-sync-data/Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives. +The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException. +final notifier = ref.read(pendingOfflineTypesProvider.notifier); final _dispose = notifier.addListener((Set&lt;String&gt; types) async { // check offline operations for all these types }); For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: -mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } - - - - Deconstructing Dart Constructors - /articles/deconstructing-dart-constructors/ - Wed, 12 Feb 2020 13:43:48 -0500 - - /articles/deconstructing-dart-constructors/ - Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly.Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; Read this post and you will become an expert! When we want an instance of a certain class we call a constructor, right? var robot = new Robot(); In Dart 2 we can leave out the new: -var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: - - - - Dart Getter Shorthand to Cache Computed Properties - /articles/dart-getter-cache-computed-properties/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/dart-getter-cache-computed-properties/ - An elegant Dart getter shorthand used to cache computed properties: +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:Dart Getter Shorthand to Cache Computed Properties/articles/dart-getter-cache-computed-properties/Sat, 04 Jan 2020 13:43:48 -0500/articles/dart-getter-cache-computed-properties/An elegant Dart getter shorthand used to cache computed properties: T get foo =&gt; _foo ??= _computeFoo(); // which depends on having T _foo; T _computeFoo() =&gt; /** ... **/; It makes use of the fallback assignment operator ??=. -Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart! - - - - Final vs const in Dart - /articles/dart-final-const-difference/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/dart-final-const-difference/ - What&rsquo;s the difference between final and const in Dart? +Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart!Final vs const in Dart/articles/dart-final-const-difference/Sat, 04 Jan 2020 13:43:48 -0500/articles/dart-final-const-difference/What&rsquo;s the difference between final and const in Dart? Easy! Final means single-assignment. Const means immutable. Let&rsquo;s see an example: -final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! - - - - How To Define an Interface in Dart - /articles/define-interface-dart/ - Sat, 04 Jan 2020 13:43:48 -0500 - - /articles/define-interface-dart/ - Dart defines implicit interfaces. What does this mean? +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? In your app you&rsquo;d have: class Session { authenticate() { // impl } } or abstract class Session { authenticate(); } And for example in tests: class MockSession implements Session { authenticate() { // mock impl } } No need to define a separate interface, just use regular or abstract classes! -Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! - - - - How to Build Widgets with an Async Method Call - /articles/build-widget-with-async-method-call/ - Wed, 18 Dec 2019 00:00:00 +0000 - - /articles/build-widget-with-async-method-call/ - You want to return a widget in a build method&hellip; +Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!How to Build Widgets with an Async Method Call/articles/build-widget-with-async-method-call/Wed, 18 Dec 2019 00:00:00 +0000/articles/build-widget-with-async-method-call/You want to return a widget in a build method&hellip; But your data comes from an async function! -class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. -So, can we make the build method async? - - - - Why Is My Future/Async Called Multiple Times? - /articles/future-async-called-multiple-times/ - Wed, 18 Dec 2019 00:00:00 +0000 - - /articles/future-async-called-multiple-times/ - Why is FutureBuilder firing multiple times? My future should be called just once! +class MyWidget extends StatelessWidget { @override Widget build(context) { callAsyncFetch().then((data) { return Text(data); // doesn&#39;t work }); } } The callAsyncFetch function could be an HTTP call, a Firebase call, or a call to SharedPreferences or SQLite, etc. Anything that returns a Future 🔮. +So, can we make the build method async? 🤔Why Is My Future/Async Called Multiple Times?/articles/future-async-called-multiple-times/Wed, 18 Dec 2019 00:00:00 +0000/articles/future-async-called-multiple-times/Why is FutureBuilder firing multiple times? My future should be called just once! It appears that this build method is rebuilding unnecessarily: -@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example. - - - - The Ultimate Javascript vs Dart Syntax Guide - /articles/ultimate-javascript-dart-syntax-guide/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /articles/ultimate-javascript-dart-syntax-guide/ - Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +@override Widget build(context) { return FutureBuilder&lt;String&gt;( future: callAsyncFetch(), // called all the time!!! 😡 builder: (context, snapshot) { // rebuilding all the time!!! 😡 } ); } This causes unintentional network refetches, recomputes and rebuilds – which can also be an expensive problem if using Firebase, for example.The Ultimate Javascript vs Dart Syntax Guide/articles/ultimate-javascript-dart-syntax-guide/Tue, 15 Oct 2019 13:43:48 -0500/articles/ultimate-javascript-dart-syntax-guide/Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. (Pros and cons of choosing Flutter/Dart is outside the scope of this article.) So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! -Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. - - - - Checking Nulls and Null-Aware Operators in Dart - /articles/checking-null-aware-operators-dart/ - Wed, 18 Sep 2019 00:00:00 +0000 - - /articles/checking-null-aware-operators-dart/ - What is the best practice for checking nulls in Dart? +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs.Checking Nulls and Null-Aware Operators in Dart/articles/checking-null-aware-operators-dart/Wed, 18 Sep 2019 00:00:00 +0000/articles/checking-null-aware-operators-dart/What is the best practice for checking nulls in Dart? var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. However! There are some very interesting null-aware operators. -Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: - - - - How to Format a Duration as a HH:MM:SS String - /articles/how-to-format-duration/ - Tue, 10 Sep 2019 23:43:48 -0500 - - /articles/how-to-format-duration/ - The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2:How to Format a Duration as a HH:MM:SS String/articles/how-to-format-duration/Tue, 10 Sep 2019 23:43:48 -0500/articles/how-to-format-duration/The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing: format(Duration d) =&gt; d.toString().split(&#39;.&#39;).first.padLeft(8, &#34;0&#34;); Example usage: -main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: - - - - How to Upgrade Flutter - /articles/upgrade-flutter-sdk/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /articles/upgrade-flutter-sdk/ - Type in your terminal: +main() { final d1 = Duration(hours: 17, minutes: 3); final d2 = Duration(hours: 9, minutes: 2, seconds: 26); final d3 = Duration(milliseconds: 0); print(format(d1)); // 17:03:00 print(format(d2)); // 09:02:26 print(format(d3)); // 00:00:00 } If we are dealing with smaller durations and needed only minutes and seconds: +format(Duration d) =&gt; d.How to Upgrade Flutter/articles/upgrade-flutter-sdk/Tue, 27 Aug 2019 12:43:48 -0500/articles/upgrade-flutter-sdk/Type in your terminal: flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade - - - - Minimal Flutter Apps to Get Started - /articles/minimal-hello-world-flutter-app/ - Tue, 30 Jul 2019 23:43:48 -0500 - - /articles/minimal-hello-world-flutter-app/ - Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +flutter upgrade Need professional help with Flutter?Minimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. Here are a few options to copy-paste into lib/main.dart. -Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! - - - - +Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! \ No newline at end of file diff --git a/main.css b/main.css index 0f4398f..b6f04e8 100644 --- a/main.css +++ b/main.css @@ -1,82 +1,67 @@ -/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com */ - -/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */ - /* -Document -======== +! tailwindcss v3.0.7 | MIT License | https://tailwindcss.com */ -/** -Use a better box model (opinionated). +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) */ *, ::before, ::after { box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: currentColor; + /* 2 */ } -/** -Use a more readable tab size (opinionated). -*/ - -html { - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; +::before, +::after { + --tw-content: ''; } -/** -1. Correct the line height in all browsers. +/* +1. Use a consistent sensible line-height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. */ html { - line-height: 1.15; + line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: Inter, system-ui, BlinkMacSystemFont, -apple-system, sans-serif; + /* 4 */ } /* -Sections -======== -*/ - -/** -Remove the margin in all browsers. +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. */ body { margin: 0; -} - -/** -Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) -*/ - -body { - font-family: - system-ui, - -apple-system, /* Firefox supports this but not yet `system-ui` */ - 'Segoe UI', - Roboto, - Helvetica, - Arial, - sans-serif, - 'Apple Color Emoji', - 'Segoe UI Emoji'; + /* 1 */ + line-height: inherit; + /* 2 */ } /* -Grouping content -================ -*/ - -/** 1. Add the correct height in Firefox. 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. */ hr { @@ -84,14 +69,11 @@ hr { /* 1 */ color: inherit; /* 2 */ + border-top-width: 1px; + /* 3 */ } /* -Text-level semantics -==================== -*/ - -/** Add the correct text decoration in Chrome, Edge, and Safari. */ @@ -100,7 +82,30 @@ abbr[title] { text-decoration: underline dotted; } -/** +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* Add the correct font weight in Edge and Safari. */ @@ -109,28 +114,22 @@ strong { font-weight: bolder; } -/** -1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) -2. Correct the odd 'em' font sizing in all browsers. +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp, pre { - font-family: - ui-monospace, - SFMono-Regular, - Consolas, - 'Liberation Mono', - Menlo, - monospace; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ font-size: 1em; /* 2 */ } -/** +/* Add the correct font size in all browsers. */ @@ -138,8 +137,8 @@ small { font-size: 80%; } -/** -Prevent 'sub' and 'sup' elements from affecting the line height in all browsers. +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ sub, @@ -159,13 +158,9 @@ sup { } /* -Tabular data -============ -*/ - -/** 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. */ table { @@ -173,16 +168,14 @@ table { /* 1 */ border-color: inherit; /* 2 */ + border-collapse: collapse; + /* 3 */ } /* -Forms -===== -*/ - -/** 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. */ button, @@ -194,25 +187,28 @@ textarea { /* 1 */ font-size: 100%; /* 1 */ - line-height: 1.15; + line-height: inherit; + /* 1 */ + color: inherit; /* 1 */ margin: 0; /* 2 */ + padding: 0; + /* 3 */ } -/** +/* Remove the inheritance of text transform in Edge and Firefox. -1. Remove the inheritance of text transform in Firefox. */ button, select { - /* 1 */ text-transform: none; } -/** -Correct the inability to style clickable types in iOS and Safari. +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. */ button, @@ -220,43 +216,30 @@ button, [type='reset'], [type='submit'] { -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ } -/** -Remove the inner border and padding in Firefox. -*/ - -::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** -Restore the focus styles unset by the previous rule. +/* +Use the modern Firefox focus style for all focusable elements. */ :-moz-focusring { - outline: 1px dotted ButtonText; + outline: auto; } -/** -Remove the additional ':invalid' styles in Firefox. -See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737 +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) */ :-moz-ui-invalid { box-shadow: none; } -/** -Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers. -*/ - -legend { - padding: 0; -} - -/** +/* Add the correct vertical alignment in Chrome and Firefox. */ @@ -264,7 +247,7 @@ progress { vertical-align: baseline; } -/** +/* Correct the cursor style of increment and decrement buttons in Safari. */ @@ -273,7 +256,7 @@ Correct the cursor style of increment and decrement buttons in Safari. height: auto; } -/** +/* 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ @@ -285,7 +268,7 @@ Correct the cursor style of increment and decrement buttons in Safari. /* 2 */ } -/** +/* Remove the inner padding in Chrome and Safari on macOS. */ @@ -293,9 +276,9 @@ Remove the inner padding in Chrome and Safari on macOS. -webkit-appearance: none; } -/** +/* 1. Correct the inability to style clickable types in iOS and Safari. -2. Change font properties to 'inherit' in Safari. +2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { @@ -305,11 +288,6 @@ Remove the inner padding in Chrome and Safari on macOS. /* 2 */ } -/* -Interactive -=========== -*/ - /* Add the correct display in Chrome and Safari. */ @@ -318,15 +296,9 @@ summary { display: list-item; } -/** - * Manually forked from SUIT CSS Base: https://github.com/suitcss/base - * A thin layer on top of normalize.css that provides a starting point more - * suitable for web applications. - */ - -/** - * Removes the default spacing and border for appropriate elements. - */ +/* +Removes the default spacing and border for appropriate elements. +*/ blockquote, dl, @@ -344,221 +316,80 @@ pre { margin: 0; } -button { - background-color: transparent; - background-image: none; -} - fieldset { margin: 0; padding: 0; } +legend { + padding: 0; +} + ol, -ul { +ul, +menu { list-style: none; margin: 0; padding: 0; } -/** - * Tailwind custom reset styles - */ - -/** - * 1. Use the user's configured `sans` font-family (with Tailwind's default - * sans-serif font stack as a fallback) as a sane default. - * 2. Use Tailwind's default "normal" line-height so the user isn't forced - * to override it to ensure consistency even when using the default theme. - */ - -html { - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; - /* 1 */ - line-height: 1.5; - /* 2 */ -} - -/** - * Inherit font-family and line-height from `html` so users can set them as - * a class directly on the `html` element. - */ - -body { - font-family: inherit; - line-height: inherit; -} - -/** - * 1. Prevent padding and border from affecting element width. - * - * We used to set this in the html element and inherit from - * the parent element for everything else. This caused issues - * in shadow-dom-enhanced elements like
    where the content - * is wrapped by a div with box-sizing set to `content-box`. - * - * https://github.com/mozdevs/cssremedy/issues/4 - * - * - * 2. Allow adding a border to an element by just adding a border-width. - * - * By default, the way the browser specifies that an element should have no - * border is by setting it's border-style to `none` in the user-agent - * stylesheet. - * - * In order to easily add borders to elements by just setting the `border-width` - * property, we change the default border-style for all elements to `solid`, and - * use border-width to hide them instead. This way our `border` utilities only - * need to set the `border-width` property instead of the entire `border` - * shorthand, making our border utilities much more straightforward to compose. - * - * https://github.com/tailwindcss/tailwindcss/pull/116 - */ - -*, -::before, -::after { - box-sizing: border-box; - /* 1 */ - border-width: 0; - /* 2 */ - border-style: solid; - /* 2 */ - border-color: currentColor; - /* 2 */ -} - /* - * Ensure horizontal rules are visible by default - */ - -hr { - border-top-width: 1px; -} - -/** - * Undo the `border-style: none` reset that Normalize applies to images so that - * our `border-{width}` utilities have the expected effect. - * - * The Normalize reset is unnecessary for us since we default the border-width - * to 0 on all elements. - * - * https://github.com/tailwindcss/tailwindcss/issues/362 - */ - -img { - border-style: solid; -} +Prevent resizing textareas horizontally by default. +*/ textarea { resize: vertical; } +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + input::-moz-placeholder, textarea::-moz-placeholder { opacity: 1; + /* 1 */ color: #9ca3af; + /* 2 */ } input:-ms-input-placeholder, textarea:-ms-input-placeholder { opacity: 1; + /* 1 */ color: #9ca3af; + /* 2 */ } input::placeholder, textarea::placeholder { opacity: 1; + /* 1 */ color: #9ca3af; + /* 2 */ } +/* +Set the default cursor for buttons. +*/ + button, [role="button"] { cursor: pointer; } -/** - * Override legacy focus reset from Normalize with modern Firefox focus styles. - * - * This is actually an improvement over the new defaults in Firefox in our testing, - * as it triggers the better focus styles even for links, which still use a dotted - * outline in Firefox by default. - */ - -:-moz-focusring { - outline: auto; -} - -table { - border-collapse: collapse; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-size: inherit; - font-weight: inherit; -} - -/** - * Reset links to optimize for opt-in styling instead of - * opt-out. - */ - -a { - color: inherit; - text-decoration: inherit; -} - -/** - * Reset form element properties that are easy to forget to - * style explicitly so you don't inadvertently introduce - * styles that deviate from your design system. These styles - * supplement a partial reset that is already applied by - * normalize.css. - */ - -button, -input, -optgroup, -select, -textarea { - padding: 0; - line-height: inherit; - color: inherit; -} - -/** - * Use the configured 'mono' font family for elements that - * are expected to be rendered with a monospace font, falling - * back to the system monospace stack if there is no configured - * 'mono' font family. - */ +/* +Make sure disabled buttons don't get the pointer cursor. +*/ -pre, -code, -kbd, -samp { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +:disabled { + cursor: default; } -/** - * 1. Make replaced elements `display: block` by default as that's - * the behavior you want almost all of the time. Inspired by - * CSS Remedy, with `svg` added as well. - * - * https://github.com/mozdevs/cssremedy/issues/14 - * - * 2. Add `vertical-align: middle` to align replaced elements more - * sensibly by default when overriding `display` by adding a - * utility like `inline`. - * - * This can trigger a poorly considered linting error in some - * tools but is included by design. - * - * https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210 - */ +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ img, svg, @@ -574,12 +405,9 @@ object { /* 2 */ } -/** - * Constrain images and videos to the parent width and preserve - * their intrinsic aspect ratio. - * - * https://github.com/mozdevs/cssremedy/issues/14 - */ +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ img, video { @@ -587,9 +415,9 @@ video { height: auto; } -/** - * Ensure the default browser behavior of the `hidden` attribute. - */ +/* +Ensure the default browser behavior of the `hidden` attribute. +*/ [hidden] { display: none; @@ -597,7 +425,55 @@ video { *, ::before, ::after { --tw-border-opacity: 1; - border-color: rgba(229, 231, 235, var(--tw-border-opacity)); + border-color: rgb(229 231 235 / var(--tw-border-opacity)); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; +} + +.container { + width: 100%; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1920px) { + .container { + max-width: 1920px; + } +} + +@media (min-width: 2048px) { + .container { + max-width: 2048px; + } +} + +.static { + position: static; } .fixed { @@ -609,6 +485,7 @@ video { } .sticky { + position: -webkit-sticky; position: sticky; } @@ -650,6 +527,31 @@ video { margin-right: -1.5rem; } +.my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.-mx-4 { + margin-left: -1rem; + margin-right: -1rem; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.my-0 { + margin-top: 0px; + margin-bottom: 0px; +} + +.my-10 { + margin-top: 2.5rem; + margin-bottom: 2.5rem; +} + .-mt-6 { margin-top: -1.5rem; } @@ -722,11 +624,23 @@ video { margin-top: 5rem; } -.block { - display: block; +.mr-4 { + margin-right: 1rem; } -.inline-block { +.mt-0 { + margin-top: 0px; +} + +.mt-32 { + margin-top: 8rem; +} + +.block { + display: block; +} + +.inline-block { display: inline-block; } @@ -774,6 +688,14 @@ video { height: 100vh; } +.h-24 { + height: 6rem; +} + +.h-32 { + height: 8rem; +} + .max-h-screen { max-height: 100vh; } @@ -846,6 +768,12 @@ video { list-style-type: none; } +.appearance-none { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } @@ -862,6 +790,10 @@ video { flex-direction: column; } +.flex-wrap { + flex-wrap: wrap; +} + .items-center { align-items: center; } @@ -896,37 +828,97 @@ video { overflow-y: scroll; } +.break-normal { + overflow-wrap: normal; + word-break: normal; +} + .rounded { border-radius: 0.25rem; } +.rounded-md { + border-radius: 0.375rem; +} + +.border-8 { + border-width: 8px; +} + +.border-2 { + border-width: 2px; +} + .border-b { border-bottom-width: 1px; } +.border-b-2 { + border-bottom-width: 2px; +} + +.border-dashed { + border-style: dashed; +} + .border-gray-200 { --tw-border-opacity: 1; - border-color: rgba(229, 231, 235, var(--tw-border-opacity)); + border-color: rgb(229 231 235 / var(--tw-border-opacity)); } -.bg-gray-900 { +.border-green-600 { + --tw-border-opacity: 1; + border-color: rgb(22 163 74 / var(--tw-border-opacity)); +} + +.bg-original-gray { --tw-bg-opacity: 1; - background-color: rgba(17, 24, 39, var(--tw-bg-opacity)); + background-color: rgb(26 32 44 / var(--tw-bg-opacity)); } .bg-green-500 { --tw-bg-opacity: 1; - background-color: rgba(16, 185, 129, var(--tw-bg-opacity)); + background-color: rgb(34 197 94 / var(--tw-bg-opacity)); } .bg-yellow-50 { --tw-bg-opacity: 1; - background-color: rgba(255, 251, 235, var(--tw-bg-opacity)); + background-color: rgb(253 253 234 / var(--tw-bg-opacity)); } .bg-white { --tw-bg-opacity: 1; - background-color: rgba(255, 255, 255, var(--tw-bg-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.bg-green-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity)); +} + +.bg-gray-600 { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.bg-yellow-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 249 195 / var(--tw-bg-opacity)); +} + +.bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.bg-flutter-yellow { + --tw-bg-opacity: 1; + background-color: rgb(255 240 177 / var(--tw-bg-opacity)); } .bg-cover { @@ -941,8 +933,13 @@ video { fill: currentColor; } -.p-20 { - padding: 5rem; +.p-6 { + padding: 1.5rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; } .py-2 { @@ -980,6 +977,11 @@ video { padding-right: 0.75rem; } +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + .pl-2 { padding-left: 0.5rem; } @@ -992,10 +994,6 @@ video { padding-top: 0.5rem; } -.pb-20 { - padding-bottom: 5rem; -} - .pl-6 { padding-left: 1.5rem; } @@ -1012,6 +1010,14 @@ video { padding-top: 5rem; } +.pb-2 { + padding-bottom: 0.5rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + .text-left { text-align: left; } @@ -1029,9 +1035,9 @@ video { line-height: 2rem; } -.text-4xl { - font-size: 2.25rem; - line-height: 2.5rem; +.text-5xl { + font-size: 3rem; + line-height: 1; } .text-xl { @@ -1054,6 +1060,16 @@ video { line-height: 1.25rem; } +.text-4xl { + font-size: 2.25rem; + line-height: 2.5rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + .font-bold { font-weight: 700; } @@ -1062,8 +1078,12 @@ video { font-weight: 500; } -.leading-tight { - line-height: 1.25; +.uppercase { + text-transform: uppercase; +} + +.leading-snug { + line-height: 1.375; } .leading-relaxed { @@ -1074,50 +1094,65 @@ video { line-height: 2rem; } -.leading-snug { - line-height: 1.375; +.leading-tight { + line-height: 1.25; } .tracking-tighter { letter-spacing: -0.05em; } -.tracking-normal { - letter-spacing: 0em; +.tracking-wide { + letter-spacing: 0.025em; +} + +.tracking-tight { + letter-spacing: -0.025em; } .text-white { --tw-text-opacity: 1; - color: rgba(255, 255, 255, var(--tw-text-opacity)); + color: rgb(255 255 255 / var(--tw-text-opacity)); } .text-gray-400 { --tw-text-opacity: 1; - color: rgba(156, 163, 175, var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity)); } -.text-gray-500 { +.text-gray-800 { --tw-text-opacity: 1; - color: rgba(107, 114, 128, var(--tw-text-opacity)); + color: rgb(31 41 55 / var(--tw-text-opacity)); } -.text-gray-800 { +.text-gray-700 { --tw-text-opacity: 1; - color: rgba(31, 41, 55, var(--tw-text-opacity)); + color: rgb(55 65 81 / var(--tw-text-opacity)); } -.text-gray-700 { +.text-gray-500 { --tw-text-opacity: 1; - color: rgba(55, 65, 81, var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity)); } .text-gray-600 { --tw-text-opacity: 1; - color: rgba(75, 85, 99, var(--tw-text-opacity)); + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.text-red-800 { + --tw-text-opacity: 1; + color: rgb(153 27 27 / var(--tw-text-opacity)); +} + +.underline { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; } .no-underline { - text-decoration: none; + -webkit-text-decoration-line: none; + text-decoration-line: none; } .antialiased { @@ -1125,24 +1160,739 @@ video { -moz-osx-font-smoothing: grayscale; } +.shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.waves { + /* IMPORTANT: if updating SVG, replace all # with %23 */ + background-image: url("data:image/svg+xml;utf8,"); +} + +.pattern { + background-image: url("data:image/svg+xml,"); +} + +h1, h2, h3, h4 { + margin-top: 2rem; + margin-bottom: 1rem; + font-weight: 700; + line-height: 1.375; + letter-spacing: -0.025em; + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +h1 { + font-size: 2.25rem; + line-height: 2.5rem; +} + +h1::before, +h2::before, +h3::before { + display: block; + content: " "; + visibility: hidden; + pointer-events: none; + margin-top: -5rem; + height: 5rem; +} + +h2 { + font-size: 1.875rem; + line-height: 2.25rem; +} + +h3 { + font-size: 1.5rem; + line-height: 2rem; +} + +h4 { + padding-top: 0.25rem; + font-size: 1.25rem; + line-height: 1.75rem; +} + +nav a { + margin-top: 0.5rem; + margin-bottom: 0.5rem; + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); + -webkit-text-decoration-line: none; + text-decoration-line: none; +} + +nav a:hover { + --tw-text-opacity: 1; + color: rgb(0 0 0 / var(--tw-text-opacity)); +} + +p { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +ul { + margin-top: 1rem; + margin-bottom: 1rem; + margin-left: 0.5rem; + list-style-position: inside; + list-style-type: disc; +} + +hr { + border-bottom-width: 2px; +} + +a { + word-wrap: break-word; + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity)); + -webkit-text-decoration-line: underline; + text-decoration-line: underline; +} + +img.center { + display: block; + margin: 0 auto; +} + +blockquote { + color: #718096; + background-color: #f7fafc; + border-left-width: 8px; + margin-top: 1rem; + margin-bottom: 1rem; + padding: 1rem; + padding-left: 2rem; + font-size: 1.125rem; + font-style: italic; +} + +.notice { + font-size: 1rem; + line-height: 1.625; +} + +.notice h4 { + padding-top: 0px; +} + +.notice a { + font-weight: 700; + -webkit-text-decoration-line: underline; + text-decoration-line: underline; + color: #746939 !important; +} + +.notice a > code { + background: #f6de7b !important; +} + +.notice code { + --tw-bg-opacity: 1; + background-color: rgb(253 224 71 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.notice code[data-lang] { + background: unset; +} + +/***/ + +#TableOfContents { + font-size: 0.875rem; + line-height: 1.25rem; +} + +#TableOfContents ul { + margin-top: 0px; + margin-bottom: 0px; + margin-left: 0.25rem; + list-style-type: none; +} + +#TableOfContents li { + margin-top: 0.5rem; +} + +nav .active > a, a.active { + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + border-radius: 0.25rem; + font-weight: 700; + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +#badges img { + margin: 0; + display: inline-block; +} + +code, pre { + overflow: scroll; + border-radius: 0.375rem; + font-weight: 700; + font-family: "Fira Mono", monospace; + white-space: pre-wrap; + word-break: keep-all; + word-wrap: break-word; +} + +code { + border-radius: 0.25rem; + --tw-bg-opacity: 1; + background-color: rgb(253 253 234 / var(--tw-bg-opacity)); + padding: 0.25rem; + font-weight: 400; + letter-spacing: -0.025em; + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +p code, +li code { + font-size: 0.98rem; +} + +pre.chroma { + margin-top: 2rem; + margin-bottom: 2rem; + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); + padding: 1.5rem; + line-height: 1.625; +} + +pre.chroma code { + overflow-wrap: break-word; + background-color: transparent; + padding: 0px; + font-size: 1rem; + line-height: 1.5rem; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.chroma .hl { + margin-left: -1.5rem; + margin-right: -1.5rem; + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +/* Syntax highlighting */ + +/* Error */ + +.chroma .err { + color: white; +} + +/* LineTableTD */ + +.chroma .lntd { + vertical-align: top; + padding: 0; + margin: 0; + border: 0; +} + +/* LineTable */ + +.chroma .lntable { + border-spacing: 0; + padding: 0; + margin: 0; + border: 0; + width: auto; + overflow: auto; + display: block; +} + +/* LineHighlight */ + +.chroma .hl { + background-color: #5b554ac9; + display: block; +} + +/* LineNumbersTable */ + +.chroma .lnt { + margin-right: 0.4em; + padding: 0 0.4em 0 0.4em; + color: #7f7f7f; +} + +/* LineNumbers */ + +.chroma .ln { + margin-right: 0.4em; + padding: 0 0.4em 0 0.4em; + color: #7f7f7f; +} + +/* Keyword */ + +.chroma .k { + color: #e6d43e; +} + +/* KeywordConstant */ + +.chroma .kc { + color: #f5c150; +} + +/* KeywordDeclaration */ + +.chroma .kd { + color: #e6d43e; +} + +/* KeywordNamespace */ + +.chroma .kn { + color: #e6d43e; +} + +/* KeywordPseudo */ + +.chroma .kp { + color: #e6d43e; +} + +/* KeywordReserved */ + +.chroma .kr { + color: #e6d43e; +} + +/* KeywordType */ + +.chroma .kt { + color: #e6d43e; +} + +/* NameAttribute */ + +.chroma .na { + color: #a6e22e; +} + +/* NameClass */ + +.chroma .nc { + color: #cee22e; +} + +/* NameConstant */ + +.chroma .no { + color: #e6d43e; +} + +/* NameDecorator */ + +.chroma .nd { + color: #a6e22e; +} + +/* NameException */ + +.chroma .ne { + color: #a6e22e; +} + +/* NameFunction */ + +.chroma .nf { + color: #a6e22e; +} + +/* NameOther */ + +.chroma .nx { + color: #a6e22e; +} + +/* NameTag */ + +.chroma .nt { + color: #fa166f; +} + +/* Literal */ + +.chroma .l { + color: #ae81ff; +} + +/* LiteralDate */ + +.chroma .ld { + color: #e6db74; +} + +/* LiteralString */ + +.chroma .s { + color: #e6db74; +} + +/* LiteralStringAffix */ + +.chroma .sa { + color: #e6db74; +} + +/* LiteralStringBacktick */ + +.chroma .sb { + color: #e6db74; +} + +/* LiteralStringChar */ + +.chroma .sc { + color: #e6db74; +} + +/* LiteralStringDelimiter */ + +.chroma .dl { + color: #e6db74; +} + +/* LiteralStringDoc */ + +.chroma .sd { + color: #e6db74; +} + +/* LiteralStringDouble */ + +.chroma .s2 { + color: #e2f077; +} + +/* LiteralStringEscape */ + +.chroma .se { + color: #ae81ff; +} + +/* LiteralStringHeredoc */ + +.chroma .sh { + color: #e6db74; +} + +/* LiteralStringInterpol */ + +.chroma .si { + color: #e6db74; +} + +/* LiteralStringOther */ + +.chroma .sx { + color: #e6db74; +} + +/* LiteralStringRegex */ + +.chroma .sr { + color: #e6db74; +} + +/* LiteralStringSingle */ + +.chroma .s1 { + color: #d0a343; +} + +/* LiteralStringSymbol */ + +.chroma .ss { + color: #e6db74; +} + +/* LiteralNumber */ + +.chroma .m { + color: #63a4e8; +} + +/* LiteralNumberBin */ + +.chroma .mb { + color: #63a4e8; +} + +/* LiteralNumberFloat */ + +.chroma .mf { + color: #63a4e8; +} + +/* LiteralNumberHex */ + +.chroma .mh { + color: #63a4e8; +} + +/* LiteralNumberInteger */ + +.chroma .mi { + color: #63a4e8; +} + +/* LiteralNumberIntegerLong */ + +.chroma .il { + color: #63a4e8; +} + +/* LiteralNumberOct */ + +.chroma .mo { + color: #63a4e8; +} + +/* Operator */ + +.chroma .o { + color: #e36898; +} + +/* OperatorWord */ + +.chroma .ow { + color: #e36898; +} + +/* Comment */ + +.chroma .c { + color: #75715e; +} + +/* CommentHashbang */ + +.chroma .ch { + color: #75715e; +} + +/* CommentMultiline */ + +.chroma .cm { + color: #75715e; +} + +/* CommentSingle */ + +.chroma .c1 { + color: #75715e; +} + +/* CommentSpecial */ + +.chroma .cs { + color: #75715e; +} + +/* CommentPreproc */ + +.chroma .cp { + color: #75715e; +} + +/* CommentPreprocFile */ + +.chroma .cpf { + color: #75715e; +} + +/* GenericDeleted */ + +.chroma .gd { + color: #e36898; +} + +/* GenericEmph */ + +.chroma .ge { + font-style: italic; +} + +/* GenericInserted */ + +.chroma .gi { + color: #a6e22e; +} + +/* GenericStrong */ + +.chroma .gs { + font-weight: bold; +} + +/* GenericSubheading */ + +.chroma .gu { + color: #75715e; +} + +.chroma .nl { + --tw-text-opacity: 1; + color: rgb(191 219 254 / var(--tw-text-opacity)); +} + +.chroma .n { + color: white; +} + +.chroma .p { + color: #c9bfbf; +} + +/* iphone */ + +.iphone { + position: relative; + background: #202020; + width: 45%; + left: 0; + height: 0; + padding-top: 95%; + margin-left: 5px !important; + border-radius: 3em; +} + +.power { + position: absolute; + background: #202020; + width: 13%; + height: .5%; + top: -.5%; + right: 12%; + border-top-left-radius: .5em; + border-top-right-radius: .5em; +} + +.lock { + position: absolute; + background: #202020; + width: 1%; + height: 5%; + top: 12.5%; + left: -1%; + border-top-left-radius: .5em; + border-bottom-left-radius: .5em; +} + +.volume { + position: absolute; + background: #202020; + width: 1%; + height: 4%; + top: 23%; + left: -1%; + border-top-left-radius: .5em; + border-bottom-left-radius: .5em; +} + +.volume.down{ + top: 31%; +} + +.appleicon { + padding-top: 25%; + opacity: 0; +} + +.appleicon img{ + width: 100%; + height: 100%; +} + +.text { + opacity: 0; + font-size: 1.25rem; + text-align: center; +} + +.screen { + background: #2f2f2f; + width: 95%; + height: 75%; + position: absolute; + top: 12.5%; + left: 5%; +} + +.button { + position: absolute; + bottom: 2.75%; + left: 42.5%; + background: #3f3f3f; + /* border: 1px solid #3f3f3f; */ + width: 15%; + height: 0; + padding-top: 15%; + border-radius: 50%; +} + +.square { + position: absolute; + top: 27.5%; + left: 27.5%; + border: 2px solid #d7d7d7; + border-radius: .3em; + width: 45%; + height: 45%; +} + .hover\:bg-green-600:hover { --tw-bg-opacity: 1; - background-color: rgba(5, 150, 105, var(--tw-bg-opacity)); + background-color: rgb(22 163 74 / var(--tw-bg-opacity)); +} + +.hover\:bg-gray-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(107 114 128 / var(--tw-bg-opacity)); } .hover\:text-gray-600:hover { --tw-text-opacity: 1; - color: rgba(75, 85, 99, var(--tw-text-opacity)); + color: rgb(75 85 99 / var(--tw-text-opacity)); } .hover\:text-gray-900:hover { --tw-text-opacity: 1; - color: rgba(17, 24, 39, var(--tw-text-opacity)); + color: rgb(17 24 39 / var(--tw-text-opacity)); } .focus\:text-gray-700:focus { --tw-text-opacity: 1; - color: rgba(55, 65, 81, var(--tw-text-opacity)); + color: rgb(55 65 81 / var(--tw-text-opacity)); } .focus\:outline-none:focus { @@ -1185,6 +1935,11 @@ video { } @media (min-width: 768px) { + .md\:-mx-8 { + margin-left: -2rem; + margin-right: -2rem; + } + .md\:ml-auto { margin-left: auto; } @@ -1218,6 +1973,11 @@ video { padding-bottom: 0.5rem; } + .md\:px-8 { + padding-left: 2rem; + padding-right: 2rem; + } + .md\:pl-4 { padding-left: 1rem; } @@ -1226,8 +1986,9 @@ video { padding-right: 1.5rem; } - .md\:text-center { - text-align: center; + .md\:text-5xl { + font-size: 3rem; + line-height: 1; } } @@ -1237,6 +1998,7 @@ video { } .lg\:sticky { + position: -webkit-sticky; position: sticky; } @@ -1249,7 +2011,7 @@ video { } .lg\:-mb-0 { - margin-bottom: 0px; + margin-bottom: -0px; } .lg\:block { @@ -1280,6 +2042,10 @@ video { width: 75%; } + .lg\:w-1\/3 { + width: 33.333333%; + } + .lg\:items-center { align-items: center; } @@ -1347,13 +2113,4 @@ video { .xl\:pb-16 { padding-bottom: 4rem; } - - .xl\:text-left { - text-align: left; - } - - .xl\:text-5xl { - font-size: 3rem; - line-height: 1; - } } \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 4c36240..5abf7fc 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,116 +1 @@ - - - - /docs/quickstart/ - - /docs/repositories/ - - /docs/adapters/ - - /docs/models/ - 2020-04-20T19:01:08-03:00 - - /docs/relationships/ - 2020-04-20T17:21:33-03:00 - - /docs/initialization/ - - /docs/faq/ - - /articles/ - 2021-12-09T23:17:30-03:00 - - / - 2021-12-09T23:17:30-03:00 - - /articles/nested-resources-adapter/ - 2021-12-09T23:17:30-03:00 - - /articles/custom-deserialization-adapter/ - 2021-12-09T23:15:44-03:00 - - /articles/intercept-logout-adapter/ - 2021-12-09T23:15:11-03:00 - - /articles/override-findall-adapter/ - 2021-12-09T23:14:28-03:00 - - /articles/override-findone-url-method/ - 2021-12-09T23:14:28-03:00 - - /articles/iterator-style-adapter/ - 2021-12-09T23:13:36-03:00 - - /articles/override-http-client-adapter/ - 2021-12-09T23:10:10-03:00 - - /articles/override-headers-query-parameters/ - 2021-12-09T23:07:40-03:00 - - /articles/configure-get-it/ - 2021-12-05T23:12:05-03:00 - - /articles/configure-provider/ - 2021-12-05T23:12:05-03:00 - - /articles/override-base-url/ - 2021-12-03T18:45:45-03:00 - - /docs/ - 2020-04-20T19:01:08-03:00 - - /tags/dart/ - 2020-02-12T13:43:48-05:00 - - /articles/deconstructing-dart-constructors/ - 2020-02-12T13:43:48-05:00 - - /tags/ - 2020-02-12T13:43:48-05:00 - - /articles/dart-getter-cache-computed-properties/ - 2020-01-04T13:43:48-05:00 - - /articles/dart-final-const-difference/ - 2020-01-04T13:43:48-05:00 - - /articles/define-interface-dart/ - 2020-01-04T13:43:48-05:00 - - /articles/build-widget-with-async-method-call/ - 2019-12-18T00:00:00+00:00 - - /articles/future-async-called-multiple-times/ - 2019-12-18T00:00:00+00:00 - - /tags/es6/ - 2019-10-15T13:43:48-05:00 - - /tags/javascript/ - 2019-10-15T13:43:48-05:00 - - /articles/ultimate-javascript-dart-syntax-guide/ - 2019-10-15T13:43:48-05:00 - - /articles/checking-null-aware-operators-dart/ - 2019-09-18T00:00:00+00:00 - - /articles/how-to-format-duration/ - 2019-09-10T23:43:48-05:00 - - /articles/upgrade-flutter-sdk/ - 2019-08-27T12:43:48-05:00 - - /tags/pub/ - 2019-08-27T12:43:48-05:00 - - /tags/vscode/ - 2019-08-27T12:43:48-05:00 - - /articles/minimal-hello-world-flutter-app/ - 2019-07-30T23:43:48-05:00 - - /categories/ - - +/docs/quickstart//tutorial/fetching//docs/repositories//tutorial/updating//docs/adapters//tutorial/creating//docs/models/2020-04-20T19:01:08-03:00/tutorial/reloading//docs/relationships/2020-04-20T17:21:33-03:00/tutorial/deleting//docs/initialization//docs/faq//articles/2021-12-18T17:08:28-03:00/2021-12-18T17:08:28-03:00/articles/how-to-reinitialize-flutter-data/2021-12-18T17:08:28-03:00/articles/nested-resources-adapter/2021-12-09T23:17:30-03:00/articles/custom-deserialization-adapter/2021-12-09T23:15:44-03:00/articles/intercept-logout-adapter/2021-12-09T23:15:11-03:00/articles/override-findall-adapter/2021-12-09T23:14:28-03:00/articles/override-findone-url-method/2021-12-09T23:14:28-03:00/articles/iterator-style-adapter/2021-12-09T23:13:36-03:00/articles/override-http-client-adapter/2021-12-09T23:10:10-03:00/articles/override-headers-query-parameters/2021-12-09T23:07:40-03:00/articles/configure-get-it/2021-12-05T23:12:05-03:00/articles/configure-provider/2021-12-05T23:12:05-03:00/articles/how-to-retry-offline-sync-data/2021-12-05T23:12:05-03:00/articles/override-base-url/2021-12-03T18:45:45-03:00/docs/2020-04-20T19:01:08-03:00/tags/dart/2020-02-12T13:43:48-05:00/articles/deconstructing-dart-constructors/2020-02-12T13:43:48-05:00/tags/2020-02-12T13:43:48-05:00/articles/dart-getter-cache-computed-properties/2020-01-04T13:43:48-05:00/articles/dart-final-const-difference/2020-01-04T13:43:48-05:00/articles/define-interface-dart/2020-01-04T13:43:48-05:00/articles/build-widget-with-async-method-call/2019-12-18T00:00:00+00:00/articles/future-async-called-multiple-times/2019-12-18T00:00:00+00:00/tags/es6/2019-10-15T13:43:48-05:00/tags/javascript/2019-10-15T13:43:48-05:00/articles/ultimate-javascript-dart-syntax-guide/2019-10-15T13:43:48-05:00/articles/checking-null-aware-operators-dart/2019-09-18T00:00:00+00:00/articles/how-to-format-duration/2019-09-10T23:43:48-05:00/articles/upgrade-flutter-sdk/2019-08-27T12:43:48-05:00/tags/pub/2019-08-27T12:43:48-05:00/tags/vscode/2019-08-27T12:43:48-05:00/articles/minimal-hello-world-flutter-app/2019-07-30T23:43:48-05:00/categories//tutorial/ \ No newline at end of file diff --git a/tags/dart/index.html b/tags/dart/index.html index 69beacb..d32b7df 100644 --- a/tags/dart/index.html +++ b/tags/dart/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - dart - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - dart -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +dart - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/dart/index.xml b/tags/dart/index.xml index 70bcd9f..e84377f 100644 --- a/tags/dart/index.xml +++ b/tags/dart/index.xml @@ -1,48 +1,11 @@ - - - - dart on Flutter Data - /tags/dart/ - Recent content in dart on Flutter Data - Hugo -- gohugo.io - en-us - Wed, 12 Feb 2020 13:43:48 -0500 - - Deconstructing Dart Constructors - /articles/deconstructing-dart-constructors/ - Wed, 12 Feb 2020 13:43:48 -0500 - - /articles/deconstructing-dart-constructors/ - Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +dart on Flutter Data/tags/dart/Recent content in dart on Flutter DataHugo -- gohugo.ioen-usWed, 12 Feb 2020 13:43:48 -0500Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; Read this post and you will become an expert! When we want an instance of a certain class we call a constructor, right? var robot = new Robot(); In Dart 2 we can leave out the new: -var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class: - - - - The Ultimate Javascript vs Dart Syntax Guide - /articles/ultimate-javascript-dart-syntax-guide/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /articles/ultimate-javascript-dart-syntax-guide/ - Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +var robot = Robot(); A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:The Ultimate Javascript vs Dart Syntax Guide/articles/ultimate-javascript-dart-syntax-guide/Tue, 15 Oct 2019 13:43:48 -0500/articles/ultimate-javascript-dart-syntax-guide/Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. (Pros and cons of choosing Flutter/Dart is outside the scope of this article.) So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! -Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. - - - - Checking Nulls and Null-Aware Operators in Dart - /articles/checking-null-aware-operators-dart/ - Wed, 18 Sep 2019 00:00:00 +0000 - - /articles/checking-null-aware-operators-dart/ - What is the best practice for checking nulls in Dart? +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs.Checking Nulls and Null-Aware Operators in Dart/articles/checking-null-aware-operators-dart/Wed, 18 Sep 2019 00:00:00 +0000/articles/checking-null-aware-operators-dart/What is the best practice for checking nulls in Dart? var value = maybeSomeNumber(); if (value != null) { doSomething(); } That&rsquo;s right. There is no shortcut like if (value) and truthy/falsey values in Javascript. Conditionals in Dart only accept bool values. However! There are some very interesting null-aware operators. -Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: - - - - +Default operator: ?? In other languages we can use the logical-or shortcut. If maybeSomeNumber() returns null, assign a default value of 2: \ No newline at end of file diff --git a/tags/es6/index.html b/tags/es6/index.html index c09a9d2..ef7d120 100644 --- a/tags/es6/index.html +++ b/tags/es6/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - es6 - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - es6 -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +es6 - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/es6/index.xml b/tags/es6/index.xml index d3104d9..9b22708 100644 --- a/tags/es6/index.xml +++ b/tags/es6/index.xml @@ -1,23 +1,4 @@ - - - - es6 on Flutter Data - /tags/es6/ - Recent content in es6 on Flutter Data - Hugo -- gohugo.io - en-us - Tue, 15 Oct 2019 13:43:48 -0500 - - The Ultimate Javascript vs Dart Syntax Guide - /articles/ultimate-javascript-dart-syntax-guide/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /articles/ultimate-javascript-dart-syntax-guide/ - Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +es6 on Flutter Data/tags/es6/Recent content in es6 on Flutter DataHugo -- gohugo.ioen-usTue, 15 Oct 2019 13:43:48 -0500The Ultimate Javascript vs Dart Syntax Guide/articles/ultimate-javascript-dart-syntax-guide/Tue, 15 Oct 2019 13:43:48 -0500/articles/ultimate-javascript-dart-syntax-guide/Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. (Pros and cons of choosing Flutter/Dart is outside the scope of this article.) So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! -Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. - - - - +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index c0c3847..4009271 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - Tags - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - Tags -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +Tags - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml index f47ffdc..f3050de 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -1,56 +1 @@ - - - - Tags on Flutter Data - /tags/ - Recent content in Tags on Flutter Data - Hugo -- gohugo.io - en-us - Wed, 12 Feb 2020 13:43:48 -0500 - - dart - /tags/dart/ - Wed, 12 Feb 2020 13:43:48 -0500 - - /tags/dart/ - - - - - es6 - /tags/es6/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /tags/es6/ - - - - - javascript - /tags/javascript/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /tags/javascript/ - - - - - pub - /tags/pub/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /tags/pub/ - - - - - vscode - /tags/vscode/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /tags/vscode/ - - - - - +Tags on Flutter Data/tags/Recent content in Tags on Flutter DataHugo -- gohugo.ioen-usWed, 12 Feb 2020 13:43:48 -0500dart/tags/dart/Wed, 12 Feb 2020 13:43:48 -0500/tags/dart/es6/tags/es6/Tue, 15 Oct 2019 13:43:48 -0500/tags/es6/javascript/tags/javascript/Tue, 15 Oct 2019 13:43:48 -0500/tags/javascript/pub/tags/pub/Tue, 27 Aug 2019 12:43:48 -0500/tags/pub/vscode/tags/vscode/Tue, 27 Aug 2019 12:43:48 -0500/tags/vscode/ \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html index 7caea84..a48f47f 100644 --- a/tags/javascript/index.html +++ b/tags/javascript/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - javascript - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - javascript -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +javascript - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/javascript/index.xml b/tags/javascript/index.xml index 8c6c964..e8724d5 100644 --- a/tags/javascript/index.xml +++ b/tags/javascript/index.xml @@ -1,23 +1,4 @@ - - - - javascript on Flutter Data - /tags/javascript/ - Recent content in javascript on Flutter Data - Hugo -- gohugo.io - en-us - Tue, 15 Oct 2019 13:43:48 -0500 - - The Ultimate Javascript vs Dart Syntax Guide - /articles/ultimate-javascript-dart-syntax-guide/ - Tue, 15 Oct 2019 13:43:48 -0500 - - /articles/ultimate-javascript-dart-syntax-guide/ - Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. +javascript on Flutter Data/tags/javascript/Recent content in javascript on Flutter DataHugo -- gohugo.ioen-usTue, 15 Oct 2019 13:43:48 -0500The Ultimate Javascript vs Dart Syntax Guide/articles/ultimate-javascript-dart-syntax-guide/Tue, 15 Oct 2019 13:43:48 -0500/articles/ultimate-javascript-dart-syntax-guide/Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart&rsquo;s syntax. (Pros and cons of choosing Flutter/Dart is outside the scope of this article.) So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other! -Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. - - - - +Variables and constants // js var dog1 = &#34;Lucy&#34;; // variable let dog2 = &#34;Milo&#34;; // block scoped variable const maleDogs = [&#34;Max&#34;, &#34;Bella&#34;]; // mutable single-assignment variable maleDogs. \ No newline at end of file diff --git a/tags/pub/index.html b/tags/pub/index.html index 49f275f..f7311cd 100644 --- a/tags/pub/index.html +++ b/tags/pub/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - pub - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - pub -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +pub - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/pub/index.xml b/tags/pub/index.xml index d99ecca..d5b77b8 100644 --- a/tags/pub/index.xml +++ b/tags/pub/index.xml @@ -1,24 +1,5 @@ - - - - pub on Flutter Data - /tags/pub/ - Recent content in pub on Flutter Data - Hugo -- gohugo.io - en-us - Tue, 27 Aug 2019 12:43:48 -0500 - - How to Upgrade Flutter - /articles/upgrade-flutter-sdk/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /articles/upgrade-flutter-sdk/ - Type in your terminal: +pub on Flutter Data/tags/pub/Recent content in pub on Flutter DataHugo -- gohugo.ioen-usTue, 27 Aug 2019 12:43:48 -0500How to Upgrade Flutter/articles/upgrade-flutter-sdk/Tue, 27 Aug 2019 12:43:48 -0500/articles/upgrade-flutter-sdk/Type in your terminal: flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade - - - - +flutter upgrade Need professional help with Flutter? \ No newline at end of file diff --git a/tags/vscode/index.html b/tags/vscode/index.html index 21771ed..708bc7f 100644 --- a/tags/vscode/index.html +++ b/tags/vscode/index.html @@ -1,290 +1,9 @@ - - - - - - - - - - - - - - - - - - - - vscode - Flutter Data - - - - - - - - - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - - - -
    -
    -
    -
    - -
    - - - -
    -
    - - -

    - vscode -

    - - - -
    - -
    - -
    -
    - -
    - - - - - - - \ No newline at end of file +vscode - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/vscode/index.xml b/tags/vscode/index.xml index 7149d1c..22d2b15 100644 --- a/tags/vscode/index.xml +++ b/tags/vscode/index.xml @@ -1,24 +1,5 @@ - - - - vscode on Flutter Data - /tags/vscode/ - Recent content in vscode on Flutter Data - Hugo -- gohugo.io - en-us - Tue, 27 Aug 2019 12:43:48 -0500 - - How to Upgrade Flutter - /articles/upgrade-flutter-sdk/ - Tue, 27 Aug 2019 12:43:48 -0500 - - /articles/upgrade-flutter-sdk/ - Type in your terminal: +vscode on Flutter Data/tags/vscode/Recent content in vscode on Flutter DataHugo -- gohugo.ioen-usTue, 27 Aug 2019 12:43:48 -0500How to Upgrade Flutter/articles/upgrade-flutter-sdk/Tue, 27 Aug 2019 12:43:48 -0500/articles/upgrade-flutter-sdk/Type in your terminal: flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade - - - - +flutter upgrade Need professional help with Flutter? \ No newline at end of file diff --git a/tailwind.css b/tailwind.css index bd6213e..e5306c1 100644 --- a/tailwind.css +++ b/tailwind.css @@ -1,3 +1,521 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; + +.waves { +/* IMPORTANT: if updating SVG, replace all # with %23 */ +background-image: url("data:image/svg+xml;utf8,"); +} + +.pattern { +background-image: url("data:image/svg+xml,"); +} + +h1, +h2, +h3, +h4 { +@apply font-bold text-gray-800 tracking-tight leading-snug mt-8 mb-4; +} + +h1 { +@apply text-4xl; +} + +h1::before, +h2::before, +h3::before { +display: block; +content: " "; +visibility: hidden; +pointer-events: none; +@apply -mt-20 h-20; +} + +h2 { +@apply text-3xl; +} + +h3 { +@apply text-2xl; +} + +h4 { +@apply text-xl pt-1; +} + +nav a { +@apply text-gray-700 my-2 no-underline; +} + +nav a:hover { +@apply text-black; +} + +p { +@apply py-2; +} + +ul { +@apply list-disc list-inside ml-2 my-4; +} + +hr { +@apply border-b-2; +} + +a { +word-wrap: break-word; +@apply underline text-green-600; +} + +img.center { +display: block; +margin: 0 auto; +} + +blockquote { +color: #718096; +background-color: #f7fafc; +border-left-width: 8px; +margin-top: 1rem; +margin-bottom: 1rem; +padding: 1rem; +padding-left: 2rem; +font-size: 1.125rem; +font-style: italic; +} + +.notice { +font-size: 1rem; +@apply leading-relaxed; +} + +.notice h4 { +@apply pt-0; +} + +.notice a { +@apply font-bold underline; +color: #746939 !important; +} + +.notice a > code { +background: #f6de7b !important; +} + +.notice code { +@apply text-gray-700 bg-yellow-300; +} + +.notice code[data-lang] { +background: unset; +} + +/***/ + +#TableOfContents { +@apply text-sm; +} + +#TableOfContents ul { +@apply list-none ml-1 my-0; +} + +#TableOfContents li { +@apply mt-2; +} + +nav .active > a, +a.active { +@apply text-blue-800 rounded inset-0 text-gray-800 font-bold; +} + +#badges img { +margin: 0; +display: inline-block; +} + +code, +pre { +@apply rounded-md font-bold overflow-scroll; +font-family: "Fira Mono", monospace; +white-space: pre-wrap; +word-break: keep-all; +word-wrap: break-word; +} + +code { +@apply font-normal text-gray-800 bg-yellow-50 tracking-tight rounded p-1; +} + +p code, +li code { +font-size: 0.98rem; +} + +pre.chroma { +@apply bg-gray-800 leading-relaxed p-6 my-8; +} + +pre.chroma code { +@apply text-base text-white p-0 bg-transparent break-words; +} + +.chroma .hl { +@apply -mx-6 px-6; +} + +/* Syntax highlighting */ + +/* Error */ +.chroma .err { +color: white; +} +/* LineTableTD */ +.chroma .lntd { +vertical-align: top; +padding: 0; +margin: 0; +border: 0; +} +/* LineTable */ +.chroma .lntable { +border-spacing: 0; +padding: 0; +margin: 0; +border: 0; +width: auto; +overflow: auto; +display: block; +} +/* LineHighlight */ +.chroma .hl { +background-color: #5b554ac9; +display: block; +} +/* LineNumbersTable */ +.chroma .lnt { +margin-right: 0.4em; +padding: 0 0.4em 0 0.4em; +color: #7f7f7f; +} +/* LineNumbers */ +.chroma .ln { +margin-right: 0.4em; +padding: 0 0.4em 0 0.4em; +color: #7f7f7f; +} +/* Keyword */ +.chroma .k { +color: #e6d43e; +} +/* KeywordConstant */ +.chroma .kc { +color: #f5c150; +} +/* KeywordDeclaration */ +.chroma .kd { +color: #e6d43e; +} +/* KeywordNamespace */ +.chroma .kn { +color: #e6d43e; +} +/* KeywordPseudo */ +.chroma .kp { +color: #e6d43e; +} +/* KeywordReserved */ +.chroma .kr { +color: #e6d43e; +} +/* KeywordType */ +.chroma .kt { +color: #e6d43e; +} +/* NameAttribute */ +.chroma .na { +color: #a6e22e; +} +/* NameClass */ +.chroma .nc { +color: #cee22e; +} +/* NameConstant */ +.chroma .no { +color: #e6d43e; +} +/* NameDecorator */ +.chroma .nd { +color: #a6e22e; +} +/* NameException */ +.chroma .ne { +color: #a6e22e; +} +/* NameFunction */ +.chroma .nf { +color: #a6e22e; +} +/* NameOther */ +.chroma .nx { +color: #a6e22e; +} +/* NameTag */ +.chroma .nt { +color: #fa166f; +} +/* Literal */ +.chroma .l { +color: #ae81ff; +} +/* LiteralDate */ +.chroma .ld { +color: #e6db74; +} +/* LiteralString */ +.chroma .s { +color: #e6db74; +} +/* LiteralStringAffix */ +.chroma .sa { +color: #e6db74; +} +/* LiteralStringBacktick */ +.chroma .sb { +color: #e6db74; +} +/* LiteralStringChar */ +.chroma .sc { +color: #e6db74; +} +/* LiteralStringDelimiter */ +.chroma .dl { +color: #e6db74; +} +/* LiteralStringDoc */ +.chroma .sd { +color: #e6db74; +} +/* LiteralStringDouble */ +.chroma .s2 { +color: #e2f077; +} +/* LiteralStringEscape */ +.chroma .se { +color: #ae81ff; +} +/* LiteralStringHeredoc */ +.chroma .sh { +color: #e6db74; +} +/* LiteralStringInterpol */ +.chroma .si { +color: #e6db74; +} +/* LiteralStringOther */ +.chroma .sx { +color: #e6db74; +} +/* LiteralStringRegex */ +.chroma .sr { +color: #e6db74; +} +/* LiteralStringSingle */ +.chroma .s1 { +color: #d0a343; +} +/* LiteralStringSymbol */ +.chroma .ss { +color: #e6db74; +} +/* LiteralNumber */ +.chroma .m { +color: #63a4e8; +} +/* LiteralNumberBin */ +.chroma .mb { +color: #63a4e8; +} +/* LiteralNumberFloat */ +.chroma .mf { +color: #63a4e8; +} +/* LiteralNumberHex */ +.chroma .mh { +color: #63a4e8; +} +/* LiteralNumberInteger */ +.chroma .mi { +color: #63a4e8; +} +/* LiteralNumberIntegerLong */ +.chroma .il { +color: #63a4e8; +} +/* LiteralNumberOct */ +.chroma .mo { +color: #63a4e8; +} +/* Operator */ +.chroma .o { +color: #e36898; +} +/* OperatorWord */ +.chroma .ow { +color: #e36898; +} +/* Comment */ +.chroma .c { +color: #75715e; +} +/* CommentHashbang */ +.chroma .ch { +color: #75715e; +} +/* CommentMultiline */ +.chroma .cm { +color: #75715e; +} +/* CommentSingle */ +.chroma .c1 { +color: #75715e; +} +/* CommentSpecial */ +.chroma .cs { +color: #75715e; +} +/* CommentPreproc */ +.chroma .cp { +color: #75715e; +} +/* CommentPreprocFile */ +.chroma .cpf { +color: #75715e; +} +/* GenericDeleted */ +.chroma .gd { +color: #e36898; +} +/* GenericEmph */ +.chroma .ge { +font-style: italic; +} +/* GenericInserted */ +.chroma .gi { +color: #a6e22e; +} +/* GenericStrong */ +.chroma .gs { +font-weight: bold; +} +/* GenericSubheading */ +.chroma .gu { +color: #75715e; +} + +.chroma .nl { +@apply text-blue-200; +} +.chroma .n { +color: white; +} +.chroma .p { +color: #c9bfbf; +} + +/* iphone */ + +.iphone { +position: relative; +background: #202020; +width: 45%; +left: 0; +height: 0; +padding-top: 95%; +margin-left: 5px !important; +border-radius: 3em; +} + +.power { +position: absolute; +background: #202020; +width: 13%; +height: .5%; +top: -.5%; +right: 12%; +border-top-left-radius: .5em; +border-top-right-radius: .5em; +} + +.lock { +position: absolute; +background: #202020; +width: 1%; +height: 5%; +top: 12.5%; +left: -1%; +border-top-left-radius: .5em; +border-bottom-left-radius: .5em; +} + +.volume { +position: absolute; +background: #202020; +width: 1%; +height: 4%; +top: 23%; +left: -1%; +border-top-left-radius: .5em; +border-bottom-left-radius: .5em; +} + +.volume.down{ top: 31%; } + +.appleicon { +padding-top: 25%; +opacity: 0; +} + +.appleicon img{ +width: 100%; +height: 100%; +} + +.text { +opacity: 0; +font-size: 1.25rem; +text-align: center; +} + +.screen { +background: #2f2f2f; +width: 95%; +height: 75%; +position: absolute; +top: 12.5%; +left: 5%; +} + +.button { +position: absolute; +bottom: 2.75%; +left: 42.5%; +background: #3f3f3f; +/* border: 1px solid #3f3f3f; */ +width: 15%; +height: 0; +padding-top: 15%; +border-radius: 50%; +} + +.square { +position: absolute; +top: 27.5%; +left: 27.5%; +border: 2px solid #d7d7d7; +border-radius: .3em; +width: 45%; +height: 45%; +} \ No newline at end of file diff --git a/tutorial/creating/index.html b/tutorial/creating/index.html new file mode 100644 index 0000000..e1d071c --- /dev/null +++ b/tutorial/creating/index.html @@ -0,0 +1,41 @@ +Tutorial: Creating a new task - Flutter Data

    Creating a new task

    Let’s add a TextField, turn the input into a new Task and immediately save it.

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll();
    +    final _newTaskController = useTextEditingController();
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return ListView(
    +      children: [
    +        TextField(
    +          controller: _newTaskController,
    +          onSubmitted: (value) async {
    +            Task(title: value).save();
    +            _newTaskController.clear();
    +          },
    +        ),
    +        for (final task in state.model)
    +          ListTile(
    +            leading: Checkbox(
    +              value: task.completed,
    +              onChanged: (value) => task.toggleCompleted().save(),
    +            ),
    +            title: Text('${task.title} [id: ${task.id}]'),
    +          ),
    +      ],
    +    );
    +  }
    +}
    +

    Remember to import flutter_hooks!

    Hot-reloading once again we see our TextField ready to create new tasks:

    It was that easy!

    You may have noticed that there was a flash with [id: null] (we didn’t supply any ID upon model creation), until the server responds with one (in this case 11) triggering an update.

    Be aware that our dummy JSON backend does not actually save new resources so it will always respond with ID 11, causing a confusing situation if you keep adding tasks!

    Finally, remember to check out the debug console where you can find some Flutter Data activity logs!

    NEXT: Reloading the list

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/deleting/index.html b/tutorial/deleting/index.html new file mode 100644 index 0000000..102c41a --- /dev/null +++ b/tutorial/deleting/index.html @@ -0,0 +1,50 @@ +Tutorial: Deleting tasks - Flutter Data

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
    +    final _newTaskController = useTextEditingController();
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return RefreshIndicator(
    +      onRefresh: () =>
    +          ref.tasks.findAll(params: {'_limit': 5}, syncLocal: true),
    +      child: ListView(
    +        children: [
    +          TextField(
    +            controller: _newTaskController,
    +            onSubmitted: (value) async {
    +              Task(title: value).save();
    +              _newTaskController.clear();
    +            },
    +          ),
    +          for (final task in state.model)
    +            Dismissible(
    +              key: ValueKey(task),
    +              direction: DismissDirection.endToStart,
    +              onDismissed: (_) => task.delete(),
    +              child: ListTile(
    +                leading: Checkbox(
    +                  value: task.completed,
    +                  onChanged: (value) => task.toggleCompleted().save(),
    +                ),
    +                title: Text('${task.title} [id: ${task.id}]'),
    +              ),
    +            ),
    +        ],
    +      ),
    +    );
    +  }
    +}
    +

    Hot-reload, swipe left and… they’re gone!

    Remember to check out the debug console where you can find some Flutter Data activity logs.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/fetching/index.html b/tutorial/fetching/index.html new file mode 100644 index 0000000..46d8b2d --- /dev/null +++ b/tutorial/fetching/index.html @@ -0,0 +1,64 @@ +Tutorial: Fetching tasks - Flutter Data

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    [
    +  {
    +    "id": 1,
    +    "title": "Laundry 🧺",
    +    "completed": false,
    +    "userId": 1
    +  },
    +  {
    +    "id": 2,
    +    "title": "Groceries 🛒",
    +    "completed": true,
    +    "userId": 1
    +  },
    +  {
    +    "id": 3,
    +    "title": "Reservation at Malloys",
    +    "completed": true,
    +    "userId": 1
    +  },
    +  // ...
    +]
    +

    To bring these tasks into our app we’ll use the watchAll method. (It internally makes a remote findAll call to /tasks and keeps watching local storage for any further changes in these models.)

    class TasksApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: ref.watch(repositoryInitializerProvider()).when(
    +            error: (error, _) => Text(error.toString()),
    +            loading: () => const CircularProgressIndicator(),
    +            data: (_) {
    +              final state = ref.tasks.watchAll();
    +              if (state.isLoading) {
    +                return CircularProgressIndicator();
    +              }
    +              return ListView(
    +                children: [
    +                  for (final task in state.model) Text(task.title),
    +                ],
    +              );
    +            },
    +          ),
    +        ),
    +      ),
    +      debugShowCheckedModeBanner: false,
    +    );
    +  }
    +}
    +

    Bam 💥!

    Whoa, how did that happen?

    Understanding the magic ✨

    How exactly does Flutter Data resolve the http://base.url/tasks URL?

    Flutter Data adapters define functions and getters such as urlForFindAll, baseUrl and type among many others.

    In this case, findAll will look up information in baseUrl and urlForFindAll (which defaults to type, and type defaults to tasks).

    Result? http://base.url/tasks.

    And, how exactly does Flutter Data instantiate Task models?

    Flutter Data ships with a built-in serializer/deserializer for classic JSON. It means that the default serialized form of a Task instance looks like:

    {
    +  "id": 1,
    +  "title": "delectus aut autem",
    +  "completed": false
    +}
    +

    Of course, this too can be overridden like the JSON API Adapter does.

    For more information see the Repository docs.

    NEXT: Marking tasks as done

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/index.html b/tutorial/index.html new file mode 100644 index 0000000..da8514c --- /dev/null +++ b/tutorial/index.html @@ -0,0 +1,10 @@ +Tutorial: Tutorials - Flutter Data

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/index.xml b/tutorial/index.xml new file mode 100644 index 0000000..f529d1c --- /dev/null +++ b/tutorial/index.xml @@ -0,0 +1,14 @@ +Tutorials on Flutter Data/tutorial/Recent content in Tutorials on Flutter DataHugo -- gohugo.ioen-usFetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: +Make sure you went through the Quickstart and got Flutter Data up and running! +Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial +We now have access to our Repository&lt;Task&gt; through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/. +Inspecting the /tasks endpoint we see: +[ { &#34;id&#34;: 1, &#34;title&#34;: &#34;Laundry 🧺&#34;, &#34;completed&#34;: false, &#34;userId&#34;: 1 }, { &#34;id&#34;: 2, &#34;title&#34;: &#34;Groceries 🛒&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, { &#34;id&#34;: 3, &#34;title&#34;: &#34;Reservation at Malloys&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, // .Marking tasks as done/tutorial/updating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/updating/A read-only tasks app is not very practical! Let&rsquo;s add the ability to update the completed state and mark/unmark our tasks as done. +First, though, we&rsquo;ll extract the tasks-specific code to a separate screen named TasksScreen: +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).save(); _newTaskController.clear(); }, ), for (final task in state.model) ListTile( leading: Checkbox( value: task.completed, onChanged: (value) =&gt; task.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}); // ... } Hot restarting the app we should only see five tasks, but&hellip; +It&rsquo;s exactly the same as before. Why isn&rsquo;t this working? 🤔 +Turns out watchAll is wired to show all tasks in local storage.Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! +We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value). \ No newline at end of file diff --git a/tutorial/reloading/index.html b/tutorial/reloading/index.html new file mode 100644 index 0000000..88dc1b1 --- /dev/null +++ b/tutorial/reloading/index.html @@ -0,0 +1,65 @@ +Tutorial: Reloading the list - Flutter Data

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll(params: {'_limit': 5});
    +  // ...
    +}
    +

    Hot restarting the app we should only see five tasks, but…

    It’s exactly the same as before. Why isn’t this working? 🤔

    Turns out watchAll is wired to show all tasks in local storage. If the server responds with some tasks, this won’t affect older tasks stored locally.

    To fix this, watchAll takes a syncLocal argument which forces local storage to mirror exactly the resources returned from the remote source. This can be useful to reflect server-side resource deletions, too.

    Let’s try this out:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
    +  // ...
    +}
    +

    And it works like a charm:

    With a real-world API we would still see all tasks marked as done. We went back to default as our dummy JSON backend does not store data.

    Another useful trick is to use clear: true on local storage configuration:

    void main() {
    +  runApp(
    +    ProviderScope(
    +      child: TasksApp(),
    +      overrides: [configureRepositoryLocalStorage(clear: true)],
    +    ),
    +  );
    +}
    +

    For more on initialization see here.

    Replacing the manual reload

    Instead of manually reloading/restarting we will now integrate RefreshIndicator. In the event handler we simply use findAll and pass the same arguments:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
    +    final _newTaskController = useTextEditingController();
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return RefreshIndicator(
    +      onRefresh: () =>
    +          ref.tasks.findAll(params: {'_limit': 5}, syncLocal: true),
    +      child: ListView(
    +        children: [
    +          TextField(
    +            controller: _newTaskController,
    +            onSubmitted: (value) async {
    +              Task(title: value, completed: false).save();
    +              _newTaskController.clear();
    +            },
    +          ),
    +          for (final task in state.model)
    +            ListTile(
    +              leading: Checkbox(
    +                value: task.completed,
    +                onChanged: (value) => task.toggleCompleted().save(),
    +              ),
    +              title: Text('${task.title} [id: ${task.id}]'),
    +            ),
    +        ],
    +      ),
    +    );
    +  }
    +}
    +

    Now simply pull to refresh!

    A similar method can be used to fully re-initialize Flutter Data.

    NEXT: Deleting tasks

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/updating/index.html b/tutorial/updating/index.html new file mode 100644 index 0000000..185d770 --- /dev/null +++ b/tutorial/updating/index.html @@ -0,0 +1,77 @@ +Tutorial: Marking tasks as done - Flutter Data

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll();
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return ListView(
    +      children: [
    +        for (final task in state.model) Text(task.title),
    +      ],
    +    );
    +  }
    +}
    +

    Remember to return this new widget from TasksApp:

    class TasksApp extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    return MaterialApp(
    +      home: Scaffold(
    +        body: Center(
    +          child: ref.watch(repositoryInitializerProvider()).when(
    +                error: (error, _) => Text(error.toString()),
    +                loading: () => const CircularProgressIndicator(),
    +                data: (_) => TasksScreen(),
    +              ),
    +        ),
    +      ),
    +      debugShowCheckedModeBanner: false,
    +    );
    +  }
    +}
    +

    Back to our TasksScreen we are going to wrap our title text widget in a ListTile prefixing it with a checkbox which, upon clicking, will toggle task completion:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final state = ref.tasks.watchAll();
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return ListView(
    +      children: [
    +        for (final task in state.model)
    +          ListTile(
    +            leading: Checkbox(
    +              value: task.completed,
    +              onChanged: (value) => task.toggleCompleted().save(),
    +            ),
    +            title: Text('${task.title} [id: ${task.id}]'),
    +          ),
    +      ],
    +    );
    +  }
    +}
    +

    If only the toggleCompleted() method existed… 🙂

    Since Task is immutable and provides no way to update fields, we return a new Task object with the inverse boolean value of completed.

    @JsonSerializable()
    +@DataRepository([JSONServerAdapter])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +
    +  Task({this.id, required this.title, this.completed = false});
    +
    +  Task toggleCompleted() {
    +    return Task(id: this.id, title: this.title, completed: !this.completed);
    +  }
    +}
    +

    Hot-reload and check all boxes…

    Done!

    Remember to check out the debug console where you can find some Flutter Data activity logs.

    NEXT: Creating a new task

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/w.gif b/tutorial/w.gif new file mode 100644 index 0000000000000000000000000000000000000000..9da5988a1559075fa8570f46bbb63e8ddc43a7d2 GIT binary patch literal 59057 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¥JM6te%{n+ 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 z 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 z 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

    (P}&JuIT9)HreAZ|xjL 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

    >yQnuCB~5s)xs`W`gI; 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ۉ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 literal 0 HcmV?d00001 diff --git a/tutorial/w2.gif b/tutorial/w2.gif new file mode 100644 index 0000000000000000000000000000000000000000..013024ca3ee5d2ff3ef77685ef4df76560db05f1 GIT binary patch literal 314019 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ƲqO<*pTvyx(D3H3ST&!SxP;Tg9xy2b&Rd+NL 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

    E9 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 literal 0 HcmV?d00001 diff --git a/tutorial/w2.png b/tutorial/w2.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc506c7e3fd52adfde614bd1b592d8c6848d113 GIT binary patch literal 101069 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 literal 0 HcmV?d00001 diff --git a/tutorial/w4.gif b/tutorial/w4.gif new file mode 100644 index 0000000000000000000000000000000000000000..6fd223cb1930764cffbfca5347d30d40c128035b GIT binary patch literal 712890 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
  • Att)2Vvn3r{;#O@e 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
    R1j$|M6*)QQAa?u6m55NGAji4)ktEP9WrTw&4 z=X3vJ5SXA}+dwV(QyP#mDNzZ;m0;y#MQq2R`jR4_vPLU1n_`qL>$KFEE#}3h1OkNl zPf_RnK*Vs{DoEkl3y2UmKa`f!#BV%&q;7C;MR-OyjOXsq@rW$`si5)O8fM0R58ySV z6P(U>f5-by{(4ndx;nIDoe^yJ>-BT=#d$p`Qrvc@WPRP6t?Y5r()AA`9q(H9vLB~e zCbu+ykixh`p%)yG$xHD_X~uZV8x6@Hvh6TKHpLDl{=ss|KWFm1y)${iOYgB$Q> zw+Pww7CIBJCezRdQ|61sw%*fAkrijvecg_2pPbC=O-$F~wB;J$tI76)T`dmD6p&#<`AwkXI^URhz~e@BdufS0c5Zaa9&~9 zf|>P#u-k)~)k6%To=l02&UFFGn3`=CX~ryZR@%T4>)KcAcSDpLPkLSZp3Hep>OnPD z2){9cU32+rY@?m0_339=uU(*asiNI>{)y_ofYF>G8p$%WS4xsyMG{Zn52Z?&%)E{BX{;r2va_n>x%ktu zHbE^6f>m4S%kG3pJ_s~Dsiqkp(J8X=dX!{^(a?2+g2m?oILU$+BZ)<(YugsyozGC5qNsa zM@f_yctW08LKYmouMPK#raqEhXAb)h(+gbhwzyDy#HY1=n`(9aNv{bL0B~y68NSdJ z+6L;7E}f!aqWBLIa4L9`=Aj$<{X0D&B#U0QfKNu@=CjEcs1_~lpNv+#S=R&%f=!o3t53rq$!8|)q+$vVxkj&c8^h{sEo2 zF6rScB!@$_?r*j#S9OaOMic24@!0sl=drBh6Rh$6w5*wr2cwB`y!tk35zb=6HWJjM zl{s_=R9^|LcLKec4>z4>(*F_In%T!Ov4Q*JtUs2EhwbHXJ<;}kbAaolCn2deh7g4~m-8f#mz57rJ@PdOw2 zDw}9kt}`-lAX=>NjjOtzgEYJv1hW&$8J33*$#2|IyYbM=?d!+tACjg;?yvN*esL@# z5EGNduRpZE@@$nDw8@wp*3;cclOEC5GmX$;aIox4#ywJXwCgBma&we|EPid~8GWQc z<4kl6m;YE-tr%gGY?iJ&DDo-&8GD;ND8rk#zF>J<8Tg##+E5D7>8-ftIg>TdN}Ydo zVTM3m-K|T_Ngi>?;T&D)c=vh*F2D&-m(=Yz{)x(SV$jnOma;hOrp$dPVhj**Erf11 zkj9&DCH|eNrRQ}e5m`k2hUohJfQx}d{PuvZ`9D0Qu1l^#{;4GbQ;~0u*JRL2LZ@)F zH$r7f8kRLBtTS0W!bXO@Fgl3MkPrs$OJ76tL7m6gW^6FQ=W*DxZl5U2sJH!ZL13y*zW8eQMysq{nAr`?rhwS z_PhnsI(+LLq7FqX|3p*C$Gev2E{Y{>tRQ8UYUr?3agnw2rT^KIW z_wL~3QG)6B=9pY2mLAFn}uKAxQ;KIAjWpvs7UU} zNTI}og4amLIEQjAB~$oP&1}rZQ<05Zo7$P{O)@533giG8PLJoWMgPP?S8tQWO2GW> zuNbv60YN=`(95rg{Ny943)Y*2coT`-Q}1!=Iiz4`qWt(idO9u2Fr) z6E`F7_j4tdJU3*2!njEGX3A?0H57d9EuvYTvh8Y8+98RVxM{m>>;`vhs+kVu+ewg~R8=vc0POG{E2{cocqWqm(%O2zWi{&Xo@|3@BI`vbt*2)S!}k5O zl2Vq)-S_{dOV3qCPLdZR$YM4Bh?!iE_@VtT#6Ore$f$11k#^;N_0pZFA6F=K zxcOZ)P50V3E^Prc+2#b%<)a^^s5RNU=Evp?Dh&-GpQSJU_CI!eQP!zXIN@v-$?;7m zg!LxI;!8zspC;`Fz&BtRIHmI!Un~gee07d&Dlh^axsD)G2U~TCiO~C21A}XzS$kiP zDoM(!d+Z%b{ptVy$i0|u{3h2?*Zl7x_pgqriV5H{<&-`4Hvgah2R_NA3WvVn|1|&a zebub@AU8BIHR!+epPza0^;M879sJOPd-|Uz<=~MzSWyQX%Ks1hsn?zP@ad{TEH25l zGr;a85W`CK7oHuV3S;E}B(Zd4ndhux+{yofF1Z|G1nQp@b8Nz0vqi&NXS1AFK9-(M z6nYBNDsS2U4(DSI^*J^t{V=;!anVZa;RExAfZ6|I@2xXa)v$^>=}G_DJE+nTS8$@B zI2@?DhW~ubcpdRpkSoKq*?o!o}Z@EYZ|vWMqsemDO1TzzQDFP<#^HfsW>b zz%Wp;{14g5kmsWPdaq%Tw;EzQ1bku#+DM*AlpFI8>P(I^F<&N%0GiTD8*BU;v1nSd zM?bRjS-o!qsmUOV;o4{rNk_G{n0YdgJJ_vJUZWiaUe{m#61e2_C2+?3j$JPvpHM{q zWXkp(<8UH81YxR7D^H+vb_3Ov8V?^%rYZ}#ynf%X11>=^*nIB~-+{U&rsMp3D{-g3 zd^Bab1K?U<*;MvY2hcD`O}@{unJ7S^2E&lM+npA`mF`U;|J;0cg`4Gmxeh$9Y!C6P zr6xnw4=8F{oZIRg0ewRpD60_M5vRBv|3Z}rqV+pHKz<^H=nD7?X}|dU1BfzAdCpS2 zR?Zzow`i@2RpX#I=>Asp%T%H3$3;ug5-uXgS+=Q6o+}TsE7y5Lc1q-cwt`W44P;Mx z9Z?<9Z2IF&Va5>E0C7^L-#?jA%v5AI)1L5841#e+5HC0r)2q$typpF|vH@cOVa1)RlfR_B~c1w^M+6`QExfl>JQR`=CL(TPeEh zW9oyLZPyQS%S$Wxqt)-u>OFd|Zy;`a`bQ$eW+RhwCD~y=@=lEsPpwJe`|Z0$_hbA| zu?p!f6zj4RlEpJO8v4GB^Q31kKnP*R9-6f@UN!%e`y>vd;PG2$YS;fQdBR@pwvg-` zILc=3buZygSd6>FDWGENL~l@8ToFdY&g$yPK$kP%q68+^&`%E^9S#iRj<-Wh-BC}b zdJ_)5d@|1>83Js7QVv~eq-#~53}B^?8k7b2FHfvX1%fIlLokS6%P)SWMXUs(1tGip z0B>!I23mr7O+`Sv(vIU%91iSRW^oOJ0~oz)oARI9K=RTOWH4|Kd^4;(+)Zh7>?m~( zEQ#u34X#eX6+@M>ln#5eBY;O^Pk!yjkc%K+L~8`GP4fu3I0bk*w*MCAj}AK%rx;ki zxD(Ne1e%zL*NlSKcs+jdjSG^~Ha;=}+Kw?>=Z(+3U}?K1?(Be3HI9Kj-~r}A;OBvZ zZk)ZL`X$4uFZIggneNOE(C&xv_>F}!5CQmyJ<$!k48fGOxwzaZkJYKRSZ)Fk-3d7S zq`7JbF^y$^ahE(4^&tQ>LO8LPjG6DFzjtKD_`)a zST*Ctb3cM-KP6O6g2nC&@G~Ua>#y#V0x4uEHW)}N+q_M;3h4fmgC~D8et_}J;WOv?Dq{G&3TF*_kkC#aZ zf2FC6zWPBY=p}O|zn=osGw+LMGc;+Q#{QuuG>WMdZJK8bf~GEI`U^gS3KDG3bpK@C zi8o79KNe_@MvUE}dB&U%NG8I=X5D1eTvr=P$!I&#!!iSw=HIgX@j(CtK#t z?(hq=(v!iMTN_n+XskzWpcl0*A7{DV{PW}U%e)Fc`GbJnZ*IU|(+wS?2}Pr3F7E(K zN?+?};Y(ZRabBxUHne_Cygop7oet}uPHerHAHKb*;!5NV4=2 z8dj)$HowottHqy!8a)#4-j1SG*Z9u)7#3)9sh_A=O&bEmcRLAOp9F8pLcL4yf=r#1sQpME~}hwBC7}s#>yhZ(zQ~rj)-_Q z7IQb7UZnB@Yru3riwqOJ z-#Kn9#J0tv!8IPS%@Ugxi#E(x?}{hFYKnk{HXO_CwhGo8Yv5&^n`oN!@RP;?_(}5@ zeoVKjmD8N?xf$RTOEV4cr|!aQ$=AN_0D)HOl?2_J55JYZ3E&f9X&L}}wDFpvrAEE| z*D^Tlm7J8*oB?Wbenaq_1uEws=MiEit~JpHJfYfE{D7rV;hs$!q3z7W2~K%Ur8Rph z$ZY~zc)N~uTs3-P!-_l2{g|XnDe#^}RNnpU+^XImINoVbmrAdGm;Fb2E$xqt()k!> zfixkN9MgXWeeRwIHT3I1D-)PPDH>|^a&Z(BQrswowYj|#xiplirnw&-DcP2&7De;s zMWj0)_np>rrPmn(+s=uo3QI&JK(URnC*@>VA(^O%x87+v~d7f@(I}U8r+)c--i`VgNPGK&# zrGV!W8KD2%9qFG5IU{oz>oy9^#ztsq$02tjitQd|{pl=ZTSD`uKL{5Cl*L8J=q+{R zK#M(#m9Ce{jG5S-noOY{!Ij^C=d?acQN>%$QU4bNi!aCeg^S0c@-De1{XSJwUlWD7 zly&jWp%0mM^w+<=CT+&wxg=s1u^q!D*OU6Pa@<3EK-C_9+9;!+Q>3{?m|)#x|EwZN zo<>_RCi(7pyJEWLuc8W73`KE%MC+J0FPvE)Uy0XcUbp)5%x}|COx_x|>@38Qc{5CI z`t;JfH}h$l@^Pc*0=kNTmeYq@uJZ;~+)*0Tm1GEqyA-&`G)FS)T>sezljwHx?_+}A z`wTzr*cWqHOPToh}SbSL0$ns^~mWJX831S9_DbA@vEz zL`-9)^V|=$8_|ig9s|EKR6Wl%X5F>$`|7X%>!!GtP__~Mam&lUO5e)>Tvt^m2kX_= zXpVTQYuoJD^jAmHF^cxhrX3+~`5o_R49hCzLlreDq~b-#?|T=1>(MlRH9u6AC$~`C zIDBl38u;Dggpy)nUiP3*>TrUHM(slA)4hNbPip*xMg#0^U);!w1m0;qGXns_xIAnQ zf~ln@hPKJ|yl>)G-Sn3QjUw=k=arNC z}CnPCLYf_T9<*xf>(SfE0L= z_%q2CldYpQlrmTjR(}=Q$_KIUMqDx%zP2nGJ368^c=l-jPqiP6$7IAI>|zoa^ljDS zM=d!l?=p)sKQuUZO#B}6jWdr`ZmBlj;y>zsw|ke#mND%8i-^I|_ZT={SATtR?n^lZ zi#)1ZF|xi9l=jwtslc<#7%Avk=;VOhQVHC#lhdF0ER$MNo)S{m1sTwQ=V$J@qT&~7 zI?ReFm95*u`*4e6Rh_=#$a_kzb@2i9Te&?RbM0pB!AP1Gyy6dhd zmPqHcpv~_m*udjIuhZ)%)Q|3Z!voM0brk8|5KGJZ?z`~dySS~k_LK+@@mSPbjG1!q zlD?P>EtX)k$BC#gSEd~%z-t)~A2~*wa#n1(%VejKc#4zQ&Ut?ERTGgkUt{FHRl z%y|T0{$>X`$7$gCBS9MG&sNjP^~3wl7VoOKJYm=^3x$P5;tx2_4EM$!fkZF_Xxfc{ zP0!!(>JzkNoNh#da+B+WhwUagb)O z+O<&3Sc633WD|BwV^PP(hL>l-H{j4xy}TfE?=ZXQnP!Z{yanlH_2TS#64^5vvzqjD z+6Gs>RQr4wMjplt&=5~pAT>*T}vR(7?f!cHad?sv7C z>h2Hh4zR5fJ!47H>!`pPXr=5-A`L&du5CQfrz_4Bk+(}xS)8QV%lbA#Khj2w*{eW0gU22U4fQo?)XOux$+ zsYpd$M6Yj?QFzJ{<=h^8DUAZAom|tv^>sk26%!OkYS(7XR$yESH-e3p{@~>154bA4N1gguo6*&`pnhSu`dx;Qj4R>TfOcp z$L*NW^eP17v1HdO2g(8trOSk1YoNNJW2^H!ORMKI$Bv?tm^5euVDVf|P*tY1}tz1YG;czE3ULnUuSkxmWv^J2+@l5tF zmbC2G0B^Z(j+^iz6A#hBgc=n;`Ni>Y}Ho+4T%G?OpT7S-J{wQ8^ zYZr*RYIlQ?d%pEF_%kK`k7SgktFj)X=~$#ITF+f%Dv>4zEW~9yizhpP z*X9~>AHwUVI7EQ%ZYibma37;?`{PIU*YgM-zd78RuCw5X6MeH72Rd1;zQ}cV&sbe+UR1zPZFxml8zOjwC&G;(6L} zv=JUBcWVwTK5X3)#J87RoROYcI@e;q7&4fVOk6rM~D>C8F zMnDA1c4?I1yIkbvw>W=6Z}^ptOr_BjA;o>O8Fv6jcg6Fzb{`QMhxcT{>n8jUuWqlt z*T`9}_&>8P?#L}a# z5fMxiGT^t-(z7p(d)!ix3k7dLKxti1M|6>)g@5zxVIhr_o!g`%!|UQQni9iZFVXhM zYj|1kzN$P@4!!16xsR>iA>l(n0U=m3XUBk4CM)6+Dz_hC5iKv{okT(tB;YjWPJ2DN z<9XHWM?mI8!hf2gbH;Q2UM9|!xx!Txw~J{+8n|2hv2;)8?u=pa5k zh@bzRFC63#2l>-M{&V literal 0 HcmV?d00001 diff --git a/tutorial/w7.gif b/tutorial/w7.gif new file mode 100644 index 0000000000000000000000000000000000000000..25afe3dd18b75eee743c18196229d32c03e6047b GIT binary patch literal 164877 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 z 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 literal 0 HcmV?d00001 From 1065a76b2ef058951328439096ca575bc46d26e3 Mon Sep 17 00:00:00 2001 From: frank06 Date: Tue, 26 Jul 2022 01:03:36 +0000 Subject: [PATCH 04/12] deploy: a5e1b9b37706c547f48bfac173f2578d3c218379 --- .../index.html | 4 +-- .../index.html | 4 +-- articles/configure-get-it/index.html | 4 +-- articles/configure-provider/index.html | 4 +-- .../custom-deserialization-adapter/index.html | 4 +-- .../dart-final-const-difference/index.html | 4 +-- .../index.html | 4 +-- .../index.html | 4 +-- articles/define-interface-dart/index.html | 4 +-- .../index.html | 4 +-- articles/how-to-format-duration/index.html | 4 +-- .../index.html | 10 +++--- .../how-to-retry-offline-sync-data/index.html | 4 +-- articles/index.html | 4 +-- articles/index.xml | 4 +-- articles/intercept-logout-adapter/index.html | 4 +-- articles/iterator-style-adapter/index.html | 4 +-- .../index.html | 4 +-- articles/nested-resources-adapter/index.html | 4 +-- articles/override-base-url/index.html | 4 +-- articles/override-findall-adapter/index.html | 4 +-- .../override-findone-url-method/index.html | 4 +-- .../index.html | 4 +-- .../override-http-client-adapter/index.html | 4 +-- .../index.html | 4 +-- articles/upgrade-flutter-sdk/index.html | 4 +-- categories/index.html | 8 ++--- docs/adapters/index.html | 12 +++---- docs/faq/index.html | 8 ++--- docs/index.html | 8 ++--- docs/index.xml | 8 ++--- docs/initialization/index.html | 8 ++--- docs/models/index.html | 8 ++--- docs/quickstart/index.html | 25 +++++++------- docs/relationships/index.html | 14 ++++---- docs/repositories/index.html | 8 ++--- index.html | 4 +-- index.xml | 21 ++++++------ tags/dart/index.html | 8 ++--- tags/es6/index.html | 8 ++--- tags/index.html | 8 ++--- tags/javascript/index.html | 8 ++--- tags/pub/index.html | 8 ++--- tags/vscode/index.html | 8 ++--- tutorial/creating/index.html | 32 ++++++++++++++---- tutorial/deleting/index.html | 16 +++++---- tutorial/fetching/index.html | 10 +++--- tutorial/index.html | 8 ++--- tutorial/index.xml | 7 ++-- tutorial/reloading/index.html | 28 +++++++++++---- tutorial/updating/index.html | 22 ++++++------ tutorial/w8.png | Bin 0 -> 32337 bytes tutorial/w8a.png | Bin 0 -> 30098 bytes 53 files changed, 226 insertions(+), 187 deletions(-) create mode 100644 tutorial/w8.png create mode 100644 tutorial/w8a.png diff --git a/articles/build-widget-with-async-method-call/index.html b/articles/build-widget-with-async-method-call/index.html index 0aca951..d483d0b 100644 --- a/articles/build-widget-with-async-method-call/index.html +++ b/articles/build-widget-with-async-method-call/index.html @@ -1,8 +1,8 @@ -How to Build Widgets with an Async Method Call - Flutter Data

    +How to Build Widgets with an Async Method Call - Flutter Data

    How to Build Widgets with an Async Method Call

    You want to return a widget in a build method…

    But your data comes from an async function!

    class MyWidget extends StatelessWidget {
       @override
       Widget build(context) {
    diff --git a/articles/checking-null-aware-operators-dart/index.html b/articles/checking-null-aware-operators-dart/index.html
    index 5a05816..b9b6d3e 100644
    --- a/articles/checking-null-aware-operators-dart/index.html
    +++ b/articles/checking-null-aware-operators-dart/index.html
    @@ -1,8 +1,8 @@
    -Checking Nulls and Null-Aware Operators in Dart - Flutter Data

    +Checking Nulls and Null-Aware Operators in Dart - Flutter Data

    Checking Nulls and Null-Aware Operators in Dart

    What is the best practice for checking nulls in Dart?

    var value = maybeSomeNumber();
     
     if (value != null) {
    diff --git a/articles/configure-get-it/index.html b/articles/configure-get-it/index.html
    index 371bb81..2046538 100644
    --- a/articles/configure-get-it/index.html
    +++ b/articles/configure-get-it/index.html
    @@ -1,8 +1,8 @@
    -Configure Flutter Data to Work with GetIt - Flutter Data

    +Configure Flutter Data to Work with GetIt - Flutter Data

    Configure Flutter Data to Work with GetIt

    This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class GetItTodoApp extends StatelessWidget {
       @override
       Widget build(context) {
    diff --git a/articles/configure-provider/index.html b/articles/configure-provider/index.html
    index 1407fc8..ef67f6c 100644
    --- a/articles/configure-provider/index.html
    +++ b/articles/configure-provider/index.html
    @@ -1,8 +1,8 @@
    -Configure Flutter Data to Work with Provider - Flutter Data

    +Configure Flutter Data to Work with Provider - Flutter Data

    Configure Flutter Data to Work with Provider

    This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class ProviderTodoApp extends StatelessWidget {
       @override
       Widget build(context) {
    diff --git a/articles/custom-deserialization-adapter/index.html b/articles/custom-deserialization-adapter/index.html
    index 7b4957b..de01d45 100644
    --- a/articles/custom-deserialization-adapter/index.html
    +++ b/articles/custom-deserialization-adapter/index.html
    @@ -1,8 +1,8 @@
    -Custom Deserialization Adapter - Flutter Data

    +Custom Deserialization Adapter - Flutter Data

    Custom Deserialization Adapter

    Example:

    mixin AuthAdapter on RemoteAdapter<User> {
       Future<String> login(String email, String password) async {
         return sendRequest(
    diff --git a/articles/dart-final-const-difference/index.html b/articles/dart-final-const-difference/index.html
    index afb0e49..0aadc28 100644
    --- a/articles/dart-final-const-difference/index.html
    +++ b/articles/dart-final-const-difference/index.html
    @@ -1,8 +1,8 @@
    -Final vs const in Dart - Flutter Data

    +Final vs const in Dart - Flutter Data

    Final vs const in Dart

    What’s the difference between final and const in Dart?

    Easy!

    Final means single-assignment.

    Const means immutable.

    Let’s see an example:

    final _final = [2, 3];
     const _const = [2, 3];
     _final = [4,5]; // ERROR: can't re-assign
    diff --git a/articles/dart-getter-cache-computed-properties/index.html b/articles/dart-getter-cache-computed-properties/index.html
    index 2e1261b..f7306bd 100644
    --- a/articles/dart-getter-cache-computed-properties/index.html
    +++ b/articles/dart-getter-cache-computed-properties/index.html
    @@ -1,8 +1,8 @@
    -Dart Getter Shorthand to Cache Computed Properties - Flutter Data

    +Dart Getter Shorthand to Cache Computed Properties - Flutter Data

    Dart Getter Shorthand to Cache Computed Properties

    An elegant Dart getter shorthand used to cache computed properties:

    T get foo => _foo ??= _computeFoo();
     
     // which depends on having
    diff --git a/articles/deconstructing-dart-constructors/index.html b/articles/deconstructing-dart-constructors/index.html
    index 89beac8..31c472f 100644
    --- a/articles/deconstructing-dart-constructors/index.html
    +++ b/articles/deconstructing-dart-constructors/index.html
    @@ -1,8 +1,8 @@
    -Deconstructing Dart Constructors - Flutter Data

    +Deconstructing Dart Constructors - Flutter Data

    Deconstructing Dart Constructors

    Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories…

    Read this post and you will become an expert!

    Photo by Arseny Togulev on Unsplash

    When we want an instance of a certain class we call a constructor, right?

    var robot = new Robot();
     

    In Dart 2 we can leave out the new:

    var robot = Robot();
     

    A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:

    class Robot {
    diff --git a/articles/define-interface-dart/index.html b/articles/define-interface-dart/index.html
    index 3e521e2..a459b0d 100644
    --- a/articles/define-interface-dart/index.html
    +++ b/articles/define-interface-dart/index.html
    @@ -1,8 +1,8 @@
    -How To Define an Interface in Dart - Flutter Data

    +How To Define an Interface in Dart - Flutter Data

    How To Define an Interface in Dart

    Dart defines implicit interfaces. What does this mean?

    In your app you’d have:

    class Session {
       authenticate() { // impl }
     }
    diff --git a/articles/future-async-called-multiple-times/index.html b/articles/future-async-called-multiple-times/index.html
    index 22f7be7..3cdb6b3 100644
    --- a/articles/future-async-called-multiple-times/index.html
    +++ b/articles/future-async-called-multiple-times/index.html
    @@ -1,8 +1,8 @@
    -Why Is My Future/Async Called Multiple Times? - Flutter Data

    +Why Is My Future/Async Called Multiple Times? - Flutter Data

    Why Is My Future/Async Called Multiple Times?

    Why is FutureBuilder firing multiple times? My future should be called just once!

    It appears that this build method is rebuilding unnecessarily:

    @override
     Widget build(context) {
       return FutureBuilder<String>(
    diff --git a/articles/how-to-format-duration/index.html b/articles/how-to-format-duration/index.html
    index 10fd632..3f815b0 100644
    --- a/articles/how-to-format-duration/index.html
    +++ b/articles/how-to-format-duration/index.html
    @@ -1,8 +1,8 @@
    -How to Format a Duration as a HH:MM:SS String - Flutter Data

    +How to Format a Duration as a HH:MM:SS String - Flutter Data

    How to Format a Duration as a HH:MM:SS String

    The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing:

    format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
     

    Example usage:

    main() {
       final d1 = Duration(hours: 17, minutes: 3);
    diff --git a/articles/how-to-reinitialize-flutter-data/index.html b/articles/how-to-reinitialize-flutter-data/index.html
    index 8e1a5b4..fc60320 100644
    --- a/articles/how-to-reinitialize-flutter-data/index.html
    +++ b/articles/how-to-reinitialize-flutter-data/index.html
    @@ -1,17 +1,17 @@
    -How to Reinitialize Flutter Data - Flutter Data

    How to Reinitialize Flutter Data

    By calling repositoryInitializerProvider() again with Riverpod’s refresh we can reinitialize Flutter Data.

    class TasksApp extends HookConsumerWidget {
    +

    How to Reinitialize Flutter Data

    By calling repositoryInitializerProvider again with Riverpod’s refresh we can reinitialize Flutter Data.

    class TasksApp extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         return MaterialApp(
           home: RefreshIndicator(
    -        onRefresh: () async => ref.refresh(repositoryInitializerProvider()),
    +        onRefresh: () async => ref.container.refresh(repositoryInitializerProvider.future),
             child: Scaffold(
               body: Center(
    -            child: ref.watch(repositoryInitializerProvider()).when(
    +            child: ref.watch(repositoryInitializerProvider).when(
                       error: (error, _) => Text(error.toString()),
                       loading: () => const CircularProgressIndicator(),
                       data: (_) => TasksScreen(),
    diff --git a/articles/how-to-retry-offline-sync-data/index.html b/articles/how-to-retry-offline-sync-data/index.html
    index 4103784..c84ac0b 100644
    --- a/articles/how-to-retry-offline-sync-data/index.html
    +++ b/articles/how-to-retry-offline-sync-data/index.html
    @@ -1,8 +1,8 @@
    -How to Retry Offline Calls to Sync Data - Flutter Data

    +How to Retry Offline Calls to Sync Data - Flutter Data

    How to Retry Offline Calls to Sync Data

    Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives.

    The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException.

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
     
     final _dispose = notifier.addListener((Set<String> types) async {
    diff --git a/articles/index.html b/articles/index.html
    index e328797..d74c456 100644
    --- a/articles/index.html
    +++ b/articles/index.html
    @@ -1,8 +1,8 @@
    -Flutter Data

    +Flutter Data

    tests codecov pub.dev diff --git a/articles/index.xml b/articles/index.xml index 97c76f4..cada94c 100644 --- a/articles/index.xml +++ b/articles/index.xml @@ -1,5 +1,5 @@ -Flutter Data/articles/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider() again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. -class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.refresh(repositoryInitializerProvider()), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider()).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +Flutter Data/articles/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: diff --git a/articles/intercept-logout-adapter/index.html b/articles/intercept-logout-adapter/index.html index 3145ba2..3b18b95 100644 --- a/articles/intercept-logout-adapter/index.html +++ b/articles/intercept-logout-adapter/index.html @@ -1,8 +1,8 @@ -Intercept Logout Adapter - Flutter Data

    +Intercept Logout Adapter - Flutter Data

    Intercept Logout Adapter

    The global onError handler will call logout if certain conditions are met:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       FutureOr<Null?> onError<Null>(DataException e) async {
    diff --git a/articles/iterator-style-adapter/index.html b/articles/iterator-style-adapter/index.html
    index 37b2b03..045bfd3 100644
    --- a/articles/iterator-style-adapter/index.html
    +++ b/articles/iterator-style-adapter/index.html
    @@ -1,8 +1,8 @@
    -Iterator Style Adapter - Flutter Data

    +Iterator Style Adapter - Flutter Data

    Iterator Style Adapter

    mixin AppointmentAdapter on RemoteAdapter<Appointment> {
       Future<Appointment?> fetchNext() async {
         return await sendRequest(
    diff --git a/articles/minimal-hello-world-flutter-app/index.html b/articles/minimal-hello-world-flutter-app/index.html
    index ce50997..2c2a1d5 100644
    --- a/articles/minimal-hello-world-flutter-app/index.html
    +++ b/articles/minimal-hello-world-flutter-app/index.html
    @@ -1,8 +1,8 @@
    -Minimal Flutter Apps to Get Started - Flutter Data

    +Minimal Flutter Apps to Get Started - Flutter Data

    Minimal Flutter Apps to Get Started

    Every time I do a flutter create project I get the default “counter” sample app full of comments.

    While it’s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen.

    Here are a few options to copy-paste into lib/main.dart.

    Bare bones app

    // lib/main.dart
     
     import 'package:flutter/widgets.dart';
    diff --git a/articles/nested-resources-adapter/index.html b/articles/nested-resources-adapter/index.html
    index c51eb59..3965112 100644
    --- a/articles/nested-resources-adapter/index.html
    +++ b/articles/nested-resources-adapter/index.html
    @@ -1,8 +1,8 @@
    -Nested Resources Adapter - Flutter Data

    +Nested Resources Adapter - Flutter Data

    Nested Resources Adapter

    Here’s how you could access nested resources such as: /posts/1/comments

    mixin NestedURLAdapter on RemoteAdapter<Comment> {
       // ...
       @override
    diff --git a/articles/override-base-url/index.html b/articles/override-base-url/index.html
    index ab50c41..fd5a126 100644
    --- a/articles/override-base-url/index.html
    +++ b/articles/override-base-url/index.html
    @@ -1,8 +1,8 @@
    -Override Base URL Adapter - Flutter Data

    +Override Base URL Adapter - Flutter Data

    Override Base URL Adapter

    Flutter Data is extended via adapters.

    mixin UserURLAdapter on RemoteAdapter<User> {
       @override
       String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    diff --git a/articles/override-findall-adapter/index.html b/articles/override-findall-adapter/index.html
    index 816c7e4..c19f95c 100644
    --- a/articles/override-findall-adapter/index.html
    +++ b/articles/override-findall-adapter/index.html
    @@ -1,8 +1,8 @@
    -Override findAll Adapter - Flutter Data

    +Override findAll Adapter - Flutter Data

    Override findAll Adapter

    In this example we completely override findAll to return random models:

    mixin FindAllAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       Future<List<T>> findAll({
    diff --git a/articles/override-findone-url-method/index.html b/articles/override-findone-url-method/index.html
    index b90ddf1..270e8cf 100644
    --- a/articles/override-findone-url-method/index.html
    +++ b/articles/override-findone-url-method/index.html
    @@ -1,8 +1,8 @@
    -Override findOne URL Adapter - Flutter Data

    +Override findOne URL Adapter - Flutter Data

    Override findOne URL Adapter

    In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT:

    mixin URLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       String urlForFindAll(Map<String, dynamic> params) => type.snakeCase;
    diff --git a/articles/override-headers-query-parameters/index.html b/articles/override-headers-query-parameters/index.html
    index 9b84e9a..293c5bc 100644
    --- a/articles/override-headers-query-parameters/index.html
    +++ b/articles/override-headers-query-parameters/index.html
    @@ -1,8 +1,8 @@
    -Override Default Headers and Query Parameters - Flutter Data

    +Override Default Headers and Query Parameters - Flutter Data

    Override Default Headers and Query Parameters

    Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary.

    Here is how:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       final _localStorageService = read(localStorageProvider);
     
    diff --git a/articles/override-http-client-adapter/index.html b/articles/override-http-client-adapter/index.html
    index f811a8b..2ac9b19 100644
    --- a/articles/override-http-client-adapter/index.html
    +++ b/articles/override-http-client-adapter/index.html
    @@ -1,8 +1,8 @@
    -Override HTTP Client Adapter - Flutter Data

    +Override HTTP Client Adapter - Flutter Data

    Override HTTP Client Adapter

    An example on how to override and use a more advanced HTTP client.

    Here the connectionTimeout is increased, and an HTTP proxy enabled.

    mixin HttpProxyAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       HttpClient? _httpClient;
       IOClient? _ioClient;
    diff --git a/articles/ultimate-javascript-dart-syntax-guide/index.html b/articles/ultimate-javascript-dart-syntax-guide/index.html
    index 96cf3ce..bc43ec2 100644
    --- a/articles/ultimate-javascript-dart-syntax-guide/index.html
    +++ b/articles/ultimate-javascript-dart-syntax-guide/index.html
    @@ -1,8 +1,8 @@
    -The Ultimate Javascript vs Dart Syntax Guide - Flutter Data

    +The Ultimate Javascript vs Dart Syntax Guide - Flutter Data

    The Ultimate Javascript vs Dart Syntax Guide

    Photo by ipet photo on Unsplash

    Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart’s syntax.

    (Pros and cons of choosing Flutter/Dart is outside the scope of this article.)

    So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other!

    Variables and constants

    // js
     
     var dog1 = "Lucy"; // variable
    diff --git a/articles/upgrade-flutter-sdk/index.html b/articles/upgrade-flutter-sdk/index.html
    index 7eec3ae..8ccf974 100644
    --- a/articles/upgrade-flutter-sdk/index.html
    +++ b/articles/upgrade-flutter-sdk/index.html
    @@ -1,8 +1,8 @@
    -How to Upgrade Flutter - Flutter Data

    +How to Upgrade Flutter - Flutter Data

    How to Upgrade Flutter

    Type in your terminal:

    flutter upgrade
     

    This will update Flutter to the latest version in the current channel. Most likely you have it set in stable.

    flutter channel
     # Flutter channels:
    diff --git a/categories/index.html b/categories/index.html
    index 4f6684d..f902f63 100644
    --- a/categories/index.html
    +++ b/categories/index.html
    @@ -1,9 +1,9 @@
    -Categories - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/adapters/index.html b/docs/adapters/index.html index 66f5912..ca9921c 100644 --- a/docs/adapters/index.html +++ b/docs/adapters/index.html @@ -1,10 +1,10 @@ -Adapters - Flutter Data

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    +

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
       @override
       String get baseUrl => 'https://myapi.com/v1/';
     }
    @@ -25,13 +25,13 @@
       @override
       String urlForFindAll(Map<String, dynamic> params) => 'todos/all';
     }
    -

    Here’s a list of overridable members:


    typedefaults to a camel-cased, pluralized class name (User => users)
    baseUrlmust be implemented or it will throw an error
    urlForFindAlldefaults to type
    methodForFindAlldefaults to DataRequestMethod.GET
    urlForFindOnedefaults to ${type}/${id}
    methodForFindOnedefaults to DataRequestMethod.GET
    urlForSavedefaults to ${type}/${id} if updating
    methodForSavedefaults to DataRequestMethod.PATCH if updating
    urlForDeletedefaults to ${type}/${id}
    methodForDeletedefaults to DataRequestMethod.DELETE
    defaultParamsdefaults to {}
    defaultHeadersdefaults to {'Content-Type': 'application/json'}
    shouldLoadRemoteAllfine-grained control over the remote param on findAll
    shouldLoadRemoteOnefine-grained control over the remote param on findOne
    serializecan customize serialization (like the JSON API Adapter does)
    deserializecan customize deserialization (like the JSON API Adapter does)
    isNetworkErrorwhether to retry a request when back online

    And if we have multiple models that all share the same base URL?

    We can simply make the adapter generic and apply it to any DataModel in our app!

    mixin JSONServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +

    Here’s a list of overridable members:


    typedefaults to a camel-cased, pluralized class name (User => users)
    baseUrlmust be implemented or it will throw an error
    urlForFindAlldefaults to type
    methodForFindAlldefaults to DataRequestMethod.GET
    urlForFindOnedefaults to ${type}/${id}
    methodForFindOnedefaults to DataRequestMethod.GET
    urlForSavedefaults to ${type}/${id} if updating
    methodForSavedefaults to DataRequestMethod.PATCH if updating
    urlForDeletedefaults to ${type}/${id}
    methodForDeletedefaults to DataRequestMethod.DELETE
    defaultParamsdefaults to {}
    defaultHeadersdefaults to {'Content-Type': 'application/json'}
    shouldLoadRemoteAllfine-grained control over the remote param on findAll
    shouldLoadRemoteOnefine-grained control over the remote param on findOne
    serializecan customize serialization (like the JSON API Adapter does)
    deserializecan customize deserialization (like the JSON API Adapter does)
    isNetworkErrorwhether to retry a request when back online

    And if we have multiple models that all share the same base URL?

    We can simply make the adapter generic and apply it to any DataModel in our app!

    mixin JsonServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       String get baseUrl => 'https://myapi.com/v1/';
     }
     
     @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    +@DataRepository([JsonServerAdapter])
     class User extends DataModel<User> {
       final int? id;
       final String name;
    diff --git a/docs/faq/index.html b/docs/faq/index.html
    index 0c82f0a..bf1b170 100644
    --- a/docs/faq/index.html
    +++ b/docs/faq/index.html
    @@ -1,10 +1,10 @@
    -FAQ - Flutter Data

    FAQ

    Why are save and other methods not available on my models?

    DataModel extensions are syntax sugar and will only work when importing Flutter Data:

    import 'package:flutter_data/flutter_data.dart';
     

    Errors generating code?

    If you have trouble with the outputs, try:

    flutter pub run build_runner build --delete-conflicting-outputs
     

    VSCode users!

    If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue.

    Also make sure your dependencies are up to date:

    flutter pub upgrade
     

    Can I group multiple adapter mixins into one?

    Not yet.

    See https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

    Does Flutter Data depend on Flutter?

    No! Despite its name this library does not depend on Flutter at all.

    See the example folder for an, uh, example.

    It does depend on Riverpod but this library is exported.

    Where does Flutter Data place generated code?

    • in *.g.dart files (part of your models)
    • in main.data.dart (as a library)

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    diff --git a/docs/index.html b/docs/index.html index 6e550d6..89d9844 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,10 +1,10 @@ -Docs - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml index 9cfb333..cc07b4e 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -1,7 +1,7 @@ Docs on Flutter Data/docs/Recent content in Docs on Flutter DataHugo -- gohugo.ioen-usMon, 20 Apr 2020 19:01:08 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: -dependencies: flutter: sdk: flutter flutter_data: ^1.4.4 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +dependencies: flutter: sdk: flutter flutter_data: ^1.4.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. However, json_serializable and path_provider are very convenient so they are recommended. -The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. +The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. @DataRepository([TaskAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models, whether local or remote.Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. @@ -12,8 +12,8 @@ The way we use these adapters is by declaring them on our @DataRepository annota The json_serializable library is helpful but not required.Relationships/docs/relationships/Mon, 20 Apr 2020 17:21:33 -0300/docs/relationships/Flutter Data features an advanced relationship mapping system. Use: HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +@JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JsonServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. The former happens when wiring up providers and the latter during widget build. Local storage initialization Here are the configuration options with their default arguments explicit: ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: diff --git a/docs/initialization/index.html b/docs/initialization/index.html index 2c68a7b..a69d79c 100644 --- a/docs/initialization/index.html +++ b/docs/initialization/index.html @@ -1,10 +1,10 @@ -Initialization - Flutter Data

    Initialization

    Initializing Flutter Data consists of two parts: local storage initialization and repository initialization.

    The former happens when wiring up providers and the latter during widget build.

    Local storage initialization

    Here are the configuration options with their default arguments explicit:

    ProviderScope(
    +

    Initialization

    Initializing Flutter Data consists of two parts: local storage initialization and repository initialization.

    The former happens when wiring up providers and the latter during widget build.

    Local storage initialization

    Here are the configuration options with their default arguments explicit:

    ProviderScope(
       child: MyApp(),
       overrides: [
         configureRepositoryLocalStorage(
    diff --git a/docs/models/index.html b/docs/models/index.html
    index 61a74b5..9ee8c69 100644
    --- a/docs/models/index.html
    +++ b/docs/models/index.html
    @@ -1,10 +1,10 @@
    -Models - Flutter Data

    Models

    Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository:

    @DataRepository([TaskAdapter])
    +

    Models

    Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository:

    @DataRepository([TaskAdapter])
     @JsonSerializable()
     class Task extends DataModel<Task> {
       @override
    diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html
    index 057b0e1..694ebf4 100644
    --- a/docs/quickstart/index.html
    +++ b/docs/quickstart/index.html
    @@ -1,14 +1,14 @@
    -Quickstart - Flutter Data

    Quickstart

    Add flutter_data and dependencies to your pubspec.yaml file:

    dependencies:
    +

    Quickstart

    Add flutter_data and dependencies to your pubspec.yaml file:

    dependencies:
       flutter:
         sdk: flutter
     
    -  flutter_data: ^1.4.4
    +  flutter_data: ^1.4.6
     
       # Highly RECOMMENDED (but not required) packages
       path_provider: ^2.0.7
    @@ -20,7 +20,7 @@
     
       # Highly RECOMMENDED (but not required) packages
       json_serializable: ^6.1.4
    -

    Flutter Data doesn’t require any library besides build_runner for code generation.

    However, json_serializable and path_provider are very convenient so they are recommended.

    The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.

    Basic configuration 🔧

    Make your models extend DataModel<T>, override id and annotate them with @DataRepository().

    import 'package:flutter_data/flutter_data.dart';
    +

    Flutter Data doesn’t require any library besides build_runner for code generation.

    However, json_serializable and path_provider are very convenient so they are recommended.

    The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.

    Basic configuration 🔧

    Make your models extend DataModel<T>, override id and annotate them with @DataRepository().

    import 'package:flutter_data/flutter_data.dart';
     import 'package:json_annotation/json_annotation.dart';
     
     part 'task.g.dart';
    @@ -35,12 +35,12 @@
     
       Task({this.id, required this.title, this.completed = false});
     }
    -

    @DataRepository() takes a list of adapters.

    Adapters are Dart mixins used to customize the framework’s behavior, ranging from the very basic to the extremely powerful. They are applied on Flutter Data’s RemoteAdapter<T> base class.

    Let’s start by the most typical configuration to access a remote API, the base URL.

    mixin ApplicationAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
    +

    @DataRepository() takes a list of adapters.

    Adapters are Dart mixins used to customize the framework’s behavior, ranging from the very basic to the extremely powerful. They are applied on Flutter Data’s RemoteAdapter<T> base class.

    Let’s start by the most typical configuration to access a remote API, the base URL.

    mixin JsonServerAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo/';
     }
     

    Next, we’ll pass it to the annotation:

    @JsonSerializable()
    -@DataRepository([ApplicationAdapter])
    +@DataRepository([JsonServerAdapter])
     class Task extends DataModel<Task> {
       final int? id;
       final String title;
    @@ -52,13 +52,12 @@
       "id": 1,
       "title": "Finish this documentation for once",
       "completed": false,
    -  "user_id": 1
    +  "userId": 1
     }
     

    We are now ready to run a build:

    flutter pub run build_runner build
     

    Flutter Data auto-generated a Repository class for Task.

    It also generated a Dart library at main.data.dart which makes Flutter Data initialization effortless. It’s out-of-the-box compatible with Riverpod.

    Trouble generating code? See here.

    Here is how to make it work with Provider and GetIt.

    Next step is to configure local storage and initialize the framework:

    import 'package:flutter/material.dart';
    -import 'package:provider/provider.dart';
    -import 'package:path_provider/path_provider.dart';
     import 'package:flutter_data/flutter_data.dart';
    +import 'package:hooks_riverpod/hooks_riverpod.dart';
     import 'package:tutorial/main.data.dart';
     
     void main() {
    @@ -76,10 +75,10 @@
         return MaterialApp(
           home: Scaffold(
             body: Center(
    -          child: ref.watch(repositoryInitializerProvider()).when(
    +          child: ref.watch(repositoryInitializerProvider).when(
                     error: (error, _) => Text(error.toString()),
                     loading: () => const CircularProgressIndicator(),
    -                data: (_) => 'Hello from Flutter Data ${ref.tasks}!',
    +                data: (_) => Text('Hello from Flutter Data ${ref.tasks}!'),
                   ),
             ),
           ),
    diff --git a/docs/relationships/index.html b/docs/relationships/index.html
    index 5fb4385..136d432 100644
    --- a/docs/relationships/index.html
    +++ b/docs/relationships/index.html
    @@ -1,11 +1,11 @@
    -Relationships - Flutter Data

    Relationships

    Flutter Data features an advanced relationship mapping system.

    Use:

    • HasMany<T> for to-many relationships
    • BelongsTo<T> for to-one relationships

    As an example, a User has many Tasks:

    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    +

    Relationships

    Flutter Data features an advanced relationship mapping system.

    Use:

    • HasMany<T> for to-many relationships
    • BelongsTo<T> for to-one relationships

    As an example, a User has many Tasks:

    @JsonSerializable()
    +@DataRepository([JsonServerAdapter])
     class User extends DataModel<User> {
       @override
       final int? id;
    @@ -15,7 +15,7 @@
       User({this.id, required this.name, this.tasks});
     }
     

    and a Task belongs to a User:

    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    +@DataRepository([JsonServerAdapter])
     class Task extends DataModel<Task> {
       @override
       final int? id;
    @@ -39,7 +39,7 @@
     print(family.house.value.families.first.surname);  // Free Assange
     

    We can infinitely navigate the relationship graph as it’s based on a reactive graph data structure (GraphNotifier).

    Defaults

    For relationships to work they must not be null.

    final task = Task(title: 'do 1', user: BelongsTo());
     

    If we don’t want to supply a new relationship object like above, we may provide defaults like so:

    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    +@DataRepository([JsonServerAdapter])
     class Task extends DataModel<Task> {
       @override
       final int? id;
    diff --git a/docs/repositories/index.html b/docs/repositories/index.html
    index bedcf1f..bbfe5be 100644
    --- a/docs/repositories/index.html
    +++ b/docs/repositories/index.html
    @@ -1,10 +1,10 @@
    -Repositories - Flutter Data

    Repositories

    Flutter Data is organized around the concept of models which are data classes extending DataModel.

    @DataRepository([TaskAdapter])
    +

    Repositories

    Flutter Data is organized around the concept of models which are data classes extending DataModel.

    @DataRepository([TaskAdapter])
     class Task extends DataModel<Task> {
       @override
       final int? id;
    diff --git a/index.html b/index.html
    index 8fa5510..e086e0c 100644
    --- a/index.html
    +++ b/index.html
    @@ -1,9 +1,9 @@
     Flutter Data

    Persistent reactive models in Flutter. With zero boilerplate.

    Flutter Data is an offline-first data framework that gives you a -configurable REST client and powerful model relationships.

    Watch the short tutorial +configurable REST client and powerful model relationships.

    Apps using Flutter Data

    Features 🚀

    Repositories for all models
    Built for offline-first
    • Hive-based local storage at its core
    • Failure handling & retry API
    Intuitive APIs, effortless setup
    • Truly configurable and composable via Dart mixins and codegen
    • Built-in Riverpod providers for all models
    Exceptional relationship support
    • Automatically synchronized, fully traversable relationship graph
    • Reactive relationships

    Compatibility

    Fully compatible with the tools we know and love:

    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required)
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!

    Github: https://github.com/flutterdata/flutter_data
    Twitter: https://twitter.com/flutterdata

    tests codecov pub.dev diff --git a/index.xml b/index.xml index fed7444..4bb8a08 100644 --- a/index.xml +++ b/index.xml @@ -1,7 +1,7 @@ Flutter Data/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: -dependencies: flutter: sdk: flutter flutter_data: ^1.4.4 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +dependencies: flutter: sdk: flutter flutter_data: ^1.4.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. However, json_serializable and path_provider are very convenient so they are recommended. -The latest flutter_data should be 1.4.4. Please check for all packages latest stable versions before copy-pasting dependencies.Fetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: +The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.Fetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: Make sure you went through the Quickstart and got Flutter Data up and running! Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial We now have access to our Repository&lt;Task&gt; through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/. @@ -10,12 +10,13 @@ Inspecting the /tasks endpoint we see: @DataRepository([TaskAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models, whether local or remote.Marking tasks as done/tutorial/updating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/updating/A read-only tasks app is not very practical! Let&rsquo;s add the ability to update the completed state and mark/unmark our tasks as done. First, though, we&rsquo;ll extract the tasks-specific code to a separate screen named TasksScreen: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model!) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. Overriding basic behavior Several pieces of information are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework takes a sensible guess and makes that GET /tasks by default. Still, a base URL is necessary and the endpoint parts should be overridable. -The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it. -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).save(); _newTaskController.clear(); }, ), for (final task in state.model) ListTile( leading: Checkbox( value: task.completed, onChanged: (value) =&gt; task.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: +The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/First off let&rsquo;s add just one line during the initialization. This will enable very helpful logging of our tasks repository! +// ... child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) { // enable verbose ref.tasks.logLevel = 2; return TasksScreen(); } ), // ... When we restart we notice the following: +flutter: 34:061 [watchAll/tasks@e20025] initializing flutter: 34:100 [findAll/tasks@e2046b&lt;e20025] requesting [HTTP GET] https://my-json-server.typicode.com/flutterdata/demo/tasks flutter: 34:835 [findAll/tasks@e2046b&lt;e20025] {1, 2, 3, 4, 5} (and 5 more) fetched from remote Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: @DataRepository([TaskAdapter]) @JsonSerializable() class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common. The json_serializable library is helpful but not required.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}); // ... } Hot restarting the app we should only see five tasks, but&hellip; @@ -23,18 +24,18 @@ It&rsquo;s exactly the same as before. Why isn&rsquo;t this working? Turns out watchAll is wired to show all tasks in local storage.Relationships/docs/relationships/Mon, 20 Apr 2020 17:21:33 -0300/docs/relationships/Flutter Data features an advanced relationship mapping system. Use: HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: -@JsonSerializable() @DataRepository([JSONServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! +@JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: +@JsonSerializable() @DataRepository([JsonServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. The former happens when wiring up providers and the latter during widget build. Local storage initialization Here are the configuration options with their default arguments explicit: ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: flutter pub run build_runner build --delete-conflicting-outputs VSCode users! If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. -Also make sure your dependencies are up to date:How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider() again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. -class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.refresh(repositoryInitializerProvider()), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider()).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +Also make sure your dependencies are up to date:How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: diff --git a/tags/dart/index.html b/tags/dart/index.html index d32b7df..2325b46 100644 --- a/tags/dart/index.html +++ b/tags/dart/index.html @@ -1,9 +1,9 @@ -dart - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/es6/index.html b/tags/es6/index.html index ef7d120..481a784 100644 --- a/tags/es6/index.html +++ b/tags/es6/index.html @@ -1,9 +1,9 @@ -es6 - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 4009271..17c22d7 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,9 +1,9 @@ -Tags - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html index a48f47f..4c786a8 100644 --- a/tags/javascript/index.html +++ b/tags/javascript/index.html @@ -1,9 +1,9 @@ -javascript - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/pub/index.html b/tags/pub/index.html index f7311cd..80f1644 100644 --- a/tags/pub/index.html +++ b/tags/pub/index.html @@ -1,9 +1,9 @@ -pub - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/vscode/index.html b/tags/vscode/index.html index 708bc7f..37eeafe 100644 --- a/tags/vscode/index.html +++ b/tags/vscode/index.html @@ -1,9 +1,9 @@ -vscode - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/creating/index.html b/tutorial/creating/index.html index e1d071c..b1dbf5f 100644 --- a/tutorial/creating/index.html +++ b/tutorial/creating/index.html @@ -1,14 +1,28 @@ -Tutorial: Creating a new task - Flutter Data

    Creating a new task

    Let’s add a TextField, turn the input into a new Task and immediately save it.

    class TasksScreen extends HookConsumerWidget {
    +

    Creating a new task

    First off let’s add just one line during the initialization. This will enable very helpful logging of our tasks repository!

    // ...
    +child: ref.watch(repositoryInitializerProvider).when(
    +  error: (error, _) => Text(error.toString()),
    +  loading: () => const CircularProgressIndicator(),
    +  data: (_) {
    +    // enable verbose
    +    ref.tasks.logLevel = 2;
    +    return TasksScreen();
    +  }
    +),
    +// ...
    +

    When we restart we notice the following:

    flutter: 34:061 [watchAll/tasks@e20025] initializing
    +flutter: 34:100   [findAll/tasks@e2046b<e20025] requesting [HTTP GET] https://my-json-server.typicode.com/flutterdata/demo/tasks
    +flutter: 34:835   [findAll/tasks@e2046b<e20025] {1, 2, 3, 4, 5} (and 5 more) fetched from remote
    +

    Let’s add a TextField, turn the input into a new Task and immediately save it.

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchAll();
         final _newTaskController = useTextEditingController();
    +    final state = ref.tasks.watchAll();
     
         if (state.isLoading) {
           return CircularProgressIndicator();
    @@ -22,7 +36,7 @@
                 _newTaskController.clear();
               },
             ),
    -        for (final task in state.model)
    +        for (final task in state.model!)
               ListTile(
                 leading: Checkbox(
                   value: task.completed,
    @@ -34,7 +48,11 @@
         );
       }
     }
    -

    Remember to import flutter_hooks!

    Hot-reloading once again we see our TextField ready to create new tasks:

    It was that easy!

    You may have noticed that there was a flash with [id: null] (we didn’t supply any ID upon model creation), until the server responds with one (in this case 11) triggering an update.

    Be aware that our dummy JSON backend does not actually save new resources so it will always respond with ID 11, causing a confusing situation if you keep adding tasks!

    Finally, remember to check out the debug console where you can find some Flutter Data activity logs!

    NEXT: Reloading the list

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    For this we need to import flutter_hooks!

    Hot-reloading once again we see our TextField ready to create new tasks:

    It was that easy!

    You may have noticed that there was a flash with [id: null] (we didn’t supply any ID upon model creation), until the server responds with one (in this case 11) triggering an update.

    Be aware that our dummy JSON backend does not actually save new resources so it will always respond with ID 11, causing a confusing situation if you keep adding tasks!

    In the console:

    flutter: 25:084 [watchAll/tasks@68f651] updated models
    +flutter: 25:087 [save/tasks@6bb411] requesting [HTTP POST] https://my-json-server.typicode.com/flutterdata/demo/tasks
    +flutter: 25:713 [save/tasks@6bb411] saved in local storage and remote
    +flutter: 25:714 [watchAll/tasks@68f651] updated models
    +

    NEXT: Reloading the list

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev diff --git a/tutorial/deleting/index.html b/tutorial/deleting/index.html index 102c41a..a09be56 100644 --- a/tutorial/deleting/index.html +++ b/tutorial/deleting/index.html @@ -1,18 +1,19 @@ -Tutorial: Deleting tasks - Flutter Data

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
    +

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
         final _newTaskController = useTextEditingController();
    +    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
     
         if (state.isLoading) {
           return CircularProgressIndicator();
         }
    +
         return RefreshIndicator(
           onRefresh: () =>
               ref.tasks.findAll(params: {'_limit': 5}, syncLocal: true),
    @@ -43,7 +44,10 @@
         );
       }
     }
    -

    Hot-reload, swipe left and… they’re gone!

    Remember to check out the debug console where you can find some Flutter Data activity logs.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    Hot-reload, swipe left and… they’re gone!

    Remember to check out the debug console where you can find some Flutter Data activity logs like:

    flutter: 25:691 [watchAll/tasks@1744b4] updated models
    +flutter: 25:693 [delete/tasks#4@1936e7] requesting [HTTP DELETE] https://my-json-server.typicode.com/flutterdata/demo/tasks/4
    +flutter: 26:266 [delete/tasks#4@1936e7] deleted in local storage and remote
    +

    NEXT: Using relationships

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev diff --git a/tutorial/fetching/index.html b/tutorial/fetching/index.html index 46d8b2d..41234fb 100644 --- a/tutorial/fetching/index.html +++ b/tutorial/fetching/index.html @@ -1,10 +1,10 @@ -Tutorial: Fetching tasks - Flutter Data

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    [
       {
         "id": 1,
         "title": "Laundry 🧺",
    @@ -31,7 +31,7 @@
         return MaterialApp(
           home: Scaffold(
             body: Center(
    -          child: ref.watch(repositoryInitializerProvider()).when(
    +          child: ref.watch(repositoryInitializerProvider).when(
                 error: (error, _) => Text(error.toString()),
                 loading: () => const CircularProgressIndicator(),
                 data: (_) {
    diff --git a/tutorial/index.html b/tutorial/index.html
    index da8514c..13782ad 100644
    --- a/tutorial/index.html
    +++ b/tutorial/index.html
    @@ -1,10 +1,10 @@
    -Tutorial: Tutorials - Flutter Data

    tests codecov pub.dev license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/index.xml b/tutorial/index.xml index f529d1c..271f45e 100644 --- a/tutorial/index.xml +++ b/tutorial/index.xml @@ -5,10 +5,11 @@ We now have access to our Repository&lt;Task&gt; through ref.tasks, with Inspecting the /tasks endpoint we see: [ { &#34;id&#34;: 1, &#34;title&#34;: &#34;Laundry 🧺&#34;, &#34;completed&#34;: false, &#34;userId&#34;: 1 }, { &#34;id&#34;: 2, &#34;title&#34;: &#34;Groceries 🛒&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, { &#34;id&#34;: 3, &#34;title&#34;: &#34;Reservation at Malloys&#34;, &#34;completed&#34;: true, &#34;userId&#34;: 1 }, // .Marking tasks as done/tutorial/updating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/updating/A read-only tasks app is not very practical! Let&rsquo;s add the ability to update the completed state and mark/unmark our tasks as done. First, though, we&rsquo;ll extract the tasks-specific code to a separate screen named TasksScreen: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it. -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).save(); _newTaskController.clear(); }, ), for (final task in state.model) ListTile( leading: Checkbox( value: task.completed, onChanged: (value) =&gt; task.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(); if (state.isLoading) { return CircularProgressIndicator(); } return ListView( children: [ for (final task in state.model!) Text(task.title), ], ); } } Remember to return this new widget from TasksApp:Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/First off let&rsquo;s add just one line during the initialization. This will enable very helpful logging of our tasks repository! +// ... child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) { // enable verbose ref.tasks.logLevel = 2; return TasksScreen(); } ), // ... When we restart we notice the following: +flutter: 34:061 [watchAll/tasks@e20025] initializing flutter: 34:100 [findAll/tasks@e2046b&lt;e20025] requesting [HTTP GET] https://my-json-server.typicode.com/flutterdata/demo/tasks flutter: 34:835 [findAll/tasks@e2046b&lt;e20025] {1, 2, 3, 4, 5} (and 5 more) fetched from remote Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}); // ... } Hot restarting the app we should only see five tasks, but&hellip; It&rsquo;s exactly the same as before. Why isn&rsquo;t this working? 🤔 Turns out watchAll is wired to show all tasks in local storage.Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); final _newTaskController = useTextEditingController(); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value). \ No newline at end of file +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value). \ No newline at end of file diff --git a/tutorial/reloading/index.html b/tutorial/reloading/index.html index 88dc1b1..d6b3dab 100644 --- a/tutorial/reloading/index.html +++ b/tutorial/reloading/index.html @@ -1,10 +1,10 @@ -Tutorial: Reloading the list - Flutter Data

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
    +

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final state = ref.tasks.watchAll(params: {'_limit': 5});
    @@ -27,8 +27,8 @@
     

    For more on initialization see here.

    Replacing the manual reload

    Instead of manually reloading/restarting we will now integrate RefreshIndicator. In the event handler we simply use findAll and pass the same arguments:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    -    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
         final _newTaskController = useTextEditingController();
    +    final state = ref.tasks.watchAll(params: {'_limit': 5}, syncLocal: true);
     
         if (state.isLoading) {
           return CircularProgressIndicator();
    @@ -58,7 +58,23 @@
         );
       }
     }
    -

    Now simply pull to refresh!

    A similar method can be used to fully re-initialize Flutter Data.

    NEXT: Deleting tasks

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    Now simply pull to refresh!

    A similar method can be used to fully re-initialize Flutter Data.

    A DRY’er alternative would be getting hold of the notifier and calling reload() on it:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final _newTaskController = useTextEditingController();
    +
    +    final provider =
    +        ref.tasks.watchAllProvider(params: {'_limit': 5}, syncLocal: true);
    +    final state = ref.watch(provider);
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +    return RefreshIndicator(
    +      onRefresh: () => ref.read(provider.notifier).reload(),
    +      child: ListView(
    +    // ...
    +

    NEXT: Deleting tasks

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev diff --git a/tutorial/updating/index.html b/tutorial/updating/index.html index 185d770..5944666 100644 --- a/tutorial/updating/index.html +++ b/tutorial/updating/index.html @@ -1,10 +1,10 @@ -Tutorial: Marking tasks as done - Flutter Data

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
    +

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final state = ref.tasks.watchAll();
    @@ -13,7 +13,7 @@
         }
         return ListView(
           children: [
    -        for (final task in state.model) Text(task.title),
    +        for (final task in state.model!) Text(task.title),
           ],
         );
       }
    @@ -24,7 +24,7 @@
         return MaterialApp(
           home: Scaffold(
             body: Center(
    -          child: ref.watch(repositoryInitializerProvider()).when(
    +          child: ref.watch(repositoryInitializerProvider).when(
                     error: (error, _) => Text(error.toString()),
                     loading: () => const CircularProgressIndicator(),
                     data: (_) => TasksScreen(),
    @@ -44,7 +44,7 @@
         }
         return ListView(
           children: [
    -        for (final task in state.model)
    +        for (final task in state.model!)
               ListTile(
                 leading: Checkbox(
                   value: task.completed,
    @@ -56,8 +56,8 @@
         );
       }
     }
    -

    If only the toggleCompleted() method existed… 🙂

    Since Task is immutable and provides no way to update fields, we return a new Task object with the inverse boolean value of completed.

    @JsonSerializable()
    -@DataRepository([JSONServerAdapter])
    +

    If only the toggleCompleted() method existed… 😀

    Since Task is immutable, we return a new Task object with the inverse boolean value of completed:

    @JsonSerializable()
    +@DataRepository([JsonServerAdapter])
     class Task extends DataModel<Task> {
       @override
       final int? id;
    @@ -67,10 +67,10 @@
       Task({this.id, required this.title, this.completed = false});
     
       Task toggleCompleted() {
    -    return Task(id: this.id, title: this.title, completed: !this.completed);
    +    return Task(id: this.id, title: this.title, completed: !this.completed).withKeyOf(this);
       }
     }
    -

    Hot-reload and check all boxes…

    Done!

    Remember to check out the debug console where you can find some Flutter Data activity logs.

    NEXT: Creating a new task

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    What exactly is withKeyOf(this) for?

    When a new model is created, Flutter Data initializes it looking up its internal key based on its id.

    This way, Task(id: 4, title: 'a') and Task(id: 4, title: 'b') are essentially two versions of the same model.

    When there is no id (or potentially no id, as in the case above) we can use withKeyOf to ensure the new model is treated as an updated version of the old one.

    Regenerate code, hot-reload and check all boxes…

    Done! NEXT: Creating a new task

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev diff --git a/tutorial/w8.png b/tutorial/w8.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae0f3de2b58aecefd43883710ebd51005ce1770 GIT binary patch literal 32337 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 literal 0 HcmV?d00001 diff --git a/tutorial/w8a.png b/tutorial/w8a.png new file mode 100644 index 0000000000000000000000000000000000000000..00f4419c454e79d2ac18571c80ccb69e84d7fd75 GIT binary patch literal 30098 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 CmHeCl literal 0 HcmV?d00001 From 90e19e678b74ada5c26e16093b50703a10b1f376 Mon Sep 17 00:00:00 2001 From: frank06 Date: Tue, 26 Jul 2022 01:12:10 +0000 Subject: [PATCH 05/12] deploy: eb134a41617364a7599515de0ff8b3ae8a19f53d --- index.xml | 9 +- sitemap.xml | 2 +- tutorial/creating/index.html | 2 +- tutorial/deleting/index.html | 2 +- tutorial/fetching/index.html | 2 +- tutorial/index.html | 2 +- tutorial/index.xml | 9 +- tutorial/offline/index.html | 11 ++ tutorial/relationships/index.html | 182 ++++++++++++++++++++++++++++++ tutorial/reloading/index.html | 2 +- tutorial/updating/index.html | 2 +- 11 files changed, 216 insertions(+), 9 deletions(-) create mode 100644 tutorial/offline/index.html create mode 100644 tutorial/relationships/index.html diff --git a/index.xml b/index.xml index 4bb8a08..0caf14d 100644 --- a/index.xml +++ b/index.xml @@ -34,7 +34,14 @@ ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // import &#39;package:flutter_data/flutter_data.dart&#39;; Errors generating code? If you have trouble with the outputs, try: flutter pub run build_runner build --delete-conflicting-outputs VSCode users! If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue. -Also make sure your dependencies are up to date:How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +Also make sure your dependencies are up to date:Using relationships/tutorial/relationships/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/relationships/Let&rsquo;s now slightly rethink our query. Instead of &ldquo;fetching all tasks for user 1&rdquo; we are going to &ldquo;fetch user 1 with all their tasks&rdquo;. +Flutter Data has first-class support for relationships. +First, in models/user.dart, we&rsquo;ll create the User model with a HasMany&lt;Task&gt; relationship: +import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this.Retry offline/tutorial/offline/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/offline/TBD. +For now, see How to Retry Offline Calls to Sync Data +Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly. +An error has occurred. Please e-mail me@frank06.net with your request.How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: diff --git a/sitemap.xml b/sitemap.xml index 5abf7fc..4f55cb7 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -/docs/quickstart//tutorial/fetching//docs/repositories//tutorial/updating//docs/adapters//tutorial/creating//docs/models/2020-04-20T19:01:08-03:00/tutorial/reloading//docs/relationships/2020-04-20T17:21:33-03:00/tutorial/deleting//docs/initialization//docs/faq//articles/2021-12-18T17:08:28-03:00/2021-12-18T17:08:28-03:00/articles/how-to-reinitialize-flutter-data/2021-12-18T17:08:28-03:00/articles/nested-resources-adapter/2021-12-09T23:17:30-03:00/articles/custom-deserialization-adapter/2021-12-09T23:15:44-03:00/articles/intercept-logout-adapter/2021-12-09T23:15:11-03:00/articles/override-findall-adapter/2021-12-09T23:14:28-03:00/articles/override-findone-url-method/2021-12-09T23:14:28-03:00/articles/iterator-style-adapter/2021-12-09T23:13:36-03:00/articles/override-http-client-adapter/2021-12-09T23:10:10-03:00/articles/override-headers-query-parameters/2021-12-09T23:07:40-03:00/articles/configure-get-it/2021-12-05T23:12:05-03:00/articles/configure-provider/2021-12-05T23:12:05-03:00/articles/how-to-retry-offline-sync-data/2021-12-05T23:12:05-03:00/articles/override-base-url/2021-12-03T18:45:45-03:00/docs/2020-04-20T19:01:08-03:00/tags/dart/2020-02-12T13:43:48-05:00/articles/deconstructing-dart-constructors/2020-02-12T13:43:48-05:00/tags/2020-02-12T13:43:48-05:00/articles/dart-getter-cache-computed-properties/2020-01-04T13:43:48-05:00/articles/dart-final-const-difference/2020-01-04T13:43:48-05:00/articles/define-interface-dart/2020-01-04T13:43:48-05:00/articles/build-widget-with-async-method-call/2019-12-18T00:00:00+00:00/articles/future-async-called-multiple-times/2019-12-18T00:00:00+00:00/tags/es6/2019-10-15T13:43:48-05:00/tags/javascript/2019-10-15T13:43:48-05:00/articles/ultimate-javascript-dart-syntax-guide/2019-10-15T13:43:48-05:00/articles/checking-null-aware-operators-dart/2019-09-18T00:00:00+00:00/articles/how-to-format-duration/2019-09-10T23:43:48-05:00/articles/upgrade-flutter-sdk/2019-08-27T12:43:48-05:00/tags/pub/2019-08-27T12:43:48-05:00/tags/vscode/2019-08-27T12:43:48-05:00/articles/minimal-hello-world-flutter-app/2019-07-30T23:43:48-05:00/categories//tutorial/ \ No newline at end of file +/docs/quickstart//tutorial/fetching//docs/repositories//tutorial/updating//docs/adapters//tutorial/creating//docs/models/2020-04-20T19:01:08-03:00/tutorial/reloading//docs/relationships/2020-04-20T17:21:33-03:00/tutorial/deleting//docs/initialization//docs/faq//tutorial/relationships//tutorial/offline//articles/2021-12-18T17:08:28-03:00/2021-12-18T17:08:28-03:00/articles/how-to-reinitialize-flutter-data/2021-12-18T17:08:28-03:00/articles/nested-resources-adapter/2021-12-09T23:17:30-03:00/articles/custom-deserialization-adapter/2021-12-09T23:15:44-03:00/articles/intercept-logout-adapter/2021-12-09T23:15:11-03:00/articles/override-findall-adapter/2021-12-09T23:14:28-03:00/articles/override-findone-url-method/2021-12-09T23:14:28-03:00/articles/iterator-style-adapter/2021-12-09T23:13:36-03:00/articles/override-http-client-adapter/2021-12-09T23:10:10-03:00/articles/override-headers-query-parameters/2021-12-09T23:07:40-03:00/articles/configure-get-it/2021-12-05T23:12:05-03:00/articles/configure-provider/2021-12-05T23:12:05-03:00/articles/how-to-retry-offline-sync-data/2021-12-05T23:12:05-03:00/articles/override-base-url/2021-12-03T18:45:45-03:00/docs/2020-04-20T19:01:08-03:00/tags/dart/2020-02-12T13:43:48-05:00/articles/deconstructing-dart-constructors/2020-02-12T13:43:48-05:00/tags/2020-02-12T13:43:48-05:00/articles/dart-getter-cache-computed-properties/2020-01-04T13:43:48-05:00/articles/dart-final-const-difference/2020-01-04T13:43:48-05:00/articles/define-interface-dart/2020-01-04T13:43:48-05:00/articles/build-widget-with-async-method-call/2019-12-18T00:00:00+00:00/articles/future-async-called-multiple-times/2019-12-18T00:00:00+00:00/tags/es6/2019-10-15T13:43:48-05:00/tags/javascript/2019-10-15T13:43:48-05:00/articles/ultimate-javascript-dart-syntax-guide/2019-10-15T13:43:48-05:00/articles/checking-null-aware-operators-dart/2019-09-18T00:00:00+00:00/articles/how-to-format-duration/2019-09-10T23:43:48-05:00/articles/upgrade-flutter-sdk/2019-08-27T12:43:48-05:00/tags/pub/2019-08-27T12:43:48-05:00/tags/vscode/2019-08-27T12:43:48-05:00/articles/minimal-hello-world-flutter-app/2019-07-30T23:43:48-05:00/categories//tutorial/ \ No newline at end of file diff --git a/tutorial/creating/index.html b/tutorial/creating/index.html index b1dbf5f..813b460 100644 --- a/tutorial/creating/index.html +++ b/tutorial/creating/index.html @@ -3,7 +3,7 @@ Data

    Creating a new task

    First off let’s add just one line during the initialization. This will enable very helpful logging of our tasks repository!

    // ...
     child: ref.watch(repositoryInitializerProvider).when(
       error: (error, _) => Text(error.toString()),
    diff --git a/tutorial/deleting/index.html b/tutorial/deleting/index.html
    index a09be56..2d25bef 100644
    --- a/tutorial/deleting/index.html
    +++ b/tutorial/deleting/index.html
    @@ -3,7 +3,7 @@
     Data

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    diff --git a/tutorial/fetching/index.html b/tutorial/fetching/index.html
    index 41234fb..5232dde 100644
    --- a/tutorial/fetching/index.html
    +++ b/tutorial/fetching/index.html
    @@ -3,7 +3,7 @@
     Data

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    [
       {
         "id": 1,
    diff --git a/tutorial/index.html b/tutorial/index.html
    index 13782ad..db63024 100644
    --- a/tutorial/index.html
    +++ b/tutorial/index.html
    @@ -3,7 +3,7 @@
     Data

    tests codecov pub.dev diff --git a/tutorial/index.xml b/tutorial/index.xml index 271f45e..553e923 100644 --- a/tutorial/index.xml +++ b/tutorial/index.xml @@ -12,4 +12,11 @@ class TasksScreen extends HookConsumerWidget { @override Widget build(BuildConte It&rsquo;s exactly the same as before. Why isn&rsquo;t this working? 🤔 Turns out watchAll is wired to show all tasks in local storage.Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value). \ No newline at end of file +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Using relationships/tutorial/relationships/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/relationships/Let&rsquo;s now slightly rethink our query. Instead of &ldquo;fetching all tasks for user 1&rdquo; we are going to &ldquo;fetch user 1 with all their tasks&rdquo;. +Flutter Data has first-class support for relationships. +First, in models/user.dart, we&rsquo;ll create the User model with a HasMany&lt;Task&gt; relationship: +import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this.Retry offline/tutorial/offline/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/offline/TBD. +For now, see How to Retry Offline Calls to Sync Data +Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. +Thank you! I will get back to you shortly. +An error has occurred. Please e-mail me@frank06.net with your request. \ No newline at end of file diff --git a/tutorial/offline/index.html b/tutorial/offline/index.html new file mode 100644 index 0000000..191c865 --- /dev/null +++ b/tutorial/offline/index.html @@ -0,0 +1,11 @@ +Tutorial: Retry offline - Flutter Data

    Retry offline

    TBD.

    For now, see How to Retry Offline Calls to Sync Data

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/relationships/index.html b/tutorial/relationships/index.html new file mode 100644 index 0000000..642a61c --- /dev/null +++ b/tutorial/relationships/index.html @@ -0,0 +1,182 @@ +Tutorial: Using relationships - Flutter Data

    Using relationships

    Let’s now slightly rethink our query. Instead of “fetching all tasks for user 1” we are going to “fetch user 1 with all their tasks”.

    Flutter Data has first-class support for relationships.

    First, in models/user.dart, we’ll create the User model with a HasMany<Task> relationship:

    import 'package:flutter_data/flutter_data.dart';
    +import 'package:json_annotation/json_annotation.dart';
    +
    +import 'task.dart';
    +
    +part 'user.g.dart';
    +
    +@JsonSerializable()
    +@DataRepository([JsonServerAdapter])
    +class User extends DataModel<User> {
    +  @override
    +  final int? id;
    +  final String name;
    +  final HasMany<Task> tasks;
    +
    +  User({this.id, required this.name, required this.tasks});
    +}
    +

    Time to run code generation and get a brand-new Repository<User>:

    flutter pub run build_runner build
    +

    Great. We are now going to issue the remote request via watchOne(), in order to list (and watch for changes of) user 1’s Task models:

    • params: {'_embed': 'tasks'}, tells the server to include this user’s tasks (which our JSON adapter knows how to deserialize)
    • alsoWatch: (user) => [user.tasks] tells the watcher to rebuild the widget any time user or its tasks are updated or deleted; any number of relationships of any depth can be watched
    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final _newTaskController = useTextEditingController();
    +    final state = ref.users.watchOne(
    +        1, // user ID, an integer
    +        params: {'_embed': 'tasks'}, // HTTP param
    +        alsoWatch: (user) => [user.tasks] // watcher
    +      );
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +
    +    final tasks = state.model!.tasks.toList();
    +
    +    return RefreshIndicator(
    +      onRefresh: () => ref.users.findOne(1, params: {'_embed': 'tasks'}),
    +      child: ListView(
    +        children: [
    +          TextField(
    +            controller: _newTaskController,
    +            onSubmitted: (value) async {
    +              Task(title: value).save();
    +              _newTaskController.clear();
    +            },
    +          ),
    +          for (final task in tasks)
    +            Dismissible(
    +              key: ValueKey(task),
    +              direction: DismissDirection.endToStart,
    +              onDismissed: (_) => task.delete(),
    +              child: ListTile(
    +                leading: Checkbox(
    +                  value: task.completed,
    +                  onChanged: (value) => task.toggleCompleted().save(),
    +                ),
    +                title: Text('${task.title} [id: ${task.id}]'),
    +              ),
    +            ),
    +        ],
    +      ),
    +    );
    +  }
    +}
    +

    Import the user.dart file, reload and watch it working!

    Note that tasks 4, 5 and 9 for example were not loaded as they do not belong to user 1!

    This is the API response for https://my-json-server.typicode.com/flutterdata/demo/users/1?_embed=tasks that was parsed by the built-in deserialize method:

    {
    +  "id": 1,
    +  "name": "frank06",
    +  "tasks": [
    +    {
    +      "id": 1,
    +      "title": "Laundry 🧺",
    +      "completed": false,
    +      "userId": 1
    +    },
    +    {
    +      "id": 2,
    +      "title": "Groceries 🛒",
    +      "completed": true,
    +      "userId": 1
    +    },
    +    {
    +      "id": 3,
    +      "title": "Reservation at Malloys",
    +      "completed": true,
    +      "userId": 1
    +    },
    +    {
    +      "id": 7,
    +      "title": "Take Amanda to birthday",
    +      "completed": true,
    +      "userId": 1
    +    },
    +    {
    +      "id": 8,
    +      "title": "Get new surfboard 🏄‍♀️",
    +      "completed": false,
    +      "userId": 1
    +    },
    +    {
    +      "id": 10,
    +      "title": "Protest tyrannical mandates 👊",
    +      "completed": true,
    +      "userId": 1
    +    }
    +  ]
    +}
    +

    Creating a task

    As it is, adding a new task will not work. Why is that?

    We are creating new Task models without any User associated to them:

    onSubmitted: (value) async {
    +  Task(title: value).save();
    +  _newTaskController.clear();
    +},
    +

    Let’s fix this. Add a BelongsTo<User> relationship in models/task.dart and regenerate our code:

    @JsonSerializable()
    +@DataRepository([JsonServerAdapter])
    +class Task extends DataModel<Task> {
    +  @override
    +  final int? id;
    +  final String title;
    +  final bool completed;
    +  final BelongsTo<User> user;
    +
    +  Task({this.id, required this.title, this.completed = false, required this.user});
    +  
    +  Task toggleCompleted() {
    +    return Task(id: this.id, title: this.title, user: user, completed: !this.completed)
    +        .withKeyOf(this);
    +  }
    +}
    +

    Now we can provide the right user as a BelongsTo:

    class TasksScreen extends HookConsumerWidget {
    +  @override
    +  Widget build(BuildContext context, WidgetRef ref) {
    +    final _newTaskController = useTextEditingController();
    +    final state = ref.users.watchOne(
    +        1, // user ID, an integer
    +        params: {'_embed': 'tasks'}, // HTTP param
    +        alsoWatch: (user) => [user.tasks] // watcher
    +      );
    +
    +    if (state.isLoading) {
    +      return CircularProgressIndicator();
    +    }
    +
    +    final user = state.model!;
    +    final tasks = user.tasks.toList();
    +
    +    return RefreshIndicator(
    +      onRefresh: () => ref.users.findOne(1, params: {'_embed': 'tasks'}),
    +      child: ListView(
    +        children: [
    +          TextField(
    +            controller: _newTaskController,
    +            onSubmitted: (value) async {
    +              Task(title: value, user: BelongsTo(user)).save();
    +              _newTaskController.clear();
    +            },
    +          ),
    +          for (final task in tasks)
    +            Dismissible(
    +              key: ValueKey(task),
    +              direction: DismissDirection.endToStart,
    +              onDismissed: (_) => task.delete(),
    +              child: ListTile(
    +                leading: Checkbox(
    +                  value: task.completed,
    +                  onChanged: (value) => task.toggleCompleted().save(),
    +                ),
    +                title: Text('${task.title} [id: ${task.id}]'),
    +              ),
    +            ),
    +        ],
    +      ),
    +    );
    +  }
    +}
    +

    And adding new tasks now works!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/reloading/index.html b/tutorial/reloading/index.html index d6b3dab..a7d7087 100644 --- a/tutorial/reloading/index.html +++ b/tutorial/reloading/index.html @@ -3,7 +3,7 @@ Data

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    diff --git a/tutorial/updating/index.html b/tutorial/updating/index.html
    index 5944666..485708c 100644
    --- a/tutorial/updating/index.html
    +++ b/tutorial/updating/index.html
    @@ -3,7 +3,7 @@
     Data

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    
    From d95ae2cfabb04593b797f7ac01fb7b4b92e759d0 Mon Sep 17 00:00:00 2001
    From: frank06 
    Date: Tue, 26 Jul 2022 01:22:53 +0000
    Subject: [PATCH 06/12] deploy: 36b87576d18bf62900ac78ab1bd90fa08d6c7688
    
    ---
     index.html | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/index.html b/index.html
    index e086e0c..c7fb02f 100644
    --- a/index.html
    +++ b/index.html
    @@ -2,9 +2,9 @@
     Flutter Data

    Persistent reactive models in Flutter. With zero boilerplate.

    Flutter Data is an offline-first data framework that gives you a -configurable REST client and powerful model relationships.

    Apps using Flutter Data

    Features 🚀

    Repositories for all models
    Built for offline-first
    • Hive-based local storage at its core
    • Failure handling & retry API
    Intuitive APIs, effortless setup
    • Truly configurable and composable via Dart mixins and codegen
    • Built-in Riverpod providers for all models
    Exceptional relationship support
    • Automatically synchronized, fully traversable relationship graph
    • Reactive relationships

    Compatibility

    Fully compatible with the tools we know and love:

    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required)
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!

    Persistent reactive models in Flutter. With zero boilerplate.

    Flutter Data is an offline-first data framework with a +customizable REST client and powerful model relationships.

    Apps using Flutter Data

    Features 🚀

    Repositories for all models
    Built for offline-first
    • Hive-based local storage at its core
    • Failure handling & retry API
    Intuitive APIs, effortless setup
    • Truly configurable and composable via Dart mixins and codegen
    • Built-in Riverpod providers for all models
    Exceptional relationship support
    • Automatically synchronized, fully traversable relationship graph
    • Reactive relationships

    Compatibility

    Fully compatible with the tools we know and love:

    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required)
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!
    \ No newline at end of file From 0ba9086cfc2a34d8f94b0f01483d9c11f31ba70e Mon Sep 17 00:00:00 2001 From: frank06 Date: Wed, 27 Jul 2022 23:08:47 +0000 Subject: [PATCH 07/12] deploy: 3068efcfa8ba2c38aa8c240b781e38847211d88d --- docs/adapters/index.html | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/docs/adapters/index.html b/docs/adapters/index.html index ca9921c..f3438b3 100644 --- a/docs/adapters/index.html +++ b/docs/adapters/index.html @@ -3,7 +3,7 @@ Data

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
       @override
       String get baseUrl => 'https://myapi.com/v1/';
    @@ -86,7 +86,28 @@
       bool omitDefaultParams = false,
       DataRequestLabel? label,
     });
    -
    • uri takes the full Uri (you must provider base URL and query parameters, too)
    • headers takes the full headers (or defaultHeaders if omitted)

    With all these building blocks adapters for Wordpress or Github REST access, or even JWT authentication are easy to build.

    Many more adapter examples can be found perusing the articles.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +

    • uri takes the full Uri (you must provider base URL and query parameters, too)
    • headers takes the full headers (or defaultHeaders if omitted)

    With all these building blocks adapters for Wordpress or Github REST access, or even JWT authentication are easy to build.

    Overriding watchers

    Let’s imagine our app has to list completed payments in different widgets.

    final state = ref.payments.watchAll(params: {'filter': {'complete': true}});
    +

    We could use something like the above to only request completed payments from the backend API.

    But non-completed payments in local storage would still show up through watchAll, so we would have to filter them every time in every widget.

    Except if we override this behavior. Since the meat of the watchers happens in the notifiers (watchAllNotifier in this case), that is what we are going to override:

    @override
    +DataStateNotifier<List<Payment>?> watchAllNotifier({
    +  bool? remote,
    +  Map<String, dynamic>? params,
    +  Map<String, String>? headers,
    +  bool? syncLocal,
    +  String? finder,
    +  DataRequestLabel? label,
    +}) {
    +  return super
    +      .watchAllNotifier(
    +        remote: remote,
    +        params: params,
    +        headers: headers,
    +        syncLocal: syncLocal,
    +        finder: finder,
    +        label: label,
    +      )
    +      .where((payment) => payment.isComplete);
    +}
    +

    Both where and map are available as notifier extensions. In the future these could be turned into watcher arguments for easier access.

    Many more adapter examples can be found perusing the articles.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev From 46a665c131201624a7507bb67bc749bf16cc1d94 Mon Sep 17 00:00:00 2001 From: frank06 Date: Tue, 2 Aug 2022 20:39:07 +0000 Subject: [PATCH 08/12] deploy: 785b21ce52548b612406c5d85844ff8e96b2a659 --- CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CNAME diff --git a/CNAME b/CNAME deleted file mode 100644 index c88170b..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -flutterdata.dev \ No newline at end of file From bfd20808649a59fbef2d4c93f77b3b53f1e70c3a Mon Sep 17 00:00:00 2001 From: frank06 Date: Tue, 2 Aug 2022 20:50:49 +0000 Subject: [PATCH 09/12] deploy: 894af9f0f79934cceb4d381db33ee29141179d2e --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..c88170b --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +flutterdata.dev \ No newline at end of file From e2f02d8bb6518d40a08a1b94324a3c4097c2688f Mon Sep 17 00:00:00 2001 From: frank06 Date: Thu, 27 Oct 2022 22:45:21 +0000 Subject: [PATCH 10/12] deploy: e18141f92a81866d676c589d43949a37194cf7b6 --- index.html | 2 +- tutorial/offline/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index c7fb02f..ecf81ab 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ -Flutter Data

    +Flutter Data

    Flutter Data

    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 z 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%0D05p^* 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 F`~xi5BWwTw literal 0 HcmV?d00001 diff --git a/tutorial/w5.png b/tutorial/w5.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3274ea32ca25c3539863cea54cb7505354f9f3 GIT binary patch literal 60084 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 literal 0 HcmV?d00001 diff --git a/tutorial/w6.png b/tutorial/w6.png new file mode 100644 index 0000000000000000000000000000000000000000..c45f101e8c997b1e9d1c5f8761f091ff613dc615 GIT binary patch literal 64432 zcmeGEc{r5q`v;Cod5B7zl(Mu6q3rvJ%2To>5yn)=GPW@GnMs>UXp;~_WS^03EW=DC zWF4}MnK8zabr@L(V`hH$)bqSQ&mX@(f5-3m9^WI!VQ{U zr9=e;1h!xN``i@)0YRpKfRL8RU%-(Tk~;s#rl2ckCIXm_LsP&X=iD7G-nOt1Py~J# z5!e*tC9s7*1o)N$z6As}XKWJK4E)^0Kb9f*?|%iE8Jqw8T}X>R@MBjIR6xL3;NrQn zSHm{V(1hQ)*`;xL{u9ipsb<|XZ33H3-(<^)2$p_)uX3bD<&gxb{5{wHP6O&@uie#t zp@xr*z3%NI(<#qS%00fc^Wu*CZKrjYAEb9oA=6`XCqgXjLYL76)ZSbp)^b6$9c(ll zg(=AGco$hvkeln#`F5wVz@{z#d}I^}6|}C;=;;1?fd8+@TSS-}hvn`H2#WmvIK2rt zvM1xE&iVfg1IBFs|HT;Z!~c06xh>HJ1qFHg5k`aVQiq~eCSGpTb}k;Sl2p`*#iouspi>&Pdj`z%ds9+UJma41b6aj2Cc` zxmD*6LDCF%J>2kVr|B?GD9ubscJuvItj_oubi4e9*Ph6u4z)-lB)7H7q>_^SJlNORF16)u9Rc>!2eLGwz)e>FJ~xm=XGJ zGIe2p^b?gKh<Bq%vVni3FGKCaA8$mUI>e)JXFT@ATOL^`s`* zAX&bm$yFL(yoVdi8m9$4S-9l&FWTsNLW zM)PfP3>6mw8HpNe*}`7aA9#Z1VK+; zPHFuDk2VmG z;#CRpZ(8N3?94Z7vvw}%rU!sUy880&;ARfn-DphZQUGz^xkcSoPsS=wZ-u9vs`T6& zq$e!l;?L!pUP)L!n~}QmLOEbvywQic=1%VDp0jTab}=EfgNmym`)F$n5Td$ond9ZaL2xr(C0YUXKD3P^&=~u`IU2va{CUsZ`S(_k3au z=O|!-#*SsM7G4b2m!(0^ex}8=`{-LP>cUU2erW<7dN3@@4vG^dc451XMrEJRt9dzD zBt!n%h^aCukDrod`*MWs#up=s6iD+MD@WT$-Mb_3ZAX1y`6gq#Ekd}p8Z1_sZ+(!+ z1C^nJJEL?tY}0XQgDNpJeJ&LnpX5vPA-d~_0NaMvrvxdMp)N!~I@NeC`MzqTWp;Da z;9ROM-|Bw~h=$MM>rq6;3#4fWbZj@~M?FS-Dmi9>$X?zE>J$X!(O6}>63(SWiDsUa)hDyCU?UvCc7UKEMbshEBM*I0Yaml zOWm~*M*QvPb2amt0caI}feoc7c>ooUz&1E-ohSZETB>uAA zGkZ?vHGuuG^V)Pc&VrTB+j($m^SRdYbU#F07j}{1{^oZ1Y&o9ZSIl4?R+oKTaXFy^ z1ECk&e{*KXAwS+`DlLXNf)))pS`@4Cb;N<7Es7WAxCH1tsSqjNV?avcWLwUY+&A8? zF^fBA?M^`OK21IBB)_8;ju`kV>i}d2f!>9c^`f6L1&qvz(z{5|A@c*GqD*|RSGhK; z4*gm#AsipybBUWF_w z3f_Q*D@Jk|8_q8h-?)q8hcj&dvBU3cNFFBU5k47fGlvDG=wt)es|(tN2Q>Ocoga@Q;T?r_F}kUpBnAz9ZC}KIZM`$j6KjAL8wq5?D=9%Lc9#yx2$e(qtu7JLR^Er^qC{NW>*iUzKr_l#@8RU$q?|>%P888!;8`Y~di16Q^lpr2=A4rwwOquvH z5BLtB=)eeng_Y{PhE+|xy-y{EI5C!3aZ71p)}*Nh_iTYXr4ebpy1Z0-A`O+(g^j)T zl#{hMKk=HJ;9NKrribZkHpuBCDK8pSq#;#;4k{}(zGhTWD&y18ry6ur*v2>Bi++W~ za+kA6SR`bAPFWEW1vczsK<3Uw7&$@0dE6`*hdaXVgM%7K?JLeNXE})PDISaSb6H+# zo14xGM4uMgh!_02=FT1sjH^tS+Jm<7cI)TBWkm(my`11!zC)? z&c=P~gbF15@pR7e(!1vduj7-$2LNNYJ`ev&v~3~@SHEE!4O39@v+|JZ+>&u}hb@sk z>M5H%kw4b(HhAX6m+<^}r)NPPvLer7?jps17Bj-E6Ho~*P7$-WEwk!!HrUbF#X0|E z_G1FcT}3IF-Ns2=D2WP=CCDc&gv}h>v_;X%cutjD=P;L0li2!$&K5O9UA>0`U4%c5 zTRA&UiX*Cn49X-10dKLiX_90k6d&wNNHcm~5l6R7M7tjq0>d*JE4#7W`isM68tJC@i1%d|NS;PoBzI^B8Oj{B_7aS+SSR`1CUY2lgakJg+1U~#>gSyB z{Bngqa%OdLp8e2ImToV_g5eblbFy!Hy_0V;7KnawJcDJ9qQBm>>`)o_c7%Lo!gey; zZh2|xwORAiB8KUbLkL63P{I4V>j}d_hn9U1`-uZQ6BEw_Mu2SefMCSzDk;1KQi-7J z)vOryaU^Tt%qwME_)vAfAQx%Yy6h9%bz_%LfGX*dQqto0nA$J;nRU+I4;KFc+b*eOyC;LKuFO%&@akINWbHe=&M2^%>2Nh)BigHV7RS22VPZ|Nc`u- ze9@f)wqxTr{>A^mZI11ctCA0LRr=3~S0v=Ba$DLz|9f%ZHh-Tm4zL<;y!M|HvlW3u ziK+Mh7Z!-fJ->W+D7`HX{ofPqfJ2Jf!hC!G&tbV_fzO7?2c7RKYr=|jYhwsS?jmU zik{!Q|IndlJBq_M5ZEAq|9YC|T_3!2wr0h(^9EC#3l!J73koWWbQpPbsJ3~W5A{Pn07(%q%#h1uN z#f)orgrKyZ-56u^N0*k1P2VNA2!%_VYd;L<<9pyvyMQ}cfdftek31|WI%8y@q(SQK zjf?%;-+#`UBn9`9`;=g=8DI^Jz5&{FkBvBH5DiQ)TWQFNBrzcI8m1I;5ppEhHh_ix zITqmZZZm)K`M~5ap~G9^1O!J_GW--o8%1YE$zP159{5L-bf?XQBunE@Gy+tVafSvk z^m|pQJ^%XWHdT}=?Nr*rFzF5yuU~&TjCt~O{ZpZsRX%$l;c=4*f4qrM%P7xPX)o&5 z(YwZDTk~Kvmb+@M-lhcOA*Sy=}*P2Ze2Wd3vWii#Im{%=NuDIJkLK7|A-G0G`lV}0> zfH|XeaF=n$7an%_UE$-dy+@1#RL>>&0y`Id zNN`%1X%@fLuybAY7@miB9F`BX&p2e)(hc1IQG#L=Oq|Ocx<$Q#6?2A1v@~YR`p!PkSCfe+^}BR==igR9@&G z>FVm*;GH+4CRb}egAxz|$jsdU_A}qo>IY1?bjw~!ui?3@!qsaNExY%-I38F%Gw2mA z>sNo2zr^_f^2$F%<%2P#g!SoO3ph^m{Zqe0qj2HmFw`aO%nklhX9D73B1Dz}rWznP zEp=rI?54)s8I^RP`t&atw^s#Nw1MY_z)&HvJk9H$uPV2C1-~GZ-B;#VD`cx{;{6oE zF>%#B*n+&U^osQf!ekiu8B8NXu=IyjmxSoT9x+Ef1aar1WZACeX z`ra#eYFAK!Zy?-G!RqE^_M0c`HLZV}p7*{L#X7UAR1FY?)5omG27zedz{t=J;LqoT zyZ*j&)6-8cytsI@iZPQ;(e#`E(_bx~vv12Q9i6bF##pK(U=PHpjK;0n^}g$E6a-e{ z#??(g)OG2rD1U3Yg7bYL6>_-}6xfN@TsyK@(hmgt+DByTnX#bgA|JOOxYkbh+dP8& zukBpe^^MbkBK8&C2ju7K$Gd`gj;|ODhOJ%IO0*Hq-euzwjX*??L-Prv&GSA)pzJwLvn&z^Z?mnB}9r=kYa z9P6bpq35p+KI>%Kz2(OsYhte#3wog!PY#zy%otN!H2zXqe5V@)l7ee&!zgGMl-wshd60X zkJX^#`Xz#)MPj!4`uZ^{*2illMOwxIU9th@^t8ZFG*&?Hq3B7^f(8d|klv+Cb{m#6 zA-f-OxL~~uIXuHL#bMzU4AS6B=Hu67OWooLx4ywanYA^HdbsbmOTQ%h8kbjm={R36 z+>c~*GVez!SY1TV)->c2QDFTZ!xP+Erq%0C8PHrTY7A!qK~*Rz*(wtnXu85n|E(rDO)I9Cr>< z%V#D>jf{}>ha>;j>ek z;ndESi@;6^MBf4oXRLAy7m#^}P4p2=c)sHRs{c%F1LtG%aGeDkqc*7C585xv4+r;N zzk6pOc3TS*7;F&Tw(n-e-lSl?bWT#P%4$jK#|9uRcF}D+QPZDob^0gN5UW!}f1i_N8`H{D2M+095Qu&% zaS~yBso~0%fL{#%;cog>OB0U;%1X#!H^>rihCRm@SJS&gE(ew`D*%@DvEYYoDPkwY zL0wJi>$Tz##{sisLZ4%cn5(&$gR{g6|M6cZ2z;)Kn!cwF&^=q_hS)b5Ng(qx?k>;P z!x~Sjf6&RHdyFS-p%ZDUs(l00@YY+iNgTd)%mkLmwD@KVfMU)|S`W=I7)tAiiu%L@ zS>HDNx_=HIHV^D1FqfV@Q{5WtcxiFhVSSTG1?WpS;EnSHKZM)wu!{}kOQ5B3W_P8O z4bFwMy*t-S7-IZ$D1g=VW<|_ zInesygpN2M2~fTyOnjJDJoj z%oU6IeWCu21+FC!zB4-({k={-Ci~oVz#hC88X3OAf_1AR*WZlZ8olh5S6T_mz1{Dp zd397<=D?t$kZ!_*Qw*mzC#O+QUq2S{Zgq#G zC8m_Y#rhF`VpP;saU~=*97sHlXu%X_@4k(o~9Q1B0$R{^<=&y$>Bs2r&Qy|)U zOToZ-ljc-k6Pt`fe04b~c>n%=8@f;2*+DAx;C5khU*BzYkB;*3@o^ihicblmYe^Ht zsKB1`Cy7#u+0e=q=X!1LNY3+aZSWBNV<@jON|qAj3+X4%QETezXdyHGHADFKe-o1zOn;&B0;BBee#Xl@X>HfItCM~A)nzbn1 z_SVtw27`JF;yTiLrZm^-OIo)hH+;1H2M@v5k~O@(e;l$bjC6j&<}a-u;1B!`zTs<7 z{T2p-u_ph4{{|ct`x=YM^s{A&!xC+hlFLt2;E{_jjBJt1 z$GYj&XDF(M80-%Yd2}L2MQyMkGxKI%>a)2y8AuZU;RFQ90AMA9!}bAF?zfTybZPWO zVJ}$HsbCC@W_nq9M-x6jWI54vW*F4JF3emA8sF60_4B2ND%w)>W8|I+Y~hEx{Cuyx z3UFo`ch==GKihP=M&L6%_-G$L%y_h=XUtTYS)))@*bAQ1Y zPOf*BUAe+}dj;?AYb?s)NwD+NyZ41eFVcLFdv?uRpW z7F-OHHI}&4D|8NQ(gS-mb$!$IZ|Ah;ce#x`a`?3!KU4uPNq?%z7u~;&KX(gxt-n<@$AV;&n%)@NXqjj9TZaTnf_Yhcg@ zrDo%OYV)6IJaM7Vbt60jpsXbN0pKMc1o!}^J5hP4-ou~@h{Dd-OZ!o=%2HlAR~~A# z#BbAB%DO!AnTE3~*gnSBOHm+rlYHNV1wcfJpwZp+A*K@z9tI&G>b#0rmr}3ZPBc_6 z@3zSK&fR@d6>teAfC~||<6ByZ!_N;4_Lde6VPelnOp-8Qr(HYdO$yo+aoaq76IuiK zIq;Lt!0@WWk-)==O8oo`4yrf_Oj#(bLWd!o(pPld_KcolVM|eI>!;8cFU$uDZW*6E z2?&O@8=wj=&XT18MEd5gV7}v9c+vs-G_yVu_&Wa}^kGP1Z_G+tU&z|Gr@sTVY5+<8 z!sCGMIKG4z;!FxJ*xH2d61om9T3hP25-$8un*Z#ddqs9qWPEyU0lxX~>p;Y!rW0c- z5dCwDniEaJLBbiK`kGc#Kvh$xmhQY0w7-_ywyChptL0r^1RASN(-6~T(Jz$5R3`6}{4DC)GG z_3|qd->C0uLW51R$bo&TEh-21Xwf1TtL0P^?A0S_fOn}LB=L?-9_axzN*oq9 zUvIPyfIfao0QzDPh~u7|GPX~C;vD%-AK3d3cjvUSG72&3>o!MdJ?8V&yzOoax|Izk??^O>>@5}mxNxc_gP_Fc`5Q)QQuc|5{WZM7*0OSs! zCnU$4`uIwFE!ugQCLBiRfrr6oU2cYbz9*ywUtcO>A1sy!uIhDA+wa->q*5LmKT{*3 zDbp`8v~_mW&ioMIofOXl0;Zs8p$i}+*e2P*QOTn9zEGi1q-}sbw03-2-3ZCuxFh~k zbS72H_i5v8`y2LulLiu`vZ}w-%t>Wk3#n4v7t)5&MShYb;nqveINz)rl?{DSA3@Bu)(2eeM{L-403hU#(S-r+3m zhbv)^6Dq$#lf@T}1_~3Z5i@xoJ{+IEmUX5_qI5C2=Y4U>4=RC`_OohD|pn7^s-S6u&pJM!u6mZ-a|&$Lifmx0U({4MbvdwIFmFQTY( zW^<)@ubzVPBD+^oK-#Gl4y~R`k`W)9S2;Zo6a^r7DU7NuD`)ILN_@K|1Yi)c5m#4! zU@#+SRLiaw?>BnPw#LX6yK_rW>}8G`K^ByNdLd3iFzai?hvs+AC9Qp8%Cf@^irAcn zga$ZpszCI2(d?iGTd&qn00{y>(c?p=#o`oh$-R;Y?2?*X4y$TedZhLfH1vn0C>AkiRNAZceyVB2lZ#rpC$PJvlQfQ&pqj?)V!P!Oim1~q{hcb zm-ssTsPM2Xz_zB-eI#YN9DW#<>HjOZ0@2U66huTs{AH?Wjd$0bB7{7P^khvG{6x^5 zZm-AurYwI8bwALAh--NkY93j8qGif?Wa2kR^-BkUQmDNCAr~XNPs#sKCVbxHziEzt z6ywGKkWCqN5qkH3F1R4wH$M5Aj~E^i^5GtxNM-?*LOLwR=`8$5i=iLj!;UePA_q-yzn zjHUm)R*077RTj6WYEuna1FsS%^RnVg@9)s_^dw7%4(vilu21Dso8?gkOHnWNsg?ef z`g65Ff8nCe#TEM*-;s%=>bd$I`fb6kziOcN<36n-7vebYsjcl~W`^VZ#POh&8zb@|Kc6OsEO@Dw14Vgv(5(Qa zz3qTU`ZrCIv-;ivZJ+)d{)olYEIT}B)<4x`qv(2>nszgLz9UUPCjKDEa!~(dKtqg7 z#JBXQg=SAxVcDpU(m`!!>R0xI2sgzB?ki!c?hU0s`NHQ#<*b06Ot-#hk6Ul(p8cSN z+CEEZs(mAcTd4I~!OB)rUQyXEnOaq|H8nLen`KvxuVO0k%jhkvA@49BAxgDxEJLQ- zKR5l(8w-??A*BkBA5=kb4*HThW>r2xJYo)oWVffQdk~~q;@kS~;_`78ag2iyTU&LX zG(;u6J++S-k4{BrW;XAW3COTWA5im2J0`AD{bRS&#~YtJbIg-eq-%;@*Ykn?%aH`m z;+~sK#783V0RCio&{}h5cP~Rry~+yUvW-?hi|;^ZkywfLF1kx^^?$jK-^Kn5lxaoD zPF0;Kh$rbnp|gX0`9wq0C5cm~J@2bTiBn!H*v2SmXlRjJA zlo{W#T}_nZybZrp^-$(V*SO`+x)bkQ0Z|U_Ykza<`Yn41yn+TJfkXPPdyoeN6B3u@ zjw1p&>&q+oR`3?Yav>xx;#lI`NUW-iqd&mOZ($wY&g5%!GoZH3vlj*yx+g5l><{T~ z2ZToC2`8&%1Y)$+ru?(x+S!9hyGaJX5YoE(0&@Wcct8~%qu9V z|D`MO<9Lli-<%@_UC^jU!!r7c%dprGCmm$Gg|7yVlOs#5BUE?qQw9xK8Zq3lpOp!m z929xvgEoauV8&r!_+bAh6KSF8Q(9doIK+l_ZMu&vyT8c?NCkCG@i=r|9ehHcp6q#k zIO-Q+u4-LlmA}>MRjq*iJN0&#@V%La)pAbPYCg?`#};{Hv|#CsWtEm)8ys?WfoN7{k!lW-jH*UPFK*7sy0J zAD2zw=|^zC9Zh&vQ$A(lagTjkQHH|{Ue9j z*yL;P6r)Kr`jjGR)bvJLlb({|;b7{Tb?|yl$26@LgZUi7q#U3XWBkfynIjez6m84& zTU19@|DYjswo4cZq00&+I%fK& zL5{S3$hLFC^u>;rkuVC7F>Tqz^XR<=BBIe>xHHJ`v` z;KCQLL1CZEFgITsE)Ny^)~j2QpH9?$-4WK2+?Axmm@BPtlCAWRsU}TB|3X8FA(aX4 zN7EsP#l~{vYJJFRk$ja2vX5jjE1dkQ8xTubvgA6};6ZdQA#7Ju? z%^vBVR(YZVgIw=MVP&~LW60MkOn2yh)tJf1A+T|TGRfK@q3fjXSE3tI3jxd1yNSjaq`SX5p`Ci~=NxiH6Z%%IHQsRQYHE*zYpPa-qmx-> zFRP-TIT%qmJNFR`<++6{J<*GMd0EQH2F5B)syj8o)%F|k<8`I;q5j$eHWFC8OR+=_qEmqGxs@G^dMI2Wo71(d)34?##E8IdcqYH+0cPI*q-g~ zd45uA-PyeD)&lmiC5Tmz>>*6hRnMMdypqeJoI-AGV}&B_dEKqdUX4m}BisLD!GTtE zjaN=@pQd9LLrOh#P*A&reIYWU9pbYxL)MC98c0qRIx`}R*}K1wIz9p?;ePiprWZD+LJ zMUAjHLBA36rK83Hp%^JEu&G8t>NCdyPH^*lJ7$bFb6Iq6hZ$-{+vQg~f1!Jon(PWsdatn_tsry@p8vS=hW9of*d3dG?tB9B zP{qB%*307w)(Sm}Jy6U=l|b z6>i-DN=9->$mF)3-lO(OGW0rA@F`2ZsqC&DhEd_LG+*E15}K94sN;8eYTJ~)PvD|n z;b2)KML5-$WLyT@fvqwI)u%Y+IKnu`NHOrrWpRfd>5KY>#l;ntp|i$jp=jVmEaZA| zZbuEx>clC~4s$0=* z&k0EPJyPyrdw@O>ys6+Gu14gfNRufJq+Zdl_`rL;6~etmG+2BFxw=rjuFL;NMu)l) z6Sgq|BE+wMr6bt0U8XR58y%vS!YL016y*!%4X_7UM!3oMv89hf2pvfd^qj>Hh zkfE>s@_u~~`tlAYV2(t5r>$v)btf7&$+(pDUMnWwNgCvYPwW4u67~~}u zDT5vN1$=35D7m8|fsC0=^=(&Y6j7I9{sCD{my?ZJbK2i}*~(XoAy|GT6@{`Dy4|V1 z7kPWMR)47a%&Ci$k0uzp6IR<5*;D=~Y#&xde<8bj_VFIec7wDY8HQdA-#2y5FA?O| zuj~__<(?aFPxV+o*y6FCi(JpmDNXni`%^JmF5JxZ;+IN(grrx7Gw4))XGj?ki6)6h4t3iwibdz%$x|iV!suX|Dg`6 z#cH)5^{CL+kXqtl`o6c# z>)QRi$_@Qat>iq4fF=)kwp(o1^14#j4(-uAsqYM7{l%E}!G0dx2c_#a*FX!vsO1po ze$UuOFM2HkEqxl-pjE@z*W-_9?bt!B#?^=5`c^Fq%N$8jcZQxOGT-+NXPs>z7WS}Y z5v#+Qyo)xpj^>5fkK9A)i|;1-87{1vNxdCBXKXcIV3o0Z|Jw1?oxfhOu*XV{CC~e+ zWNy=;gZgRdsVcf$#XM%DcfpY+qVe7$C@82S&?-ekq2{C=r@mL#DCql1U4&y*Kqes- zhQWa3-vyWqem11?1l^bpki9(;K#LO1JviED{PaV7>N68p3}jdPfdBYtgYc=cJ@KGE znaI_{PIQW&QwXeoMj=is>qE1nGb8LiLp00D^}gRS^P1~+nC3OA&7x0|Jc(CBU7qq| z%$9*L6z|zIct=?~6DFBo0IMs*(Y+baqAWV>elfGMy4!K))8-xD4C1cJ7CTmWPll~0 z_IBm0Ce^;^JN_{tyIu_lyKamC4!f*}>^V%U{KU3cJAYNx#wZAuY=aD~$Wanu2wKOf zyjR(}z6s?FHoSEGUYHURGwSx&@M?tA)P+|nd!?tujLToL<>>*r%Vn_EpX?_@*nGhW zSW=hdlhyMD(r~0Yz?E9cE&4 z2z3)&(n(acAiD{~o%i%?SkNup==hq@IXr<-;uPPVTX~;(U@>`N>)o{(d3?MI#t!AR z-6?-qX%yH=H;o^eC*sUe!BU4ND;vsAkl$UmrR{u<^Bpd_?Sv0_#NL%-$*OAqYhd+^ zq2ITrjzJm8Pr~odkZF_Xz9GRV6cyVIenROZyHZzH9B{b!$`6^80k9K3?2&ZYE&ME{ zj3g6rD@(IRb&D;n0p0DrCt{+E=Thy7}5E)C8g}ze$QF?sA+%kN)c3 z)*rC&qq$3c9U}H{^?>>X?vYHM=B-~eNS*=EJa-b7u2j2+VitWcw?WF%W*BU`3o&I5 zQQKbO@NKW`6;%>qWu}=IQxiDrT0YThe;o|jJFr}D4fd-tjRW58wA5p36<4k^uLk~B zka2KMCF{-?j;ET`qq67tUJ4c)9)IwCN#mQU*h{RMz96BHq#@r*=ym^4^h~OwK22Pq zdRPX`V1Hlhey?&`YIkW?E9}YCWUyqRo-8S$j%Y}p?L#?3W)T}LLQzTMY-cFveRX#c z-un}_W+x%A!Kd)RunGOEwQK)rnVw#>5?6=nR|>9u=WCe$tH)l%{8L=+CykW5;&Y;m z6p`7iCvn8Uhd!|3&TP~pS%vb1ecqfrnJjefr)j4YbFg>Z(`sa|y&b=h z+|`gzV;?9jg~mSI{A+r_TWIgYYwtO#wfA=s-IN}14jSz{*%~WYhiESE%y)l8Z7Ltb-ZYD04EEeWN7nexzA?naUam`v z>e;Qom@N@9(j`oJ`k{;#5O1e-y5HXpgTz(GT7YvySs+18Eo7gDz7IJ{e?g8_SfKJP zG#K}qc_k7Bh0(jaJg5V2Uq!N~eFpCxf0*v~nc8GFWJ8-anRb4KzwCWg_O~x>0m=pw zGCSa5^5qGelpE||HYmc$EA_iWf`ey5gDbuu<|66poJ(VW+tv#8B)ooEjmMwlhlOoX zHEs!-h)TqoT{i&7dowW#$-+II_txk0uUP7d!)P|4$!sQ$h~O@w%wiU!@%x)xYJy9a z?MYQX4T&8_v!_!*k={Ma4Y13VWWTHJrsFtSyOiFM3vp+h>h4sc2M6}W8I*TWsxX8A=zl-pO;SBQhK-0Jn|!mNW}Xssx}(e}nIerx2jWiwCNqYn3a zHKVc|1A)3rH5s1GQK3*6-Fh{g$EN#xpx_}I=~a!s_U2;%A?ga@t&_4a8lpd|b0n0m zZHvq2Hd`Uo)^`U0!Ijxj#7P4$2!y+kWI=EX-_%fVfovp?arFsOq4W&qwwg0VMU(=4eaaGVUtml$4azWx`;@Sfc$7@Q=chF_=n2 z%I)emKO2HP974@-(!oP}p++kL)be~y(K(LaW3z(+lJ9Hq+(`WhAR6%C3H$haR36;@ zJ?_}3ii;hH6-`lOgh&=y2BBAiax^bU7O&v;u^JY0sqYT7_t9&=A? zG`xAE63MRIMe;cOD~?+OI*D2d@rulC{`j@q-O8woAfAjkQ_>|Y6Ai}o{o)~25%aN= zZ>nWE0iD-9(j+QsJyaGGdIbw^Eahm|DR|R107e*E(;$ytOeRL1@a}pBg0!&ZQBi@x zE~0+Z-MoroxN=QHLjH>&3=m{`Zey=5HsFg@FN!h|FYEBmd!gPbC7n5K*Kg~i!oNKv z`*x}3YH9b9AzIZcHh#yF6`1%(@SY&0HywfC+uqKsq!8Be!q$f@MQTMQwZ=Ip%09H% zB5)M%KZtMQ?0<#p?4?15R3d1!K@ZgkvU$-Ue5(S`{wxUMtr1hFufh9~0P%3XvMq@H zRo>{PnKY~?@3Y}xgAxK1gf!q+?C*T5BN&{RtOILE9zUGXS@32>9P#sh&hvw)p5Aju z+fP25P@f`!itAP!Bio@aW%Pst;Hdcq8|Zl0#?Fql36%e|Fud!$Q&ttOHBQKVzD?DB3)rRl@oP{zz^kSZ3hAWR;GhLUU0zI{{oLUYAN5{&9- z%<$k>oIA@}p_$%sXlFgz8x_wI(|wj@o5!&Zj6oHrI}eRX2r@;fnF^0Wn{QKfF_I|t#`iX=y^wL;QKH~AFwBCW6|h4`xg z_4K?@!GJifsw-Z}UvCmrnP``3&odvETuQWyZu#NXbKV#oC$;r_Wp@4E0_dZf)1H`E z)mU<=vq+-KHX0s|V_?A2adsfe&KD04DN(WhNH#T#Cv6j&$y-D5N~Bmv|87X9tju8b zxpTOcrbz!#NmK~=>GAHO@Tbr-p^|U?$Th7gjP~0WUcra!s1MhG+8Bmb4s~rq-5Gqi@@^t+x})+VFSw_nnJd=ABJenQPS;9WiVuVA zDpMGtA{$|Au4KXm!|zx1JLsuN?{=oOO4vK!lynX_8;nB!LU4^Itow8O`r{iY zBH1dZfzFt2bmztB;I8-QA2M?$sY-3fw+1)p?24-z#cAYARPD_KPmtBz3plfdDkYnD z7`4e%O=vL~{hqP8+LQ&MxW1Brr($F1m7mk-uFmJ1nIog#B#Yb3^4qCeKhHTjQ4j@3F|Zb)VgKu@{@= z%CkAxm?a2Pxh!(|*rvF!_Y4t@_IJA7!NYzEx!xo-M9-64@?o>|8-?7kV&8}vzaY?= zX~e7Mxb{IWY$3E0_~~EAY)W)=OhFe6f*(8fdRheCrd-dJ^^cK(y;Hs(VXa{G0_YOt zC(Wz_qn~bPCK(dQm|7fspdM#}>v*^|I#AL&GzK6Xzi5;L$c3iWL&3zt&DbA^w-V7M z`OWbWOfg^bu)IUlAlUE50g}X5ShQ|dE(zv3U7^TwD(Gd}gO`t*!(iLB+}F2-p7EYn zc`KcNNUCHKU|bJ4x{tLaVx!g;GMf^Eb1N!(0X~nuP2xHY{@c}yN&?wG#PF`T9DbAk z5BZP2RP3Y)ZIuFG(&Vwo61OOv$(&UP_(8Bz?oKFmgCkXSuI=aV)y>_f64i3e7O%UjzY=4A_ul@x)Ywt$5}+Nw;4aXP|39OCBN(6rCNC86js8DI{J*bu zdFv?%27`f@JQz)TiSO7!$x1Nr76&bL<}peIf1i*A@L*f3pC9fdlf9@|pXRWT z)%xh@O_9^8$dcYdRB1|0&9GSb?@l0NL7-qkusl2UUC?P$qZ1Xb`deBq-uRw3UN&_8Q z5s8{oX;e}2lbsIfWZb&~hr=5Z;Ra$+P12$L{D>(Rg{Vmb>M2IU72Sho^eQs!lVMeF zSPB(P-|`m2#}+{DyR1D`>%0rlv0ZX}jZUi#5Bibr8=Doc*Rn%zG9&Z6mBIW2&JTG| z2|p3$vN0m*gzm_{JN4+G-(ze#2#GfYGN(#6teUm$LbDqiH>C7|l#>b->+95azi#P+ zY6b9$@S@h=ul@EEd{~FGD*qney@puXmUD2FsMViJ-x#0FCj76a z5$73_IG703^t=+-29knaxNPhY6v**%u|a4@@#q zO9bipChpo3H9DoHHH1lq+Hv4oX!n;2?kuG|#<*w~t=AWLvjM;t(`ev6a@Wl`jQKN@ z4JH`({<%?5W7{N9nuEp$O<3AOBhXMdaseo83SS&2ZwQHjTj%;bITLAtm%2RnW=NiL zI9*QoV4k#tMp~N^dw}Y(@OW>r{&IoKA|MGQ9A0O71>kA=djh#UE}d7FZ=1`sH-J9@ z{rt2!CY`|JvS%lNK(5pESG7ncP{UyE@XEgWF5>er+XT0xqU9mXg#B$2$n&Vql(wqG z)--sw>jsVY^OF-!<(@BqI;2#i9})u`;l&ux#!VpU-ZTT@jzN4Vj3k6zwJK6QJ+|Fx74mah~g0J)~w=7?TDSc;vA$^*4Gw!No zuJO7jB50tsAFqJ$3Se+lMdxq>l6eX68CNz(dfH#zXsY!Y68RWJbZm@8Z19 z>%PzH9nT-|jPYD!96vBNaO}0#v5vXsn)5Ti3wXlTQ{U9jzq0zgu!>Ay4!N9pJR$%U zoV3YNematA*vpz`rFeFB;Ai$N7w^n+8V2H_o{deptWyFVX7wFc5<2^ty_n�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

  • Articles
  • Retry offline

    TBD.

    For now, see How to Retry Offline Calls to Sync Data

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    +(v1.4.6)

    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

    -
    -
    - -
    -
    - -
    - - - - - -
    -
    -
    -
  • Retry offline

    TBD.

    For now, see How to Retry Offline Calls to Sync Data

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.

    tests codecov pub.dev From 874d7a12be6a6d95215f3efa4de536a33192dd85 Mon Sep 17 00:00:00 2001 From: frank06 Date: Thu, 27 Oct 2022 22:45:31 +0000 Subject: [PATCH 11/12] deploy: 93c0694d5de2e543434f695653721c9ea6c540b3 --- tutorial/relationships/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/relationships/index.html b/tutorial/relationships/index.html index 642a61c..690c11a 100644 --- a/tutorial/relationships/index.html +++ b/tutorial/relationships/index.html @@ -4,7 +4,7 @@ active" href=/tutorial/>Tutorial

  • Articles
  • Using relationships

    Let’s now slightly rethink our query. Instead of “fetching all tasks for user 1” we are going to “fetch user 1 with all their tasks”.

    Flutter Data has first-class support for relationships.

    First, in models/user.dart, we’ll create the User model with a HasMany<Task> relationship:

    import 'package:flutter_data/flutter_data.dart';
    +(v1.4.6)

    Using relationships

    Let’s now slightly rethink our query. Instead of “fetching all tasks for user 1” we are going to “fetch user 1 with all their tasks”.

    Flutter Data has first-class support for relationships.

    First, in models/user.dart, we’ll create the User model with a HasMany<Task> relationship:

    import 'package:flutter_data/flutter_data.dart';
     import 'package:json_annotation/json_annotation.dart';
     
     import 'task.dart';
    
    From 1f23b15dc888d4b7675b4269e25552cb3a4dfdad Mon Sep 17 00:00:00 2001
    From: frank06 
    Date: Thu, 9 Mar 2023 17:30:56 +0000
    Subject: [PATCH 12/12] deploy: 67fa7f1be3d33f8d896b0138f0e4ec69c8b18f22
    
    ---
     .../index.html                                |  9 ++-
     .../index.html                                | 11 ++--
     articles/configure-get-it/index.html          |  9 ++-
     articles/configure-provider/index.html        |  9 ++-
     .../custom-deserialization-adapter/index.html |  9 ++-
     .../dart-final-const-difference/index.html    |  9 ++-
     .../index.html                                |  8 +--
     .../index.html                                | 11 ++--
     articles/define-interface-dart/index.html     |  9 ++-
     .../index.html                                |  9 ++-
     articles/how-to-format-duration/index.html    |  9 ++-
     .../index.html                                |  9 ++-
     .../how-to-retry-offline-sync-data/index.html | 57 -------------------
     articles/index.html                           |  8 +--
     articles/index.xml                            | 28 ++++-----
     articles/intercept-logout-adapter/index.html  |  9 ++-
     articles/iterator-style-adapter/index.html    |  9 ++-
     .../index.html                                |  9 ++-
     articles/nested-resources-adapter/index.html  |  9 ++-
     articles/override-base-url/index.html         |  9 ++-
     articles/override-findall-adapter/index.html  |  9 ++-
     .../override-findone-url-method/index.html    |  9 ++-
     .../index.html                                |  9 ++-
     .../override-http-client-adapter/index.html   |  9 ++-
     .../index.html                                | 11 ++--
     articles/upgrade-flutter-sdk/index.html       |  9 ++-
     categories/index.html                         | 10 ++--
     docs/adapters/index.html                      | 17 +++---
     docs/faq/index.html                           | 13 ++---
     docs/index.html                               | 10 ++--
     docs/index.xml                                | 14 +++--
     docs/initialization/index.html                | 13 ++---
     docs/local-adapters/index.html                | 23 ++++++++
     docs/models/index.html                        | 13 ++---
     docs/offline/index.html                       | 30 ++++++++++
     docs/quickstart/index.html                    | 26 ++++-----
     docs/relationships/index.html                 | 13 ++---
     docs/repositories/index.html                  | 19 ++++---
     index.html                                    | 10 ++--
     index.xml                                     | 48 +++++++---------
     sitemap.xml                                   |  2 +-
     tags/dart/index.html                          | 10 ++--
     tags/es6/index.html                           | 10 ++--
     tags/index.html                               | 10 ++--
     tags/javascript/index.html                    | 10 ++--
     tags/pub/index.html                           | 10 ++--
     tags/pub/index.xml                            |  2 +-
     tags/vscode/index.html                        | 10 ++--
     tags/vscode/index.xml                         |  2 +-
     tutorial/creating/index.html                  | 13 ++---
     tutorial/deleting/index.html                  | 13 ++---
     tutorial/fetching/index.html                  | 13 ++---
     tutorial/index.html                           | 10 ++--
     tutorial/index.xml                            |  6 +-
     tutorial/offline/index.html                   | 11 ----
     tutorial/relationships/index.html             | 15 +++--
     tutorial/reloading/index.html                 | 13 ++---
     tutorial/updating/index.html                  | 13 ++---
     58 files changed, 343 insertions(+), 394 deletions(-)
     delete mode 100644 articles/how-to-retry-offline-sync-data/index.html
     create mode 100644 docs/local-adapters/index.html
     create mode 100644 docs/offline/index.html
     delete mode 100644 tutorial/offline/index.html
    
    diff --git a/articles/build-widget-with-async-method-call/index.html b/articles/build-widget-with-async-method-call/index.html
    index d483d0b..98bbe5e 100644
    --- a/articles/build-widget-with-async-method-call/index.html
    +++ b/articles/build-widget-with-async-method-call/index.html
    @@ -2,7 +2,7 @@
     

    How to Build Widgets with an Async Method Call

    You want to return a widget in a build method…

    But your data comes from an async function!

    class MyWidget extends StatelessWidget {
       @override
       Widget build(context) {
    @@ -88,8 +88,7 @@
     

    Very simple, right? This is likely similar to what you tried when using a StatefulWidget. Of course, for the real, battle-tested source code see FutureBuilder.

    Before wrapping up… 🎁

    From the docs

    If the future is created at the same time as the FutureBuilder, then every time the FutureBuilder’s parent is rebuilt, the asynchronous task will be restarted.

    Widget build(context) {
       return FutureBuilder<String>(
         future: callAsyncFetch(),
    -

    Does this mean callAsyncFetch() will be called many times?

    In this small example, there is no reason for the parent to rebuild (nothing changes) but in general you should assume it does. See Why is my Future/Async Called Multiple Times?.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Does this mean callAsyncFetch() will be called many times?

    In this small example, there is no reason for the parent to rebuild (nothing changes) but in general you should assume it does. See Why is my Future/Async Called Multiple Times?.

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/checking-null-aware-operators-dart/index.html b/articles/checking-null-aware-operators-dart/index.html index b9b6d3e..1ca834a 100644 --- a/articles/checking-null-aware-operators-dart/index.html +++ b/articles/checking-null-aware-operators-dart/index.html @@ -2,7 +2,7 @@

    Checking Nulls and Null-Aware Operators in Dart

    What is the best practice for checking nulls in Dart?

    var value = maybeSomeNumber();
     
     if (value != null) {
    @@ -31,12 +31,11 @@
     List<int> optionalZipCodes = fetchZipCodes();
     final zips = [10001, ...additionalZipCodes, ...?optionalZipCodes];
     print(zips);  /* [10001, 33110, 33121, 33320]  if fetchZipCodes() returns null */
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    Non-nullable types

    Right now, null can be assigned to any assignable variable.

    There are plans to improve the Dart language and include NNBD (non-nullable by default).

    For a type to allow null values, a special syntax will be required.

    The following will throw an error:

    int value = someNumber();
    +

    Non-nullable types

    Right now, null can be assigned to any assignable variable.

    There are plans to improve the Dart language and include NNBD (non-nullable by default).

    For a type to allow null values, a special syntax will be required.

    The following will throw an error:

    int value = someNumber();
     value = null;
     

    And fixed by specifying the int? type:

    int? value = someNumber();
     value = null;
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/configure-get-it/index.html b/articles/configure-get-it/index.html index 2046538..541bc62 100644 --- a/articles/configure-get-it/index.html +++ b/articles/configure-get-it/index.html @@ -2,7 +2,7 @@

    Configure Flutter Data to Work with GetIt

    This is an example of how we can configure Flutter Data to use GetIt as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class GetItTodoApp extends StatelessWidget {
       @override
       Widget build(context) {
    @@ -71,8 +71,7 @@
             dependsOn: [RepositoryInitializer]);
       }
     }
    -

    See this in action with the Flutter Data setup app!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    See this in action with the Flutter Data setup app!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/configure-provider/index.html b/articles/configure-provider/index.html index ef67f6c..b7307f5 100644 --- a/articles/configure-provider/index.html +++ b/articles/configure-provider/index.html @@ -2,7 +2,7 @@

    Configure Flutter Data to Work with Provider

    This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework.

    Important: Make sure to replicate ProxyProviders for other models than Todo.

    class ProviderTodoApp extends StatelessWidget {
       @override
       Widget build(context) {
    @@ -84,8 +84,7 @@
         ),
       ];
     }
    -

    See this in action with the Flutter Data setup app!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    See this in action with the Flutter Data setup app!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/custom-deserialization-adapter/index.html b/articles/custom-deserialization-adapter/index.html index de01d45..70f7603 100644 --- a/articles/custom-deserialization-adapter/index.html +++ b/articles/custom-deserialization-adapter/index.html @@ -2,7 +2,7 @@

    Custom Deserialization Adapter

    Example:

    mixin AuthAdapter on RemoteAdapter<User> {
       Future<String> login(String email, String password) async {
         return sendRequest(
    @@ -14,8 +14,7 @@
       }
     }
     

    and use it:

    final token = await userRepository.authAdapter.login('e@mail, p*ssword');
    -

    Also see JSONAPIAdapter for inspiration.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Also see JSONAPIAdapter for inspiration.

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/dart-final-const-difference/index.html b/articles/dart-final-const-difference/index.html index 0aadc28..03d0f41 100644 --- a/articles/dart-final-const-difference/index.html +++ b/articles/dart-final-const-difference/index.html @@ -2,14 +2,13 @@

    Final vs const in Dart

    What’s the difference between final and const in Dart?

    Easy!

    Final means single-assignment.

    Const means immutable.

    Let’s see an example:

    final _final = [2, 3];
     const _const = [2, 3];
     _final = [4,5]; // ERROR: can't re-assign
     _final.add(6); // OK: can mutate
     _const.add(6); // ERROR: can't mutate
    -
    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/dart-getter-cache-computed-properties/index.html b/articles/dart-getter-cache-computed-properties/index.html index f7306bd..ffbb0e3 100644 --- a/articles/dart-getter-cache-computed-properties/index.html +++ b/articles/dart-getter-cache-computed-properties/index.html @@ -2,13 +2,13 @@

    Dart Getter Shorthand to Cache Computed Properties

    An elegant Dart getter shorthand used to cache computed properties:

    T get foo => _foo ??= _computeFoo();
     
     // which depends on having
     T _foo;
     T _computeFoo() => /** ... **/;
    -

    It makes use of the fallback assignment operator ??=.

    Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart!

    tests +

    It makes use of the fallback assignment operator ??=.

    Check out Null-Aware Operators in Dart for a complete guide on dealing with nulls in Dart!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/deconstructing-dart-constructors/index.html b/articles/deconstructing-dart-constructors/index.html index 31c472f..e5ddb63 100644 --- a/articles/deconstructing-dart-constructors/index.html +++ b/articles/deconstructing-dart-constructors/index.html @@ -2,7 +2,7 @@

    Deconstructing Dart Constructors

    Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories…

    Read this post and you will become an expert!

    Photo by Arseny Togulev on Unsplash

    When we want an instance of a certain class we call a constructor, right?

    var robot = new Robot();
     

    In Dart 2 we can leave out the new:

    var robot = Robot();
     

    A constructor is used to ensure instances are created in a coherent state. This is the definition in a class:

    class Robot {
    @@ -196,8 +196,7 @@
     

    const instances are canonicalized which means that equal instances point to the same object in memory space when running.

    For example this is a “cheap” operation:

    void main() {
       [for(var i = 0; i < 20000; i += 1) Robot(5, 170, ["Walter"])];
     }
    -

    And yes, using const constructors can improve performance in Flutter applications.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    Optional arguments always last!

    If we wanted the weight argument to be optional we’d have to declare it at the end:

    class Robot {
    +

    And yes, using const constructors can improve performance in Flutter applications.

    Optional arguments always last!

    If we wanted the weight argument to be optional we’d have to declare it at the end:

    class Robot {
       final double height;
       final double weight;
       final List<String> names;
    @@ -432,7 +431,7 @@
       print(identical(r1, r2)); // true
       print(r1 == r2); // true
     }
    -

    The factory constructor Robot(height) simply always returns the one and only instance that was created when loading the Robot class. (So in this case, I prefer not to use new before Robot.)

    tests +

    The factory constructor Robot(height) simply always returns the one and only instance that was created when loading the Robot class. (So in this case, I prefer not to use new before Robot.)

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/define-interface-dart/index.html b/articles/define-interface-dart/index.html index a459b0d..70060d4 100644 --- a/articles/define-interface-dart/index.html +++ b/articles/define-interface-dart/index.html @@ -2,7 +2,7 @@

    How To Define an Interface in Dart

    Dart defines implicit interfaces. What does this mean?

    In your app you’d have:

    class Session {
       authenticate() { // impl }
     }
    @@ -12,8 +12,7 @@
     

    And for example in tests:

    class MockSession implements Session {
       authenticate() { // mock impl }
     }
    -

    No need to define a separate interface, just use regular or abstract classes!

    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    No need to define a separate interface, just use regular or abstract classes!

    Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/future-async-called-multiple-times/index.html b/articles/future-async-called-multiple-times/index.html index 3cdb6b3..6e36512 100644 --- a/articles/future-async-called-multiple-times/index.html +++ b/articles/future-async-called-multiple-times/index.html @@ -2,7 +2,7 @@

    Why Is My Future/Async Called Multiple Times?

    Why is FutureBuilder firing multiple times? My future should be called just once!

    It appears that this build method is rebuilding unnecessarily:

    @override
     Widget build(context) {
       return FutureBuilder<String>(
    @@ -67,8 +67,7 @@
         );
       }
     }
    -

    Takeaway

    Your build methods should always be pure, that is, never have side-effects (like updating state, calling async functions).

    Remember that builders are ultimately called by build!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Takeaway

    Your build methods should always be pure, that is, never have side-effects (like updating state, calling async functions).

    Remember that builders are ultimately called by build!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-format-duration/index.html b/articles/how-to-format-duration/index.html index 3f815b0..f60bd50 100644 --- a/articles/how-to-format-duration/index.html +++ b/articles/how-to-format-duration/index.html @@ -2,7 +2,7 @@

    How to Format a Duration as a HH:MM:SS String

    The shortest, most elegant and reliable way to get HH:mm:ss from a Duration is doing:

    format(Duration d) => d.toString().split('.').first.padLeft(8, "0");
     

    Example usage:

    main() {
       final d1 = Duration(hours: 17, minutes: 3);
    @@ -13,8 +13,7 @@
       print(format(d3)); // 00:00:00
     }
     

    If we are dealing with smaller durations and needed only minutes and seconds:

    format(Duration d) => d.toString().substring(2, 7);
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-reinitialize-flutter-data/index.html b/articles/how-to-reinitialize-flutter-data/index.html index fc60320..7253d0a 100644 --- a/articles/how-to-reinitialize-flutter-data/index.html +++ b/articles/how-to-reinitialize-flutter-data/index.html @@ -2,7 +2,7 @@

    How to Reinitialize Flutter Data

    By calling repositoryInitializerProvider again with Riverpod’s refresh we can reinitialize Flutter Data.

    class TasksApp extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
    @@ -22,8 +22,7 @@
         );
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/how-to-retry-offline-sync-data/index.html b/articles/how-to-retry-offline-sync-data/index.html deleted file mode 100644 index c84ac0b..0000000 --- a/articles/how-to-retry-offline-sync-data/index.html +++ /dev/null @@ -1,57 +0,0 @@ -How to Retry Offline Calls to Sync Data - Flutter Data

    How to Retry Offline Calls to Sync Data

    Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives.

    The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException.

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    -
    -final _dispose = notifier.addListener((Set<String> types) async {
    -  // check offline operations for all these types
    -});
    -

    For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    -
    -final _dispose = notifier.throttle(() {
    -  final n = backoffFn(ref.read(counterProvider).state);
    -  return Duration(seconds: n);
    -}).addListener((types) async {
    -  // check offline operations for all these types
    -  // types is now a List<Set<String>> because of the throttle
    -});
    -
    -//
    -
    -final backoffFn = (int i) => [2, 5, 8, 8, 8, 13, 13, 18, 18].getSafe(i) ?? 20;
    -final counterProvider = StateProvider<int>((_) => 0);
    -

    So here’s an implementation example that can be placed in a initialization callback:

    final notifier = ref.read(pendingOfflineTypesProvider.notifier);
    -
    -final _dispose = notifier.throttle(() {
    -  final n = backoffFn(ref.read(counterProvider).state);
    -  return Duration(seconds: n);
    -}).addListener((types) async {
    -  // check offline operations for all these types
    -  // types is now a List<Set<String>> because of the throttle
    -
    -  types = types.expand((e) => e).toSet();
    -
    -  if (types.isNotEmpty) {
    -    for (final type in types) {
    -      final provider = repositoryProviders[type];
    -      if (provider != null) {
    -        final operations = ref.read(provider).offlineOperations;
    -        print('== Retrying $type (${operations.length} operations) ==');
    -        await operations.retry();
    -      }
    -    }
    -    ref.read(counterProvider).state++;
    -  } else {
    -    print('== No operations, reset ==');
    -    ref.read(counterProvider).state = 0;
    -  }
    -});
    -
    -// remember to call _dispose
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests -codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/index.html b/articles/index.html index d74c456..304644b 100644 --- a/articles/index.html +++ b/articles/index.html @@ -2,8 +2,8 @@ \ No newline at end of file diff --git a/articles/index.xml b/articles/index.xml index cada94c..2a573c2 100644 --- a/articles/index.xml +++ b/articles/index.xml @@ -1,17 +1,14 @@ Flutter Data/articles/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. -class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } }Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: -final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id });Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: -final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. -Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: -mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: -mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent.Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } }Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } }Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } }Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. -final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); Need professional help with Flutter?Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. Here the connectionTimeout is increased, and an HTTP proxy enabled. mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient!.findProxy = (uri) =&gt; &#39;PROXY (proxy url)&#39;; return _ioClient!Override Default Headers and Query Parameters/articles/override-headers-query-parameters/Thu, 09 Dec 2021 23:07:40 -0300/articles/override-headers-query-parameters/Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. Here is how: @@ -19,12 +16,9 @@ mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteA Important: Make sure to replicate ProxyProviders for other models than Todo. class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository.Configure Flutter Data to Work with Provider/articles/configure-provider/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-provider/This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.How to Retry Offline Calls to Sync Data/articles/how-to-retry-offline-sync-data/Sun, 05 Dec 2021 23:12:05 -0300/articles/how-to-retry-offline-sync-data/Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives. -The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException. -final notifier = ref.read(pendingOfflineTypesProvider.notifier); final _dispose = notifier.addListener((Set&lt;String&gt; types) async { // check offline operations for all these types }); For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: -mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; }Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; Read this post and you will become an expert! When we want an instance of a certain class we call a constructor, right? var robot = new Robot(); In Dart 2 we can leave out the new: @@ -35,7 +29,7 @@ Easy! Final means single-assignment. Const means immutable. Let&rsquo;s see an example: -final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? In your app you&rsquo;d have: class Session { authenticate() { // impl } } or abstract class Session { authenticate(); } And for example in tests: @@ -58,7 +52,7 @@ format(Duration d) =&gt; d.How to Upgrade flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade Need professional help with Flutter?</description></item><item><title>Minimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +flutter upgradeMinimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. Here are a few options to copy-paste into lib/main.dart. Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! \ No newline at end of file diff --git a/articles/intercept-logout-adapter/index.html b/articles/intercept-logout-adapter/index.html index 3b18b95..c6609a3 100644 --- a/articles/intercept-logout-adapter/index.html +++ b/articles/intercept-logout-adapter/index.html @@ -2,7 +2,7 @@

    Intercept Logout Adapter

    The global onError handler will call logout if certain conditions are met:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       FutureOr<Null?> onError<Null>(DataException e) async {
    @@ -15,8 +15,7 @@
         throw e;
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/iterator-style-adapter/index.html b/articles/iterator-style-adapter/index.html index 045bfd3..9d910f9 100644 --- a/articles/iterator-style-adapter/index.html +++ b/articles/iterator-style-adapter/index.html @@ -2,7 +2,7 @@

    Iterator Style Adapter

    mixin AppointmentAdapter on RemoteAdapter<Appointment> {
       Future<Appointment?> fetchNext() async {
         return await sendRequest(
    @@ -12,8 +12,7 @@
       }
     }
     

    Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations.

    Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods.

    final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/minimal-hello-world-flutter-app/index.html b/articles/minimal-hello-world-flutter-app/index.html index 2c2a1d5..1fc99b3 100644 --- a/articles/minimal-hello-world-flutter-app/index.html +++ b/articles/minimal-hello-world-flutter-app/index.html @@ -2,7 +2,7 @@

    Minimal Flutter Apps to Get Started

    Every time I do a flutter create project I get the default “counter” sample app full of comments.

    While it’s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen.

    Here are a few options to copy-paste into lib/main.dart.

    Bare bones app

    // lib/main.dart
     
     import 'package:flutter/widgets.dart';
    @@ -81,8 +81,7 @@
         );
       }
     }
    -

    It uses hooks which remove the boilerplate of a classic StatefulWidget. Make sure you add the flutter_hooks dependency to pubspec.yaml!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    It uses hooks which remove the boilerplate of a classic StatefulWidget. Make sure you add the flutter_hooks dependency to pubspec.yaml!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/nested-resources-adapter/index.html b/articles/nested-resources-adapter/index.html index 3965112..d89fdae 100644 --- a/articles/nested-resources-adapter/index.html +++ b/articles/nested-resources-adapter/index.html @@ -2,7 +2,7 @@

    Nested Resources Adapter

    Here’s how you could access nested resources such as: /posts/1/comments

    mixin NestedURLAdapter on RemoteAdapter<Comment> {
       // ...
       @override
    @@ -19,8 +19,7 @@
       }
     }
     

    and call it like:

    final comments = await commentRepository.findAll(params: {'postId': post.id });
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-base-url/index.html b/articles/override-base-url/index.html index fd5a126..35416d7 100644 --- a/articles/override-base-url/index.html +++ b/articles/override-base-url/index.html @@ -2,7 +2,7 @@

    Override Base URL Adapter

    Flutter Data is extended via adapters.

    mixin UserURLAdapter on RemoteAdapter<User> {
       @override
       String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
    @@ -11,8 +11,7 @@
       @override
       String get baseUrl => 'https://my-json-server.typicode.com/flutterdata/demo';
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-findall-adapter/index.html b/articles/override-findall-adapter/index.html index c19f95c..8e2143d 100644 --- a/articles/override-findall-adapter/index.html +++ b/articles/override-findall-adapter/index.html @@ -2,7 +2,7 @@

    Override findAll Adapter

    In this example we completely override findAll to return random models:

    mixin FindAllAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       Future<List<T>> findAll({
    @@ -16,8 +16,7 @@
         return _generateRandomModels<T>();
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-findone-url-method/index.html b/articles/override-findone-url-method/index.html index 270e8cf..c5eef8a 100644 --- a/articles/override-findone-url-method/index.html +++ b/articles/override-findone-url-method/index.html @@ -2,7 +2,7 @@

    Override findOne URL Adapter

    In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT:

    mixin URLAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       @override
       String urlForFindAll(Map<String, dynamic> params) => type.snakeCase;
    @@ -16,8 +16,7 @@
         return DataRequestMethod.PUT;
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-headers-query-parameters/index.html b/articles/override-headers-query-parameters/index.html index 293c5bc..216c455 100644 --- a/articles/override-headers-query-parameters/index.html +++ b/articles/override-headers-query-parameters/index.html @@ -2,7 +2,7 @@

    Override Default Headers and Query Parameters

    Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary.

    Here is how:

    mixin BaseAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       final _localStorageService = read(localStorageProvider);
     
    @@ -20,8 +20,7 @@
         return await super.defaultParams & {'v': 1};
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/override-http-client-adapter/index.html b/articles/override-http-client-adapter/index.html index 2ac9b19..8d1c895 100644 --- a/articles/override-http-client-adapter/index.html +++ b/articles/override-http-client-adapter/index.html @@ -2,7 +2,7 @@

    Override HTTP Client Adapter

    An example on how to override and use a more advanced HTTP client.

    Here the connectionTimeout is increased, and an HTTP proxy enabled.

    mixin HttpProxyAdapter<T extends DataModel<T>> on RemoteAdapter<T> {
       HttpClient? _httpClient;
       IOClient? _ioClient;
    @@ -31,8 +31,7 @@
         super.dispose();
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/ultimate-javascript-dart-syntax-guide/index.html b/articles/ultimate-javascript-dart-syntax-guide/index.html index bc43ec2..b0d79a0 100644 --- a/articles/ultimate-javascript-dart-syntax-guide/index.html +++ b/articles/ultimate-javascript-dart-syntax-guide/index.html @@ -2,7 +2,7 @@

    The Ultimate Javascript vs Dart Syntax Guide

    Photo by ipet photo on Unsplash

    Nowadays, Dart is almost only used in the context of Flutter. This guide is exclusively focused in comparing Javascript and Dart’s syntax.

    (Pros and cons of choosing Flutter/Dart is outside the scope of this article.)

    So if you have a JS background and want to build apps with this awesome framework, read on. Let’s see how these two puppies fair against each other!

    Variables and constants

    // js
     
     var dog1 = "Lucy"; // variable
    @@ -235,8 +235,7 @@
       var first = { 'age': 7 };
       print(first['age']);  // 7
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    Imports and exports

    // js
    +

    Imports and exports

    // js
     
     // module file
     export const dog = "Luna";
    @@ -481,7 +480,7 @@
       // or
       dispenseFood().then(print);  // .catchError();
     }
    -

    Is this really the definitive syntax guide?

    Well… maybe 🤪 Pending for a next revision:

    • Enums
    • Annotations
    • Streams & sync/async generators
    • Workers vs isolates
    • and more!

    As you may have noticed we simply highlighted differences between syntaxes. Not comparing their merits, popularity, available libraries, and many other considerations. There will be another opinionated article discussing which is the best tool for which job.

    tests +

    Is this really the definitive syntax guide?

    Well… maybe 🤪 Pending for a next revision:

    • Enums
    • Annotations
    • Streams & sync/async generators
    • Workers vs isolates
    • and more!

    As you may have noticed we simply highlighted differences between syntaxes. Not comparing their merits, popularity, available libraries, and many other considerations. There will be another opinionated article discussing which is the best tool for which job.

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/articles/upgrade-flutter-sdk/index.html b/articles/upgrade-flutter-sdk/index.html index 8ccf974..4f840d6 100644 --- a/articles/upgrade-flutter-sdk/index.html +++ b/articles/upgrade-flutter-sdk/index.html @@ -2,7 +2,7 @@

    How to Upgrade Flutter

    Type in your terminal:

    flutter upgrade
     

    This will update Flutter to the latest version in the current channel. Most likely you have it set in stable.

    flutter channel
     # Flutter channels:
    @@ -14,8 +14,7 @@
     # Switching to flutter channel 'dev'...
     # ...
     

    And run upgrade again:

    flutter upgrade
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index f902f63..7aab969 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,9 +1,9 @@ Categories - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/adapters/index.html b/docs/adapters/index.html index f3438b3..cb41459 100644 --- a/docs/adapters/index.html +++ b/docs/adapters/index.html @@ -2,9 +2,9 @@

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
    +

    Adapters

    Flutter Data’s building blocks are called adapters, making it extremely customizable and composable.

    Adapters are essentially Dart mixins applied on RemoteAdapter<T>.

    Overriding basic behavior

    Several pieces of information are required, for example, to construct a remote findAll call on a Repository<Task>. The framework takes a sensible guess and makes that GET /tasks by default.

    Still, a base URL is necessary and the endpoint parts should be overridable.

    The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model. For example:

    mixin JSONServerTaskAdapter on RemoteAdapter<Task> {
       @override
       String get baseUrl => 'https://myapi.com/v1/';
     }
    @@ -107,8 +107,11 @@
           )
           .where((payment) => payment.isComplete);
     }
    -

    Both where and map are available as notifier extensions. In the future these could be turned into watcher arguments for easier access.

    Many more adapter examples can be found perusing the articles.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Both where and map are available as notifier extensions. In the future these could be turned into watcher arguments for easier access.

    Custom behavior on model initialization

    Creating a Task will not persist it by default, we’d need to call saveLocal() for that.

    There is a hook for model initialization which can be used to execute custom behavior such as auto-saving.

    mixin TaskAdapter on RemoteAdapter<Task> {
    +  @override
    +  void onModelInitialized(Task model) => model.saveLocal();
    +}
    +

    Many more adapter examples can be found perusing the articles.

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/faq/index.html b/docs/faq/index.html index bf1b170..38114a2 100644 --- a/docs/faq/index.html +++ b/docs/faq/index.html @@ -2,13 +2,12 @@

    FAQ

    Why are save and other methods not available on my models?

    DataModel extensions are syntax sugar and will only work when importing Flutter Data:

    import 'package:flutter_data/flutter_data.dart';
     

    Errors generating code?

    If you have trouble with the outputs, try:

    flutter pub run build_runner build --delete-conflicting-outputs
     

    VSCode users!

    If after generating code you still see errors in your files, try reopening the project. This is not a Flutter Data issue.

    Also make sure your dependencies are up to date:

    flutter pub upgrade
    -

    Can I group multiple adapter mixins into one?

    Not yet.

    See https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

    Does Flutter Data depend on Flutter?

    No! Despite its name this library does not depend on Flutter at all.

    See the example folder for an, uh, example.

    It does depend on Riverpod but this library is exported.

    Where does Flutter Data place generated code?

    • in *.g.dart files (part of your models)
    • in main.data.dart (as a library)

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Can I group multiple adapter mixins into one?

    Not yet.

    See https://stackoverflow.com/questions/59248686/how-to-group-mixins-in-dart

    Does Flutter Data depend on Flutter?

    No! Despite its name this library does not depend on Flutter at all.

    See the example folder for an, uh, example.

    It does depend on Riverpod but this library is exported.

    Where does Flutter Data place generated code?

    • in *.g.dart files (part of your models)
    • in main.data.dart (as a library)

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 89d9844..c46c418 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,9 +2,9 @@

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/index.xml b/docs/index.xml index cc07b4e..068d1e5 100644 --- a/docs/index.xml +++ b/docs/index.xml @@ -1,19 +1,25 @@ Docs on Flutter Data/docs/Recent content in Docs on Flutter DataHugo -- gohugo.ioen-usMon, 20 Apr 2020 19:01:08 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: -dependencies: flutter: sdk: flutter flutter_data: ^1.4.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +dependencies: flutter: sdk: flutter flutter_data: ^1.5.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.11 json_annotation: ^4.7.0 hooks_riverpod: ^2.1.1 dev_dependencies: build_runner: ^2.2.0 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.4.1 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. However, json_serializable and path_provider are very convenient so they are recommended. -The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. +The latest flutter_data should be 1.5.6. Please check for all packages latest stable versions before copy-pasting dependencies.Repositories/docs/repositories/Mon, 01 Jan 0001 00:00:00 +0000/docs/repositories/Flutter Data is organized around the concept of models which are data classes extending DataModel. @DataRepository([TaskAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); // ... } When annotated with @DataRepository (and adapters as arguments, as we&rsquo;ll see later) a model gets its own fully-fledged repository. Repository is the API used to interact with models, whether local or remote.Adapters/docs/adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/adapters/Flutter Data&rsquo;s building blocks are called adapters, making it extremely customizable and composable. Adapters are essentially Dart mixins applied on RemoteAdapter&lt;T&gt;. Overriding basic behavior Several pieces of information are required, for example, to construct a remote findAll call on a Repository&lt;Task&gt;. The framework takes a sensible guess and makes that GET /tasks by default. Still, a base URL is necessary and the endpoint parts should be overridable. -The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: +The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Local Adapters/docs/local-adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/local-adapters/Local adapters access the local storage, which for now is only Hive. +It is extremely rare to have to override a local adapter, so use with caution if you do. +A particularly useful use-case is data migration as LocalAdapter&rsquo;s deserialize will be called after loading raw data from the Hive box and before the json_serializable call. +Example: +mixin TaskLocalAdapter on LocalAdapter&lt;Task&gt; { @override Task deserialize(Map&lt;String, dynamic&gt; map) { // transform map from old format to new format } } Activate the use of the overridden adapter with:Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: @DataRepository([TaskAdapter]) @JsonSerializable() class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common. The json_serializable library is helpful but not required.Relationships/docs/relationships/Mon, 20 Apr 2020 17:21:33 -0300/docs/relationships/Flutter Data features an advanced relationship mapping system. Use: HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; for to-one relationships As an example, a User has many Tasks: @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: -@JsonSerializable() @DataRepository([JsonServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +@JsonSerializable() @DataRepository([JsonServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Offline/docs/offline/Mon, 01 Jan 0001 00:00:00 +0000/docs/offline/You can do this in your Scaffold +child: ref.watch(initializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; Text(&#39;App boot is ready, replace me with main UI widget&#39;), ), ), Then define your initializer where you initialize any number of services needed to display the main widget of your UI: +final initializerProvider = FutureProvider&lt;void&gt;((ref) async { // initialize FD await ref.container.refresh(repositoryInitializerProvider.future); // initialize other services // retry offline events final _sub = ref.Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. The former happens when wiring up providers and the latter during widget build. Local storage initialization Here are the configuration options with their default arguments explicit: ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: diff --git a/docs/initialization/index.html b/docs/initialization/index.html index a69d79c..245ce40 100644 --- a/docs/initialization/index.html +++ b/docs/initialization/index.html @@ -2,9 +2,9 @@

    Initialization

    Initializing Flutter Data consists of two parts: local storage initialization and repository initialization.

    The former happens when wiring up providers and the latter during widget build.

    Local storage initialization

    Here are the configuration options with their default arguments explicit:

    ProviderScope(
    +

    Initialization

    Initializing Flutter Data consists of two parts: local storage initialization and repository initialization.

    The former happens when wiring up providers and the latter during widget build.

    Local storage initialization

    Here are the configuration options with their default arguments explicit:

    ProviderScope(
       child: MyApp(),
       overrides: [
         configureRepositoryLocalStorage(
    @@ -98,8 +98,7 @@
         );
       }
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/local-adapters/index.html b/docs/local-adapters/index.html new file mode 100644 index 0000000..e14abc7 --- /dev/null +++ b/docs/local-adapters/index.html @@ -0,0 +1,23 @@ +Local Adapters - Flutter Data

    Local Adapters

    Local adapters access the local storage, which for now is only Hive.

    It is extremely rare to have to override a local adapter, so use with caution if you do.

    A particularly useful use-case is data migration as LocalAdapter’s deserialize will be called after loading raw data from the Hive box and before the json_serializable call.

    Example:

    mixin TaskLocalAdapter on LocalAdapter<Task> {
    +  @override
    +  Task deserialize(Map<String, dynamic> map) {
    +    // transform map from old format to new format
    +  }
    +}
    +

    Activate the use of the overridden adapter with:

    @DataRepository(
    +  [TaskAdapter],
    +  localAdapters: [TaskLocalAdapter],
    +)
    +class Task extends DataModel<Task> {
    +  // ...
    +}
    +

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/models/index.html b/docs/models/index.html index 9ee8c69..7b8934d 100644 --- a/docs/models/index.html +++ b/docs/models/index.html @@ -2,9 +2,9 @@

    Models

    Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository:

    @DataRepository([TaskAdapter])
    +

    Models

    Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository:

    @DataRepository([TaskAdapter])
     @JsonSerializable()
     class Task extends DataModel<Task> {
       @override
    @@ -64,8 +64,7 @@
       final String xyz;
       Staff({String id, String name, this.xyz}) : super(id: id, name: name);
     }
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/offline/index.html b/docs/offline/index.html new file mode 100644 index 0000000..9c6a41c --- /dev/null +++ b/docs/offline/index.html @@ -0,0 +1,30 @@ +Offline - Flutter Data

    Offline

    You can do this in your Scaffold

    child: ref.watch(initializerProvider).when(
    +   error: (error, _) => Text(error.toString()),
    +   loading: () => const CircularProgressIndicator(),
    +   data: (_) => Text('App boot is ready, replace me with main UI widget'),
    +  ),
    +),
    +

    Then define your initializer where you initialize any number of services needed to display the main widget of your UI:

    final initializerProvider = FutureProvider<void>((ref) async {
    +  // initialize FD
    +  await ref.container.refresh(repositoryInitializerProvider.future);
    +  
    +  // initialize other services
    +  
    +  // retry offline events
    +  final _sub = ref.listen(offlineRetryProvider, (_, __) {});
    +  
    +  // close offline retry subscription
    +  ref.onDispose(() {
    +    _sub.close();
    +  });
    +});
    +

    You could also place this offline retry logic in some more specific place (for example when a user logs in, and close the sub when the user logs out).

    tests +codecov +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html index 694ebf4..1f4d6a9 100644 --- a/docs/quickstart/index.html +++ b/docs/quickstart/index.html @@ -2,25 +2,25 @@

    Quickstart

    Add flutter_data and dependencies to your pubspec.yaml file:

    dependencies:
    +

    Quickstart

    Add flutter_data and dependencies to your pubspec.yaml file:

    dependencies:
       flutter:
         sdk: flutter
     
    -  flutter_data: ^1.4.6
    +  flutter_data: ^1.5.6
     
       # Highly RECOMMENDED (but not required) packages
    -  path_provider: ^2.0.7
    -  json_annotation: ^4.4.0
    -  flutter_riverpod: ^1.0.0
    +  path_provider: ^2.0.11
    +  json_annotation: ^4.7.0
    +  hooks_riverpod: ^2.1.1
     
     dev_dependencies:
    -  build_runner: ^2.0.4 # REQUIRED!
    +  build_runner: ^2.2.0 # REQUIRED!
     
       # Highly RECOMMENDED (but not required) packages
    -  json_serializable: ^6.1.4
    -

    Flutter Data doesn’t require any library besides build_runner for code generation.

    However, json_serializable and path_provider are very convenient so they are recommended.

    The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.

    Basic configuration 🔧

    Make your models extend DataModel<T>, override id and annotate them with @DataRepository().

    import 'package:flutter_data/flutter_data.dart';
    +  json_serializable: ^6.4.1
    +

    Flutter Data doesn’t require any library besides build_runner for code generation.

    However, json_serializable and path_provider are very convenient so they are recommended.

    The latest flutter_data should be 1.5.6. Please check for all packages latest stable versions before copy-pasting dependencies.

    On Riverpod

    This package is developed for Riverpod, specifically Riverpod 2.x Hooks. Other libraries such as Provider or GetIt might work but there are no guarantees.

    Basic configuration 🔧

    Make your models extend DataModel<T>, override id and annotate them with @DataRepository().

    import 'package:flutter_data/flutter_data.dart';
     import 'package:json_annotation/json_annotation.dart';
     
     part 'task.g.dart';
    @@ -86,7 +86,7 @@
         );
       }
     }
    -

    Once the data callback is invoked, Flutter Data is ready and the Task repository can be accessed via ref.tasks!

    The configureRepositoryLocalStorage setup function has several optional arguments.

    If you do not have path_provider as a dependency you will have to supply baseDirFn (a function that returns a base directory for local storage).

    For more information see initialization.

    Prefer a setup example? Here’s the sample setup app with support for Riverpod, Provider and get_it.

    ➡ Continue with the tutorial for a Tasks app or learn more about Repositories

    tests +

    Once the data callback is invoked, Flutter Data is ready and the Task repository can be accessed via ref.tasks!

    The configureRepositoryLocalStorage setup function has several optional arguments.

    If you do not have path_provider as a dependency you will have to supply baseDirFn (a function that returns a base directory for local storage).

    For more information see initialization.

    Prefer a setup example? Here’s the sample setup app with support for Riverpod, Provider and get_it.

    ➡ Continue with the tutorial for a Tasks app or learn more about Repositories

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/relationships/index.html b/docs/relationships/index.html index 136d432..d77f01d 100644 --- a/docs/relationships/index.html +++ b/docs/relationships/index.html @@ -2,9 +2,9 @@

    Relationships

    Flutter Data features an advanced relationship mapping system.

    Use:

    • HasMany<T> for to-many relationships
    • BelongsTo<T> for to-one relationships

    As an example, a User has many Tasks:

    @JsonSerializable()
    +

    Relationships

    Flutter Data features an advanced relationship mapping system.

    Use:

    • HasMany<T> for to-many relationships
    • BelongsTo<T> for to-one relationships

    As an example, a User has many Tasks:

    @JsonSerializable()
     @DataRepository([JsonServerAdapter])
     class User extends DataModel<User> {
       @override
    @@ -108,8 +108,7 @@
     // or using an extension on DataModel
     
     final task = Task(title: 'do 1', user: user.asBelongsTo);
    -

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/docs/repositories/index.html b/docs/repositories/index.html index bbfe5be..54ab2f2 100644 --- a/docs/repositories/index.html +++ b/docs/repositories/index.html @@ -2,9 +2,9 @@

    Repositories

    Flutter Data is organized around the concept of models which are data classes extending DataModel.

    @DataRepository([TaskAdapter])
    +

    Repositories

    Flutter Data is organized around the concept of models which are data classes extending DataModel.

    @DataRepository([TaskAdapter])
     class Task extends DataModel<Task> {
       @override
       final int? id;
    @@ -34,7 +34,7 @@
       OnErrorAll<T>? onError,
       DataRequestLabel? label,
     });
    -

    The remote, background, params, headers, onSuccess, onError and label arguments are detailed in common arguments below.

    The syncLocal argument instructs local storage to synchronize the exact resources returned from the remote source (for example, to reflect server-side deletions).

    final tasks = await ref.tasks.findAll(syncLocal: true);
    +

    Further information on the remote, background, params, headers, onSuccess, onError and label arguments available in common arguments below.

    The syncLocal argument instructs local storage to synchronize the exact resources returned from the remote source (for example, to reflect server-side deletions).

    final tasks = await ref.tasks.findAll(syncLocal: true);
     

    Consider this example:

    If a first call to findAll returns data for task IDs 1, 2, 3 and a second call updated data for 2, 3, 4 you will end up in your local storage with: 1, 2 (updated), 3 (updated) and 4.

    Passing syncLocal: true to the second call will leave the local storage state with 2, 3 and 4.

    📚 See API docs

    findOne

    Finds a resource by ID and saves it in local storage.

    final task = await ref.tasks.findOne(1);
     
     // GET http://base.url/tasks/1
    @@ -161,7 +161,7 @@
     class Task extends DataModel<Task> {
       // by default no operation hits the remote endpoint
     }
    -

    params

    Include query parameters (of type Map<String, dynamic>, in this case used for pagination and resource inclusion):

    final tasks = await ref.tasks.findAll(
    +

    background

    Default false. Calling a finder with background = true will make it return immediately with the current value in local storage while triggering a remote request in the background. This is typically useful when using this primitive in certain adapter customizations.

    params

    Include query parameters (of type Map<String, dynamic>, in this case used for pagination and resource inclusion):

    final tasks = await ref.tasks.findAll(
       params: {'include': 'comments', 'page': { 'limit': 20 }}
     );
     
    @@ -194,8 +194,9 @@
     final nestedLabel1 = DataRequestLabel('findAll',
       type: 'other', requestId: 'ff01b1', withParent: label);
     ref.tasks.log(label, 'testing nested labels', logLevel: 2);
    -

    Architecture overview

    This is the dependency graph for an app with models User and Task:

    Clients should only interact with repositories and adapters, while using the Adapter API to customize behavior.

    LocalAdapter, GraphNotifier and LocalStorage are internal concerns. Do not use them.

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Local adapters

    See Local Adapters.

    Graph

    Flutter Data uses a reactive bidirectional graph data structure to keep track of relationships and key-ID mappings. Changes on this graph will trigger updates to the watchers, by default once per change but a throttle can be configured to prevent superfluous re-renders.

    graphNotifierThrottleDurationProvider
    +  .overrideWithValue(Duration(milliseconds: 100)),
    +

    Architecture overview

    This is the dependency graph for an app with models User and Task:

    Clients should only interact with repositories and adapters, while using the Adapter API to customize behavior.

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/index.html b/index.html index ecf81ab..13b5683 100644 --- a/index.html +++ b/index.html @@ -1,10 +1,10 @@ -Flutter Data

    +Flutter Data

    Persistent reactive models in Flutter. With zero boilerplate.

    Flutter Data is an offline-first data framework with a customizable REST client and powerful model relationships.

    Apps using Flutter Data

    Features 🚀

    Repositories for all models
    Built for offline-first
    • Hive-based local storage at its core
    • Failure handling & retry API
    Intuitive APIs, effortless setup
    • Truly configurable and composable via Dart mixins and codegen
    • Built-in Riverpod providers for all models
    Exceptional relationship support
    • Automatically synchronized, fully traversable relationship graph
    • Reactive relationships

    Compatibility

    Fully compatible with the tools we know and love:

    FlutterAnd pure Dart, too.
    Flutter WebSupported!
    json_serializableFully supported (but not required)
    RiverpodSupported & automatically wired up
    ProviderSupported with minimal extra code
    get_itSupported with minimal extra code
    Classic JSON REST APIBuilt-in support!
    JSON:APISupported via external adapter
    FreezedSupported!

    \ No newline at end of file diff --git a/index.xml b/index.xml index 0caf14d..a01d68c 100644 --- a/index.xml +++ b/index.xml @@ -1,7 +1,7 @@ Flutter Data/Recent content on Flutter DataHugo -- gohugo.ioen-usSat, 18 Dec 2021 17:08:28 -0300Quickstart/docs/quickstart/Mon, 01 Jan 0001 00:00:00 +0000/docs/quickstart/Add flutter_data and dependencies to your pubspec.yaml file: -dependencies: flutter: sdk: flutter flutter_data: ^1.4.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.7 json_annotation: ^4.4.0 flutter_riverpod: ^1.0.0 dev_dependencies: build_runner: ^2.0.4 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.1.4 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. +dependencies: flutter: sdk: flutter flutter_data: ^1.5.6 # Highly RECOMMENDED (but not required) packages path_provider: ^2.0.11 json_annotation: ^4.7.0 hooks_riverpod: ^2.1.1 dev_dependencies: build_runner: ^2.2.0 # REQUIRED! # Highly RECOMMENDED (but not required) packages json_serializable: ^6.4.1 Flutter Data doesn&rsquo;t require any library besides build_runner for code generation. However, json_serializable and path_provider are very convenient so they are recommended. -The latest flutter_data should be 1.4.6. Please check for all packages latest stable versions before copy-pasting dependencies.Fetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: +The latest flutter_data should be 1.5.6. Please check for all packages latest stable versions before copy-pasting dependencies.Fetching tasks/tutorial/fetching/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/fetching/Before you continue: Make sure you went through the Quickstart and got Flutter Data up and running! Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial We now have access to our Repository&lt;Task&gt; through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/. @@ -16,7 +16,11 @@ Overriding basic behavior Several pieces of information are required, for exampl Still, a base URL is necessary and the endpoint parts should be overridable. The way we use these adapters is by declaring them on our @DataRepository annotation in the corresponding model.Creating a new task/tutorial/creating/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/creating/First off let&rsquo;s add just one line during the initialization. This will enable very helpful logging of our tasks repository! // ... child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) { // enable verbose ref.tasks.logLevel = 2; return TasksScreen(); } ), // ... When we restart we notice the following: -flutter: 34:061 [watchAll/tasks@e20025] initializing flutter: 34:100 [findAll/tasks@e2046b&lt;e20025] requesting [HTTP GET] https://my-json-server.typicode.com/flutterdata/demo/tasks flutter: 34:835 [findAll/tasks@e2046b&lt;e20025] {1, 2, 3, 4, 5} (and 5 more) fetched from remote Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it.Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: +flutter: 34:061 [watchAll/tasks@e20025] initializing flutter: 34:100 [findAll/tasks@e2046b&lt;e20025] requesting [HTTP GET] https://my-json-server.typicode.com/flutterdata/demo/tasks flutter: 34:835 [findAll/tasks@e2046b&lt;e20025] {1, 2, 3, 4, 5} (and 5 more) fetched from remote Let&rsquo;s add a TextField, turn the input into a new Task and immediately save it.Local Adapters/docs/local-adapters/Mon, 01 Jan 0001 00:00:00 +0000/docs/local-adapters/Local adapters access the local storage, which for now is only Hive. +It is extremely rare to have to override a local adapter, so use with caution if you do. +A particularly useful use-case is data migration as LocalAdapter&rsquo;s deserialize will be called after loading raw data from the Hive box and before the json_serializable call. +Example: +mixin TaskLocalAdapter on LocalAdapter&lt;Task&gt; { @override Task deserialize(Map&lt;String, dynamic&gt; map) { // transform map from old format to new format } } Activate the use of the overridden adapter with:Models/docs/models/Mon, 20 Apr 2020 19:01:08 -0300/docs/models/Flutter Data models are data classes that extend DataModel and are annotated with @DataRepository: @DataRepository([TaskAdapter]) @JsonSerializable() class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; Task({this.id, required this.title, this.completed = false}); } DataModel automatically registers new data classes within the framework and enforces the implementation of an id getter. Use the type that better suits you: int? and String? are the most common. The json_serializable library is helpful but not required.Reloading the list/tutorial/reloading/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/reloading/Let&rsquo;s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources. class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}); // ... } Hot restarting the app we should only see five tasks, but&hellip; @@ -27,7 +31,9 @@ HasMany&lt;T&gt; for to-many relationships BelongsTo&lt;T&gt; fo @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt;? tasks; User({this.id, required this.name, this.tasks}); } and a Task belongs to a User: @JsonSerializable() @DataRepository([JsonServerAdapter]) class Task extends DataModel&lt;Task&gt; { @override final int? id; final String title; final bool completed; final BelongsTo&lt;User&gt;?Deleting tasks/tutorial/deleting/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/deleting/There&rsquo;s stuff we just don&rsquo;t want to do! We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method: -class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. +class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Offline/docs/offline/Mon, 01 Jan 0001 00:00:00 +0000/docs/offline/You can do this in your Scaffold +child: ref.watch(initializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; Text(&#39;App boot is ready, replace me with main UI widget&#39;), ), ), Then define your initializer where you initialize any number of services needed to display the main widget of your UI: +final initializerProvider = FutureProvider&lt;void&gt;((ref) async { // initialize FD await ref.container.refresh(repositoryInitializerProvider.future); // initialize other services // retry offline events final _sub = ref.Initialization/docs/initialization/Mon, 01 Jan 0001 00:00:00 +0000/docs/initialization/Initializing Flutter Data consists of two parts: local storage initialization and repository initialization. The former happens when wiring up providers and the latter during widget build. Local storage initialization Here are the configuration options with their default arguments explicit: ProviderScope( child: MyApp(), overrides: [ configureRepositoryLocalStorage( // callback that returns a base directory where to place local storage // (if the path_provider package is present, otherwise you MUST override it) baseDirFn: () =&gt; getApplicationDocumentsDirectory().FAQ/docs/faq/Mon, 01 Jan 0001 00:00:00 +0000/docs/faq/Why are save and other methods not available on my models? DataModel extensions are syntax sugar and will only work when importing Flutter Data: @@ -37,24 +43,17 @@ If after generating code you still see errors in your files, try reopening the p Also make sure your dependencies are up to date:Using relationships/tutorial/relationships/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/relationships/Let&rsquo;s now slightly rethink our query. Instead of &ldquo;fetching all tasks for user 1&rdquo; we are going to &ldquo;fetch user 1 with all their tasks&rdquo;. Flutter Data has first-class support for relationships. First, in models/user.dart, we&rsquo;ll create the User model with a HasMany&lt;Task&gt; relationship: -import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this.Retry offline/tutorial/offline/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/offline/TBD. -For now, see How to Retry Offline Calls to Sync Data -Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly. -An error has occurred. Please e-mail me@frank06.net with your request.How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. -class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments +import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this.How to Reinitialize Flutter Data/articles/how-to-reinitialize-flutter-data/Sat, 18 Dec 2021 17:08:28 -0300/articles/how-to-reinitialize-flutter-data/By calling repositoryInitializerProvider again with Riverpod&rsquo;s refresh we can reinitialize Flutter Data. +class TasksApp extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { return MaterialApp( home: RefreshIndicator( onRefresh: () async =&gt; ref.container.refresh(repositoryInitializerProvider.future), child: Scaffold( body: Center( child: ref.watch(repositoryInitializerProvider).when( error: (error, _) =&gt; Text(error.toString()), loading: () =&gt; const CircularProgressIndicator(), data: (_) =&gt; TasksScreen(), ), ), ), ), ); } }Nested Resources Adapter/articles/nested-resources-adapter/Thu, 09 Dec 2021 23:17:30 -0300/articles/nested-resources-adapter/Here&rsquo;s how you could access nested resources such as: /posts/1/comments mixin NestedURLAdapter on RemoteAdapter&lt;Comment&gt; { // ... @override String urlForFindAll(params) =&gt; &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; // or even @override String urlForFindAll(params) { final postId = params[&#39;postId&#39;]; if (postId != null) { return &#39;/posts/${params[&#39;postId&#39;]}/comments&#39;; } return super.urlForFindAll(params); } } and call it like: -final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id }); Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: +final comments = await commentRepository.findAll(params: {&#39;postId&#39;: post.id });Custom Deserialization Adapter/articles/custom-deserialization-adapter/Thu, 09 Dec 2021 23:15:44 -0300/articles/custom-deserialization-adapter/Example: mixin AuthAdapter on RemoteAdapter&lt;User&gt; { Future&lt;String&gt; login(String email, String password) async { return sendRequest( baseUrl.asUri / &#39;token&#39;, method: DataRequestMethod.POST, body: json.encode({&#39;email&#39;: email, &#39;password&#39;: password}), onSuccess: (data) =&gt; data[&#39;token&#39;] as String, ); } } and use it: -final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration. -Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: -mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: -mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: -mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent.Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. +final token = await userRepository.authAdapter.login(&#39;e@mail, p*ssword&#39;); Also see JSONAPIAdapter for inspiration.Intercept Logout Adapter/articles/intercept-logout-adapter/Thu, 09 Dec 2021 23:15:11 -0300/articles/intercept-logout-adapter/The global onError handler will call logout if certain conditions are met: +mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override FutureOr&lt;Null?&gt; onError&lt;Null&gt;(DataException e) async { // Automatically logout user if a 401/403 is returned from any API response. if (e.statusCode == 401 || e.statusCode == 403) { await read(sessionProvider).logOut(); return null; } throw e; } }Override findAll Adapter/articles/override-findall-adapter/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findall-adapter/In this example we completely override findAll to return random models: +mixin FindAllAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override Future&lt;List&lt;T&gt;&gt; findAll({ bool? remote, Map&lt;String, dynamic&gt;? params, Map&lt;String, String&gt;? headers, bool? syncLocal, OnDataError&lt;List&lt;T&gt;&gt;? onError, }) async { // could use: super.findAll(); return _generateRandomModels&lt;T&gt;(); } }Override findOne URL Adapter/articles/override-findone-url-method/Thu, 09 Dec 2021 23:14:28 -0300/articles/override-findone-url-method/In this example we override URLs to hit finder endpoints with snake case, and for save to always use HTTP PUT: +mixin URLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String urlForFindAll(Map&lt;String, dynamic&gt; params) =&gt; type.snakeCase; @override String urlForFindOne(id, Map&lt;String, dynamic&gt; params) =&gt; &#39;${type.snakeCase}/$id&#39;; @override DataRequestMethod methodForSave(id, Map&lt;String, dynamic&gt; params) { return DataRequestMethod.PUT; } }Iterator Style Adapter/articles/iterator-style-adapter/Thu, 09 Dec 2021 23:13:36 -0300/articles/iterator-style-adapter/mixin AppointmentAdapter on RemoteAdapter&lt;Appointment&gt; { Future&lt;Appointment?&gt; fetchNext() async { return await sendRequest( baseUrl.asUri / type / &#39;next&#39;, onSuccess: (data) =&gt; deserialize(data).model, ); } } Using sendRequest we have both fine-grained control over our request while leveraging existing adapter features such as type, baseUrl, deserialize and any other customizations. Adapters are applied on RemoteAdapter but Flutter Data will automatically create shortcuts to call these custom methods. -final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext(); Need professional help with Flutter?Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. +final nextAppointment = await appointmentRepository.appointmentAdapter.fetchNext();Override HTTP Client Adapter/articles/override-http-client-adapter/Thu, 09 Dec 2021 23:10:10 -0300/articles/override-http-client-adapter/An example on how to override and use a more advanced HTTP client. Here the connectionTimeout is increased, and an HTTP proxy enabled. mixin HttpProxyAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { HttpClient? _httpClient; IOClient? _ioClient; @override http.Client get httpClient { _httpClient ??= HttpClient(); _ioClient ??= IOClient(_httpClient); // increasing the timeout _httpClient!.connectionTimeout = const Duration(seconds: 5); // using a proxy _httpClient!.badCertificateCallback = ((X509Certificate cert, String host, int port) =&gt; true); _httpClient!.findProxy = (uri) =&gt; &#39;PROXY (proxy url)&#39;; return _ioClient!Override Default Headers and Query Parameters/articles/override-headers-query-parameters/Thu, 09 Dec 2021 23:07:40 -0300/articles/override-headers-query-parameters/Custom headers and query parameters can be passed into all finders and watchers (findAll, findOne, save, watchOne etc) but sometimes defaults are necessary. Here is how: @@ -62,12 +61,9 @@ mixin BaseAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteA Important: Make sure to replicate ProxyProviders for other models than Todo. class GetItTodoApp extends StatelessWidget { @override Widget build(context) { GetIt.instance.registerRepositories(); return MaterialApp( home: Scaffold( body: Center( child: FutureBuilder( future: GetIt.instance.allReady(), builder: (context, snapshot) { if (!snapshot.hasData) { return const CircularProgressIndicator(); } final repository = GetIt.instance.get&lt;Repository&lt;Todo&gt;&gt;(); return GestureDetector( onDoubleTap: () async { print((await repository.Configure Flutter Data to Work with Provider/articles/configure-provider/Sun, 05 Dec 2021 23:12:05 -0300/articles/configure-provider/This is an example of how we can configure Flutter Data to use Provider as a dependency injection framework. Important: Make sure to replicate ProxyProviders for other models than Todo. -class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.How to Retry Offline Calls to Sync Data/articles/how-to-retry-offline-sync-data/Sun, 05 Dec 2021 23:12:05 -0300/articles/how-to-retry-offline-sync-data/Flutter Data does not implement the logic to handle retries after offline failures. It does expose, however, useful primitives. -The pendingOfflineTypesProvider provides a notifier which triggers a set of types with pending offline operations. This happens anytime a request fails with an OfflineException. -final notifier = ref.read(pendingOfflineTypesProvider.notifier); final _dispose = notifier.addListener((Set&lt;String&gt; types) async { // check offline operations for all these types }); For performance reasons it can be throttled in an exponential backoff manner by combining a few utilities:Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. +class ProviderTodoApp extends StatelessWidget { @override Widget build(context) { return MultiProvider( providers: [ ...providers(clear: true), ProxyProvider&lt;Repository&lt;Todo&gt;?, SessionService?&gt;( lazy: false, create: (_) =&gt; SessionService(), update: (context, repository, service) { if (service != null &amp;&amp; repository != null) { return service..initialize(repository); } return service; }, ), ], child: MaterialApp( home: Scaffold( body: Center( child: Builder( builder: (context) { if (context.Override Base URL Adapter/articles/override-base-url/Fri, 03 Dec 2021 18:45:45 -0300/articles/override-base-url/Flutter Data is extended via adapters. mixin UserURLAdapter on RemoteAdapter&lt;User&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need to apply the adapter to all your models? Make it generic: -mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; } Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly.Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; +mixin UserURLAdapter&lt;T extends DataModel&lt;T&gt;&gt; on RemoteAdapter&lt;T&gt; { @override String get baseUrl =&gt; &#39;https://my-json-server.typicode.com/flutterdata/demo&#39;; }Deconstructing Dart Constructors/articles/deconstructing-dart-constructors/Wed, 12 Feb 2020 13:43:48 -0500/articles/deconstructing-dart-constructors/Ever confused by that mysterious syntax in Dart constructors? Colons, named parameters, asserts, factories&hellip; Read this post and you will become an expert! When we want an instance of a certain class we call a constructor, right? var robot = new Robot(); In Dart 2 we can leave out the new: @@ -78,7 +74,7 @@ Easy! Final means single-assignment. Const means immutable. Let&rsquo;s see an example: -final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors! Need professional help with Flutter? Describe your project in detail and include your e-mail and budget.How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? +final _final = [2, 3]; const _const = [2, 3]; _final = [4,5]; // ERROR: can&#39;t re-assign _final.add(6); // OK: can mutate _const.add(6); // ERROR: can&#39;t mutate Want to know EVERYTHING about Dart constructors? Check out Deconstructing Dart Constructors!How To Define an Interface in Dart/articles/define-interface-dart/Sat, 04 Jan 2020 13:43:48 -0500/articles/define-interface-dart/Dart defines implicit interfaces. What does this mean? In your app you&rsquo;d have: class Session { authenticate() { // impl } } or abstract class Session { authenticate(); } And for example in tests: @@ -101,7 +97,7 @@ format(Duration d) =&gt; d.How to Upgrade flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade Need professional help with Flutter?</description></item><item><title>Minimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. +flutter upgradeMinimal Flutter Apps to Get Started/articles/minimal-hello-world-flutter-app/Tue, 30 Jul 2019 23:43:48 -0500/articles/minimal-hello-world-flutter-app/Every time I do a flutter create project I get the default &ldquo;counter&rdquo; sample app full of comments. While it&rsquo;s great for the very first time, I now want to get up and running with a minimal base app that fits in my screen. Here are a few options to copy-paste into lib/main.dart. Bare bones app // lib/main.dart import &#39;package:flutter/widgets.dart&#39;; main() =&gt; runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(context) =&gt; Center( child: Text(&#39;Hello Flutter! \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 4f55cb7..4e1f498 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -/docs/quickstart//tutorial/fetching//docs/repositories//tutorial/updating//docs/adapters//tutorial/creating//docs/models/2020-04-20T19:01:08-03:00/tutorial/reloading//docs/relationships/2020-04-20T17:21:33-03:00/tutorial/deleting//docs/initialization//docs/faq//tutorial/relationships//tutorial/offline//articles/2021-12-18T17:08:28-03:00/2021-12-18T17:08:28-03:00/articles/how-to-reinitialize-flutter-data/2021-12-18T17:08:28-03:00/articles/nested-resources-adapter/2021-12-09T23:17:30-03:00/articles/custom-deserialization-adapter/2021-12-09T23:15:44-03:00/articles/intercept-logout-adapter/2021-12-09T23:15:11-03:00/articles/override-findall-adapter/2021-12-09T23:14:28-03:00/articles/override-findone-url-method/2021-12-09T23:14:28-03:00/articles/iterator-style-adapter/2021-12-09T23:13:36-03:00/articles/override-http-client-adapter/2021-12-09T23:10:10-03:00/articles/override-headers-query-parameters/2021-12-09T23:07:40-03:00/articles/configure-get-it/2021-12-05T23:12:05-03:00/articles/configure-provider/2021-12-05T23:12:05-03:00/articles/how-to-retry-offline-sync-data/2021-12-05T23:12:05-03:00/articles/override-base-url/2021-12-03T18:45:45-03:00/docs/2020-04-20T19:01:08-03:00/tags/dart/2020-02-12T13:43:48-05:00/articles/deconstructing-dart-constructors/2020-02-12T13:43:48-05:00/tags/2020-02-12T13:43:48-05:00/articles/dart-getter-cache-computed-properties/2020-01-04T13:43:48-05:00/articles/dart-final-const-difference/2020-01-04T13:43:48-05:00/articles/define-interface-dart/2020-01-04T13:43:48-05:00/articles/build-widget-with-async-method-call/2019-12-18T00:00:00+00:00/articles/future-async-called-multiple-times/2019-12-18T00:00:00+00:00/tags/es6/2019-10-15T13:43:48-05:00/tags/javascript/2019-10-15T13:43:48-05:00/articles/ultimate-javascript-dart-syntax-guide/2019-10-15T13:43:48-05:00/articles/checking-null-aware-operators-dart/2019-09-18T00:00:00+00:00/articles/how-to-format-duration/2019-09-10T23:43:48-05:00/articles/upgrade-flutter-sdk/2019-08-27T12:43:48-05:00/tags/pub/2019-08-27T12:43:48-05:00/tags/vscode/2019-08-27T12:43:48-05:00/articles/minimal-hello-world-flutter-app/2019-07-30T23:43:48-05:00/categories//tutorial/ \ No newline at end of file +/docs/quickstart//tutorial/fetching//docs/repositories//tutorial/updating//docs/adapters//tutorial/creating//docs/local-adapters//docs/models/2020-04-20T19:01:08-03:00/tutorial/reloading//docs/relationships/2020-04-20T17:21:33-03:00/tutorial/deleting//docs/offline//docs/initialization//docs/faq//tutorial/relationships//articles/2021-12-18T17:08:28-03:00/2021-12-18T17:08:28-03:00/articles/how-to-reinitialize-flutter-data/2021-12-18T17:08:28-03:00/articles/nested-resources-adapter/2021-12-09T23:17:30-03:00/articles/custom-deserialization-adapter/2021-12-09T23:15:44-03:00/articles/intercept-logout-adapter/2021-12-09T23:15:11-03:00/articles/override-findall-adapter/2021-12-09T23:14:28-03:00/articles/override-findone-url-method/2021-12-09T23:14:28-03:00/articles/iterator-style-adapter/2021-12-09T23:13:36-03:00/articles/override-http-client-adapter/2021-12-09T23:10:10-03:00/articles/override-headers-query-parameters/2021-12-09T23:07:40-03:00/articles/configure-get-it/2021-12-05T23:12:05-03:00/articles/configure-provider/2021-12-05T23:12:05-03:00/articles/override-base-url/2021-12-03T18:45:45-03:00/docs/2020-04-20T19:01:08-03:00/tags/dart/2020-02-12T13:43:48-05:00/articles/deconstructing-dart-constructors/2020-02-12T13:43:48-05:00/tags/2020-02-12T13:43:48-05:00/articles/dart-getter-cache-computed-properties/2020-01-04T13:43:48-05:00/articles/dart-final-const-difference/2020-01-04T13:43:48-05:00/articles/define-interface-dart/2020-01-04T13:43:48-05:00/articles/build-widget-with-async-method-call/2019-12-18T00:00:00+00:00/articles/future-async-called-multiple-times/2019-12-18T00:00:00+00:00/tags/es6/2019-10-15T13:43:48-05:00/tags/javascript/2019-10-15T13:43:48-05:00/articles/ultimate-javascript-dart-syntax-guide/2019-10-15T13:43:48-05:00/articles/checking-null-aware-operators-dart/2019-09-18T00:00:00+00:00/articles/how-to-format-duration/2019-09-10T23:43:48-05:00/articles/upgrade-flutter-sdk/2019-08-27T12:43:48-05:00/tags/pub/2019-08-27T12:43:48-05:00/tags/vscode/2019-08-27T12:43:48-05:00/articles/minimal-hello-world-flutter-app/2019-07-30T23:43:48-05:00/categories//tutorial/ \ No newline at end of file diff --git a/tags/dart/index.html b/tags/dart/index.html index 2325b46..5b6d55e 100644 --- a/tags/dart/index.html +++ b/tags/dart/index.html @@ -1,9 +1,9 @@ dart - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/es6/index.html b/tags/es6/index.html index 481a784..0a89a68 100644 --- a/tags/es6/index.html +++ b/tags/es6/index.html @@ -1,9 +1,9 @@ es6 - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 17c22d7..6f7e297 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,9 +1,9 @@ Tags - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html index 4c786a8..0dd2332 100644 --- a/tags/javascript/index.html +++ b/tags/javascript/index.html @@ -1,9 +1,9 @@ javascript - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/pub/index.html b/tags/pub/index.html index 80f1644..0321c98 100644 --- a/tags/pub/index.html +++ b/tags/pub/index.html @@ -1,9 +1,9 @@ pub - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/pub/index.xml b/tags/pub/index.xml index d5b77b8..540c4ac 100644 --- a/tags/pub/index.xml +++ b/tags/pub/index.xml @@ -2,4 +2,4 @@ flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade Need professional help with Flutter? \ No newline at end of file +flutter upgrade \ No newline at end of file diff --git a/tags/vscode/index.html b/tags/vscode/index.html index 37eeafe..a3c43a5 100644 --- a/tags/vscode/index.html +++ b/tags/vscode/index.html @@ -1,9 +1,9 @@ vscode - Flutter Data

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tags/vscode/index.xml b/tags/vscode/index.xml index 22d2b15..c3bd07c 100644 --- a/tags/vscode/index.xml +++ b/tags/vscode/index.xml @@ -2,4 +2,4 @@ flutter upgrade This will update Flutter to the latest version in the current channel. Most likely you have it set in stable. flutter channel # Flutter channels: # beta # dev # master # * stable Do you want to live in the cutting edge? Switching channels is easy: flutter channel dev # Switching to flutter channel &#39;dev&#39;... # ... And run upgrade again: -flutter upgrade Need professional help with Flutter? \ No newline at end of file +flutter upgrade \ No newline at end of file diff --git a/tutorial/creating/index.html b/tutorial/creating/index.html index 813b460..5b93d5e 100644 --- a/tutorial/creating/index.html +++ b/tutorial/creating/index.html @@ -2,9 +2,9 @@

    Creating a new task

    First off let’s add just one line during the initialization. This will enable very helpful logging of our tasks repository!

    Creating a new task

    First off let’s add just one line during the initialization. This will enable very helpful logging of our tasks repository!

    // ...
     child: ref.watch(repositoryInitializerProvider).when(
       error: (error, _) => Text(error.toString()),
       loading: () => const CircularProgressIndicator(),
    @@ -52,8 +52,7 @@
     flutter: 25:087 [save/tasks@6bb411] requesting [HTTP POST] https://my-json-server.typicode.com/flutterdata/demo/tasks
     flutter: 25:713 [save/tasks@6bb411] saved in local storage and remote
     flutter: 25:714 [watchAll/tasks@68f651] updated models
    -

    NEXT: Reloading the list

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/deleting/index.html b/tutorial/deleting/index.html index 2d25bef..756eead 100644 --- a/tutorial/deleting/index.html +++ b/tutorial/deleting/index.html @@ -2,9 +2,9 @@

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
    +

    Deleting tasks

    There’s stuff we just don’t want to do!

    We can delete a Task on dismiss by wrapping the tile with a Dismissible and calling its delete method:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final _newTaskController = useTextEditingController();
    @@ -47,8 +47,7 @@
     

    Hot-reload, swipe left and… they’re gone!

    Remember to check out the debug console where you can find some Flutter Data activity logs like:

    flutter: 25:691 [watchAll/tasks@1744b4] updated models
     flutter: 25:693 [delete/tasks#4@1936e7] requesting [HTTP DELETE] https://my-json-server.typicode.com/flutterdata/demo/tasks/4
     flutter: 26:266 [delete/tasks#4@1936e7] deleted in local storage and remote
    -

    NEXT: Using relationships

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/fetching/index.html b/tutorial/fetching/index.html index 5232dde..d83fe86 100644 --- a/tutorial/fetching/index.html +++ b/tutorial/fetching/index.html @@ -2,9 +2,9 @@

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    Fetching tasks

    Before you continue:

    Make sure you went through the Quickstart and got Flutter Data up and running!

    Also, you can check out the full source code for this tutorial at https://github.com/flutterdata/tutorial

    We now have access to our Repository<Task> through ref.tasks, with an API base URL set to https://my-json-server.typicode.com/flutterdata/demo/.

    Inspecting the /tasks endpoint we see:

    [
       {
         "id": 1,
         "title": "Laundry 🧺",
    @@ -57,8 +57,7 @@
       "title": "delectus aut autem",
       "completed": false
     }
    -

    Of course, this too can be overridden like the JSON API Adapter does.

    For more information see the Repository docs.

    NEXT: Marking tasks as done

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    Of course, this too can be overridden like the JSON API Adapter does.

    For more information see the Repository docs.

    NEXT: Marking tasks as done

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/index.html b/tutorial/index.html index db63024..eb37bb3 100644 --- a/tutorial/index.html +++ b/tutorial/index.html @@ -2,9 +2,9 @@

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/index.xml b/tutorial/index.xml index 553e923..a37d4f4 100644 --- a/tutorial/index.xml +++ b/tutorial/index.xml @@ -15,8 +15,4 @@ We can delete a Task on dismiss by wrapping the tile with a Dismissible and call class TasksScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final _newTaskController = useTextEditingController(); final state = ref.tasks.watchAll(params: {&#39;_limit&#39;: 5}, syncLocal: true); if (state.isLoading) { return CircularProgressIndicator(); } return RefreshIndicator( onRefresh: () =&gt; ref.tasks.findAll(params: {&#39;_limit&#39;: 5}, syncLocal: true), child: ListView( children: [ TextField( controller: _newTaskController, onSubmitted: (value) async { Task(title: value).Using relationships/tutorial/relationships/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/relationships/Let&rsquo;s now slightly rethink our query. Instead of &ldquo;fetching all tasks for user 1&rdquo; we are going to &ldquo;fetch user 1 with all their tasks&rdquo;. Flutter Data has first-class support for relationships. First, in models/user.dart, we&rsquo;ll create the User model with a HasMany&lt;Task&gt; relationship: -import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this.Retry offline/tutorial/offline/Mon, 01 Jan 0001 00:00:00 +0000/tutorial/offline/TBD. -For now, see How to Retry Offline Calls to Sync Data -Need professional help with Flutter? Describe your project in detail and include your e-mail and budget. Message sent. -Thank you! I will get back to you shortly. -An error has occurred. Please e-mail me@frank06.net with your request. \ No newline at end of file +import &#39;package:flutter_data/flutter_data.dart&#39;; import &#39;package:json_annotation/json_annotation.dart&#39;; import &#39;task.dart&#39;; part &#39;user.g.dart&#39;; @JsonSerializable() @DataRepository([JsonServerAdapter]) class User extends DataModel&lt;User&gt; { @override final int? id; final String name; final HasMany&lt;Task&gt; tasks; User({this.id, required this. \ No newline at end of file diff --git a/tutorial/offline/index.html b/tutorial/offline/index.html deleted file mode 100644 index 91c325d..0000000 --- a/tutorial/offline/index.html +++ /dev/null @@ -1,11 +0,0 @@ -Tutorial: Retry offline - Flutter Data

    Retry offline

    TBD.

    For now, see How to Retry Offline Calls to Sync Data

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests -codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/relationships/index.html b/tutorial/relationships/index.html index 690c11a..5b68196 100644 --- a/tutorial/relationships/index.html +++ b/tutorial/relationships/index.html @@ -2,9 +2,9 @@

    Using relationships

    Let’s now slightly rethink our query. Instead of “fetching all tasks for user 1” we are going to “fetch user 1 with all their tasks”.

    Flutter Data has first-class support for relationships.

    First, in models/user.dart, we’ll create the User model with a HasMany<Task> relationship:

    import 'package:flutter_data/flutter_data.dart';
    +

    Using relationships

    Let’s now slightly rethink our query. Instead of “fetching all tasks for user 1” we are going to “fetch user 1 with all their tasks”.

    Flutter Data has first-class support for relationships.

    First, in models/user.dart, we’ll create the User model with a HasMany<Task> relationship:

    import 'package:flutter_data/flutter_data.dart';
     import 'package:json_annotation/json_annotation.dart';
     
     import 'task.dart';
    @@ -22,7 +22,7 @@
       User({this.id, required this.name, required this.tasks});
     }
     

    Time to run code generation and get a brand-new Repository<User>:

    flutter pub run build_runner build
    -

    Great. We are now going to issue the remote request via watchOne(), in order to list (and watch for changes of) user 1’s Task models:

    • params: {'_embed': 'tasks'}, tells the server to include this user’s tasks (which our JSON adapter knows how to deserialize)
    • alsoWatch: (user) => [user.tasks] tells the watcher to rebuild the widget any time user or its tasks are updated or deleted; any number of relationships of any depth can be watched
    class TasksScreen extends HookConsumerWidget {
    +

    Great. We are now going to issue the remote request via watchOne(), in order to list (and watch for changes of) user 1’s Task models:

    • params: {'_embed': 'tasks'}, tells the server to include this user’s tasks (which our JSON adapter knows how to deserialize)
    • alsoWatch: (user) => [user.tasks] tells the watcher to rebuild the widget any time user or its tasks are updated or deleted; any number of relationships of any depth can be watched. (For instance, alsoWatch: (user) => [user.tasks, user.tasks.comments, user.tasks.comments.owner])
    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final _newTaskController = useTextEditingController();
    @@ -175,8 +175,7 @@
         );
       }
     }
    -

    And adding new tasks now works!

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    And adding new tasks now works!

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/reloading/index.html b/tutorial/reloading/index.html index a7d7087..11a1783 100644 --- a/tutorial/reloading/index.html +++ b/tutorial/reloading/index.html @@ -2,9 +2,9 @@

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
    +

    Reloading the list

    Let’s make the number of tasks more manageable via the _limit server query param, which in this case will return a maximum of 5 resources.

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final state = ref.tasks.watchAll(params: {'_limit': 5});
    @@ -74,8 +74,7 @@
           onRefresh: () => ref.read(provider.notifier).reload(),
           child: ListView(
         // ...
    -

    NEXT: Deleting tasks

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file diff --git a/tutorial/updating/index.html b/tutorial/updating/index.html index 485708c..1e01662 100644 --- a/tutorial/updating/index.html +++ b/tutorial/updating/index.html @@ -2,9 +2,9 @@

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
    +

    Marking tasks as done

    A read-only tasks app is not very practical! Let’s add the ability to update the completed state and mark/unmark our tasks as done.

    First, though, we’ll extract the tasks-specific code to a separate screen named TasksScreen:

    class TasksScreen extends HookConsumerWidget {
       @override
       Widget build(BuildContext context, WidgetRef ref) {
         final state = ref.tasks.watchAll();
    @@ -70,8 +70,7 @@
         return Task(id: this.id, title: this.title, completed: !this.completed).withKeyOf(this);
       }
     }
    -

    What exactly is withKeyOf(this) for?

    When a new model is created, Flutter Data initializes it looking up its internal key based on its id.

    This way, Task(id: 4, title: 'a') and Task(id: 4, title: 'b') are essentially two versions of the same model.

    When there is no id (or potentially no id, as in the case above) we can use withKeyOf to ensure the new model is treated as an updated version of the old one.

    Regenerate code, hot-reload and check all boxes…

    Done! NEXT: Creating a new task

    Need professional help with Flutter?

    Describe your project in detail and include your e-mail and budget.
    -

    tests +

    What exactly is withKeyOf(this) for?

    When a new model is created, Flutter Data initializes it looking up its internal key based on its id.

    This way, Task(id: 4, title: 'a') and Task(id: 4, title: 'b') are essentially two versions of the same model.

    When there is no id (or potentially no id, as in the case above) we can use withKeyOf to ensure the new model is treated as an updated version of the old one.

    Regenerate code, hot-reload and check all boxes…

    Done! NEXT: Creating a new task

    tests codecov -pub.dev -license

    Created and maintained by frank06.

    \ No newline at end of file +pub.dev +license

    Created and maintained by frank06.

    \ No newline at end of file