From 18b4d9fb9eafa7302b679f5f7b3328f8b9009d8b Mon Sep 17 00:00:00 2001 From: zahra Date: Fri, 14 Jun 2024 13:39:45 +0330 Subject: [PATCH] 1.6 -> Running sample (hello_world_riverpod.dart) --- Steps | 14 +++++++- analysis_options.yaml | 4 +++ lib/main_hello_riverpod.dart | 40 +++++++++++++++++++++ pubspec.lock | 70 ++++++++++++------------------------ pubspec.yaml | 2 +- 5 files changed, 81 insertions(+), 49 deletions(-) create mode 100644 lib/main_hello_riverpod.dart diff --git a/Steps b/Steps index 50f7b7d..bfd605c 100644 --- a/Steps +++ b/Steps @@ -1,4 +1,4 @@ -1. https://riverpod.dev/docs/introduction/getting_started +1. flutt 1.1. commands run in terminal >> flutter pub add flutter_riverpod @@ -15,4 +15,16 @@ << 1.3. Add Links.txt file. 1.4. Checkout in other station ==> Must re run 1.1. steps again. (I don't Know why) + (Re-run can update dependencies) + 1.5. Update analysis_options.yaml, then run + >> + dart run custom_lint + << + 1.6. Add a "hello world" sample to "main_hello_riverpod.dart", we have some error in code. + Now run + >> + flutter pub run build_runner build + << + to generate some files (include main_hello_riverpod.g.dart). + Then fix "main_hello_riverpod.dart" with (main.g.dart --> main_hello_riverpod.g.dart). diff --git a/analysis_options.yaml b/analysis_options.yaml index 0d29021..dbc49bd 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -9,6 +9,10 @@ # packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml +analyzer: + plugins: + - custom_lint + linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` diff --git a/lib/main_hello_riverpod.dart b/lib/main_hello_riverpod.dart new file mode 100644 index 0000000..18d1d7e --- /dev/null +++ b/lib/main_hello_riverpod.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:riverpod_annotation/riverpod_annotation.dart'; + +part 'main_hello_riverpod.g.dart'; + +// We create a "provider", which will store a value (here "Hello world"). +// By using a provider, this allows us to mock/override the value exposed. +@riverpod +String helloWorld(HelloWorldRef ref) { + return 'Hello world'; +} + +void main() { + runApp( + // For widgets to be able to read providers, we need to wrap the entire + // application in a "ProviderScope" widget. + // This is where the state of our providers will be stored. + ProviderScope( + child: MyApp(), + ), + ); +} + +// Extend ConsumerWidget instead of StatelessWidget, which is exposed by Riverpod +class MyApp extends ConsumerWidget { + @override + Widget build(BuildContext context, WidgetRef ref) { + final String value = ref.watch(helloWorldProvider); + + return MaterialApp( + home: Scaffold( + appBar: AppBar(title: const Text('Example')), + body: Center( + child: Text(value), + ), + ), + ); + } +} \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index 1d71a2f..f979199 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7" + sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 url: "https://pub.dev" source: hosted - version: "67.0.0" + version: "64.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d" + sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" url: "https://pub.dev" source: hosted - version: "6.4.1" + version: "6.2.0" analyzer_plugin: dependency: transitive description: @@ -197,26 +197,26 @@ packages: dependency: "direct dev" description: name: custom_lint - sha256: "7c0aec12df22f9082146c354692056677f1e70bc43471644d1fdb36c6fdda799" + sha256: "445242371d91d2e24bd7b82e3583a2c05610094ba2d0575262484ad889c8f981" url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.2" custom_lint_builder: dependency: transitive description: name: custom_lint_builder - sha256: d7dc41e709dde223806660268678be7993559e523eb3164e2a1425fd6f7615a9 + sha256: "3a14687fc71a5e2124a29722106f7b7e67dd5a6d58e33f2859650b46acff1d54" url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.1" custom_lint_core: dependency: transitive description: name: custom_lint_core - sha256: a85e8f78f4c52f6c63cdaf8c872eb573db0231dcdf3c3a5906d493c1f8bc20e6 + sha256: "1e9128e095ad5e0973469bdaac1ead8bfc86c485954c23cf617299de5e6fa029" url: "https://pub.dev" source: hosted - version: "0.6.3" + version: "0.6.1" dart_style: dependency: transitive description: @@ -355,30 +355,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.9.0" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" - url: "https://pub.dev" - source: hosted - version: "10.0.0" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 - url: "https://pub.dev" - source: hosted - version: "2.0.1" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 - url: "https://pub.dev" - source: hosted - version: "2.0.1" lints: dependency: transitive description: @@ -399,26 +375,26 @@ packages: dependency: transitive description: name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.16+1" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.10.0" mime: dependency: transitive description: @@ -439,10 +415,10 @@ packages: dependency: transitive description: name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.8.3" pool: dependency: transitive description: @@ -668,18 +644,18 @@ packages: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.3.0" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b url: "https://pub.dev" source: hosted - version: "2.4.5" + version: "2.4.0" yaml: dependency: transitive description: @@ -689,5 +665,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.3.0 <4.0.0" + dart: ">=3.2.5 <4.0.0" flutter: ">=3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index ce8bdd9..3f4f2ca 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -50,7 +50,7 @@ dev_dependencies: flutter_lints: ^2.0.0 riverpod_generator: ^2.4.0 build_runner: ^2.4.9 - custom_lint: ^0.6.4 + custom_lint: ^0.6.2 riverpod_lint: ^2.3.10 # For information on the generic Dart part of this file, see the