マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Swift

【OSS情報アーカイブ】Swift

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Swift」とは

「Swift」基本情報

■概要

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

■基本説明

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

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

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

■経緯

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

Swiftは、従来のコーディング難易度が高い開発言語「Objective-C」と比較して柔軟性が

高いため、Mac/iPhone用アプリの開発参入への敷居が大きく下がったとされています。

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

■オフィシャルサイト情報

オフィシャルサイト

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

ライセンス情報

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

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

動作環境

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

ダウンロード

→Swift →Download Swift

■同様製品

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

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

「Swift」の主な特徴

■「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」の主な機能

「Swift」の主な機能

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

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

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

→Swift →Swift Core Libraries

主なコアライブラリ機能

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

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

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

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

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

→Swift →Package Manager

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

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

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

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

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

「Swift」の関連プロダクト

「Swift」の関連プロダクト

■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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 ダイバーシティ 」&「 インクルージョン 」(D&I)とは?🤝

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】「 ダイバーシティ 」&「 インクルージョン 」(D&I)とは?🤝

「 ダイバーシティ 」(多様性)と「 インクルージョン 」(包括性)は、性別や年齢、国籍、価値観、経験など、人々の持つ様々な違いを認識し、それを尊重しながら誰もが能力を最大限に発揮できる環境を作る考え方です。単に違いを受け入れるだけではなく、それを活かして共に成長していくことを目的としています。

【デジタル寺田の3分用語解説】 生成AIを悪用した「 サイバー攻撃 」とは?🕷️

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】 生成AIを悪用した「 サイバー攻撃 」とは?🕷️

生成AIの進化により、フィッシング詐欺やマルウェア作成が高度化・自動化しており、「 サイバー攻撃 」が進化しています。詐欺メールの信憑性が高まり、ターゲットに合わせた攻撃も可能です。また、無害な画像にマルウェアを隠す技術や、脆弱性を自動で攻撃するシステムも登場しているため、企業は最新のセキュリティ対策が不可欠です。

【デジタル寺田の3分用語解説】 米司法省、Google社に対して「 Chrome の売却 」を要求🌐

デジタル寺田の3分用語解説

2024.12.16

【デジタル寺田の3分用語解説】 米司法省、Google社に対して「 Chrome の売却 」を要求🌐

米司法省は、Googleに対してWebブラウザ「 Chrome 」の売却を要求しています。これは、Googleの市場独占行動が競争を排除していると問題視したものです。Googleはこれに反論し「セキュリティや経済への悪影響」を警告しています。今後の裁判の行方に注目が集っています。