【2026年版】Swiftの始め方 — Xcodeインストールから最初のiOSアプリまで完全ガイド


SwiftUI — コードと画面をリアルタイムで確認 Xcodeエディタ struct ContentView: View { @State var count = 0 var body: some View { VStack { Text("count:\(count)") Button("タップ") { count += 1 } } } #Preview { ContentView() } インスタントプレビュー カウント: 0 タップ! ⚡ リアルタイム更新 iOSシミュレータ カウント: 3 タップ! 実機同等で動作確認 ① コードを書く ② 即座にプレビュー ③ シミュレータ確認 macOS + Xcode 15以降で利用可能
SwiftUI — コードと画面をリアルタイムで確認しながら開発できる
🎚 難易度 ★☆☆ 初心者向け
⏱ 学習時間の目安 読むだけ10分、最初のiOSアプリまで30〜60分(macOS必須)
📚 前提知識 macOSが必要(WindowsではSwift/iOS開発不可)・プログラミングの基礎知識(なくてもOK)
✅ このガイドで学べること
  • XcodeのインストールとSwiftプロジェクト作成
  • 基本文法(オプショナル・クロージャ・プロトコル)
  • SwiftUIで最初のUIを作る
  • iOSシミュレータでアプリを実行する

コマンド早見表

// 定数と変数
let name = "ひよこ"  // 定数(不変)
var count = 0         // 変数(可変)

// オプショナル
var nickname: String? = nil
if let n = nickname {
    print("ニックネーム: \(n)")
} else {
    print("ニックネームなし")
}

// guard let(早期リターン)
func greet(_ name: String?) {
    guard let name = name else { return }
    print("こんにちは、\(name)さん!")
}

// SwiftUI最小構成
import SwiftUI
struct ContentView: View {
    @State private var count = 0
    var body: some View {
        VStack {
            Text("カウント: \(count)")
                .font(.largeTitle)
            Button("タップ!") {
                count += 1
            }
            .buttonStyle(.borderedProminent)
        }
    }
}

// #Previewマクロ(Xcode 15以降)
#Preview {
    ContentView()
}
// async/await による非同期処理
func fetchUser(id: Int) async throws -> User {
    let url = URL(string: "https://api.example.com/users/\(id)")!
    let (data, _) = try await URLSession.shared.data(from: url)
    return try JSONDecoder().decode(User.self, from: data)
}

// 呼び出し
Task {
    let user = try await fetchUser(id: 1)
    print(user.name)
}

よくある詰まりポイント

Q. WindowsでSwift開発はできないの? iOS/macOSアプリ開発はmacOS必須だよ。ただしSwift言語自体はオープンソースで、LinuxやWindowsでもSwiftのコードを動かすことはできる。SwiftをサーバーサイドのWebフレームワーク(Vapor)として使う場合はLinuxサーバーでも動くよ。iOS開発だけはAppleのエコシステム内に限定されているんだ。

Q. Objective-Cのコードと共存できるの? できるよ。Bridging Headerという仕組みを使うと、既存のObjective-CコードをSwiftから呼び出せるし、逆もOKだよ。大規模な既存iOSアプリでは、古いObjective-Cのコードを残しながらSwiftを少しずつ導入しているケースが多い。XcodeがBridging Headerの生成を自動でサポートしているよ。

Q. @State@Binding はどう使い分けるの? @State は「このビューが持つ状態」を管理するプロパティラッパーで、変更されると自動的にビューが再描画されるよ。@Binding は「親から渡された状態への参照」で、子ビューが親の状態を変更できるようにするものだよ。親ビューで @State var count = 0 を持ち、子ビューに @Binding var count: Int で渡すイメージだね。

ひよこ ひよこ

SwiftってAppleが作った言語なの?かっこいい名前だけど何者なの?

ペンギン先生 ペンギン先生

そうだよ。Appleが2014年に発表したプログラミング言語で、それまでのObjective-Cを置き換えることを目的に作られたんだ。iOSやmacOS、watchOS向けのアプリ開発に使われていて、モダンで読みやすい文法が特徴だよ。

ひよこ ひよこ

