【2026年版】Swiftの始め方 — Xcodeインストールから最初のiOSアプリまで完全ガイド
- 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 で渡すイメージだね。
開発するにはどんな環境が必要なの?
インストールできた!まず何を試せばいい?
XcodeでNew Project → App を作って、次にPlaygroundも試してみて!Playgroundは1行ずつリアルタイムに結果が見える便利なツールで、基本文法の練習に最適だよ。`let name = "ひよこ"` と打つだけで右側に結果が表示されるんだ。
letとvarの使い分けって何?
オプショナルって聞いたことあるけど難しそう…
オプショナルはnullかもしれない値を表す仕組みだよ。`var name: String? = nil` と書くと「文字列かもしれないしnilかもしれない」という型になる。使うときは `if let n = name { }` や `guard let name = name else { return }` で安全に取り出すんだ。
プレビュー機能って便利そう!どうやって使うの?
コードの下に `#Preview { ContentView() }` と書くだけで、Xcodeの右側にiPhoneの画面プレビューが表示されるよ。コードを変更すると即座に反映されるから、実機やシミュレータなしでデザインを確認できてすごく開発が早くなるんだ。
シミュレータって実際のiPhoneがなくても動くの?
App Storeでアプリを公開するにはどうすればいいの?