iOS,OS X, Cocoa, Objective-C, Swiftなどの用語の解説

iphone

 iPhone, iPad, Mac用のプログラミングを開始しようとすると、「iOS, OS X, Cocoa, Objective-C, Swift」など様々な用語がでてきます。用語が多くて意味をよく理解しないでなんとなくプログラミングしている方も多いのではないでしょうか?ここでは一度これらの用語について整理して解説します。

iOSとOS X

 まず、iOSとOS Xについて解説します。これらは名前にOSとついているように、iOSとOS XはOS(オペレーションシステム)のことです。つまり、WindowsやLinuxといったOSと同じです。そして、iOSとOS Xの違いですが、iPhoneやiPadにはiOSが搭載されています。そして、MacにはOS Xが搭載されています。

 iPhoneとMacを触ったことがある方なら気づくと思いますが、両者は扱い方が全然違います。iPhoneの場合は、いきなりアプリのアイコンがたくさんでてきます。一方、Macの場合は、Windowsのようなウインドウが出てきてアプリを操作します。また、iPhoneはタップで操作しますが、Macはマウスで操作するようになっています。

 では、なぜiOSとOS Xの2つあるかというと、iPhoneとMacでは操作の仕方がことなるからです。そのため、iPhone用のOSを新しく作ったというわけです。そのおかげで、iPhoneにマウスを接続して操作しなくてもいいのです。

CocoaとCocoa Touch

 次の用語であるCocoaとCocoa Touchについて解説します。これらは何かというと、プログラムを簡単にするために準備されたフレームワークのことです。パソコンを使う際、画面に写しだしたり、音を出したりいろんなことをします。これらの操作をプログラムでするには、APIというものをプログラムで使用する必要があります。iPhoneやMacにおけるAPIがCocoaやCocoa Touchというわけです。ですから、iPhoneやMacで画面等を操作する際に、CocoaやCocoa Touchを利用する必要があります。

 CocoaとCocoa Touchの違いですが、CocoaはOS X用でCocoa TouchはiOS用です。ですから、iPhoneアプリでCocoa Touchを使用することはできません。

Cocoa

 CocoaはFoundationフレームワークとApplication Kitフレームワークからなります。Foundationフレームワークが基礎となる命令を提供します。そして、Application Kitフレームワークではボタンなどのユーザーインターフェースに関する命令を提供します。以下のページにリファレンスがあるので、Macアプリを作る際は参考にしましょう(英語です)。

  1. Foundationフレームワークのリファレンス
  2. Application Kitフレームワークのリファレンス

Cocoa Touch

 Cocoa Touchもいくつかのフレームワークから構成されています。Cocoa TouchでもFoundationフレームワークが使えます。また、大事なフレームワークがユーザーインターフェースを司るUIKitフレームワークです。以下にリファレンスのページへのリンクをはっておきます。

  1. UIKitフレームワークのリファレンス

Objective-CとSwift

 最後にObjective-CとSwiftの違いについて解説します。Objective-CとSwiftはプログラミング言語の一種です。例えば、C、C++、Javaなどと同じようなものです。Objective-CもSwiftもプログラミング言語なので、iOSとOS Xのどちらでも使用可能です。ただし、Objective-CよりもSwiftの方が新しい言語であることに注意が必要です。Objective-Cよりもさらに使いやすい言語ということでSwiftが開発されました。ですから、今後はObjective-Cは消えてSwiftにシフトすると予想されます。なるべくSwiftを使うようにするといいでしょう。Swiftについて知りたい方は以下の公式ページをみましょう。無料の解説書がおいてあります(英語)。

  1. Swift公式ページ

まとめ

 以上のことを表にまとめると以下のようになります。用語を整理しておくといいでしょう。

Mac iPhone, iPad
使用する言語 Objective-Cもしくは Swift
OS OS X iOS
API Cocoa Cocoa Touch

著者:安井 真人(やすい まさと)