Давайте рассмотрим инструменты, которые точно будут полезны Android программисту в повседневной работе. В интернете полно статей со списками сервисов, из которых вам предстоит самим выбрать что нужно, а что не очень. Я же пройдусь только по тому инструментарию, который использую лично. И в том порядке, в котором они появляются на разных этапах разработки. Итак, погнали…
Цикл разработки мобильного приложения
Будем рассматривать полный цикл разработки приложения под мобильные устройства, а в частности — под андроид . От идеи до релиза в google play store. Некоторые пункты именно вам могут быть не интересны, их можно спокойно пропускать 😉
Disclaimer: также коснемся инструментов, которые пригодятся не только вам, но и команде, в том числе для коммуникации между разработчиками, дизайнерами и менеджерами.
Сбор требований и анализ идеи
Вам пришла в голову гениальная идея нового мобильного приложения, скорее всего вам уже не терпится приступить к написанию кода…
Главная опасность на данном этапе в том, что вы еще не сформировали своё же видение продукта. Уже знаете в нем должно быть (а главное — чего не должно)? Какие есть аналоги и конкуренты? Главные «инструменты» на этом этапе — google\yandex, а также ваши друзья и знакомые. Ищите упоминания или реализации похожих приложений. Спрашивайте ваше окружение — что они думают про идею. Собирайте «требования и хотелки».
Целесообразно записывать (тут выбирайте сами, в онлайне или на бумажке) идеи, мысли и все то, что поможет сформировать ТЗ себе любимому.
Для перехода к следующему этапу нужно иметь
- Сформированное видение конечного продукта
- Текстовую документацию-описание будущего продукта
Если пропустить данный этап, то с учетом того, что писать\думать — быстрее, чем программировать или прототипировать, то возможно
- Потратить кучу времени на переписывание кода
- Не заметить, когда уже можно выпускать первую версию приложения и продолжать разрабатывать «вечно»
Прототипирование мобильного приложения
Цель данного этапа — максимально быстро и просто визуализировать ваше видение приложения для дальнейшей разработки дизайна.
Почему сразу не отдать текстовое ТЗ дизайнеру? Да потому что в большинстве случаев это будет намного дороже и дольше. Дело в том, что по одному и тому же описанию можно представить совершенно разные визуальные формы, UX и UI. Простой пример — вы прочитали художественную книгу, в голове есть картина литературного мира, образы и герои… А теперь посмотрите экранизацию того же произведения… Готов поспорить, что в 90% случаев картинка не будет совпадать с вашим внутренним ощущением. Её ведь создавали совсем другие люди.
После того, как я опробовал множество различных приложений, в конце концов остановился на Balsamiq. Этот инструмент позволяет с минимальными усилиями набросать любой интерфейс. К нему существуют отдельные бесплатные библиотеки элементов, которые заточены именно под мобильный прототип.
Карта экранов и переходов
Когда готовы отдельные экраны, то для полной картины необходимо иметь карту переходов между ними.
Сервис RealtimeBoard (а ныне Miro) позволяет добавить созданные экраны как картинки, нарисовать переходы и добавить участников на «доску» для обсуждения получившегося макета.
Существуют сервисы, позволяющие сделать интерактивный прототип (по которому можно кликать и переходить на экраны). На мой взгляд это занимает на порядок больше времени и не оправдано на данном этапе.
Дизайн мобильного приложения
Дизайн делает дизайнер (Л — логика). Но все же вам, как программисту полезно знать доступные инструменты, хотя бы для того, чтобы посоветовать дизайнеру, если он не занимался плотно разработкой мобильных приложений.
На сегодня основной инструмент — Sketch.
Photoshop идеален для растровой графики. Но в связи с тем, что UI под Android предполагает векторный material design, то стоит использовать специализированные инструменты — это сильно упростит работу.
Последнее время часто слышу про Figma, которая работает в Веб интерфейсе, но лично им не пользовался.
Как передать дизайн разработчику?
Конечно можно передать просто исходники, но это не удобно и не продуктивно. А можно использовать Zeplin
Он позволяет выгрузить созданные экраны, например в Sketch. Zeplin автоматически показывает размеры, отступы, стили. Если сделать иконки exportable, то Android проект позволит выгрузить иконки как вектор или сразу под все необходимые DPI.
Анимация в Android приложении
Переходы, фейды, зумы и тд — это все можно сделать программно. Но иногда дизайнер хочет сделать анимированный элемент, например картинку.
Удобный инструмент сделали ребята из AirBnb — Lottie. Он позволяет эффективно запускать анимации, созданные в Adobe After Effects.
Т.е. дизайнер создает анимацию на векторных элементах. Затем Lottie ее транслирует на мобильные устройства (ну и веб тоже поддерживается) — магия!
Разработка мобильного приложения под Android
Тут особо говорить нечего — Android studio. Полезные библиотеки ищутся в поисковике, либо на Android Arsenal.
Деплой мобильного приложения
Доставка приложения тестировщикам
Удобно использовать Fabric beta. Так можно начать отгружать приложение, даже не имея созданного шаблона в google play developer console. Крайне удобно на раннем этапе разработки.
Релиз Android приложения в Google play
Можно выкладывать приложения руками в маркет. Но правильнее, надежнее и быстрее (в перспективе) настроить автоматизированный deploy приложения. Естественно, перед тем как раскатить релизную версию, необходимо отдебажить и в дальнейшем обфусцировать сборку.
Тестирование и поддержка мобильного приложения
После релиза приложения — работа только начинается 😉
Необходимо иметь возможность получать отчеты о сбоях, обратную связь от пользователей и аналитику из приложения.
Отчеты о сбоях в Android приложении
Сам google play предоставляет сводную информацию по сбоям и зависаниям, а признанный эталон в этом — Crashlytics.
Для более детальной обработки и ловли багов можно использовать также Instabug. Это комплексный инструмент сбора сведений о крешах и обратной связи с пользователями.
Производительность Android приложения
Ваше приложение содержит много сетевых запросов и\или сложной логики? Логично задуматься об оптимизации и замере производительности вашего приложения.
Тут придет на помощь Firebase Performance Monitoring tool, который автоматически отслеживает основные метрики производительности мобильного приложения.
Аналитика в Android приложении
Базовую аналитику можно использовать прямо от Firebase Analytics — дешево (бесплатно) и сердито. Если она уже подключена, а нужна чуть более детальная статистика, то можно выгрузить данные в BigQuery и делать с ними все, что вздумается.
Для более серьезной и удобной аналитики, включая атрибуцию каналов и т.д. стоит подключить, например AppsFlyer
Я не столь силен в аналитике мобильных приложений. Перечислю список основных популярных инструментов для нее: Mixpanel, Amplitude, AppAnnie
Вместо заключения
Статья содержит далеко не полный набор доступных инструментов, но вполне достаточный, для того, чтобы чувствовать себя комфортно и продуктивно в любом аспекте разработки под Android.