Swift (プログラミング言語)

From Wikipedia, the free encyclopedia

登場時期 2014年6月2日 (2014-06-02)
開発者 Apple、Swift.org
最新リリース 6.3.1 / 2026年4月17日[1]
Swift
Swift
Swiftのロゴ
パラダイム マルチパラダイム: プロトコル指向オブジェクト指向関数型命令型ブロック構造
登場時期 2014年6月2日 (2014-06-02)
開発者 Apple、Swift.org
最新リリース 6.3.1 / 2026年4月17日[1]
型付け 強い静的型付け型推論
ライセンス Apache License 2.0
ウェブサイト swift.org
テンプレートを表示

Swift(スウィフト)は、Appleが開発したiOSmacOSwatchOStvOSLinuxWindowsなどで利用可能な汎用プログラミング言語である。2014年のWorldwide Developers Conference (WWDC) で発表された。

従来から用いられていたObjective-Cとの共存を念頭に設計されており、共通のランタイムライブラリを使用することで、既存のフレームワークをシームレスに利用できる[2]

Swiftは、LLVMコンパイラ技術を用いて構築されており、高い実行パフォーマンスと安全性を両立させている。Objective-Cの「動的な特性」を継承しつつも、型推論ジェネリックプログラミングOptional型といったモダンな言語機能を導入することで、バグを未然に防ぎ、開発効率を高めることに成功している。

特に、クラスの継承に依存しすぎない「プロトコル指向プログラミング」という概念を提唱しており、柔軟で再利用性の高いシステム設計が可能である。

歴史

Swiftの開発は2010年、Chris Lattnerによって開始された。2014年に1.0がリリースされ、2015年にはオープンソース化された。

  • Swift 1.0 (2014):WWDC 2014で発表。
  • Swift 2.0 (2015):エラーハンドリング(try/catch)の導入。
  • Swift 3.0 (2016):大規模なAPIの命名規則変更。
  • Swift 4.0 (2017):Codable(シリアライズ)の導入。
  • Swift 5.0 (2019):ABI(Application Binary Interface)の安定化。OS標準ランタイムへの統合。
  • Swift 5.5 (2021):Async/await、アクターモデルの導入。
  • Swift 6.0 (2024):コンパイル時のデータ競合チェックの厳格化(並行処理の安全性確立)。

言語仕様と特徴

安全性(Safety)
静的型付けOptional型により、実行時のエラー(特にヌルポインタ参照)を最小限に抑える。


並行処理(Concurrency)
Swift 5.5以降、async/await構文を導入。Swift 6からは、複数のスレッドからのデータ同時アクセスをコンパイル段階で検知する機能が強化され、データ競合(Data Race)を言語レベルで防止する。
プロトコル指向プログラミング
プロトコル(他言語のインターフェースに相当)と、その実装を拡張する「Extension」を組み合わせることで、クラス継承よりも軽量で強力な抽象化を実現する。

サンプルコード

基本的な変数と定数

let maximumAttempts = 10 // 定数
var currentAttempt = 0   // 変数

// 型推論によりInt型として扱われる
let message = "Hello, Swift"

Optional型の利用

var optionalString: String? = "こんにちは"
// optionalString = nil // nil(空)を許容する

if let constantString = optionalString {
    print(constantString) // 安全に取り出された場合のみ実行される
}

構造化並行処理 (Swift 6対応)

func fetchData() async throws -> String {
    // 非同期処理を同期処理のように記述
    let (data, _) = try await URLSession.shared.data(from: URL(string: "https://api.example.com")!)
    return String(data: data, encoding: .utf8) ?? ""
}

メモリ管理

Swiftは自動参照カウント (ARC)によってメモリ管理を行う。ガベージコレクションとは異なり、決定論的にメモリが解放されるが、クラス間で循環参照が発生するとメモリリークの原因となる。これを防ぐために、weakunownedといった修飾子を用いた「弱い参照」の指定が必要となる。

脚注

関連項目

外部リンク

Related Articles

Wikiwand AI