Flutter + Riverpod 1.0.3 で Hello World 苦戦した

環境構築に苦戦した。

VSCode からプロジェクトを作るとエラーに遭遇、CLI からプロジェクトを作成した。

概要

Riverpod のチュートリアルをやる。

環境

  • Dart v2.15.1
  • Flutter v2.8.1
  • riverpod v1.0.3
  • flutter_riverpod v1.0.3

実践

CLI

Flutter プロジェクト作成

flutter create hello_world
cd hello_world

pubsec.yaml を編集し、「flutter_riverpod: ^1.0.3」を追加。

vi pubspec.yaml
environment:
  sdk: ">=2.12.0 <3.0.0"
  flutter: ">=2.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_riverpod: ^1.0.3

ライブラリを追加。

flutter pub get

main.dart を公式サンプルに修正。

vi lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.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.
final helloWorldProvider = Provider((_) => '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: Text('Example')),
        body: Center(
          child: Text(value),
        ),
      ),
    );
  }
}

アプリを実行。

flutter run

以下のように Hello World が出力。

コードはこちら

エラー

Because riverpod depends on flutter_riverpod ^1.0.3 which depends on riverpod 1.0.3, riverpod 1.0.3 is required.So, because riverpod is 1.0.0+1, version solving failed.pub get failed (1; So, because riverpod is 1.0.0+1, version solving failed.)

VSCode で Flutter プロジェクトを作成するとエラーになる。。

上記の CLI からプロジェクトを作成後( flutter create hello_world )に、VSCode で読み込むのがいいかと。

参考

Getting started

コメント

タイトルとURLをコピーしました