開発するにはどんな環境が必要なの?

ペンギン先生 ペンギン先生

macOSのパソコンが必須だよ。App StoreからXcodeインストールするだけで環境が整う。XcodeApple公式のIDEで、コードエディタ・シミュレータ・デバッガが全部入っているんだ。注意点はXcodeが約10GBと大きいこと。ダウンロードに少し時間がかかるよ。

ひよこ ひよこ

インストールできた!まず何を試せばいい?

ペンギン先生 ペンギン先生

XcodeでNew Project → App を作って、次にPlaygroundも試してみて!Playgroundは1行ずつリアルタイムに結果が見える便利なツールで、基本文法の練習に最適だよ。`let name = "ひよこ"` と打つだけで右側に結果が表示されるんだ。

ひよこ ひよこ

letとvarの使い分けって何?

ペンギン先生 ペンギン先生

Swiftでは `let` が定数(変更不可)、`var` が変数(変更可能)だよ。型推論があるから `let name = "ひよこ"` と書けばStringと自動認識されるんだ。Swiftは安全性を重視していて、変えないものはletで宣言するのが推奨されているよ。

ひよこ ひよこ

オプショナルって聞いたことあるけど難しそう…

ペンギン先生 ペンギン先生

オプショナルはnullかもしれない値を表す仕組みだよ。`var name: String? = nil` と書くと「文字列かもしれないしnilかもしれない」という型になる。使うときは `if let n = name { }` や `guard let name = name else { return }` で安全に取り出すんだ。

ひよこ ひよこ

SwiftUIってよく聞くけど、普通のUIとは何が違うの?

ペンギン先生 ペンギン先生

SwiftUIAppleが2019年に発表した新しいUIフレームワークだよ。コードでUIを宣言的に書けて、`@State` で状態を管理すると画面が自動更新される。以前のUIKitと比べてコード量が大幅に減って、プレビューでリアルタイムに確認できるのが最大の特徴だよ。ぜひ試してみて!

ひよこ ひよこ

プレビュー機能って便利そう!どうやって使うの?

ペンギン先生 ペンギン先生

コードの下に `#Preview { ContentView() }` と書くだけで、Xcodeの右側にiPhoneの画面プレビューが表示されるよ。コードを変更すると即座に反映されるから、実機やシミュレータなしでデザインを確認できてすごく開発が早くなるんだ。

ひよこ ひよこ

シミュレータって実際のiPhoneがなくても動くの?

ペンギン先生 ペンギン先生

そうだよ。XcodeにはiPhone・iPad・Apple Watchなどのシミュレータが内蔵されていて、実機なしで動作確認できるんだ。ただしカメラやGPSなど一部ハードウェア機能は実機でしかテストできないので、最終的には実機での確認も必要になるよ。

ひよこ ひよこ

非同期処理ってどうやって書くの?コールバック地獄は嫌だな…

ペンギン先生 ペンギン先生

SwiftSwift 5.5からasync/awaitが使えるようになったよ。`async func fetchData() throws -> Data` と宣言して、呼び出し側は `let data = try await fetchData()` と書くだけ。コールバックを重ねる必要がなくて、同期処理と同じような見た目で非同期処理が書けるんだ。

ひよこ ひよこ

App Storeでアプリを公開するにはどうすればいいの?

ペンギン先生 ペンギン先生

年額99ドルのApple Developer Programへの登録が必要だよ。登録するとXcodeからApp Store Connectにアップロードして審査を申請できる。Appleの審査は数日かかることがあって、ガイドラインに従った設計が必要だよ。まずは審査なしで実機インストールできる「TestFlight」で内部テストから始めるといいね。

ひよこ ひよこ

FlutterSwift、どっちを選べばいいの?

ペンギン先生 ペンギン先生

iOSだけで十分ならSwift(ネイティブで最高のパフォーマンス・Apple最新機能にすぐ対応)、iOSAndroidの両方を一つのコードで作りたいならFlutterがおすすめだよ。仕事でiOSアプリを本格開発するならSwift一択、個人開発でクロスプラットフォームにしたいならFlutterが多い選択肢だね。

次に学ぶなら