アプリケーション

技術情報:Swift

Swift

Apple社が2014年に発表したプログラミング言語。Swiftとは本来アマツバメという鳥のことで、「速い」「すばやい」「迅速な」といった意味があります。
主に Apple社製品のiOSやMac向けのネイティブアプリケーションを開発するために使用されており、従来より使用されているObjective-Cに代わる新しい言語として開発されました。

Swiftとは

「Swift(スウィフト)」はApple社が作ったプログラミング言語です。
これまでApple社製品のアプリ開発で使われていたObjective-Cにも簡単に組み込むことができます。また、Objective-Cに比べSwiftではよりコードがシンプルとなっており、他の言語と比較しても同じ動作をさせる時に記述するコードが少ないという特徴があります。
Swiftの登場によって、iOSやmacOS、tvOS、watchOSなどのアプリケーションはすべてSwiftで開発できるようになりました。

Swiftの歴史

Swiftが一般公開されたのは2014年。Apple社が毎年開催している、開発者向けイベントWWDCで、世間に初めて披露されました。
Swift言語において開発メンバーいわく、「Swift開発にあたっては、Objective-Cをはじめ、Rust、Haskell、Ruby、Python、C#、CLUなど多くの言語を参考にした」とされています。
では、そもそも何故Swiftが必要だったのかということ。Apple社は元々、Objective-Cというプログラミング言語を使用していました。しかし、Objective-Cが誕生したのは1983年で、プログラミング言語も年を重ねるごとに古くなるものです。開発の利便性を向上させるためには、既存言語のアップデートではなく、抜本的な手直し、つまりは新しい言語が必要になって来たということです。

Swift5つの特徴

①高速性|Objective-CやPythonよりも実行速度の高速化

そもそもSwiftの意味は、「迅速な」という意味があるほど、高速性を強調しています。Swift言語でのアプリ開発では、高性能なLLVMコンパイラによってネイティブコードにコンパイルされるために、Objective-Cよりも実行速度を向上させた高パフォーマンスのアプリ開発が可能となっています。

②安全性|暴走しやすいコードをなくすような言語仕様

初期化されない変数の使用は、計算誤りの原因にもなり、整数や実数、配列がオーバーフローするとプログラムが暴走したり停止したりする原因でもあります。Swift言語の安全性では、このようなコードを書かないような言語仕様に改良してあり、変数は初期化しないとエラーが出たり、整数や実数、配列でオーバーフローが出ないようになっています。

③モダン|タプルやクロージャなど現代的な機能が追加

今まで安定的に使われていたプログラミング技術要素を多く取り込み、さらに、新しい要素も追加してモダンな言語仕様にしたということです。例えば、Python言語に似たタプルを採用したり、関数の戻り値に複数の値を返すことができたり、関数名のない関数のようなクロージャが定義できます。また、いろいろな型で使えるように汎用型を定義できるジェネリックスや構造体やクラスの拡張などの現代的な機能を追加しています。

④対話的|Playgroundによるコードの技術的な即実行開発環境

統合開発環境であるXcodeには、Interactive Playgroundがあり、Swift言語によるコードの対話的な即実行開発環境を提供しています。このPlaygroundでは、Swiftコードで書くことにより、計算中の変数の変化のモニタリングや履歴をグラフ化して見ることができます。これは、Playgroundに組み込まれた対話的評価環境REPLがあるために可能となっています。

⑤移行性|Objective-CアプリからSwiftアプリへの容易な移行

Objective-C と互換性があり、Objective-C アプリから Swift アプリへの移行が行えます。現在では Objective-C に代わり、アプリ開発言語の主力になりつつあり、Apple社製品だけではなくWEBアプリケーションやサーバーサイドなど多岐に渡り使用されています。

Swiftと、Objective-Cの違い

