Инженер, дизайнер и бывший разработчик первых устройств Apple Кен Косиенда (Ken Kocienda) раскрыл причину, по которой в первой модели iPhone 2007 года выпуска не было функций «копировать» и «вставить». Только спустя два года после релиза iPhone эти базовые на данный момент опции появились в iPhone OS 3.0, на которой работал iPhone 3GS.
До работы над iPhone Косиенда был в команде, создавшей веб-браузер Apple Safari, что гарантировало ему важную роль в разработке ПО для первого смартфона Apple.
Косиенда признался, что в 2007 году задумки по функциям «копировать» и «вставить» были у разработчиков в планах, но они смогли их реализовать и вставить в код ОС только через пару лет из-за того, что им не хватало времени на добавление сразу всех нужных пользователям функций. В тот момент в приоритете было создание виртуальной клавиатуры iPhone и его системы автозамены.
Разработчик раскрыл, что он также является автором опции «увеличительная текстовая лупа». Именно после ее введения пользователи смогли видеть, где именно расположен текстовый курсор. Эта опция помогает при его перемещении пальцами пользователей, а также позволяет блокировать случайные сдвиги курсора после того, как пользователь убрал пальцы от экрана. Но она не всегда работала правильно. Поэтому Косиенде пришлось доработать эту опцию.
В процессе создания первых вариантов функций «копировать» и «вставить» команда Косиенды придумала «журнал истории касаний». Эта система помогала делать редактирование текста проще и удобнее. В журнале фиксировались все касания пальцев и время между ними. Как только пользователь убирал палец, то ОС через несколько миллисекунд фиксировала это состояние и логировало ситуацию в журнале. Курсор оставался на этом месте до следующего касания.
Еще одна интересная деталь системы ввода текста на iPhone заключается в том, что, по словам бывшего инженера Apple, весь стилизованный текст изначально был основан на WebKit. Это означает, что каждый раз, когда приложение использовало пользовательский шрифт, оно показывало крошечную веб-страницу для отображения текста. Когда текстовые поля не находились в режиме редактирования, они показывали статичное изображение своего содержимого — вероятно, для экономии ресурсов ЦП, ОЗУ и аккумулятора.
Опции «копирования» и «вставки» были представлены Apple как новая основная часть iPhone OS 3.0 в 2009 году, которая была предустановлена по умолчанию на iPhone 3GS. В то время Apple даже создала телевизионную рекламу, освещающую новую функцию.
Презентация новых функций «копировать» и «вставить» в iPhone 3GS.
Косиенда также поделился некоторыми другими интересными фактами о разработке первого iPhone. Например, в первом iPhone не было настоящей многозадачности не только из-за малой оперативной памяти, но и из-за отсутствия виртуальной памяти. Инженерам пришлось создать систему, известную как «jetsam», чтобы заставить iPhone запускать одно приложение за раз, автоматически завершая другие фоновые процессы, чтобы избежать проблем с производительностью.
Поскольку тогда мобильные устройства с сенсорным экраном не пользовались особой популярностью и не имели тактильной обратной связи, команда разработчиков iPhone реализовала виртуальную область, которая больше, чем кнопки, показанные на интерфейсе. Таким образом, iPhone распознает прикосновения, даже если пользователь точно не касается определённой кнопки на экране. Эта система также была важна для функции автозамены клавиатуры, поскольку она идентифицирует буквы, окружающие ту, которую пользователь нажал, чтобы заменить слово с ошибкой на правильное.
Косиенда объяснил, что первые опытные тесты с восприятием пользователями того, к чему они прикасаются пальцами в iPhone показали, что желаемая ими точка прикосновения на самом деле отличается от того места, к которому на самом деле прикасается палец. В итоге команда Косиенды создала специальную систему для iPhone OS, которая должна была быть к этому готова и отрабатывала как надо места касания пальцев пользователей, помогая им попасть куда надо даже в случае небольшого сдвига пальца.