Google Nexus One, часть 2: программная

Итак, продолжим обозревать Nexus One, суперфон над всеми smart-фонами и stupid-фонами, по мнению Google. В прошлый раз я писал про аппаратную часть, в этот раз речь пойдет о программной части — которая, как мне кажется, куда более важна, чем железка, на которой она установлена. Хотя в идеале, в правильном устройстве программная оболочка железку дополняет и тщательно с ней интегрируется, что нам постоянно демонстрирует Apple.

Главный экран интерфейса Android, как я его себе настроил
Правда, качество железок у Apple периодически страдает, после чего мне хочется поставить Mac OS X куда-то без надкушенного яблока, но это потом проходит. В случае же с Nexus One систему делает Google, а сам телефон — HTC, и иногда, когда что-то не работает (или работает не так), непонятно, на кого же валить вину. Но это я так, отвлекся немного.

Перед обзором программной части — еще два момента о железе, о которых я либо забыл в первой части, или выяснил еще по ходу. Во-первых, прикольная штука у Nexus — два микрофона, один из которых принимает голос, а второй — окружающий шум, но не для того, чтобы этот шум было лучше слышно, а очень даже наоборот. Второй микрофон, улавливая шум вокруг, позволяет каким-то хитрым образом (я особо не вникал в детали) фильтровать шум при связи, что хорошо заметно во всяких шумных местах — действительно хорошо слышно собеседника, и он тоже меня хорошо слышит.
[ad#intext-inside]
Второй аппаратный момент, который я бы хотел отметить — это, как мне показалось, меньше чувствительность гироскопа/акселерометра (или что там обеспечивает телефону определение положения в пространстве). Проявилось это на игре Labyrinth, скачанной из Market, где надо провести виртуальный шарик по лабиринту между стен и отверстий, не уронив этот шарик в отверстия. У меня сложилось впечатление, что на iPhone (эта игра там тоже есть) шарик более естественно реагировал на изменения положения телефона, хотя, возможно, дело больше в самой системе и том, как она обрабатывает события, полученные от аппаратной части (см. абзац №2).
Так вот, вернемся к софтверной части телефона. Изначально я планировал разделить ее на две отдельные части, собственно, сама “операционная система” и “приложения к ней”. Однако, в процессе изучения телефона и его возможностей я понял, что местами эти вещи довольно трудно отделить друг от друга, и иногда довольно тесно переплетаются. Поэтому я решил не делать четкого разделения между этими вещами, а расскажу просто все свои впечатления по порядку, разделяя их просто по объему (чтобы не перегружать читателя, а также чтобы было что запостить в блог еще и завтра) 🙂
В этой части я тоже добавлю еще один дисклеймер-оговорку (в дополнение к озвученой в первой части оговорке о том, что я сравниваю Nexus, в первую очередь, с iPhone). Я хочу, чтобы читатели немного представляли себе, с позиции “кого” я пишу отзывы о программной части. Я уже примерно лет десять занимаюсь разработкой приложений для разных платформ, вначале — для Mac OS X, сейчас — для iPhone и Android, и, в общем, неплохо представляю себе, как должно выглядеть и работать правильно придуманное и разработанное программное обеспечение. Когда я пишу “занимаюсь разработкой” — это не имеется в виду, что я лично программирую, но я принимаю активное участие в создании приложений, в том числе и интерфейсной части. Некоторые из программ, в создании которых я участвовал, были удостоены различных наград, в том числе и престижных Apple Design Awards. Конечно, это не исключительно моя заслуга, мне всегда везло с командами проектов, и без них ничего этого не было бы, но, я думаю, в целом картина ясна.
Так вот, наконец-то добрались до программной части Nexus. В нем, как известно, установлена последняя версия операционной системы Android, под номером 2.1, которая пока что официально дошла мало до каких моделей телефонов с Android. Создавая ее, Google, как я понимаю, “вложила” все то самое лучшее, что “у нее было”, чтобы показать всем производителям, КАК на самом деле должен выглядеть и работать смартфон на Android. И я их понимаю, потому что то, что я видел до этого, меня, скажем так, не поразило.
На телефоне уже было установлено самое последнее обновление для системы, которое добавляло возможность мультитача (который почему-то по умолчанию в нем отсутствовал). В общем, круче Nexus One с Android сейчас ничего нету, это — референсный телефон, на который должны равняться все остальные.

Экран о системе
В целом операционная система производит вполне приятное впечатление (особенно по сравнению с другими системами на рынке, если не брать во внимание Apple — в частности, Windows Mobile 6 или Symbian), как с точки зрения визуального оформления, так и общей интерактивности с пользователем. Наверно, не стоит вдаваться сейчас в детали именно графической оболочки, скажу лишь то, что я отметил, работая с Nexus. А отметил я некую нелогичность интерфейса и его структуры, что ли. То есть он просто-напросто не такой комфортный в использовании, как iPhone.
Помните, в первой части обзора я писал о кнопках на передней панели телефона, с которыми у меня были трудности при нажатии. Так вот, поскольку кнопок 4, а не одна, как в iPhone, то я ловил себя на том, что я останавливаюсь, задумываясь “а какую же из них сейчас надо нажать?”, в то время как на iPhone выбор весьма простой и не требует лишних усилий. Я подозреваю, что для многих техногиков это может звучать странно, но когда мне надо быстро выйти из приложения и попасть на главный экран, и я начинаю жать Back, хотя на самом деле есть специальная кнопка Home, то это вызывает небольшое раздражение из серии “ну почему я должен помнить, что и зачем?”.
Кроме того, поскольку интерфейс системы рассчитан на многозадачность (о ней немного ниже), то возникают ситуации, когда одна и та же кнопка ведет себя в разных обстоятельствах по-разному. Например, я привык (или убедил себя), что кнопка Back всегда должна возвращать меня на предыдущую позицию от того места, где я был. И вот я в какой-то игре случайно нажимаю на баннер, который ведет меня на описание другой игры в Market (магазин приложений). Черт, думаю я, и нажимаю Back. Только я не попадаю при этом обратно в игру, нет — вначале у меня загрузится список игр той категории, в которую входит игра “из баннера”. Я еще раз нажимаю Back — и попадаю в список самых популярных игр (“Черт, я же тут не был, зачем я сюда возвращаюсь???”), нажимаю Back еще раз — и попадаю на главный экран. Короче, много лишних нажатий и в итоге “назад” получается как бы не совсем “назад”.
Или вот еще один пример нелогичности. Например, у меня две учетные записи на Gmail, одна личная, вторая — рабочая, домен, который хостится на Gmail. Я добавляю обе учетные записи туда, и захожу проверить почту, открывая приложение Gmail. Приложение показывает мне почту только в одной из учетных записей, я так понимаю, в той, которая первая по списку. Но я хочу посмотреть почту и в другой учетке — нажимаю кнопку Menu, выбираю команду Accounts, открывается окно с моими учетными записями, выбираю вторую учетку, захожу в нее, читаю почту. Внезапно мне нужно перейти в первую учетку, глянуть там какое-то письмо, я нажимаю кнопку Back (рассчитывая увидеть окно выбора учеток, я ведь оттуда только что пришел) — и оказываюсь на главном экране телефона. WTF?
Не поймите меня неправильно 🙂 Это все, конечно, вроде как и мелочи, которые зачастую обычному пользователю могут быть даже незаметны и не вызовут никакого раздражения или непонимания. Но они, накапливаясь, складываются в нечто большее — в то, что user experience от работы с таким устройством оказывается неполным, не до конца продуманным. В этом месте мне уже хочется начать защищать Android, потому что система-то на самом деле хорошая, но чтобы успешно бороться с iPhone, нужно быть не просто хорошим аналогом, нужно тянуться до уровня insanely great, который хорошо получается только у Apple. Кто-то скажет, что пример Windows доказывает, что вовсе необязательно быть “супер”, достаточно быть “дешевым”, чтобы завоевать рынок. Но хочется надеяться, что современного потребителя не соблазнишь посредственностью, и Google немного не хватает того, чтобы сделать по-настоящему завершенный продукт. Как тут не процитировать Бендера из Футурамы — “Great is OK, but amazing would be GREAT.”
Хотя рановато я начал резюмировать, у меня еще столько всего в заметках! 🙂
Давайте я скажу еще что-то хорошее про устройство и его систему. Nexus One — ОЧЕНЬ-ОЧЕНЬ быстрое устройство. Он быстро загружает приложения, быстро рисует графику (двухмерную) в играх, быстро рендерит страницы в браузере — после iPhone 3G эта скорость впечатляет (хотя, допускаю, что если бы у меня был 3GS, то разница была бы не настолько заметной). Как я уже упоминал выше, сама система — многозадачна, то есть позволяет запускать одновременно несколько приложений. Но вот какая штука — если на компьютере вы фактически всегда видите свои запущенные приложения и можете переключаться между ними одним нажатием кнопки мыши, то даже на многозадачном телефоне вам все равно нужно сначала скрыть приложение, а затем открыть второе приложение (либо из менеджера задач, либо — нажав на иконку на экране, даже если приложение уже запущено). Чем это отличается от однозадачности приложений на iPhone, где точно также надо выйти из первого приложения и запустить второе? А если второе при этом запускается быстро, да еще и сохранило данные в окне — вот вам и многозадачность.
Конечно, если приложение в фоне работает и обновляет свои данные (RSS-читалка, например), то эффект от многозадачности есть. А если это приложение в фоновом режиме активно разряжает батарейку? У меня случилось именно это — я, приехав в магазин, сунул телефон в карман вместе с запущенными на нем Яндекс.Картами, которые я, приехав к магазину, не выключил, а “спрятал” в фон. Через час шоппинга (это был большой магазин!) я почувствовал, что телефон как-то уж очень сильно нагрелся — я достал его из кармана и понял, что, видимо, Яндекс.Карты, не обнаружив в кармане GPS-спутников (еще бы, откуда им там взяться), дергали систему, требуя им отдать координаты. Ну или, может, происходило что-то другое, я не знаю, но результат таков — батарейка за этот час ушла наполовину. Но и это еще не все 🙂 Иногда некоторые приложения отказывались поворачивать экран при изменении положения телефона. Я досконально не проверил это, но сейчас мне пришло в голову, что это могло быть связано с каким-то приложением, работающим в фоне, которое этого не поддерживает (игра, например), но в тот момент ничего, кроме раздражения, это не вызывало.
А так — получение почты или же сообщений от ICQ или GoogleTalk в фоновом режиме и на iPhone можно настроить, да и я остаюсь при мнении, что на таком небольшом экране многозадачность нужна постольку поскольку. Вот на iPad — другое дело, и я думаю, что там она в том или ином виде может появиться, а на устройствах вроде iPhone, при наличии Push-сообщений, она, как мне кажется, не особо и востребована.
А, кстати, о менеджере задач. Меня удивило вот что — по умолчанию в системе его нет. Видимо, Google считает, что какое-бы приложение в фоне не было запущено, пусть там и сидит. Но вторым приложением, которое я поставил на Nexus (после, конечно же, Twitter-клиента), стал именно менеджер задач, который я использовал для периодического “убивания” множества запущенных процессов. Это — одно из самых популярных приложений в Android Market, и я до сих пор удивляюсь, почему Google не устанавливает ничего подобного в систему по умолчанию.

Убивалка задач
Но это не самое странное, чего в системе нет по умолчанию. Когда я установил Твиттер-клиент (Swift, о нем — позже), то мне тут же захотелось написать что-то из серии “Превед из Нексуса”. Но не тут-то было — клавиатура отказывалась переключаться на русский язык. Ок, подумал я, и зашел в настройки клавиатуры — там никаких настроек касательно русского языка не было. Хм, подумал я, как же так? Неужели тут нет русского? Телефон-то для Штатов в первую очередь, так что ничего удивительного не было бы. Однако, меня сбивало с толку наличие русской локализации в системе — то есть возможности установить полностью русский интерфейс Андроида. При мне телефону сделали factory reset, то есть сброс всевозможных настроек и обнуление до девственно чистого состояния, так что это явно не проделки местных кулибиных. Я на всякий случай установил эту русскую локализацию “главной”, у меня весь телефон стал на русском языке, но клавиатуры все равно не появилось!
[ad#intext-inside]
Короче говоря, налицо какая-то серьезная нестыковка: русская локализация в телефоне есть, а клавиатуры — нет. Для того, чтобы она появилась, я должен пойти в Android Market, скачать (хорошо хоть, что бесплатно) стороннее приложение-клавиатуру для ввода русского языка, установить это приложение, активировать его — и только тогда у меня появится возможность ввода русского языка в Android. Я не понимаю, как так может быть, но это — факт. Apple меня разбаловала двумя десятками локализаций и клавиатур в iPhone, невзирая на страну продажи, и поэтому я подхода Google не понимаю. Более того, когда я устанавливал это приложение-клавиатуру, сама система меня предупредила о том, что, мол, “вы осторожно, подобные приложения могут использоваться для воровства логинов и паролей, так что вы уж там на свой страх и риск!”. WTF, Google, ну неужели так сложно было вставить в систему свою клавиатуру и не пугать пользователей этими предупреждениями?

То самое предупреждение
Раз уж мы заговорили про клавиатуру, то добавлю еще вот что. Во-первых, в той русской клавиатуре, что я установил, не было автокоррекции текста, подобной той, что есть в iPhone. То есть, в американской раскладке, что встроена в систему, автокоррекция есть, а в русской — нет, поэтому мои чаты и SMS, пока я пользовался Nexus, изобиловали различными смешными и не очень опечатками. И еще вот что — я постоянно ловил себя на мысли, что набирать тексты на клавиатуре Android не так удобно, как на iPhone. То ли у них кнопки по-другому устроены, то ли клавиатуры не настолько “эргономичны”, как в iPhone, но когда я переключался с Nexus на iPhone, то тексты там набирались и быстрее, и комфортней, и точней. Прикольно, конечно, когда на клавиатуре есть отдельная кнопка-смайл “:-)”, но я бы предпочел, чтобы кнопки у нее вместо этого были больше — тогда, как мне кажется, текст было бы набирать удобней.
Фух, на этом я, пожалуй, сегодня остановлюсь, хотя мне еще много чего есть сказать про Nexus One. Продолжение, я надеюсь, выйдет уже завтра.
Телефон предоставлен на тестирование магазином Google Phone.