第3回まで無料

Swift 入門コース

環境構築から、変数・制御構文・コレクション・オプショナル・関数とクロージャ・struct と class・プロトコル・エラー処理・async/await まで。全50レッスンで「Xcode なしで Swift を読み書きし、JSON を保存するタスク管理ツールを組み立てられる」ところまで進みます。コードと実行結果はすべて Apple Swift 6.3.3 で実際に動かしたものです。

カリキュラム

全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ ブラウザ内で実行できないため、手元の swift コマンド(Xcode Command Line Tools)で試してください。

Chapter 1 — 導入(第1〜8回)

Swift が動く仕組みを押さえ、Xcode なしで自分の手で実行できる状態にします。変数・数値・文字列・標準入力、そしてコンパイルエラーの読み方まで進みます。

Chapter 2 — 制御構文(第9〜15回)

条件分岐とくり返しを扱います。if と switch のパターンマッチ、for-in と range、while、break と continue。最後は数当てゲームを 1 本組み立てます。

Chapter 3 — コレクションとオプショナル(第16〜24回)

Array・Dictionary・Set・タプルで値をまとめ、map / filter / reduce で変換します。Swift の要であるオプショナルと guard もここで扱い、最後に売上データを集計します。

16

配列 Array の基本

同じ型を並べる。文字列と違い添字アクセスできるが、範囲外は実行時クラッシュ。let なら変更できない。

🔒 ベーシック
17

配列のメソッドと並べ替え

-ed 系は新しい値を返し、原形は自分を変える。切り出し系は範囲外でもクラッシュしない。

🔒 ベーシック
18

辞書 Dictionary の基本

キーアクセスは必ずオプショナル。順序は保証されない。dict[key, default: 0] += 1 が集計の定番。

🔒 ベーシック
19

集合 Set

重複を許さず順序を持たない。contains は Array が O(n)、Set が O(1)。重複除去の定番パターン。

🔒 ベーシック
20

タプルと分解

異なる型をまとめられる軽い入れ物。関数から複数の値を返すのが最大の用途。複合キーの並べ替えにも使う。

🔒 ベーシック
21

map・filter・reduce

変換・絞り込み・まとめ上げ。compactMap で nil を捨てる。チェーンで書くと処理が上から読める。

🔒 ベーシック
22

オプショナルの基本

「値が無いかもしれない」を型で表す仕組み。?? と ?. の使い方、そして ! を使ってはいけない理由。

🔒 ベーシック
23

オプショナルバインディングと guard

if let は「成功したときの処理」、guard let は「失敗したら抜ける」。早期リターンで入れ子を消す。

🔒 ベーシック
24

【実践】売上データを集計する

壊れた行を弾いて集計し、3 桁区切りと棒グラフで読ませる。外部データは壊れている前提で書く。

🔒 ベーシック

Chapter 4 — 関数とクロージャ(第25〜32回)

処理に名前を付けて分割し、関数そのものを値として渡せるようにします。引数ラベル・inout・クロージャ・高階関数・ジェネリクス・再帰、そしてリファクタリングまで。

25

関数の基本

Swift は呼び出し側にも引数ラベルを書かせる。失敗しうるならオプショナル、複数返すならタプル。

🔒 ベーシック
26

デフォルト引数と可変長引数

既定値があればオーバーロードを量産せずに済む。可変長引数に配列はそのまま渡せない。

🔒 ベーシック
27

inout と関数型

Swift の標準的な型は値型。渡すとコピーされる。関数は値として変数に入れ、引数に渡し、返せる。

🔒 ベーシック
28

クロージャの基本

名前のない関数。省略の 5 段階と、周囲の変数を覚えるキャプチャ。関数を抜けても状態が生き続ける。

🔒 ベーシック
29

トレイリングクロージャと高階関数

最後の引数がクロージャなら () の外に出せる。map と filter を自作すると標準ライブラリの正体が分かる。

🔒 ベーシック
30

ジェネリクス入門

型を引数にする仕組み。制約が無いと何もできない。Any とは違い、型安全は保たれる。

🔒 ベーシック
31

再帰関数

ベースケースが命。素朴なフィボナッチは呼び出しが爆発する。再帰が効くのは入れ子の構造。

🔒 ベーシック
32

【実践】関数に分けてリファクタリング

動作を変えずに構造を改善する。処理に名前を付け、計算と表示を分け、単体で確認できる形にする。

🔒 ベーシック

Chapter 5 — 構造体とクラス(第33〜38回)

自分でデータ型を作ります。struct と class の違い(値型と参照型)、mutating、イニシャライザ、継承、計算プロパティとオブザーバまで進みます。

Chapter 6 — enum とプロトコル(第39〜42回)

enum の関連値で「あり得る状態」を型にし、protocol と extension で振る舞いを束ねます。最後は struct と protocol で在庫管理を組み立てます。

Chapter 7 — 実践とその先(第43〜50回)

throws・Result・ファイル入出力・Codable・Swift Package Manager・async/await を扱います。最後に JSON を保存するタスク管理ツールを仕上げ、次に学ぶべきことを示します。

43

エラー処理(throws と do-catch)

失敗の理由が要るなら throws。try? と try! の違い、エラーの伝播、defer で後片付けを保証する。

🔒 ベーシック
44

Result 型で成功と失敗を扱う

成功か失敗かを 1 つの値で表す enum。その場で処理するなら throws、持ち回るなら Result。

🔒 ベーシック
45

ファイルの読み書き

String と Data のメソッドで完結する。ファイル操作は必ず失敗しうるので try で受け、defer で閉じる。

🔒 ベーシック
46

JSON を扱う(Codable)

Codable に適合させるだけで変換できる。型が合わない JSON はデコード時に弾かれる。

🔒 ベーシック
47

Swift Package Manager とモジュール

Package.swift が設計図。ターゲット=モジュールで、外から使うものには public が要る。

🔒 ベーシック
48

標準ライブラリ活用(Date・書式・乱数)

Date は表示形式を持たない。日付の計算は Calendar に任せ、数値の書式は NumberFormatter に任せる。

🔒 ベーシック
49

非同期処理 async / await

await は「待つ」ではなく「中断して譲る」。async let で待ち時間が足し算から最大値になる。

🔒 ベーシック
50

【実践】総まとめと次に学ぶべきこと

全 50 回の要点を振り返り、JSON で保存する ToDo アプリを組み立てる。そして次にどこへ進むか。

🔒 ベーシック

全50レッスンを終えたら、次は同じく安全側に倒す設計を持つ Rust 入門コース や、型を武器にする TypeScript 入門コース へ。メンバーシップで全コースが解放されます。