ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?