RuEn
  • Мы
  • Реклама
  • Карьера
  • Контакты
  • Новости
  • apps4all.ru 23 08 2016
    новость

    Егор Толстой (LiveJournal): «Мы реализовали всё, что должно быть в уважающем себя клиенте блогоплатформы»

    Блог-платформа LiveJournal.com недавно выпустила новое мобильное приложение. Редакция Apps4All пообщалась с Егором Толстым, Head of iOS Development Department в Rambler&Co. Про проектирование архитектуры приложения, реализованные функции, преимущества перед твиттером и фэйсбуком и многое другое в интервью.

    Егор, привет. Для начала расскажи нашим читателям, как ты связан с LiveJournal и какова твоя роль в запуске приложения?

    Привет! Разработка приложения проводилась силами Rambler Digital Solutions. Это отдельное структурное подразделение холдинга Rambler&Co, занимающееся разработкой web и мобильных решений для различных проектов. За последние два года мы разработали и запустили кучу крутых продуктов – среди мобильных приложений это Афиша, Лента, Рамблер.Почта, Чемпионат.

    Я занимался разработкой и проектированием нового клиента практически с момента старта проекта – и лишь чуть-чуть не успел довести его до релиза, перейдя на должность руководителя отдела. На роли ведущего разработчика меня сменил Вадим Смаль – и уже он довел приложение до ума и выпустил его в AppStore.

     

    Кто еще из команды Rambler Digital Solutions приложил руку к приложению?

    Приложение разрабатывалось достаточно долго и над ним успело поработать много людей. Перечислю только основных участников:

    • iOS разработка: Смаль Вадим, Васюра Анастасия, Головко Михаил, Зиновьев Константин
    • Project manager: Гетманова Екатерина
    • Дизайн: Сбитний Денис, Сорокин Максим

    Перейдем непосредственно к функциям: какие возможности приложение теперь предоставляет пользователям?

    В первой версии мы реализовали все, что должно быть в уважающем себя клиенте блогоплатформы. Для начала, конечно, это просмотр постов, причем с сохранением всего форматирования и адаптацией его к экранам мобильных телефонов. Зарегистрированным пользователям доступна возможность написания и редактирования своих записей – с различными тегами, загрузкой вложений, вставкой катов.

    Одна из самых крутых особенностей нового приложения – это реализация просмотра комментариев. Исторически сложилось, что комментарии в LiveJournal зачастую интереснее самих постов. Параллельных дискуссий проводится очень много, в результате дерево ответов может быть очень и очень сложным. Реализации просмотра дерева комментариев в других приложениях достаточно простые – отображается лишь несколько уровней вложенности, чего нам точно не хватало. Дизайнеры и разработчики совместно выработали очень интересное решение – позиция одного комментария относительно другого отображается не статически, а меняется параллельно со скроллингом. На самом деле, лучше просто посмотреть – выглядит это очень круто.

    Не менее важное достоинство – это полноценный readonly оффлайн-режим. Если пользователь открывал какую-нибудь ленту постов, она была полностью закэширована на устройстве. Можно смело отправляться в места с плохим покрытием связи – весь контент останется доступен.

     

    Правда ли, что не все запланированные фичи успели реализовать: что ожидать дальше?

    Да, конечно, нашей целью было выпустить продукт с минимальным набором функций и постепенно его расширять. Продуктовый бэклог огромный, планов на развитие – масса.

    Что касается ближайших планов – планируем внедрить Universal Links. Это технология, позволяющая открывать все ссылки на ЖЖ не в браузере, а сразу в мобильном приложении. Кроме того, много сил бросили на оптимизацию производительности, в частности – загрузки комментариев.

     

    Расскажи подробнее про процесс разработки приложения: (решения, архитектура, фреймворки)

    Аккуратнее с такими вопросами – тут я могу разойтись и выйти из формата вопрос-ответ. Про техническую сторону LiveJournal можно рассказать очень много. На настоящий момент это одно из самых технически сложных приложений, разработанных нашей командой. Помимо того, что некоторые задачи в приложении были сами по себе нетривиальны, большой отпечаток наложила необходимость работать с бэкендом, пока что не достаточно оптимизированным для мобильных приложений.

    Высокоуровневые архитектурные решения повторяют большинство остальных проектов – мы стремимся к стандартизации процессов разработки. В приложении можно выделить три основных слоя: Presentation, Service и Core.

    Presentation layer – это непосредственно модули и экраны, с которыми взаимодействует пользователь. На этом слое приложения мы используем архитектурный подход VIPER. Если не вдаваться в глубокие детали, это набор стандартов и правил, которые помогают декомпозировать классы, содержащие логику представления. Мы активно популяризируем этот подход через выступления на конференциях и статьи.

     

     

    Service layer, как можно догадаться из названия, реализован с использованием подходов из Service Oriented Architecture. Он разбит на несколько десятков абсолютно независимых друг от друга сервисов, отвечающих за работу с определенными бизнес-сущностями. Ключевая особенность, отделяющая этот слой от верхнего – это его полная абстрагированность от деталей реализации интерфейса приложения. Благодаря этому было возможно спокойно разрабатывать приложение до момента полной готовности дизайна.

    Core layer – это самое ядро приложения, реализующее хранение данных в CoreData и работу с сетью. Здесь тоже не обошлось без интересных подходов. Все сетевые запросы мы построили на составных операциях. Если на пальцах – составная операция представляет отдельный запрос, скажем, получение комментариев к посту. Под капотом она уже состоит из более мелких единиц – операций создания запроса, его подписывания через OAuth 2, выполнения, валидации, десериализации и маппинга. Такой подход позволил нам очень быстро переключаться между разными видами API в процессе разработки – к примеру, с XMLRPC на OpenSocial.

    Теперь о фреймворках. В первую очередь это Typhoon, очень мощный DI-контейнер для Objective-C, в разработке которого активно принимают участие несколько членов нашей команды. Для маппинга данных используем известного многим динозавра RestKit. Еще из интересного: MagicalRecord, Nimbus, HTMLReader, WebViewJavascriptBridge и пару десятков других сторонних зависимостей, в том числе и нашей собственной разработки.

    И немного статистики для привлечения внимания:

    • 2888 unit-тестов
    • 3957 коммитов в Git
    • 253 Code Review (за последние 4 месяца разработки)
    • 52 UITableView
    • Более 804 различных стейтов экранов

     


    Приложения для ведения мобильного блога должны отвечать ряду критериев юзабилити и эффективности взаимодействия – расскажи, как вы подходили к этому, на чем фокусировались и что использовали?

    В процессе работы много внимания уделялось сбору фидбека от целевых групп пользователей, которым высылались бета-версии приложения. В результате UI и UX некоторых экранов менялся несколько раз за время разработки – разработка, конечно, была от этого не в восторге, но зато конечным результатом довольны все.

    Какое уже сейчас количество активных пользователей на данный момент у приложения?

    К сожалению, эту информацию и планы по монетизации разглашать пока не можем.

    Проблемы с сезонными или ситуативными атаками спамеров и ботов как-то учитывались при разработке приложения?

    На самом деле это вопрос не совсем ко мне. Задачи такого рода целиком и полностью ложатся на плечи сервера, и, по имеющейся у меня информации, защита от спамеров и ботов там достаточно мощная.

     

    API для сторонних разработчиков: предоставится ли юзерам право самим решать в какую сторону расширять ЖЖ?

    Насколько я знаю, сейчас в открытом доступе есть старый XMLRPC API, на работе с которым и построены большинство сторонних клиентов. Мы его тоже используем – но только для нескольких запросов, которые еще не переведены на более современную платформу. От себя могу сказать, что в относительно ближайшем будущем будет открыт для публичного доступа и более современный OpenSocial API.

    Что касается участия пользователей в определении судьбы приложения – им в этом процессе, несомненно, отводится первая роль. Все отзывы и комментарии, что в AppStore, что в самом LiveJournal, тщательно анализируются и попадают в бэклог проекта.

    Не могу не спросить, каковы конкурентные преимущества ЖЖ перед твиттером и фэйсбуком? :)

    Это очень разные платформы – в первую очередь потому, что ЖЖ – это не совсем социальная сеть. Это именно платформа для ведения блогов, ни в чем не ограничивающая ее пользователей. Вариантов использования масса. Хочешь – ведешь свой ламповый уютненький дневничок, хочешь – монетизируешь его и превращаешь в настоящий медийный проект. Можно даже использовать свой блог в качестве анонимной борды, если появится такое желание.

    Среди основных отличий в способах подачи контента, можно выделить два основных момента. Во-первых, контент LiveJournal в первую очередь ориентирован на лонгриды и полноценные истории. Во-вторых, сервис предоставляет четкую временную хронологию без дополнительного ранжирования записей – фильтрация ленты друзей остается на плечах самого пользователя. Напоследок упомяну крутой поиск по тегам и датам, мощные возможности индексации контента поисковиками и полную кастомизацию личного профиля.

    Ну и, конечно, теперь одно из главных конкурентных преимуществ – это потрясное мобильное приложение.

     

    Вы уже занимаетесь аналитикой приложения? Какая система подключена, какие данные для вас наиболее важны и как вы их используете?

    Да, конечно, аналитика подключена на самом старте. Для сбора метрик используются две основные системы – Flurry и Fabric, причем вторая – только для событий, актуальных для команды разработки. Вся полученная информация, как и в случае с отзывами пользователей, используется для формирования видения продукта, доработок в UI и UX.

    Наш традиционный вопрос: какие приложения в твоем смартфоне?


    Приложений у меня ну очень много, так повелось еще с далеких лет использования телефонов на J2ME, которые я забивал различным софтом и играми до отказа.

    На домашнем экране находится все, что использую в ежедневной работе на постоянной основе:

    Можешь назвать свой топ приложений по частоте использования и еще несколько примеров клевых приложений, которые тебе нравятся с точки зрения их реализации или идеи?

    По частоте использования:

    • Telegram
    • Outlook
    • CloudMagic
    • Slack
    • OmniFocus
    • Evernote
    • Tweetbot
    • Shortbook

    Из этого списка больше всего обожаю OmniFocus. На мой взгляд, это просто идеальный таск-трекер, который позволяет реализовать полноценную GTD-систему и не погрязнуть в ежедневных делах. На втором месте – читалка Shortbook. Это первое приложение, которое я купил еще для iPhone 3G – и с тех пор ежедневно им пользуюсь. На рынке уже появились более продвинутые и удобные читалки, но этот клиент цепляет своей простотой, удобным интерфейсом и ощущениями чтения настоящей бумажной книги.

    Егор, спасибо! Удачи в реализации дальнейших планов!

    Напоминаем для читателей, приложение адаптировано под устройства iPhone 6 и iPhone 6 plus.

    Скачать приложение бесплатно можно по ссылке.

    http://apps4all.ru/post/08-23-16-egor-tolstoj-livejournal-my-realizovali-vse-chto-dolzhno-byt-v-uvazhayuschem-sebya-kliente-blogoplatformy-c76
    Назад
    Закрыть

    Хорошие новости
    из хорошей компании

    Хотите получать самые свежие новости о Rambler&Co
    раньше всех?