Contents
開発環境の構築
macOS Ventura(Apple Silicon) と Xcode 15 のインストール
| ポイント | Apple Silicon 搭載 Mac は CPU が ARM アーキテクチャなので、シミュレータやコンパイルが従来比で 2〜3 倍高速になります。Xcode 15 はこの環境に最適化されており、最新の Swift コンパイラ・SwiftUI フレームワークを標準装備しています。 |
|---|---|
手順(2025 年時点)
- App Store を開く → 「Xcode」で検索 → 「入手」→ ダウンロードが完了したら「Launch」
- Xcode が起動したら、メニューバー Xcode > Preferences(※バージョンによっては Settings と表示されることがあります)を開く
- 左タブの Locations を選択し、Command Line Tools が
Xcode 15.xに設定されていることを確認
⚠️ 注意
Xcode の UI 表記はバージョンアップに伴い変わる可能性があります。たとえば macOS Ventura(Xcode 14 系)では「Preferences > Locations」、Xcode 15 以降では「Settings > Locations」になることがあります。最新の手順は Apple の公式リリースノートや Xcode Release Notes を随時確認してください。
Apple ID で無料デベロッパー登録
| ポイント | Apple ID があれば、年会費 0 円で実機ビルドが可能です。 |
|---|---|
- システム設定 > Apple ID から iCloud にサインイン
- Xcode を起動し Xcode > Preferences > Accounts → 「+」ボタン → Apple ID を選択してサインイン
- サインインが完了すると、無料の「Personal Team」が自動で作成されます。これだけでプロビジョニングプロファイルが生成され、実機に直接インストールできるようになります。
Swift の基礎文法
変数・定数と型推論
|
1 2 3 4 |
let name = "Taro" // String が自動推論 var age = 28 // Int が自動推論 let height: Double = 172.5 // 型を明示的に書くことも可能 |
letは「変更不可(定数)」。varは「変更可(変数)」。
型推論によりコードがシンプルになるため、初心者はまず let/var の使い分けだけ覚えておけば十分です。
関数定義と呼び出し
|
1 2 3 4 5 |
func greet(_ person: String) -> String { return "Hello, \(person)!" } let message = greet("World") // → "Hello, World!" |
- 引数名を省略したいときは
_を使う。 - 戻り値の型が明示されているので、呼び出し側で結果がすぐに分かります。
Optional と安全なアンラップ
Optional は「値が ある か ない」ことを表現する Swift の根幹機能です。nil を許容する型は T?(例: String?)で記述します。
正しいアンラップ例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var optionalName: String? = "Anna" if let name = optionalName { print("Name is \(name)") // 安全に取り出せたときだけ実行 } // Guard を使った早期リターンの例(nil だったら処理を抜ける) func showAge(from string: String?) { guard let str = string, let age = Int(str) else { print("年齢情報が取得できません") return } print("年齢は \(age) 歳です") } showAge(from: "28") // → 年齢は 28 歳です showAge(from: nil) // → 年齢情報が取得できません |
if let:条件が成立したときだけスコープ内で値を使える。guard let:条件に合わなければ早期リターン(もしくはthrow)し、以降のコードではアンラップされた変数が確実に存在するとみなせる。
Xcode でプロジェクト作成 & SwiftUI 入門
新規 iOS アプリテンプレート(App, SwiftUI)の選択
- File > New > Project
- iOS > App → Interface は SwiftUI, Life Cycle は SwiftUI App を選択
- 必要項目(Product Name、Team、Bundle Identifier)を入力し Create
このテンプレートにより以下が自動生成されます。
@mainが付いたエントリーポイント (Appプロトコル準拠)- デフォルトの
ContentView.swift(Viewプロトコル実装)
@State とデータバインディングの基本
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
struct ContentView: View { @State private var counter = 0 var body: some View { VStack { Text("Count: \(counter)") .font(.title) Button("+1") { counter += 1 // 値が変わると自動的に再描画 } .padding() } } } |
@Stateは ローカルな UI 状態 を保持し、変更時にビュー全体を再評価します。- SwiftUI の「宣言的」スタイルでは、状態と UI が 1 対 1 に結びつくためバグが減ります。
ハンズオン:Hello, World アプリを実機で動かす
完成コード(約30行)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import SwiftUI @main struct HelloWorldApp: App { var body: some Scene { WindowGroup { ContentView() } } } struct ContentView: View { @State private var message = "Hello, World!" var body: some View { VStack(spacing: 20) { Text(message) .font(.largeTitle) Button("Change") { message = "Welcome to SwiftUI!" } .padding() .background(Color.blue.opacity(0.2)) .cornerRadius(8) } } } |
@Stateのmessageがボタンタップで書き換わると、画面が即座に更新されます。- Canvas(右側のプレビュー)を開くと、コードを書きながら UI がリアルタイムで確認できます。
Canvas とライブプレビュー活用法
ContentView.swiftを開いた状態でエディタ上部の Resume ボタン → Canvas が描画される@Stateの値を変えると、Canvas も自動的に再描画されます(「Auto‑Refresh」設定がオンの場合)
Tip:プレビューが固まったら Option + Command + P(Resume)で手動リフレッシュすると速く復活します。
シミュレータと実機ビルド手順
| 手順 | 説明 |
|---|---|
| 1. デバイス選択 | Xcode のツールバー左端にあるデバイスリストから iPhone 15 (Simulator) または接続した iPhone を選ぶ |
| 2. ビルド & Run | ⌘R キーでビルド。シミュレータなら即座に起動、実機の場合は自動的にプロビジョニングが行われインストールされる |
| 3. 実機テスト | アプリが起動したらボタンをタップし、メッセージが変わることを確認。実際のタッチ感覚や画面遷移速度が体感できる |
注意:初回の実機ビルドは「信頼されたデベロッパー」設定が必要です。iPhone の 設定 > 一般 > デバイス管理 で自分の Apple ID を選択し「この開発者を信頼」をタップしてください。
デバッグ基礎と次に学ぶべきステップ
コンソール出力とブレークポイント
|
1 2 3 4 |
Button("Debug") { print("Button tapped, counter = \(counter)") } |
print()はコンソールへ文字列を出力し、実行時の状態把握に便利です。- ブレークポイントはエディタ左側のガター(行番号領域)をクリックするだけで設定できます。停止したら Variables View で
@Stateの現在値が確認可能です。
次の学習トピック案内
| トピック | 学べること | 推奨教材 |
|---|---|---|
| NavigationStack と画面遷移 | 複数画面間のデータ受け渡し、スタック管理 | Apple Developer – SwiftUI Navigation ガイド |
| List & ForEach | 動的データの表示、Identifiable プロトコル活用 |
Qiita 「SwiftUI で List を使う」記事 |
| URLSession + Codable | ネットワーク通信・非同期処理・JSON パース | Apple の Using Combine チュートリアル |
| App Store 配布フロー | TestFlight、App Store Connect、審査プロセス | Official App Distribution Guide |
ポイント:ここまで学んだ基礎は「Hello, World」アプリの土台です。次はデータ駆動 UI(List)や外部 API 連携に挑戦すると、実務レベルのアプリが作れるようになります。
トラブルシューティング & 参考リンク
よくあるエラーと対処法
| エラー | 原因例 | 解決策 |
|---|---|---|
Command Line Tools が未設定 |
Xcode の Preferences → Locations に何も選択されていない | Xcode 15.x をプルダウンから選ぶ |
| 実機で「開発元を信頼できません」 | 無料デベロッパー登録後、初回インストール時に未承認 | iPhone の設定 → 一般 → デバイス管理 → Apple ID を選択して「信頼」 |
guard let がコンパイルエラー |
Int(nil) のような不正なコード |
guard let str = optionalString, let number = Int(str) else { … } の形に書き換える |
| Canvas が真っ白になる | Xcode のキャッシュが壊れた | Shift + Option + Command + K(Clean Build Folder) → 再度 Resume |
公式・有用リンク
- Apple Developer – Xcode Release Notes
https://developer.apple.com/documentation/xcode-release-notes/ - Swift Documentation (Swift 5.9)
https://docs.swift.org/swift-book/ - SwiftUI Tutorials(初心者向け)
https://developer.apple.com/tutorials/swiftui - 無料デベロッパープログラム登録手順
https://developer.apple.com/programs/enroll/
まとめ
| 項目 | 内容 |
|---|---|
| 開発環境 | macOS Ventura + Apple Silicon の Mac に Xcode 15(最新)をインストールし、Command Line Tools を設定。Xcode の UI 表記はバージョンごとに変わるので公式ドキュメントで確認すること。 |
| Apple ID 登録 | 無料デベロッパー登録だけで実機ビルドが可能。プロファイルは自動生成され、追加費用は不要です。 |
| Swift 基礎 | let/var の使い分け、関数定義、Optional の安全なアンラップ(if let / guard let)をマスターすれば、ほぼ全てのコードがコンパイルエラーなしで書けます。 |
| Xcode + SwiftUI | 「App (SwiftUI)」テンプレートでプロジェクト作成 → @State で UI をリアクティブに制御。Canvas で即時プレビュー、シミュレータと実機の三段階テストで完成度を確認。 |
| ハンズオン | 約30行のコードだけで「Hello, World」アプリが完成し、ボタンタップでメッセージが変わります。実機で動作させることでデプロイフローも体感できます。 |
| 次のステップ | NavigationStack、List、ネットワーク通信(URLSession + Codable)、App Store 配布と順に学んでいくと、実務レベルのアプリへスムーズに移行できます。 |
この手順を 3 日以内にすべて終えることができれば、iOS アプリ開発の「土台」は確実に固まります。さあ、Xcode を立ち上げて自分だけのアプリを作り始めましょう 🚀