Swift
概要
Swift は、iOS、iPadOS、macOS、watchOS、tvOS——そしてますますサーバーサイドやクロスプラットフォームのコード——でアプリを構築するための、Apple のモダンでオープンソースなプログラミング言語です。Apple 開発のデフォルトとして Objective-C を置き換え、クリーンで表現力豊かな構文と、強力な静的型付け・メモリ安全性を兼ね備えています。Swift は Xcode(またはオープンソースのツールチェーンを備えた任意のエディタ)で書き、App Store にリリースします。
強み
- 設計から安全: optional によって「値がない」ことが明示され、コンパイラがクラッシュの多くを未然に捕捉する。
- 高速 — ネイティブの機械語にコンパイルされ、C に近い性能を持つ。
- 型推論、クロージャ、ジェネリクス、値型を備えた、表現力豊かで読みやすい構文。
async/awaitとアクターによるファーストクラスの並行処理。- すべての Apple フレームワークと最新の OS 機能に初日からフルアクセスできる。
トレードオフ
- エコシステムは Apple プラットフォームを中心としており、クロスプラットフォームのサポートは存在するもののはるかに未成熟。
- ツール環境は事実上、アプリ開発に Xcode と Mac を意味する。
- 言語の速い進化により、バージョン間で移行作業が必要になることが時々あった。
- optional、値 vs. 参照のセマンティクス、並行処理をめぐる実質的な学習曲線がある。
使いどころ
Apple プラットフォーム向けのネイティブアプリを構築し、最高の性能、最新の OS 機能、そして安全で保守しやすいコードベースが欲しいときは Swift を選びましょう。洗練された iPhone や Mac アプリには最適なデフォルトです。
バイブコーディングとの相性
Swift は AI 支援コーディングと相性が良い言語です。厳格なコンパイラが、曖昧なミスを、モデルに貼り戻せる具体的なエラーに変えてくれるからです。安全なアンラップのために optional と guard を活用し、コールバックのピラミッドより値型(struct)と async/await を優先し、ビューのロジックをモデルから切り離すようアシスタントに求めましょう。コンパイラが厳格なため、ビルドが通る生成コードはたいてい構造的に健全です。エラーに各イテレーションを導かせましょう。
struct Todo: Identifiable {
let id = UUID()
var title: String
var done = false
}
func pending(_ todos: [Todo]) -> [Todo] {
todos.filter { !$0.done }
}