Разработчик Дмитрий Гордин провел открытое занятие для Нетологии и рассказал, с чего начинать изучение Android-разработки и как найти первую работу.
Для создания все новых и новых мобильных приложений компаниям нужны талантливые разработчики: профессия востребована, и специалистам готовы платить. По статистике зарплатного сервиса «Мой Круг», разработчики с опытом от 2 лет получают 50 000 − 100 000 рублей в регионах, 90 000 − 160 000 в Москве. Для сравнения, веб-разработчикам платят 50 000 − 110 000 рублей. Программисты, которые работают на иностранные компании, получают больше.
Плюсы Android-разработки
- Распространенность. В сентябре 2018 Android занимает 75% рынка смартфонов, iOS — 24%:
Статистика распространенности операционных систем мобильных устройств
- Разнообразие устройств. Можно писать приложения для смартфонов, планшетов, умных часов, музыкальных систем и телевизоров.
- Дешевле оплата аккаунта. Чтобы публиковать мобильные приложения в Google Play, разработчик платит $25 один раз. Аккаунт Apple Developer стоит $99 в год.
- Android — OpenSource проект. Исходный код системы доступен для всех. Можно посмотреть как сделана та или иная функция. Документация встроена прямо в код в комментариях, ее можно посмотреть прямо в IDE.
С чего начать изучение Android-разработки
План обучения может отличаться, в зависимости от задач и бэкграунда начинающего разработчика. Дальше опишем базовые знания и навыки, которые понадобятся в любом случае.
Изучите основы программирования
Базовые знания HTML и CSS. Выучите синтаксис языков и терминологию, чтобы грамотно формулировать вопросы и быстрее искать на них ответы. Например, эффективнее искать в Google не скругление углов у кнопки, а cornerRadius — поисковик выдаст больше релевантных ответов.
Основы XML. Это язык разметки, который не содержит логики работы или алгоритмов и предназначен для удобного хранения данных. Его стоит выучить, чтобы размечать пользовательский интерфейс, задавать расположение кнопок и текстовых полей, других элементов приложения. XML позволяет использовать мультиязычность, в XML-файлы записывают строки в разных языках.
Принципы работы HTTP и REST. Это протоколы взаимодействия приложений с окружающим миром — другими приложениями и сервисами, например, серверами в интернете. Их нужно осваивать, чтобы понимать, как приложение взаимодействует с другими сервисами и получает информацию из них.
Разница между языками программирования. Компьютер не различает, в чем была написана программа — он выполняет машинные коды. Языки программирования были созданы для разработчиков. У них много общего — почти во всех есть функции, переменные, классы, массивы. Если вы знаете, как использовать их в одном языке, при необходимости сможете перейти на другой. Язык нужно выбирать под решение конкретной задачи, например, для мобильной разработки стандарт — Java.
Общие принципы разработки. Чтобы писать понятный код, который смогут читать коллеги в крупных общих проектах, нужно выучить:
- как называть функции и переменные;
- разделять текст программы на файлы;
- расставлять переносы и пробелы.
Освоить все сразу при обучении не получится, навыки придут с практикой и будут постоянно совершенствоваться.
Основы объектно-ориентированного программирования. Одна из основных идей Java-разработки, которая заключается в следующем. Все предметы или явления реального мира можно представить в программе в виде совокупности их свойств и выполняемых действий. Разрабатывать программу проще, когда вы понимаете: приложение — объект, любое окно в нем — объект, свойства — высота, ширина и цвет фона, методы — рисование изображения, добавление элементов.
Git и Github. Git позволяет просматривать историю проекта, все изменения, кто и когда их вносил. В системе можно обнаружить ошибку и сделать откат. Github нужен для сложных проектов, над которыми работают несколько разработчиков одновременно. Когда один из разработчиков выкладывает код, ознакомиться с ним и редактировать может вся команда. При этом есть возможность работать даже над одним и тем же участком кода параллельно, не мешая работе другого разработчика.
Изучите среду Android
Графические элементы приложений. При создании интерфейса приложения не нужно писать код с нуля, достаточно использовать готовые блоки — View. Существуют разные виды блоков:
- для отображения текста;
- для отображения изображений;
- для размещения на экране других элементов.
Для первых приложений вам будет достаточно готовых блоков, в дальнейшем вы научитесь разрабатывать свои.
Файловая система Android. Ее нужно освоить, чтобы оптимизировать работу приложения и научить его запускаться каждый раз не с чистого листа, а сохранять свое состояние между перезапусками. Также файловая система позволяет обмениваться данными с другими приложениями, например, загружать фотографии из галереи.
Жизненный цикл Android-приложения. Когда пользователь будет работать с вашим приложением, может поступить звонок, прийти СМС или другое приложение выведет уведомление поверх окна. Для таких случаев нужно прописать поведение программы, например, сворачивание окна, паузу, сохранение текущего состояния или уменьшение громкости звука. Если не настроить жизненный цикл приложения, использовать его будет неудобно.
Технологические решения Android. Многие приложения выполняют одинаковые действия, например, запрашивают информацию в интернете, выполняют поиск или сохраняют массивы данных. Чтобы не писать код для этих действий с нуля, научитесь использовать библиотеки — типовые решения. Это части кода, которые хорошо работают и их можно вставлять в свое приложение.
Навигация между экранами. В большинстве приложений предусмотрено несколько экранов. Чтобы пользователь мог переходить между ними, сворачивать или закрывать, вам нужно разработать систему навигации и прописать алгоритм действий для каждого способа навигации.
Работа с сенсорами и тачем. Освойте класс SensorManager, чтобы научить приложение взаимодействовать с датчиками в смартфоне — акселерометром, гироскопом, датчиками расстояния и освещения.
Производительность приложений. Чтобы ваше приложение не потребляло много ресурсов и не заставляло смартфон зависать, научитесь тестировать и дорабатывать производительность.
Все перечисленное — только основы Android-разработки. Также придется освоить библиотеки кода, научиться работать с разными версиями OC Android. Когда будете писать первое приложение — понять суть этапов разработки от изучения документации до тестирования и дебаггинга, релиза, техподдержки и обновления.
Обучение в онлайн-университете: курс «Android-разработчик с нуля»
Освойте инструменты разработки
Основной инструмент разработки приложений — Android Studio. Программа состоит из двух частей:
- Визуального редактора. Здесь можно задавать расположение графических элементов будущего приложения вручную, например, перетаскивать кнопки.
- Редактора кода. В нем пишут, что нужно сделать при нажатии кнопки, увеличении или уменьшении экрана, скроллинге. Писать код можно на любом языке, например, Java или Kotlin.
Подробную видео-инструкцию по скачиванию и установке смотрите здесь: developer.android.com/studio/install
С чего начать карьеру
- Решайте задачи по Java. Найти их можно на тематическом сайте Javarush, в квестах Java Syntax, Java Collections, Java Core и других. Работайте над задачами ежедневно, чтобы освоить язык.
- Переходите на более сложные проекты — разрабатывайте лабиринты, змейку, словари и публикуйте на GitHub. Так вы будете собирать портфолио и сможете показать его работодателю.
- Выкладывайте приложения из GitHub на Google Play. Даже если у программ не будет тысяч скачиваний, ссылки на них можно указать в резюме.
- Изучите вакансии и посмотрите, какие библиотеки используют в компаниях. Освойте Glide, Retrofit, Room, Fabric — с ними работают многие работодатели.
- Выберите потенциального работодателя и идите на собеседование как Junior. Если вас не возьмут на работу сразу, порекомендуют, что изучить и какие пробелы в знаниях и навыках заполнить.
Пример вакансии для junior-уровня
Частые вопросы новичков
Нужно ли знать английский, чтобы стать Android-разработчиком
Разговорный английский для разработки не нужен, но придется освоить технический. Сначала обучающие материалы можно читать на русском, технические термины в них будут созвучны с английскими.
Можно ли научиться разрабатывать мобильные приложения самостоятельно
В интернете доступно много обучающих материалов на русском и английском, их можно освоить самостоятельно. Но для понимания нужно изучить основы, и это лучше делать на курсах под руководством профессионалов. Преподаватели помогут освоить материал с нуля быстрее, ответят на вопросы, дадут рекомендации, проведут ревью кода. Полученные знания лучше сразу отработать на практике — после каждого занятия нужны практические задачи.
Нужно ли знать математику и получить профильное образование
Чтобы начать программировать, диплом университета не нужен. Профильные знания понадобятся, если вы будете работать над соответствующим проектом.
Нужно ли знать все об Android наизусть
Не нужно, но важно уметь задавать вопросы в поисковике и искать на них ответы в документации, на профильных сайтах и форумах. У разработчиков большое сообщество, опытные программисты помогают новичкам. Документация есть в Android Studio, получить полезную информацию можно там.
Что общего у Android с HTML, CSS, Javascript
Мобильная и веб-разработка — разные отрасли. Но если вы знаете языки HTML, CSS, Javascript и понимаете принципы программирования, перейти в Android будет проще.
Можно использовать не Java, а другие языки
Использовать Javascript, Python, C# и другие альтернативные языки стоит, только если решение оправдано, поможет сэкономить время и деньги. Большинство сложных приложений, где нужно взаимодействие с аппаратной платформой телефона, лучше писать на Java или Kotlin. Именно с Java начинают обучение на курсах, так как язык самый распространенный.
Выводы
Android-разработка — перспективное направление. Программисты нужны работодателям, и им готовы платить. Новичкам доступно много обучающих материалов, сильное сообщество опытных коллег всегда поможет советами. Обучаться можно самостоятельно, но чтобы упростить и ускорить процесс, лучше обратиться за помощью к преподавателям и начать с курсов.
Читать еще: «Где фрилансеру-айтишнику искать американских заказчиков»
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.