元Appleのエンジニアであるケン・コチエンダ氏が、iPhoneのソフトウェアの開発秘話を語っています。その内容の一部について、テック系メディア「9to5Mac」が取り上げています。
*Category:テクノロジー Technology|*Source:9to5Mac ,@kocienda, Samz222
2001年にAppleに入社したコチエンダ氏は、iPhoneを支えた重要なエンジニアの一人です。iPhoneを開発する以前は、AppleのWebブラウザ「Safari」を開発するチームに所属しており、初代iPhoneの開発でも重要な役割を担っていました。
Appleが最初のiPhoneを発表したのは約15年前ですが、現在のものとは比べ物にならないほど、少ない機能しか備えていませんでした。かつてのiPhoneには「コピー&ペースト」の機能さえなかったのです。
コチエンダ氏によれば、初代iPhoneにコピー&ペースト機能がなかったのは、エンジニアの時間が足りず、実装が間に合わなかった、という単純明快なものです。もちろん話はそれだけにとどまらず、なぜAppleがこの機能の開発に苦戦したのかも語られています。
まず、同氏によると、チームはすでにiPhoneのバーチャルキーボードとオートコレクトシステムの開発に忙しかったそうです。コチエンダと彼のチームがコピー&ペースト機能の開発に取り組むことができたのは、初代iPhoneが発売された後のことでした。
しかし、その開発も容易なものではありませんでした。コチエンダ氏はコピー&ペーストを行う上で、重要なテキストカーソルの位置を正確にユーザーに知らせるため「文字を拡大するルーペ」というアイデアを思いついたそうです。しかし、ユーザーが画面から指を離す時に画面に触ってしまい、カーソルが文字間を移動してしまうのです。
そのため、テキスト編集のためだけに「タッチ履歴ログ」を開発する必要がありました。こうすることで、画面から指を離した後、最後にタッチした数ミリ秒後のユーザーの指の位置を自動的に検出し、ユーザーが本当に欲しい場所にカーソルが残るようにしたのです。
iPhoneのテキスト入力システムに関するもう一つの興味深い点は、すべてのスタイル付きテキストがWebKitをベースにしていたことです。WebKitは、Appleが中心となって開発されているオープンソースのHTMLレンダリングエンジン群の総称です。
つまり、アプリケーションがカスタムフォントを使用するたびに、テキストをレンダリングするための小さなウェブページが表示されていたのです。テキストが編集モードでないときは、CPU、RAM、バッテリーを節約するため、その内容の静止画像が表示されていました。
コピー&ペースト機能は、2009年のiPhone OS 3.0の一部として導入され、iPhone 3GSにデフォルトでプリインストールされました。Appleは当時、この新機能をアピールするテレビ広告を制作したほどでした。
コチエンダ氏は、初代iPhoneの開発について、他にもいくつか語っています。例えば、iPhoneが本格的なマルチタスクに対応していなかったのは、RAMが少なかっただけでなく、仮想メモリが不足していたためだったそうです。
そこでエンジニアたちは、iPhoneが一度に1つのアプリを実行するように強制し、他のバックグラウンドプロセスを自動的に終了する「ジェットサム」と呼ばれるシステムを作り、パフォーマンスの問題を回避しなければなりませんでした。
また、タッチスクリーンデバイスが普及していなかったため、iPhone開発チームはインターフェース上に表示されるボタンよりも大きな仮想領域を実装しました。そのため、ユーザーが画面上のボタンに正確に触れていなくても、iPhoneがタッチを認識することができるようにしたのです。
このシステムは、ユーザーがタップした文字の周囲の文字を識別し、スペルミスした単語を正しい文字に置き換えるという、キーボードのオートコレクト機能にも重要な役割を果たしています。また、コチエンダ氏によれば、ユーザーが「指で触っている場所と実際に触っている場所が違う」という感じていたため、そのための調整も必要だったそうです。
オリジナルサイトで読む : AppBank
初代iPhoneに「コピペ機能」が無かったワケ。ソフトウェア開発者が語った苦難