Swift に触れてみよう
Swift で書かれたコードが iPhone のアプリとして動く体験から始めましょう。 「▶ 再コンパイル」ボタンで画面に文字を出し、ファイルの骨格とコメントの書き方を知ります。
- 基本構造
- Text
- VStack
- コメント
学習内容をみる (5演習)
変数と定数で値を管理しよう プラス
値に名前を付ける「変数」と「定数」、型推論と型注釈、値の更新、文字列補間について学びましょう!
- 変数
- 定数
- 型
- 文字列補間
数値と計算をしよう プラス
Int と Double を使った計算の方法を学びましょう。 四則演算や整数の割り算、型変換を使って割り勘計算ができるようになります。
- Int
- Double
- 型変換
文字列を扱おう プラス
文字列の連結・文字数・比較と、始まりを調べて切り出す方法を学びましょう。 名前を入れた文章や、商品コードからカテゴリ名を取り出す処理を作れるようになります。
- 文字列
- count
- 比較
- hasPrefix
条件分岐で表示を変えよう プラス
if 文と switch 文で条件によって表示を変える方法を学びましょう。 Bool 型と論理演算子も身につけます。
- 条件分岐
- Bool型
- switch
繰り返し処理をしよう プラス
for 文と while 文で処理を繰り返す方法を学びましょう。 break と continue を使いこなし、1〜100の合計が一瞬で計算できます。
- 繰り返し処理
- for
- while
配列でデータをまとめよう プラス
配列で複数の値をまとめて管理する方法を学びましょう。 要素の追加・削除・繰り返し処理で、やることリストのデータが作れます。
- 配列
- append
- 全要素の処理
Optional を理解しよう プラス
「値が無いかもしれない」を安全に扱う Optional を学びましょう。 if let・??・guard let で、未設定の値を安全にほどけるようになります。
- Optional
- if let
- ??
- ?.
- guard let
辞書でデータを管理しよう プラス
キーと値のペアでデータを管理する辞書を学びましょう。 値が Optional になる理由と、設定項目の管理方法を身につけます。
- 辞書
- キーと値
関数で処理をまとめよう プラス
処理に名前を付けて何度でも使える関数を学びましょう。 引数・引数ラベル・デフォルト引数・戻り値と、タプルで2つの値を返す方法を身につけます。
- 関数
- 引数
- 戻り値
- タプル
構造体でデータを作ろう プラス
関連するデータをまとめる構造体を学びましょう。 既定値と自動の init・メソッド・mutating・static を使って、ToDo の1件を型として表せるようになります。
- 構造体
- メソッド
- 値型
- static
enum で状態を表そう プラス
限られた状態を安全に表す enum を学びましょう。 switch との組み合わせ・rawValue・CaseIterable を身につけます。
- enum
- switch
- rawValue
- CaseIterable
クロージャを使いこなそう プラス
処理そのものを値として扱うクロージャを学びましょう。 トレイリングクロージャと map・filter・sorted・compactMap を身につけます。あとで学ぶ SwiftUI の Button も、この書き方を使います。
- クロージャ
- map
- filter
- compactMap
コレクション操作を極めよう プラス
reduce・Set・検索・モデルの並び替え・ランダム・zip と enumerated など、実務でよく使うコレクションの操作を学びましょう。
- reduce
- Set
- 標準API
- zip
道場: カフェの注文集計 道場 プラス
ここまでに学んだ Swift の書き方を総動員して、カフェのレジの中身を作りましょう。 メニューのデータ・お会計・売上の集計・レシートを、要件を読んで自分で組み立てます。
- 総合演習
- struct
- enum
- タプル
- 辞書
- 道場
レイアウトを組もう プラス
VStack・HStack・ZStack と Spacer で画面を自由に組む方法を学びましょう。 padding・frame・modifier の順序や色・Shape も身につけます。
- レイアウト
- modifier
- 色
@State で画面を動かそう プラス
@State、Button、Toggle、Picker を使って、操作で変わる画面を作りましょう!
- State
- Button
- Toggle
- Picker
入力と View の部品化 プラス
Form の中の TextField で入力を受け取り、リストに追加する方法を学びましょう。 View の切り出しと @Binding で、部品化も身につけます。
- TextField
- @Binding
- 部品化
実務レベルまで プロ
List で一覧を出そう プロ
Identifiable と UUID で身元を持たせたデータを、List で一覧にする方法を学びましょう。 払って削除・空のときの案内・Section での区切りも身につけます。
- List
- Identifiable
- onDelete
- Section
画面遷移とモーダル プロ
NavigationStack と値で進む NavigationLink で画面遷移を、sheet と alert でモーダルを学びましょう。 詳細画面と追加画面のある本物のアプリが作れます。
- 画面遷移
- sheet
- alert
保存とアニメーション プロ
@AppStorage と Codable で、アプリを閉じても残るデータを作りましょう。 withAnimation でなめらかな動きを付け、システムの色で配色を整えます。
- @AppStorage
- Codable
- withAnimation
- 色
ToDo アプリを完成させよう プロ
これまで学んだすべてを組み合わせて、ToDo アプリを完成させましょう。 一覧・完了の切り替え・詳細・追加・保存・削除までを自分のアプリに仕上げます。
- ToDoアプリ
- 総合演習
道場: クイズアプリを作ろう 道場 プロ
これまでの全部を組み合わせて、3択クイズのアプリを要件だけを見て組み立てましょう。 モデル・状態・画面の切り替え・保存の総合演習です。
- 総合演習
- クイズアプリ
- 道場
クラスと @Observable プロ
struct(値型)と class(参照型)の違いを学び、共有されるデータの仕組みを理解しましょう。
最後は @Observable のストアで、画面のデータと操作を1か所にまとめます。
- class
- 参照型
- 継承
- @Observable
プロトコルと拡張 プロ
protocol で約束を決め、extension で機能を足す方法を学びましょう。
struct ContentView: View の View の正体も分かります。
- protocol
- extension
- Hashable
- Identifiable
ジェネリクスの世界をのぞこう プロ
[Int] の < > や some View の正体を理解し、自分でもジェネリックな関数や型を書いてみましょう。
- ジェネリクス
- some
- Numeric
- 型パラメータ
enum にデータを持たせよう プロ
enum の case に値を添える「連結値」を学びましょう。 画面の状態を表す状態機械や、Optional の正体まで理解を深めます。
- enum
- 連結値
- if case
- Optional
- 状態機械
エラーを扱おう プロ
失敗するかもしれない処理を throws で表し、do・try・catch で受け止めましょう。
エラーの種類を enum で作り、失敗に応じた案内ができるようになります。
- Error
- throws
- do-catch
- try?
フォームとバリデーション プロ
Form と Section で入力画面を組み、未入力や形式の誤りをその場で知らせる会員登録フォームを作りましょう。 throws のチェック・項目のそばのエラー・送れるときだけ押せるボタンが身につきます。
- Form
- Section
- バリデーション
- throws
- disabled
画面をまたいだデータ プロ
一覧・詳細・編集の画面のあいだでデータを渡し、どの画面で書き換えても同じデータがそろって変わるアプリを作りましょう。 値での遷移・行ごとの Binding・下書き・@Observable のストアを .environment で配る形が身につきます。
- navigationDestination
- @Binding
- ForEach($items)
- @Environment
- @Bindable
テストを書こう プロ
書いたコードが正しく動くかを、Xcode と同じ Swift Testing で確かめましょう。 @Test と #expect、準備・実行・検証の形、失敗の読み方、境界値のテストが身につきます。
- Swift Testing
- @Test
- #expect
- 境界値
アプリを磨こう プロ
図形・シート・ダイアログ・カード・タブを使い分けて、画面を完成度の高いものにしましょう。
- Shape
- overlay
- presentationDetents
- confirmationDialog
- TabView
- toolbar
端末の機能とセンサー プロ
クリップボード・触覚・端末の情報・傾き・シェイクを、本物の UIKit と CoreMotion の API でアプリに組み込みましょう。
- UIPasteboard
- UIFeedbackGenerator
- UIDevice
- CMMotionManager
- motionEnded
道場: 家計簿アプリ「おさいふメモ」 道場 プロ
要件だけを手がかりに、記録・残高・内訳・絞り込み・保存・グラフを1つずつ足して、List・@Observable・Codable を使った家計簿アプリを完成させましょう。
- struct
- enum
- @Observable
- Form
- throws
- reduce
- Picker
- Codable
- UserDefaults
- overlay
- onDelete
- navigationDestination
道場: ダンジョン探検記 道場 プロ
勇者・地図・戦い・持ち物・鍵・保存・テストを1つずつ足して、ダンジョン探検ゲームを SwiftUI の iPhone アプリとして組み立てましょう。詰まったら AI チャットに相談でき、できたら AI がコードをレビューします。
- struct
- enum
- throws
- List
- sheet
- fullScreenCover
- @Observable
- Codable
- Swift Testing
よくある質問
- プログラミング未経験でも受講できますか?
- はい。本コースは変数や定数といったプログラミングの基礎から順番に解説しているため、前提知識は必要ありません。ブラウザの中のiPhoneシミュレーターで画面が動くのを見ながら進められます。
- このコースを修了すると何ができるようになりますか?
- Swiftの基礎文法とSwiftUIの主要な部品を使って、ToDo・クイズ・家計簿アプリを自分の手で完成させられます。最後の道場では、ダンジョン探検ゲームをSwiftUIのiPhoneアプリとして一から組み立てます。
- XcodeやMacは必要ですか?
- 不要です。ブラウザの中でSwiftコードがコンパイルされ、iPhoneシミュレーター上でアプリが動くので、インストールの作業なしに書いて実行できます。このコースで書くコードは、そのままXcodeでもコンパイルできます。