Журнал / польза

Какие навыки нужны начинающему Android-разработчику

Почему мобильная разработка настолько востребована.

Android-разработчик занимается созданием и поддержкой приложений: добавлением разных элементов вроде кнопок и списков, а также вёрсткой экранов. Сергей Бувака из команды Yandex Pay, автор курса Яндекс Практикума «Android-разработчик», рассказал, что нужно знать, чтобы создавать мобильные приложения.

Чем занимается Android-разработчик

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

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

Android-разработка, как и мобильная разработка в целом, отличается от привычной всем веб-разработки, которая делится на фронтенд и бэкенд. Фронтенд-разработчики отвечают за то, чтобы всё правильно отображалось в разных браузерах, дизайн не нарушался, а кнопки нажимались. Бэкенд-разработчики должны следить, чтобы запросы проходили быстро, данные не терялись и были в безопасности, а тысячи запросов не перегружали сервер.

Задачи мобильного разработчика схожи с задачами фронтенд-разработчика: он тоже работает с интерфейсом и дизайном, но при этом выстраивает архитектуру приложения и берёт в расчёт, как оно будет взаимодействовать с хранилищами и сетью. При этом настройкой «внутренней» части — работой с базами данных или обработкой запросов — занимается бэкенд-разработчик.

Мобильное приложение — это продолжение руки пользователя. А веб-сайт — просто удобный способ что-то сделать, сидя за компьютером.

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

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

В то же время приложение должно заботиться о ресурсах устройства: если веб-страница, открытая в браузере ноутбука, будет постоянно что-то загружать, то это мало повлияет на пользователей. Всё будет работать стабильно, пока позволяет память и скорость интернета. А у смартфонов такого ресурса нет: в Android есть множество ограничений на работу приложений в фоновом режиме. Когда у пользователя открыто много приложений, система в любой момент может избавиться от «лишних».

Более того, мобильная разработка — это не только приложения для телефонов, но и умные устройства вроде смарт-часов или телевизоров. Часто там нет пользовательского интерфейса, но есть много глубоких задач: как настроить связь с Bluetooth или геолокацией, как сделать так, чтобы всё работало плавно и безопасно. Конечно, это редкие кейсы, в большинстве случаев Android-разработчик создаёт приложение именно для телефона.

Что должен знать начинающий Android-разработчик

В большинстве случаев для разработки используются языки Java и Kotlin. Можно сказать, что они родственники, потому что Kotlin работает поверх Java Virtual Machine. Кроме того, вы можете легко перенести приложение с Java на Kotlin и наоборот.  В 2016 году Kotlin стал официальным языком программирования, и в новых приложениях чаще используется Kotlin либо сочетание обоих языков, но встречаются и приложения, полностью написанные на Java.

Если вы знаете Java, то выучить Kotlin будет несложно.

Но Android-разработка не ограничивается этими двумя языками. Вам могут встретиться и другие:

— С# — с его помощью пишут логику приложения на фреймворке Xamarin, который нужен для кроссплатформенной разработки мобильных приложений;

— HTML+CSS — можно на них написать классический сайт, а потом получить готовое приложение, пропустив код через платформы Cordova или PhoneGap;

— React Native — платформа мобильных приложений на основе JavaScript, которая позволяет создавать мобильные приложения с собственным интерфейсом для iOS и Android.

Основной инструмент Android-разработчика — IDE Android Studio от Google. Причём работать в ней можно на macOS, Windows и Linux. В Android Studio есть многофункциональный эмулятор устройств и шаблоны, однако без реального устройства очень сложно проверить некоторые вещи, поэтому лучше иметь под рукой смартфоны разных моделей.

Начинающему Android-разработчику нужно знать, что такое XML-разметка, как работает git, в чём заключаются основы ООП и, само собой, как работает операционная система Android. Кроме того, в разных компаниях и проектах есть свои инструменты для разработки, с которыми вы познакомитесь в процессе работы.

Какие перспективы у Android-разработчика

Главный плюс Android-разработки — огромная сфера применения. На Android работают около 75% телефонов, но сюда же можно добавить разные умные гаджеты от фитнес-браслетов до холодильников и телевизоров. Если говорить в абсолютных цифрах, это примерно 2,5–3 миллиарда устройств.

Что касается развития карьеры, то здесь есть разные варианты:

— сосредоточиться на разработке мобильных приложений и дорасти до senior-разработчика;

— вырасти в тимлиды и контролировать работу других разработчиков;

— подтянуть техническую часть и освоить инженерное направление.

А чтобы дать старт любому из этих направлений, есть курс Яндекс Практикума «Android-разработчик». На протяжении обучения студенты разрабатывают одно большое приложение — от спринта к спринту. Обучение начинается с Java: в программу внесены только те основы, которые необходимы для мобильных разработчиков. После этого начинается изучение Kotlin. Кроме этого, в курсе есть блоки о хранении данных, многопоточности и архитектуре. На каждом этапе студентов сопровождают опытные мобильные разработчики: наставники разбирают сложные темы и отвечают на вопросы, а ревьюеры тщательно проверяют код и дают рекомендации, как его улучшить.