Когда iPhone только-только анонсировали, было очевидно, что это лишь самое начало того, что Apple может сотворить с мобильным телефоном. По прошествии двух лет и после выхода iPhone OS 3.0 и iPhone 3GS, начинает казаться, что в айфоне есть уже всё, что только можно себе вообразить: и GPS и камера и поддержка гарнитур Bluetooth и даже чёртов MMS. Что же тогда будет дальше? Мне на ум приходит три простые и очевидные вещи, которые можно сделать прямо сейчас, и три более сложные концепции, которые хотелось бы видеть в будущем.
Словарь
До появления меню копирования и вставки о контекстном словаре вроде маковского Dictionary.app даже мечталось довольно неуверенно. Теперь же совершенно ясно, где должна быть кнопка, вызывающая словарь или даже переводчик - следом за пунктами "копировать" и "вставить". Очень желательно, чтобы не запускалось отдельное приложение, а появлялось бы модальное окно вроде мини-браузера, который теперь показывается при подключении к общественному Wi-Fi.
Смартгруппы
Смартгрупп не хватает почти во всех программах, которые хранят данные: адресная книга и почта; чуть менее актуально - закладки в браузере и фотоплёнка. Пример: в адресной книге я часто указываю, где работает человек, и в десктопной версии у меня есть смартгруппа "Техномир", куда автоматически попадают все мои коллеги из ИД "Техномир". В десктопной почте есть смартгруппа "рабочая почта", куда автоматически складываются письма, присланные людьми из смартгруппы в адресной книге. Звучит сложно, но на самом деле очень удобно. Ещё в почте не помешал бы
объединённый Inbox.
Сохранение страниц
При том, что браузер способен удержать в памяти лишь одну веб-страницу, хотелось бы иметь официальный способ сохранять её локальную копию. В принципе, для этого даже не обязательно усложнять интерфейс - копию можно сохранять автоматически при добавлении страницы в закладки. Возможно, этому мешают какие-то технические ограничения или другие соображения, но куда более сложная в использовании программа
Instapaper отлично справляется с этой задачей. Её главный минус - необходимость ещё раз загружать страницу после добавления. Ещё Instapaper пока что не позволяет делать в сохранённых страницах пометки и закладки.
Многозадачность
Настоящая многозадачность нужна далеко не всегда, особенно на портативном устройстве с маленьким экраном и относительно слабой батарейкой. Push notifications, в частности, позволяют некоторым приложениям обойтись без многозадачности. Но сообщения - это далеко не единственная вещь, для которой приложения хочется запускать в фоне.
iPhone в отличие от старой Palm OS не сохраняет статуса программ при их закрытии. Программа может это сделать сама, но на практике об этом заботятся далеко не все разработчики. Иногда это приводит к довольно неприятным последствиям - когда я читаю длинный постинг в NetNewsWire, а мне кто-то звонит, постинг дочитать уже не получится. NNW пометит его как прочитанный и скроет в ленте. Основная вина здесь, конечно, лежит на авторах NNW, но, всё же, сохраняй iPhone состояние приложений принудительно, этого бы никогда не случилось. По той же причине на iPhone неудобно работать в двух программах попеременно, как это можно делать на Palm Pre.
С другой стороны, сохранение статуса приложения - это не всегда полезно. К примеру, при открытии адресной книги хочется всегда видеть список контактов, а не последний открытый контакт. В этом случае в Apple поступили очень мудро - адресная книга после старта всегда показывает список контактов, но спозиционирован экран на последнем открытом пункте. Увы, я ни разу не встречал такого уровня продуманности в программах сторонних разработчиков.
Контекстозависимость
Контекстозависимость - это когда приложение реагирует на разные внешние изменения: смену географического положения, появление определённых сетей или устройств или просто смену времени суток. Простые примеры, когда она могла бы пригодиться: проходя мимо магазина вечером, я бы хотел, чтобы программа-планировщик сообщала мне, что нужно зайти и купить молока; когда я прихожу на работу и встречаю главного редактора телефон мог бы мне напомнить, что я собирался с ним обсудить что-то важное (о наличии главреда телефон легко узнает по появлению в зоне Bluetooth его "Нокии").
Более сложная в реализации, но важная для телефонов штука - возможность показывать звонящему статус вызываемого абонента (спит, ест, в транспорте, работает, на совещании, не в настроении и так далее). Причём хорошо бы, чтобы часть статусов выставлялась автоматически.
Самый простой способ реализации контекстозависимости - дать планировщику возможность работать в фоне. Но раз многозадачности нет и не будет как минимум ещё год, можно придумать что-нибудь другое. Идеальный вариант - системный сервис, который бы следил за контекстами и в нужный момент вызывал приложения. Что-то вроде более сложного crontab из UNIX.
Дополненная реальность
Augmented Reality - ещё одна модная штуковина, которая просто таки просится в iPhone. Если iPhone 3GS даёт приложениям прямой доступ к камере, а не ограничивается передачей фотографии или видеоролика, то реализации AR можно ждать уже скоро. Но было бы куда приятнее, если бы в Apple заготовили для этого какой-нибудь специальный API и встроили бы поддержку AR как минимум в приложение с картой.