Swift(スウィフト)とは、「OS X」「iOS」用ネイティブアプリケーションを開発するためのプログラミング言語です。

オープンソースの言語/Swiftとは

Swift(スウィフト)とは、「OS X」「iOS」用ネイティブアプリケーションを開発するためのプログラミング言語です。

目次

「Swift」基本情報
■概要
■基本説明
■動作環境
■経緯

主な特徴
■「Objective-C」代替言語
・スクリプト言語風仕様
・稼働可能環境
・「Objective-C」との共存
・学習コスト減少+開発生産性向上
■汎用性
■メンテナンス性
■モダンプログラミング言語
■インタラクティブ言語
■安全性
■高速動作

主な機能
■コアライブラリ「Swift Core Libraries」
■パッケージマネージャ「Swift Package Manager」
■デバッグ機能「LLDBデバッガ」

関連プロダクト
■macOS用統合開発環境「Xcode」
■iPad用Swift学習アプリ「Swift Playgrounds」

補足情報
■同様製品
■オフィシャルサイト
・オフィシャルサイト
・ライセンス情報
・ダウンロード

「Swift」基本情報

■概要

Swift(スウィフト)とは、「OS X」「iOS」用ネイティブアプリケーションを開発するためのプログラミング言語です。

■基本説明

Swiftは「モダン」「安全性」「高速性」「インタラクティブ」「最新のソフトウェア設計アプローチ」などの特徴を持つ汎用プログラミング言語です。

Appleが提供しており、「iOS(iPhone/iPad)」「Mac」「Apple TV」「Apple Watch」「Linux」向けネイティブアプリケーションを開発できます。

「簡単にプログラミングできること」を目標として設計されており、信頼性の高いコーディングを行えます。

■動作環境

「OS X」と「Linux」用バイナリが提供されています。

■経緯

Swiftは、2010年に開発が始められ、Apple社内での4年間の開発期間を経て、「Worldwide Developers Conference 2014」で発表されました。

Swiftは、従来のコーディング難易度が高い開発言語「Objective-C」と比較して柔軟性が高いため、Mac/iPhone用アプリの開発参入への敷居が大きく下がったとされています。

人気プログラミング言語ランキングで急上昇するなど、大変大きな注目を集めています。

主な特徴

■「Objective-C」代替言語

iOSやMacのネイティブアプリ開発において、従来は「Objective-C」が使われてきましたが、Swiftは「Objective-C」に代わる新たなマルチパラダイムのコンパイルプログラミング言語として開発されました。

スクリプト言語風仕様

Objective-Cで厳密だった「型宣言」や「メソッド定義」などが緩和され、コード作成が容易なスクリプト言語に近い仕様になっています。

稼働可能環境

Swiftアプリケーションは「OS X version 10.9」「iOS 7」以降で稼働できます。

「Objective-C」との共存

Swiftは「Objective-C」「Objective-C++」「C言語」と共存できる設計になっています。

学習コスト減少+開発生産性向上

Objective-Cで非常に面倒だった記述が、Swiftでは大幅に簡略化され、学習コスト減少と開発生産性向上を見込めます。

「コンパイラによる変数型補完」や「自動メモリ管理機能」により、「変数の中身が格納されるメモリ上のアドレスをポインタに格納」「不要になった変数のメモリ割当て解放」などのコードは不要になっています。

■汎用性

Swiftは「システムプログラミング」「モバイルアプリケーション」「デスクトップアプリケーション」「クラウドサービス」までの幅広い用途で使用できる汎用的なプログラミングとして設計されています。

「実際の実装メカニズムがプラットフォームごとに異なる場合でも、すべてのプラットフォームでSwiftのソース互換性を提供すること」を目標としています。

■メンテナンス性

Swiftは、開発者にとって正しいプログラムを書いて維持しやすくするために、メンテナンス性を高めるように設計されています。

「コードをよりクリーンに」「バグを少なくするため」「コードの読み書きを容易にするため」の各種機能が含まれています。
・型推論サポート
・モジュールではヘッダー削除
・名前空間の提供 など

■モダンプログラミング言語

Swiftは、スクリプト言語であるRubyやPythonなどの最新の設計思想を取り入れたモダンな言語になっています。

そのため、これらの言語でプログラミングを学び始めた方にも取り組みやすく、簡単にアプリを開発できる言語になっています。

以下のモダンなプログラム概念が導入されています。
・ジェネリクス---型を変数とした型関数を扱う
・関数型プログラミング---処理を関数の定義の組み合わせとして記述
・タイプインターフェース
・名前空間
・タプル
・複数の戻り値
・クロージャ---関数ポインタで統一
・Optional型の採用
・構造体---メソッド/拡張/プロトコルをサポート
・機能的プログラミングパターン---マップおよびフィルタ
・高度な制御フロー---do/guard/defer/repeatキーワード
・コレクション---高速で簡潔な繰り返し
・強力なエラー処理機能 など

■インタラクティブ言語

Swiftは、コンパイラ言語でありながら、インタプリタとしてスクリプト実行も可能です。

対話実行環境(REPL)も用意されています。

■安全性

