iOSとは? - shirai/SwiftLearning GitHub Wiki

1. iOSとは

Appleが開発・提供するOS(モバイルオペレーションシステム)の名称です。
iPhone、iPad、iPod touchの各全モデルに搭載されています。

2008年までは「OS X iPhone」という名前で、2009年に「iPhone OS」という名前になり、 2010年6月21日にリリースしたver4.0からは現在の名称になりました。
当初はユーザによるアプリケーションの追加は認められていませんでしたが、
2008年6月よりSDKが整備され、App Storeで自由にアプリケーションを追加できるようになりました。

2. iOSはどこで使われている?

iOSはApple社製モバイルデバイスにのみ搭載されています。

3. OSシェア

モバイルOSとしては世界で2番目のシェアを誇ります。
これはシェア1位のAndroidとは異なり、iOSはApple社の製品のみでしか動作・開発できないためであり、
決してAndroidと比較してiOSが劣っているというわけではありません。

4. PCからスマホへ

※1. Androidとは?-Android技術者育成#1.Androidとは?-Android技術者育成-3.OSシェアを参照してください。

5. 開発言語

iOSはmacOSとは異なり、Java仮想マシンやCarbonが搭載されておらず、
ネイティブアプリケーションの開発には、基本的にObjective-CもしくはSwiftが用いられます。

Objective-C

iPhone SDKの登場により、Cocoaフレームワークと開発言語としてのObjective-Cが改めて注目されることとなりました。
Objective-CはC言語をベースにSmalltalk型のオブジェクト指向機能を持たせた言語です。
そのため記法にだいぶ癖があり、他の言語を経験している開発者でも初めは読み書きするのに苦労します。

Swift

その後、2014年のWWDCにてAppleからiOSおよびmacOS、Linuxで利用できるプログラミング言語としてSwiftが発表されました。
SwiftはObjective-CやObjective-C++、C言語と共存することが可能であり、同一のアプリプロジェクト内で既存のObjective-CコードやObjective-C製ライブラリが利用できます。

※並列スクリプト言語の「Swift」とは別の言語です。

Objective-C vs Swift

Swiftは「モダン、安全、高速、インタラクティブ」であるという特徴を持ち、これらはObjective-Cと比べて圧倒的な優位性を持ちます。
また、Swiftは言語のバージョン更新頻度も高くより高機能になっていくため(※)、
今後新規アプリを作成する上で、Swiftを選ばない理由はほぼないかと思います。

※弊害としてSwiftのバージョンアップに追従してアプリで利用する言語バージョンの更新を行う必要があります。
 これは言語仕様が安定するバージョン3までは大量のソース修正を要する非常に大きな問題でしたが、
 バージョン4以降では自動マイグレーションで十分な変更しか入らなくなったため、さほど影響を受けなくなりました。

6. 開発環境

iOSアプリケーション開発で使用されるIDEは、Appleが提供する「Xcode」のみです。

※環境構築については次項「2. 開発環境の構築 - iOS技術者育成」を参照してください。