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

Как стать 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-разработки

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Android серьезно занимается вопросами обеспечения безопасности платформы и экосистемы Android. Для обеспечения безопасности Android-приложения используются следующие средства и механизмы: Encrypt/DecryptProguard и R8.

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

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

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

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

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

***

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

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



Report Page