説明書を読まなくても使い方がわかるのが、iPhoneの魅力であり強みです。しかし、知っているつもりでも正しく理解していないことがあるはず。このコーナーでは、そんな「いまさら聞けないiPhoneのなぜ」をわかりやすく解説します。今回は、『iPhoneには純正アプリでしか実現できない機能があるってホント!?』という質問に答えます。

***

ある意味、本当です。iPhoneのシステム(iOS)には、処理を共用化するために関数が多数用意され、アプリから機能を呼び出せるよう「API」(アプリケーションプログラムインターフェイス、関数の集合)として整備されていますが、サードパーティーには存在や利用方法が公開されていない「プライベートAPI」もあります。このプライベートAPIにアクセスすれば、"隠し機能"を盛り込んだアプリを開発できます。

プライベートAPIで実現できる機能の例としては、BluetoothやWi-Fiのオン/オフなど、システム設定に関する機能が挙げられます。任意のパターンでiPhoneを振動させる(バイブレーション)など、公開APIで実現できそうだけれどできない機能もプライベートAPIには多数あります。

プライベートAPIで実現される機能は、公式ドキュメントとして仕様が公開されていないため、開発方法は口コミ情報かリバースエンジニアリング(ソフトウェアの"分解")と呼ばれる作業で突き止めるしかありません。しかし、プライベートAPIの開発元であるAppleは当然情報を持っていますから、プライベートAPIを駆使したアプリ開発が可能です。純正アプリにしか実現できない機能があるのは、それが理由です。

リバースエンジニアリングを行って入手した情報をもとにプライベートAPIを利用したアプリ開発を行うことは可能ですが、それをApp Storeで公開することはできません。App Storeに出品したアプリは、審査の過程でプライベートAPIを使用していないか綿密にチェックされ、発見されればリジェクト(申請を却下)されます。まれに見落としなどで審査を通過することはあるにせよ、原則禁止されていますから、プライベートAPIの利用はAppleの専権事項と言っていいでしょう。

App Storeで公開されているアプリは、開発に「プライベートAPI」を使うことが禁止されています