ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|

Swift とは
Swift(スウィフト)は Apple が 2014 年の WWDC で発表したプログラミング言語です。iOS / iPadOS / macOS / watchOS / tvOS、さらに Linux でも動作し、現在の iPhone アプリ開発の標準言語として広く使われています。
従来 Apple 製 OS のアプリ開発に使われていた Objective-C / Objective-C++ / C 言語と共存できるように設計されており、既存資産を活かしながら徐々に Swift へ移行できます。
主な特徴
| 項目 | 内容 |
|---|---|
| パラダイム | マルチパラダイム(オブジェクト指向 / プロトコル指向 / 関数型 / 命令型) |
| コンパイラ | LLVM ベース。AOT コンパイルで高速 |
| 型システム | 静的型付け + 強力な型推論 |
| null 安全 | オプショナル型(String?)で「値がないかもしれない」を型で表現 |
| メモリ管理 | ARC(自動参照カウント) |
| 対話実行 | Xcode の Playgrounds、ターミナルの swift REPL でライブ実行 |
| 主要 UI | UIKit / AppKit に加え、宣言的 UI の SwiftUI |
| 主用途 | iOS / macOS / watchOS / tvOS アプリ、サーバサイド(Vapor 等) |
Hello, World
// 最短バージョン
print("Hello, World!")
拡張子は .swift。Playground にこの 1 行を貼り付ければそのまま動きます。
変数・定数
let name = "Taro" // 定数(再代入不可)
var age = 20 // 変数
age += 1
// 型を明示することも可能
let pi: Double = 3.14
原則 let(定数)を使い、必要なときだけ var(変数)にするのが Swift スタイルです。
オプショナル型 と guard / if let
Swift の特徴的な機能が オプショナル型です。値が「あるかもしれないし、無いかもしれない」を型で表現することで、null 安全を実現します。
let raw: String? = readLine() // String? は nil の可能性あり
// if let で安全に開封
if let s = raw {
print("入力: \(s)")
} else {
print("入力なし")
}
// guard で早期 return
func greet(_ name: String?) {
guard let n = name else {
print("名前がありません")
return
}
print("こんにちは \(n) さん")
}
構造体(値型)とクラス(参照型)
// 値型: コピーされる
struct Point {
var x: Int
var y: Int
}
// 参照型: 同じインスタンスを共有
class Counter {
var count = 0
func incr() { count += 1 }
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // コピー
p2.x = 99
print(p1.x, p2.x) // 1 99
let c1 = Counter()
let c2 = c1 // 同じ参照
c2.incr()
print(c1.count, c2.count) // 1 1
「迷ったらまず struct」が Swift の基本方針です。アイデンティティ(同一性)が必要な場合だけ class を選びます。
SwiftUI で UI を書く
SwiftUI は宣言的に UI を書ける現代の標準フレームワークです。
import SwiftUI
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack(spacing: 16) {
Text("カウント: \(count)")
.font(.title)
Button("+1") {
count += 1
}
}
.padding()
}
}
Objective-C との違い
| 観点 | Objective-C | Swift |
|---|---|---|
| 文法 | C 言語ベース + 角括弧メッセージ式 | モダン構文 / セミコロン省略可 |
| null 安全 | nil でメッセージ送信可だが落とし穴多い | オプショナル型で型レベルに保護 |
| ジェネリクス | 後付け(軽量ジェネリクス) | 言語に組み込み |
| パフォーマンス | 動的ディスパッチ中心 | 静的ディスパッチ可能で高速 |
| 主な UI | UIKit / AppKit | UIKit / AppKit / SwiftUI |
学習ロードマップ
- Xcode をインストールして Playground で文法を体験する
- 変数・制御構文・関数・オプショナル・構造体・クラスの基本を写経する
- UIKit のサンプル iPhone アプリ(カウンタ / TODO リスト等)を 1 本動かす
- SwiftUI に切り替えて宣言的 UI を学ぶ
- Combine / async-await で非同期処理、Core Data や SwiftData で永続化を学ぶ
- App Store へ実機リリースしてアプリ配布フロー全体を体験する
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?