Menu
Coddy logo textTech

プロジェクトの概要

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 33/56。

小さな習慣トラッカーを作成します。状態は、習慣の名前をその週の完了した日の履歴にマッピングする単一の辞書に保持されます:

var habits: [String: [Int]] = [
    "read": [1, 3, 5],          // 月、水、金に完了
    "workout": [2, 4]           // 火、木に完了
]

日付は月曜日から日曜日までを整数 1...7 で表します。これからの4つのレッスンで、機能を1つずつ追加していきます:

  • 習慣を追加し、完了のマークを付ける
  • 1週間の継続日数(ストリーク)を計算する
  • 週間のグリッドを表示する
  • 2つの週を比較する

各レッスンは独立しているため、すべてのファイルの先頭でディクショナリを再宣言することになります。ステートの構造は同じなので、作成したメソッドは他のレッスンでもそのまま活用できます。

challenge icon

チャレンジ

初心者

プロジェクトを開始するために、データセットアップのコードを記述します:

  1. 空の habits ディクショナリ ([String: [Int]]) を初期化します
  2. 習慣の数を出力します
  3. ディクショナリが空かどうかを出力します

期待される出力は以下の通りです:

0
true

チートシート

ハビットトラッカー(習慣追跡)は、習慣の名前を完了した日の番号(月〜日の1...7)の配列にマッピングする辞書としてモデル化できます:

var habits: [String: [Int]] = [
    "read": [1, 3, 5],    // 月、水、金に実施
    "workout": [2, 4]     // 火、木に実施
]

便利な辞書のプロパティ:

habits.count    // エントリ数
habits.isEmpty  // エントリがない場合はtrue

自分で試してみよう

// TODO: 空の [String: [Int]] を宣言し、count と isEmpty を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン