Долгое время Яндекс.Почта оставалась гадким утенком среди продуктов компании в App Store. Все дело в том, что интерфейс приложения не менялся со времени iOS 6, равно как его функциональность. Нужно ли говорить об отсутствии оптимизации для iPhone 6 и iPhone 6 Plus? Однако компания Яндекс не забросила мобильный почтовый проект. Вместо обновления с новым дизайном разработчики решили сделать совершенно новое приложение для пользователей. В нем нет ни одной строчки кода старой почты, реализована новая архитектура, новый дизайн, новый механизм работы с уведомлениями, новая логика кэширования и отображения писем. Уже сегодня новая Яндекс.Почта будет доступна для скачивания в App Store, а изменений оказалось так много, что приложение сразу после ввода логина и пароля оправдывает долгие месяцы ожидания.
Вкратце, новая Яндекс.Почта привлекает тремя особенностями: удобным интерфейсом, возможностью работы без подключения к сети, а также обилием приятных мелочей типа предварительного просмотра вложений без необходимости открывать письмо. Чтобы оценить проделанную компанией Яндекс работу, достаточно сравнить несколько скриншотов старой и новой версии почтового клиента. Однако некоторые изменения не так очевидны, а много работы было проделано «под капотом» приложения, так что стоит рассказать о них подробней.
В первую очередь стоит отметить дизайн. В новой Яндекс.Почте максимум пространства на экране отведено письмам, им же посвящены основные интерфейсные изменения. Например, в приложении используются полюбившиеся пользователям жесты для быстрых действий с письмами. Разобрать входящие сообщения можно за считанные секунды, росчерками пальца по заголовкам. А одной из лучших функций стала возможность предпросмотра вложений прямо в списке входящий, что упрощает поиск нужных писем. Кроме того, все изменения можно производить офлайн, как только появится подключение к сети, они будут синхронизированы с серверами Яндекса. Также стоит отметить поддержку нескольких аккаунтов, например, рабочего и личного. Для тех, кому интересно узнать больше информации об изменениях, мы предлагаем небольшой рассказ о новой почте от тех, кто работал над ее созданием.
О мобильной и дектопной почте
Принято говорить, что мобильные сценарии — они про то, что человек что-то делает на ходу, не дома, когда у него есть большой и удобный компьютер. Но на самом деле это во многом уже не так. Смартфон сопровождает человека везде, но это включает в себя и дом/работу тоже. Люди смотрят телевизор, держа в руках смартфон, общаются со своими друзьями в кафе, одновременно обновляя ленту социальных сетей. То есть смартфон — это не необходимая замена компьютера в метро, а предмет, с которым человек практически не расстается.
Люди на мобильных устройствах в почте делают ровно то же самое, что и на десктопах. Разница лишь в том, чтобы инструменты, с помощью которых мы решаем задачи на мобильных, должны быть удобны для работы пальцами на небольшом экране. Например, у людей бывают треды — цепочки из нескольких писем. Для того, чтобы их было удобней читать на мобильном, мы решили расположить их в виде ленты, то есть на одном экране находятся все письма треда и можно легко перемещаться между ними, отвечать на конкретные письма. Естественно мы не обошли стороной и свайпы, как способ быстро применять действия к письмам, не открывая их.
Об исследовании новых возможностей
За время работы над приложением мы успели пересмотреть не одну дюжину других мобильных клиентов. От любимого многими Sparrow, до экспериментальных проектов, например, Hop. Помимо этого, мы так же активно наблюдали за тем, как ведут себя пользователи в нашем тач-интерфейсе. Самым важным тут является не просто смотреть на те или иные решения, но и постоянно задавать себе вопрос, почему они сделали именно так, а не иначе.
Например, был один почтовый клиент для iOS, который назывался Seed, в нем в одном из первых использовался свайп слева для пометки письмом прочитанным/непрочитанным (еще до того, как это функциональность была анонсирована в нативной почте для iOS8). Нам показалась эта идея интересной и удобной. Мы попробовали ее запрототипировать и попользоваться, оказалось и правда удобно, так она осталась и в финальном продукте. Забавно, что приложение Seed затем отказалось от этой функции.
Что касается не самых удачных вариантов — в одном из приложений мы видели, что отображение вложенных фотографий реализовано как подложка картинки на плашке с письмом в списке. Это безусловно решает задачу выделения письма из списка, но при этом в большинстве случае картинка сливается с темой и отправителями, так что невозможно разобрать, кто написал письмо и о чем оно — необходимо обязательно его раскрывать. В целом, конечно, сейчас на рынке масса хороших клиентов, у которых многому можно научится. Важно не слепо переносить какие-то идеи, которые кажутся хорошими, а думать, почему сделано именно так. Ну и пробовать, действительно ли такое решение работает в рамках своего приложения.
О том, как менялось приложение
С точки зрения внешнего вида, поменялось многое. Еще на этапе отрисовки первых макетов мы постоянно что-то куда-то двигали. Например, разворачивание писем прямо в списке менялось огромное количество раз. Нам хотелось сделать что-то новое и более удобное, чем переходы между экранами «список писем — просмотр письма», но при этом сделать так, чтобы люди не потерялись в новом интерфейсе. Но даже когда на макетах все хорошо и всех устраивает, в «живом» приложении замечаешь еще массу деталей, которые нужно доделать, поправить или совсем изменить.
О самых крутых функциях
Трудно вот так оценивать приложение, которым занимаешься последние полтора года. Нравится чистота и аккуратность интерфейса. Вообще движение к чистому, незагроможденному дизайну присуще многим обновленным продуктам Яндекса, но Почте, как мне кажется, это идет особенно на пользу. Яндекс.Почта за время своего существования обросла огромным количеством возможностей. Перенести их в интерфейс таким образом, чтобы он при этом оставался простым и понятным — сложная задача, которую мы продолжим решать и дальше.
Помимо этого, нам очень нравится концепция офлайновости почты. Мобильный интернет не стабилен. И дело даже не в том, что его много где еще нет, а скорее в том, что сигнал может теряться, становиться совсем слабым. Мы хотели, чтобы Почта в этом случае не сыпала на человека ошибками «действие невозможно, нет сети», а помогала решить проблему (сохраняла письмо и в фоне продолжала отправку, подгружала сообщения тогда, когда есть возможность и давала возможность их прочитать, когда сигнал слабый).
О проблемах и сложностях
Сложностей было много. Оффлайновость, например, тоже не самая простая задача. Она требует разрешения большого числа конфликтов. Например, телефон человека остался без сети, человек в это время делает в почте те или иные действия (ставит на письма метки, помечает их прочитанными). Действия при этом записываются в базу данных приложения и ждут своего часа, чтобы синхронизироваться с сервером при появлении интернета. Однако могут возникать ситуации, при которых с сервера придут обновления, противоречащие тем, что внес пользователь. Для разрешения подобных конфликтов пришлось добавить несколько дополнительных атрибутов в серверный API.