元Appleのエンジニアであるケン・コチエンダ氏が、iPhoneのソフトウェアの開発秘話を語っています。その内容の一部について、テック系メディア「9to5Mac」が取り上げています。
*Category:テクノロジー Technology|*Source:9to5Mac ,@kocienda, Samz222
iPhoneのソフトウェア開発は困難の連続だった
2001年にAppleに入社したコチエンダ氏は、iPhoneを支えた重要なエンジニアの一人です。iPhoneを開発する以前は、AppleのWebブラウザ「Safari」を開発するチームに所属しており、初代iPhoneの開発でも重要な役割を担っていました。
Appleが最初のiPhoneを発表したのは約15年前ですが、現在のものとは比べ物にならないほど、少ない機能しか備えていませんでした。かつてのiPhoneには「コピー&ペースト」の機能さえなかったのです。
◇ 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がタッチを認識することができるようにしたのです。
このシステムは、ユーザーがタップした文字の周囲の文字を識別し、スペルミスした単語を正しい文字に置き換えるという、キーボードのオートコレクト機能にも重要な役割を果たしています。また、コチエンダ氏によれば、ユーザーが「指で触っている場所と実際に触っている場所が違う」という感じていたため、そのための調整も必要だったそうです。
The curvature of your fingers makes you think you’re touching higher up the the screen than you are. So, touches are warped to account for this. That’s why—to this day—it’s hard to target taps when you hold your phone upside down. pic.twitter.com/xl8YaxvKKu
— Ken Kocienda (@kocienda) June 19, 2022
オリジナルサイトで読む : AppBank
初代iPhoneに「コピペ機能」が無かったワケ。ソフトウェア開発者が語った苦難