Мобильные приложения
Приложение для телефона отличается от сайта не только языком: здесь магазины со своими правилами, чужая камера в руках, слабая сеть и батарея, которую нельзя сажать. Карта ведёт от выбора пути до опубликованного приложения.
Нативно или один код на две платформы 3 дня
Нативная разработка (Kotlin для Android, Swift для iOS) даёт лучшую скорость и полный доступ к возможностям телефона. Flutter и React Native позволяют писать один код на обе платформы — экономия примерно вдвое, ценой зависимости от посредника. Для первого приложения от заказчика чаще выбирают второе.
Что уметь в конце
- Назвать три довода за свой выбор и три против
Где смотреть
Что нужно кроме кода 2 дня
Аккаунт разработчика в каждом магазине платный, для iOS нужен компьютер Apple, для проверки — настоящее устройство, а не только эмулятор. Об этом лучше узнать до начала работы, а не в день сдачи.
Что уметь в конце
- Посчитать разовые и ежегодные расходы на выпуск приложения
Язык и его среда 2 месяца
Синтаксис, типы, асинхронность, сборка проекта. Самый длинный узел карты: пока язык не стал привычным, интерфейс будет собираться наугад.
Где учить
Экраны и переходы 3 недели
Как устроен экран, как между ними переключаться, как вернуться назад и не потерять введённое. Навигация — то, за что приложение чаще всего ругают.
Что уметь в конце
- Собрать приложение из четырёх экранов с вкладками и возвратом
- Сохранить состояние при повороте и сворачивании
Списки и плавность 1 неделя
Лента на тысячу элементов не должна дёргаться. Переиспользование ячеек, подгрузка по частям, картинки в фоне — базовые приёмы, которые отличают приложение от учебного примера.
Разные экраны и шрифты 1 неделя
Маленький телефон, планшет, крупный системный шрифт у человека со слабым зрением, вырезы и закруглённые углы. Проверять нужно на всех, а не на своём.
Правила платформ 3 дня
У Apple и Google свои требования к виду и поведению. Их нарушение — частая причина отказа при публикации, особенно у Apple.
Работа с сервером 2 недели
Запросы, разбор ответов, состояния загрузки и ошибок, вход по токену. Мобильная сеть рвётся чаще проводной — повторные попытки нужны с первого дня.
Хранение на устройстве 1 неделя
Настройки, кеш, база данных в телефоне. Отдельно — безопасное хранилище для токенов: обычные настройки для них не годятся.
Работа без сети 1 неделя
В метро, в лифте и в горах приложение должно хотя бы показывать сохранённое. Дальше — очередь действий, которые уйдут на сервер, когда связь вернётся.
Разрешения устройства 1 неделя
Камера, геолокация, файлы, контакты. Просить нужно в момент, когда понятно зачем, и уметь работать дальше после отказа — иначе приложение просто закроют.
Уведомления 1 неделя
Доставка сообщений через службы Apple и Google, разрешение от человека, переход по нажатию в нужный экран. Здесь же чувство меры: назойливые уведомления — первая причина удаления.
Отладка на устройстве 1 неделя
Журналы, точки останова, просмотр сетевых запросов, инспектор интерфейса. На настоящем телефоне видно то, чего никогда не покажет эмулятор.
Тесты 2 недели
Проверки логики и сценариев «человек нажал — получил». Дешевле любого ручного прохода перед каждой публикацией.
Скорость и батарея 1 неделя
Время запуска, плавность прокрутки, расход заряда и трафика. Приложение, которое сажает батарею, удаляют молча.
Сбор сбоев 3 дня
Приложение падает у людей, а не у вас. Служба сбора отчётов покажет, на какой строке и на каком телефоне, — без неё вы узнаете о проблеме из отзывов.
Сборка и подпись 1 неделя
Готовый файл приложения подписывается ключом — и этот ключ нельзя потерять: без него не выпустить обновление. Здесь же разные сборки для проверки и для магазина.
Что уметь в конце
- Собрать подписанную версию и надёжно сохранить ключ
Публикация в магазинах 2 недели
Описание, снимки экрана, возрастной рейтинг, политика конфиденциальности, проверка модераторами. Первый отказ получают почти все — важно понимать формулировки и уметь ответить.
Обновления и откат 3 дня
Постепенная выкатка на часть пользователей, остановка при росте сбоев, поддержка старых версий. В отличие от сайта, откатить приложение у людей мгновенно нельзя.
Сверка с зарубежными картами необязательно
Отдельные полные карты по Android, iOS и Flutter — у коллег из roadmap.sh.