Objective-CはmacOSやiOSのネイティブなアプリケーション開発言語として使われています。この歴史はかなり古く、最初に開発されたのはMac本体とほぼ同時期となる30年以上前です。ただし、最初からmacOSがObjective-Cを採用していたわけではありません。当時のmacOSはそのアプリも含め、オブジェクト指向以前のPascalや、CPUの機械語を直接プログラムするアセンブラによって開発されていました。

Objective-Cを最初に採用したのはNeXT社

Apple社とは何の関係もなく開発されたObjective-Cを最初に採用したのは、Apple社を追い出されるようにして飛び出したジョブズが新たに起こしたコンピューターメーカー、NeXT社だった。NeXTでは、アプリだけでなく、OSの一部までもObjective-Cによって記述し、当時としては最先端のオブジェクト指向のシステムを完成させました。そのNeXT社がApple社によって買収されると、そのシステム一式は、Objective-C言語とともにMacに移植され、その後iOSの中核としても利用されるようになりました。こうしてObjective-Cは、最初に開発されてから30年以上が経過した現在まで、世界トップクラスのアプリ開発言語として活躍してきました。

※関連ページ

Swiftは新世代のプログラミング言語

Objective-Cは、C言語をベースとして、その上に当時最先端だったSmalltalk風のオブジェクト指向を付加して構成されたものになります。それ以降も進化を続け、モダンな特長を徐々に取り入れてきましたが、1970年代に生まれたC言語を基礎としているだけに、完全にモダンな言語として生まれ変わることはできず、その進化にも限界が見られるようになりました。今後10年先、20年先を見据えれば、このまま使い続けるのに無理があるのではないか。そこで登場したのがSwiftです。
Swiftは、これまで開発されてきた多くの言語から影響を受けており、現在考えられる最高のプログラミング環境を実現することを目指して設計されました。その実行環境についても、これまでのObjective-CやmacOSのCocoa、iOSのCocoa Touchと整合性を保つように考えられています。

 

2つの言語を「変数の扱い」で比較

実際に2つの言語を「変数の扱い」で比較してみました。

◆Objective-C◆

Objective-Cでは、変数は必ず型を指定して宣言しなければなりません。また、一旦ひとつの変数に対して指定した型は、あとから変更することはできない(ただし、代入については柔軟なところがあり、整数型の変数に浮動小数点数を直接代入すると、整数値に丸められて代入される。その際、エラーもワーニングも発生しません。数字だけでなく整数型の変数に文字列を代入することもできます。この場合コンパイラーはワーニングを出すが、実行エラーは発生しない。結果は文字列の内容とは関係ないものとなります)。

◆Swift◆

Swiftでは、「var」というキーワードを使って、特に型を指定せずに変数を宣言できる。その値を初期化する際に代入するものの型によって、その変数の型が決まるのが大きな特徴です。一度型が決まった変数については、あとから型を変更することができません。また、型の扱いについては厳しく、別の型の値や変数を代入しようとするとエラーとなります。これはSwiftが「安全な」言語と言われる、所以の一つです。

 

Swiftの将来性

Swiftは、Apple社製品共通のプログラミング言語です。現在iOSやmacOSアプリ開発の現場では、Swiftが主流となっています。
Swiftは活躍の場がApple社製品に依存する言語のため、将来性に不安を感じる方もいるかもしれません。しかしiPhoneのシェアが世界中にあることを踏まえると、Swiftは今後も安定した需要を見込むことができます。

まとめ

  • Apple 社製品アプリを開発するために使用されるプログラミング言語
  • 従来より使用されている Objective-C からSwift でのアプリ開発がトレンドになっている
  • まだまだ歴史は浅い言語だが、多くの可能性を秘めている

新しいプログラミング言語 Swift での開発実績が多数あります。
また、Objective-C、Swift 両方の知識豊富なパッションならアプリの移行・バージョンアップもお任せください。

 

お問い合わせはこちらから株式会社パッションーバナー

関連ページ

 

TOP