Swiftは、既存のプログラミング言語において記述ミスによるバグが発生しやすかった部分について文法的な対処が行われ、安全ではないコードが少なくなるように設計されています。Cベース言語よりも安全であるように設計されており、安全ではないコードのクラス全体を排除しています。

以下の安全対策が組み込まれています。
・静的型チェック
・変数初期化強制
・オーバーフローチェック---配列と整数
・自動メモリ管理---参照カウント
・if文のブレース(波括弧)省略禁止
・switch-case文の自動フォールスルー禁止
・nilオブジェクトの存在チェック---存在するとコンパイル時にエラー など

以上の各種安全対策により、コード作成がよりクリーンで安全になり、ランタイムクラッシュなどの発生を減少できます。

■高速動作

SwiftはCベース言語(C/C++/Objective-C)の代用として意図されているため、それらのパフォーマンスに匹敵する程度の高速動作ができることを目指して設計されています。

Swiftは、高速コンパイラ「LLVM」により、現代的なハードウェアの性能を引き出すための最適化されたネイティブコードに変換されます。

Swiftを使うと、一般的な検索アルゴリズムがこれまでよりも大幅に速いスピードで完了します。処理速度ベンチマークとして「Objective-Cよりも最大で2.6倍高速」「Python2.7よりも最大で8.4倍高速」と発表されています。

主な機能

■コアライブラリ「Swift Core Libraries」

コアライブラリ「Swift Core Libraries」は、Swift標準ライブラリよりも高いレベルの機能を提供します。

これらのライブラリは、開発者にとって、Swiftがサポートするすべてのプラットフォームに対応できる強力な機能を提供します。

以下の機能を提供します。
・型サポート機能---データ、URL、文字セット、特殊コレクション
・作業性機能---スレッド、キュー、通知
・永続性機能---プロパティリスト、アーカイブ、JSON解析、XML解析
・日時管理機能---日付、時刻、カレンダー計算
・OS固有の動作の抽象化
・ファイルシステムとの相互作用
・国際化フォーマット---日付と数字の書式設定、言語固有リソース
・ネットワークプリミティブ機能
・単体テスト機能 など

→Swift →Swift Core Libraries

■パッケージマネージャ「Swift Package Manager」

パッケージマネージャ「Swift Package Manager」は、Swiftコードの配布を管理するためのツールです。ライブラリと実行可能ファイルを構築し、異なるパッケージ間でコードを共有するための機能を提供します。

Swiftビルドシステムと統合されており、「依存関係のダウンロード」「コンパイル」「リンクプロセスの自動化」を行えます。

ターゲットの依存関係は、パッケージのソースへの相対URLまたは絶対URLと、使用可能なパッケージのバージョンに対する一連の要件で構成されます。

→Swift →Package Manager

■デバッグ機能「LLDBデバッガ」

Swift.orgコミュニティは、デバッグ機能として「LLDBデバッガ」を提供しています。

LLDBデバッガを使用すると「Swiftプログラムの段階的実行」「ブレークポイント設定」「プログラム状態の検査や変更」を行えます。

Swiftは、デバッガに埋め込まれたSwiftコンパイラのバージョンに緊密に結合されています。コンパイラとデバッガの緊密な統合により正確な検査を行えます。

「Swift REPL」では、デバッグ機能を使用して障害状況を調査したり、即座にリカバリを行えます。

関連プロダクト

■macOS用統合開発環境「Xcode」

Xcodeは「macOS」「iOS」「watchOS」「tvOS」などのすべてのAppleプラットフォーム向けネイティブソフトウェアを開発するためのmacOS用統合開発環境(IDE)です。

一連のソフトウェア開発ツールを含みます。ソースコードエディタでは、コードリファクタリングしたり、上流のコードの違いの詳細をすばやく確認できます。独自のビジュアライゼーション機能やデータ解析機能も搭載しています。

この開発環境を使用してSwiftのコーディングを行えます。

→Apple →Xcode

■iPad用Swift学習アプリ「Swift Playgrounds」

「Swift Playgrounds」は、Swiftについてインタラクティブに楽しく学べるiPad用学習アプリケーションです。

Swift Playgroundsでは、コーディングの知識は一切不要で、Swiftを使ってパズルを解きながらコードの基本をマスターできます。

その後、進めるにつれて、より高度なコンセプトが加わり、より実践的な学習へステップアップしていくことが可能です。

→Apple →Swift Playgrounds

補足情報

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Ruby」「PHP」など。

■オフィシャルサイト

オフィシャルサイト

→Swift(Swift.org - Welcome to Swift.org)

ライセンス情報

Swiftのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→Swift →LICENSE

ダウンロード

→Swift →Download Swift

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Swift最新TOPICS

【OSS】Apple、プログラミング言語「Swift 4.0」リリース---「互換性モード」導入(古いコードを修正無しにコンパイルできる)(2017年09月25日 11:03)

米Appleは、9月19日、 プログラミング言語「Swift 4.0」を公開した。 【Swiftとは】 Appleが開発するプログラミング言語 https://www.ossnews.jp/oss_info/Swift 【ポイント】 ・「互換性モード」の導入(古いコードを修正無しにコンパイルできる) ・文字列オブジェクト「String」実装を強化 ・複数行文字列リテラルの導...

Swift最新CLOSEUPコラム

  • オープソース書籍(サイド)
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter