Урок 8 из 8 · 20 мин · обновлено

Публикация приложения и путь в профессию

Как собрать релизную версию приложения, зачем нужен ключ подписи, как опубликовать приложение в RuStore и Google Play, что нужно знать джуниор-разработчику и как подготовиться к собеседованию.

Релизная сборка и подпись

Во время разработки Android Studio собирает отладочную версию. Для пользователей собирают релизную: она оптимизирована и подписана вашим ключом.

  1. В меню Build → Generate Signed App Bundle or APK.
  2. Выберите Android App Bundle (AAB) — это современный формат для магазинов. APK — классический установочный файл, его тоже принимают многие магазины.
  3. Создайте ключ подписи (keystore) и придумайте надёжный пароль.
  4. Выберите вариант сборки release и нажмите Create.

Ключ подписи подтверждает, что обновление выпустил тот же автор. Если потерять ключ, выпустить обновление для этого приложения будет сложно. Поэтому ключ и пароли хранят надёжно и делают резервную копию. Google Play дополнительно хранит у себя ключ для подписи приложения, но ключ загрузки остаётся у вас.

Перед релизом увеличивают versionCode в build.gradle.kts — номер версии для магазина. Каждое обновление должно иметь номер больше прежнего.

Публикация

  • RuStore — российский магазин приложений. Разработчик регистрируется в RuStore Консоли, заполняет карточку приложения: название, описание, иконку, скриншоты, возрастной рейтинг, политику конфиденциальности. Затем загружает AAB или APK и отправляет на проверку.
  • Google Play — крупнейший магазин в мире. Регистрация разработчика платная, а новым личным аккаунтам перед публикацией нужно провести закрытое тестирование с группой тестировщиков.
  • Есть и другие магазины: AppGallery от Huawei, Galaxy Store от Samsung, магазины производителей телефонов.

Перед публикацией проверьте приложение на нескольких устройствах и экранах: маленьком телефоне, большом, планшете, со светлой и тёмной темой.

Что нужно знать джуниору

На позиции Junior Android Developer обычно ждут:

  • Kotlin уверенно, включая корутины и Flow;
  • Jetpack Compose и основы старого подхода с XML — он ещё встречается в проектах;
  • архитектуру: ViewModel, однонаправленный поток данных, разделение на слои, внедрение зависимостей (Hilt или Koin);
  • сеть и данные: Retrofit, Room, DataStore;
  • Git — без него не работает ни одна команда. На сайте есть курс «Git и GitHub»;
  • жизненный цикл Activity и что происходит при повороте экрана и сворачивании приложения;
  • английский на уровне чтения документации.

На собеседовании часто спрашивают про жизненный цикл, корутины, отличие val от var, data class, работу с null и про то, как вы устроили бы экран со списком из сети.

Портфолио

  • 2–3 приложения на GitHub. У каждого — описание, скриншоты и список того, что вы использовали: Compose, ViewModel, Retrofit, Room;
  • хотя бы одно приложение опубликовано в RuStore или другом магазине: это показывает, что вы прошли весь путь;
  • код аккуратный: понятные имена, разбивка на экраны и ViewModel, без огромных файлов на тысячу строк.

Хорошие идеи для первых проектов — приложения с реальным открытым API: погода, курсы валют, расписание транспорта, библиотека фильмов.

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

Пример плана

«Курсы валют» — показывает курсы рубля и помогает пересчитать сумму.

  • Экраны: список валют с курсами; экран валюты с графиком за месяц; калькулятор пересчёта.
  • Данные с сервера: курсы с открытого API Центрального банка, загрузка через Retrofit. Состояния загрузки, данных и ошибки — как в уроке 7.
  • На телефоне: избранные валюты — в DataStore, последние загруженные курсы — в Room, чтобы приложение работало без интернета.
  • Навигация: список → экран валюты по id, как в уроке 6.

В таком проекте есть всё, о чём спросят на собеседовании: Compose, ViewModel, сеть, база, навигация и обработка ошибок.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Зачем приложение подписывают ключом?

  2. В каком формате обычно загружают приложение в магазины?

  3. Что из этого сильнее всего поможет получить первую работу?