Shuichi-Yのブログ

Shuichi-Yのブログ

PR

×

Profile

Shuichi-Y

Shuichi-Y

Calendar

Keyword Search

▼キーワード検索

2024.01.19
XML
カテゴリ: Flutter実践入門…


6. 機能を追加する
アプリは機能し、ときには興味深い単語ペアを生成します。しかし、[Next] をクリックすると、単語ペアは永遠に失われてしまいます。「Like」ボタンのような、最適な提案を「記憶」する方法があるとよいでしょう。
ビジネス ロジックを追加する
MyAppState までスクロールして、次のコードを追加します。

  // ↓ Add the code below.
  var favorites = <WordPair>[];
  void toggleFavorite() {
    if (favorites.contains(current)) {
      favorites.remove(current);
    } else {
      favorites.add(current);
    }
    notifyListeners();
  }
favorites に MyAppState という新規のプロパティを追加しました。このプロパティは空のリスト [] で初期化されています。
また、ジェネリクスを使って、このリストが <WordPair>[] のみを含むように指定しました。これにより、WordPair 以外を追加しようとすると、Dart によりアプリの実行すら拒否されるようになります。そうすると、favorites リストに望ましくないオブジェクト(null など)が隠れていないことがわかるので、それを安心して使うことができます。
注: Dart には List([] で表記)以外にもコレクション型があります。お気に入りのコレクションには Set({} で表記)のほうが理にかなっているとも言えます。この Codelab では、わかりやすくするためにリストの利用を続けます。しかし必要であれば Set を使っても構いません。コードはさほど変わりません。
新しいメソッド toggleFavorite() の追加も行いました。このメソッドは、お気に入りのリストから現在の単語ペアを取り除くか(すでにそこにある場合)、追加します(まだそこにない場合)。どちらの場合も、その後でこのコードから notifyListeners(); が呼び出されます。
機能の追加は、思いついて追加したのかな… 最初から考えられていてアプリの作り方として追加になったのかな… 自分では無理ですね…





お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.01.19 19:00:11 コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: