Как стать Android-разработчиком: с нуля до публикации приложения на Google Play

15 шагов, и вы Android-разработчик! Какой язык выбрать, как научиться писать приложения и на что обратить внимание при разработке программ под мобильные устройства.

Android-разработчик – профессия будущего. Основные тенденции в развитии мобильных технологий в ближайшие годы будут связаны со следующими направлениями:

  • Дополненная и виртуальная реальности.AR и VR уже применяются в мобильных играх и при посещении интерактивных музеев. Особый шик придает совместное использование с сервисами геолокации. Мобильные устройства – самый доступный вариант, чтобы воспользоваться этими технологиями.
  • Алгоритмы машинного обучения (ML). Мы и не замечаем, сколько различных ML-решений мы уже используем в наших смартфонах: распознавание текста, детектирование лиц, чтение штрихкодов, распознавание достопримечательностей, преобразование аудиозаписей в речь, консультации с чат-ботами и т. д. Все эти технологии делают нашу жизнь проще. По мере роста производительности устройств и большей доступности облачных вычислений будут «входить в моду» всё более ресурсоемкие алгоритмы.
  • Облачные вычисления. Доля мобильного трафика растёт, всё больше пользователей с помощью мобильных устройств получают доступ к различным приложениям и ресурсам. Информационный бум требует производительных мощностей, и облачные вычисления – эффективный способ удовлетворить эти потребности.
  • Электронные платежи. Покупать товары с помощью смартфонов становится всё проще: и с помощью NFC , и онлайн. А новые технологии, такие, как блокчейн, обеспечивают лучшую безопасность платежей.
  • Кибербезопасность. Существенная часть нашей жизни проходит со смартфоном в руке, здесь хранится много важного. Мобильные устройства – привлекательная мишень для хакерских атак. Большинство уязвимостей являются следствием недостаточной проработки концепции защиты. Улучшение качества защиты будет стимулировать развитие рынка.

Но какие навыки нужны, чтобы стать успешным Android-разработчиком? С чего начать?

1. Выберите язык программирования

Два основных языка программирования для разработки приложений на Android – Java и Kotlin. По факту, если вы будете заниматься разработкой серьезно, то вам не обойтись без обоих языков. Однако на конференции Google I/O 2019 было объявлено, что Kotlin является предпочтительным и официальным языком для Android. Использование Kotlin сокращает число ошибок в коде, язык легко интегрируется в существующие приложения. Чтобы освоить этот язык, вы можете воспользоваться нашей подборкой ресурсов для изучения Kotlin.

2. Выберите интерактивную среду для Android-разработки

Интерфейс Andoid StudioИнтерфейс Andoid Studio

Выбор среды разработки – дело вкуса. Однако на первом этапе целесообразнее использовать Android Studio. Последняя версия IDE 4.0 от мая 2020 года, доступна для загрузки на официальном сайте Android. О последнем релизе мы писали в нашей публикации.

3. Изучите манифест и компоненты Android-приложения

Когда вы создадите черновик своего первого проекта в среде проектирования, среда автоматически создаст в папке Android-проекта файл манифеста AndroidManifest.xml .

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

    – экран приложения с пользовательским интерфейсом. Особое внимание следует уделить изучению жизненного цикла активности (Activity Lifecycle). (Service) – компоненты, работающие в фоновом режиме. Например, службы могут обрабатывать сетевые транзакции, воспроизводить музыку, выполнять ввод-вывод файла или взаимодействовать с поставщиком контента. (Content providers). Часто возникают ситуации, когда необходимо получить доступ к информации из другого приложения. Поставщики контента управляют данными: аудио, видео, изображениями и личной контактной информацией (контакты, список вызовов). Это единственный способ совместного использования данных приложениями в Android. (Broadcast receiver) – компонент, реагирующий на сообщения системы Android и иных приложений: сообщения о низком заряде батареи, недоступности мобильной сети, появлении в зоне действия Wi-Fi-сетей. – объекты, связывающие отдельные компоненты (Activity, Service и Broadcast receiver) во время работы приложения.

4. Изучите основные элементы пользовательского интерфейса Android-приложения

Основные элементы пользовательского интерфейса приложения представляют собой:

    – макеты экранов приложения; – поля ввода/вывода, кнопки, тулбары, элементы отображения и работы с мультимедиа, элементы отображения данных, например, RecyclerView; – ресурсы приложения: строки, шрифты, стили, растровая и векторная графика, иконки и анимация; – модуль пользовательского интерфейса Activity. Особое внимание при разработке пользовательского Fragment следует уделить изучению его жизненного цикла (Fragment Lifecycle); (поисковый интерфейс, диалоговые окна, ProgressBar, Toast/SnackBar).

Макеты экранов приложения (UI Layouts) имеют разную структуру:

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

5. Изучите хранилища данных Android

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

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

  • Хранилище приложения (app-specific storage) хранит файлы, предназначенные только для вашего приложения. Либо в выделенных каталогах на внутреннем накопителе, либо в каталогах внешнего хранилища. Если информация носит конфиденциальный характер, лучше хранить ее во внутреннем хранилище.
  • Общее хранилище (shared storage) хранит файлы, которые приложение намеревается предоставить другим приложениям: мультимедиа, документы и другие файлы.
  • Настройки (preferences) используются для хранения примитивных данных в парах ключ-значение.
  • Базы данных (databases) применяются для хранения структурированных данных в частной базе данных с помощью библиотеки Room.

6. Изучите, как работает сборка Android-приложений и плагин Gradle

Система сборки Android собирает ресурсы приложения и исходный код, упаковывает их в APK-файлы. Их можно тестировать и распространять. Android Studio использует Gradle – продвинутый инструмент автоматизации и управления процессом сборки. Это позволяет определить разные настройки конфигурации для разных проектов.

7. Научитесь создавать многопоточные Android-приложения

Каждый Android-разработчик сталкивается с необходимостью использования потоков. Когда приложение запускается, оно создает основной поток выполнения. Чтобы приложение сохраняло отзывчивость, необходимо избегать использования основного потока для выполнения операций, которые приводят к его блокировке: сетевые операции, обращение к базе данных, загрузка компонентов. Такие процессы выполняются в отдельных потоках. Android предоставляет множество способов создания и управления потоками. При использовании языка Kotlin для этих задач можно использовать Coroutines.

8. Изучите методы отладки Android-приложения

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

Окно для отладки приложения в Android StudioОкно для отладки приложения в Android Studio

Отладка приложения осуществляется стандартными средствами, предоставляемыми средой разработки Android Studio.

9. Научитесь работать со сторонними библиотеками

Далеко не любую задачу можно решить с помощью стандартных средств Android. Для многих задач уже разработаны собственные решения, которыми грех не воспользоваться. Для обработки и загрузки изображений это Glide и Picasso, для внедрения зависимостей (Dependency Injection) – Dagger, Koin, Kodein и Hilt, для сетевых взаимодействий – Retrofit, для многопоточного программирования – RxJava. Не поленитесь также изучить библиотеки Google: Firebase, Google Play Services, Google Maps. Знакомство с устройством сторонних библиотек также научит вас писать более качественный код в собственных проектах.

10. Изучите Android Jetpack – набор библиотек и инструментов, ускоряющих работу Android-разработчика

Android JetpackAndroid Jetpack

Android Jetpack – это набор библиотек и инструментов, созданный командой Google для упрощения разработки под Android. Библиотеки, входящие в Jetpack, разделены на четыре вида:

  • Foundation – базовые библиотеки, помогающие сократить шаблонный код.
  • Architecture Components – библиотеки, используемые для построения архитектуры приложения .
  • Behavior – библиотеки-обертки для функциональности, предоставляемой Android SDK. Созданы для улучшения стандартного Android API: Permissions, Notifications, CameraX и другие.
  • UI – компоненты для работы с фрагментами, элементами пользовательского интерфейса и анимацией.

11. Изучите архитектурные шаблоны проектирования

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

По умолчанию, корпорацией Google задокументирована архитектура MVVM , но нужно использовать ту, которая лучше соответствует нашим потребностям.

Распространены три шаблона проектирования:

    (Model-View-ViewModel) – используется для разделения модели и её представления. Разработчик задаёт логику работы с данными, а дизайнер работает с пользовательским интерфейсом. (Model-View-Presenter) – шаблон, облегчающий автоматическое модульное тестирование. (Model-View-Intent) – архитектурный шаблон, позволяющий улучшить масштабируемость приложения.

12. Изучите методы тестирования Android-приложений

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

Тестирование дает следующие преимущества:

  • Быстрая реакция в случае сбоя приложения.
  • Раннее обнаружение неисправностей.
  • Более безопасный рефакторинг кода.
  • Стабильная скорость разработки.

13. Изучите вопросы обеспечения безопасности Android-приложения

14. Изучите работу с сенсорами

Программирование – это круто, но ещё более классно использовать физические компоненты телефона: GPS, камеру, NFC, акселерометр. Работы с этими датчиками по увлекательности близка к высокоуровневому программированию микроконтроллеров – приятно видеть, как написанный тобой абстрактный алгоритм взаимодействует с внешним миром.

15. Опубликуйте приложение на Google Play. Поздравляем, вы Android-разработчик!

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

С описанным багажом знаний вы смело можете двигаться вперёд! Вопросы, рассмотренные в данной статье, помогут в создании портфолио и трудоустройстве.

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

В программе образовательного курса GeekBrains рассмотрены практически все вопросы данной статьи: языки программирования Java и Kotlin, основные компоненты и элементы пользовательского интерфейса Android-приложения, жизненный цикл компонентов Activity и Fragment, работа с базами данных, архитектурные шаблоны проектирования, работа со сторонними библиотеками и тестирование приложений. Также рассматриваются сопутствующие вопросы: работа с системой контроля версий Git, подготовка к собеседованию Android-разработчика, поиск работы и трудоустройство.

Как зарегистрировать аккаунт разработчика в App Store и Google Play

Нельзя просто так взять и выложить приложение в App Store или Google Play. Нужен аккаунт, оплата обслуживания, подтверждение личности и другие формальности. О них и расскажем.

Регистрация аккаунта разработчика в App Store

За годовое обслуживание аккаунта разработчика App Store хочет $99. Эту сумму можно перечислить с карты, причем лучше с отдельной.

Этап 1: создание Apple ID

Каскадная разработка мобильного приложения

Создайте учетную запись и заполните стандартные поля. Система попросит придумать 3 контрольных вопроса, ответить на них и подтвердить e-mail. Вносите корректные данные и проверяйте их перед сохранением — исправлять анкету в App Store нельзя. Бывали случаи, когда из-за одной опечатки процесс регистрации приходилось начинать заново. Анкета будет считаться подтвержденной, а Apple ID созданным, когда вы подтвердите e-mail.

Этап 2: базовая настройка учетной записи

Теперь нужно привязать запись к устройству Apple, включить двухфакторную аутентификацию и сделать привязку к номеру телефона.

Что привязать устройство Apple (Mac, iPad, iPhone) к учетной записи, выйдите из текущего аккаунта (придется ввести пароль от данного Apple ID на устройстве) и войдите с данными, которые вы вводили на первом этапе создания аккаунта.

Регистрация аккаунта разработчика в App Store

Регистрация аккаунта разработчика

Теперь можно включать двухфакторную аутентификацию.

  1. Меню «Настройки» → [ваше имя] → «Пароль и безопасность».
  2. Ползунок «Включите двухфакторную аутентификацию».
  3. Ползунок «Продолжить».
  1. «Настройки» → iCloud.
  2. Выберите идентификатор Apple ID → «Пароль и безопасность».
  3. Ползунок «Включите двухфакторную аутентификацию».
  4. Ползунок «Продолжить».

Если добавить доверенный номер, его также можно будет использовать для аутентификации. Чтобы внести его в аккаунт, нужно будет ввести дополнительный код подтверждения.

Когда настройка завершится, вы сможете выйти из учетной записи разработчика на этом устройстве. После одобрения аккаунта двухфакторную аутентификацию можно будет отключить. Она надежная, но серьезно усложняет жизнь разработчикам, маркетологам, оптимизаторам — каждый раз приходится вводить код из SMS и код с конкретного устройства.

По завершении настройки придется подождать 2 недели — система будет проверять аккаунт. После одобрения можно будет продолжить регистрацию в качестве физического или юридического лица.

Физическое лицо

  1. В качестве владельца приложения указывается имя пользователя,
  2. Доступ в аккаунт разрешен только одному пользователю,
  3. Напрямую вывести деньги через App Store нельзя. Только через внутренний эквайринг и сторонние сервисы.

Этап 1: выбор типа аккаунта
На странице нажмите кнопку Enroll и в открывшемся поле выберите Individual. Это и будет физическое лицо. Кстати, не забудьте проверить двухфакторную аутентификацию — без нее система не даст идти дальше.

Этап 2: заполнение анкеты

Заполните анкету на английском языке. Когда дойдете до конца, появится кнопка «Купить». Нажмите на нее и оплатите $99 — стоимость обслуживания аккаунта разработчика за 1 год.

Регистрация аккаунта в App Store

Лайфхак: на сайте отключите CV-код.

Этап 3: активация

На подтверждение транзакции уйдет 1-3 дня. О завершении процессы вы узнаете, получив письмо с активационным кодом.

Этап 4: завершение регистрации
Кликните по коду в письме, нажмите «Продолжить» и перейдите на Get Started. Поздравляем — теперь вы с доступом к Developer Member Center и порталу разработчиков.

Юридическое лицо

У компаний одобрение аккаунта занимает до 1 месяца. При этом в качестве владельца приложения указывается не имя разработчика, а название компании. Ограничений по количеству разработчиков с доступом в аккаунт нет, а деньги можно выводить напрямую, без посреднических сервисов.

Этап 1: подготовка
Прежде чем оформлять аккаунт на юридическое лицо, вам придется подтвердить, что вы реально существующая организация. Это можно сделать в компании D&B, получив D.U.N.S. номер — международный идентификатор юридических лиц.

Для этого зарегистрируйтесь здесь, вводя данные на русском языке. Проследите, чтобы наименование организации на Apple и D&B совпадали. За D.U.N.S. придется заплатить, а потом подождать 5 рабочих дней. За это время D&B сформирует для вашей организации номер D.U.N.S. Еще две недели придется подождать, пока Apple внесет его в систему. Спустя 19-20 дней после одобрения аккаунта, можно будет продолжить заполнение анкеты разработчика и завершение регистрации.

Кстати, D.U.N.S. можно получить бесплатно. Если время терпит, выберите бесплатную регистрацию международного идентификатора юридических лиц и подождите 30 дней.

Этап 2: выбор типа аккаунта
Теперь, когда у Apple есть ваш D.U.N.S, определитесь со своим статусом: переходите на эту страницу, жмите на Enrol в правом верхнем углу, следуйте «Далее» и в выпадающем списке выбирайте Company.

Регистрация аккаунта разработчика в App Store для юридического лица

Этап 3: заполнение анкеты

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

Регистрация аккаунта разработчика в App Store для компаний

Регистрация аккаунта в App Store для компаний

Этап 4: оплата аккаунта
Заполнив анкету, можно вводить реквизиты банковской карты и оплачивать аккаунт.

Лайфхак: на сайте отключите CV-код.

На транзакцию и подтверждение может потребоваться до 30 дней. В течение этого времени ждите сообщения с кодом.

Этап 5: завершение регистрации

В активационном письме найдите код и кликните на него, затем нажмите «Продолжить» и перейдите на Get Started. Все, пользуйтесь доступом в Developer Member Center и портал для разработчиков, приступайте к загрузке приложения.

Регистрация аккаунта разработчика в в Google Play

За статус разработчика и поддержку аккаунта Google Play собирает $25. Это единоразовый сбор, но даже для него лучше не использовать личную банковскую карту, которой вы оплачиваете повседневные покупки. Заведите отдельную.

Этап 1: оформление аккаунта
Перейдите на страницу создания аккаунта. Заполните поля и следуйте «Далее».

Этап 2: условия соглашения
В Developer Console поставьте галочку «Я принимаю условия соглашения…».

Этап 3: оплата
Оплатите $25.

Этап 4: заполнение анкеты
Заполните анкету, предварительно выбрав имя. Лучше, если будет не «Олежечка», потому как именно его пользователи Google Play будут видеть в карточке приложения.

Совет: система предложит выбрать способ подтверждения входа в аккаунт. Выбирайте не номер телефона, а другой вариант. Разработчики будут то и дело входить в аккаунт и просить сказать код из SMS — вам быстро надоест.

Как видите, самый сложный и длительный процесс регистрации аккаунта разработчика у Apple. Учитывайте это, планируя сроки публикации приложения и его продвижение.