- Android-разработчик: что умеет, сколько получает, как им стать
- Говорящие цифры
- Чем занимается Android-разработчик
- Инструменты Android-разработчика
- Среда Android Studio
- Языки разработки
- Где работают Android-программисты
- Сколько платят Android-разработчикам
- Карьерный рост и перспективы профессии
- Что должен знать будущий Android-разработчик
- Как всё это изучают
- Кто такой Android-разработчик. Обзор изнутри от Артёма Шабана
- Как Android-разработка отличается от других видов разработки (и, по-моему, круче их всех)?
- Почему Android, а не iOS?
- Как Android-разработчик работает над приложением?
- Какие инструменты использует Android-разработчик?
- Что должен знать и уметь Android-разработчик?
- Что читать и где учиться
- Список ресурсов:
Android-разработчик: что умеет, сколько получает, как им стать
Большинство мобильных устройств в мире работают на Андроиде. Разбираемся, кто же делает для них приложения.
Говорящие цифры
На Android сегодня работает около двух миллиардов устройств — от смартфонов и планшетов до умных холодильников и бытовых роботов.
Система занимает первое место среди мобильных операционок. Она управляет 73% смартфонов в мире — это больше, чем у всех остальных ОС вместе взятых.
В первом квартале 2020 года в онлайн-магазине Google Play было два с половиной миллиона приложений, а уже в сентябре их число перевалило за три.
Но и этого мало. Людям нужны новые мессенджеры, службы для заказа еды и такси, банковские программы и, конечно, игры. На последние приходится около трети всех скачиваний.
Все эти приложения пишут и поддерживают андроид-разработчики. Профессия востребована. И работы хватает не только матёрым специалистам, но и новичкам.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Чем занимается Android-разработчик
Создаёт приложения и поддерживает их работу, — в частности:
- разрабатывает интерфейс, логику и внутреннюю структуру приложений;
- организует удобную навигацию между экранами;
- продумывает, как будет вести себя приложение, если поступил звонок или SMS;
- пишет код;
- оптимизирует приложение: чем меньше ресурсов оно потребляет при работе, тем дольше гаджет проживёт без подзарядки;
- обеспечивает безопасность: устраняет уязвимости и защищает данные пользователя. Это особо важно для банковских и финансовых программ;
- тестирует приложение на разных этапах разработки;
- создаёт внутреннюю документацию и мануал для пользователей;
- загружает готовый продукт в Google Play ;
- изучает пожелания пользователей и готовит обновления.
Эти обязанности обычно распределяются между членами команды. Например, за интерфейс и логику часто отвечают дизайнеры, но бывает и так, что всем занимается один программист.
Как он это делает?
Инструменты Android-разработчика
Началом массовой разработки под Android считается 2008 год. Тогда появился магазин приложений Android Market (в 2012 его переименовали в Google Play). Здесь разработчики выставляют свои приложения.
Сперва их создавали в среде Eclipse с установленным плагином ADT ( Android Development Tools ). Этот плагин страдал от брешей в безопасности. С конца 2016 года он больше не поддерживается.
Сегодня официальная среда разработки для Android — это Android Studio . Она появилась в 2013 году и здорово ускорила создание приложений.
Среда Android Studio
Это основной инструмент андроид-разработчика, бесплатный и совместимый со всеми операционными системами. Скачать Android Studio можно с официального сайта.
Среда позволяет разрабатывать приложения на любых компьютерах. Этим Google Android отличается от iOS (Apple хочет, чтобы разработчики покупали маки и кодили только на них).
C Android Studio разработчику даже не нужны собственные гаджеты на Android, ведь там есть быстрый многофункциональный эмулятор и шаблоны для многих устройств (смартфоны, планшеты, часы, смарт-приставки, телевизоры и так далее).
Полный список возможностей Android Studio с описанием каждой смотрите в официальном гайде.
Языки разработки
Под Android можно писать приложения почти на любом языке программирования: C/C++, Assembler, Fortran, Python, JavaScript. Однако есть языки, которые позволяют использовать все возможности мобильной операционной системы и получать моментальный доступ к новым функциям.
Это официально поддерживаемые языки. Для Android таковыми являются Java и Kotlin:
- Java — традиционный язык разработки. На нём написано большинство Android-приложений, в том числе онлайн-банки. Это хорошо развитый язык с множеством библиотек, модулей и готовых решений.
Кроме того, за языком стоит большое международное сообщество, и если у программиста возникает вопрос по Java, ему легче найти ответ.
- Kotlin — молодой язык программирования, который разработала питерская компания JetBrains.
Он полностью совместим с Java (джавишный код можно вызвать из Kotlin естественным способом, а котлиновский — использовать в Java без особых сложностей).
При этом код на Kotlin крайне лаконичен:
В 2019 Google объявила Kotlin приоритетным в андроид-разработке. Похоже, что произошло это из-за долгой судебной тяжбы с компанией Oracle — создателем Java. Oracle уже 10 лет пытается получить с Google несколько миллиардов за нарушение авторских прав. Суды ещё идут, но Google от греха подальше решила перейти на другой язык.
Kotlin удобнее пользоваться, он решает ряд проблем Java, и изучить его можно намного быстрее. А ещё он сразу входит в Android Studio. Так зачем нам учить Java, если уже есть Kotlin?!
Не всё так однозначно (пока что). Начинающему разработчику важно изучать оба языка, но упор делать всё-таки на Java. Почему?
- Сегодня Kotlin ещё недостаёт готовых решений. Документация языка неполная, поэтому поиск конкретного ответа иногда занимает кучу времени. Чтобы быстрее решить возникшую проблему или даже просто вникнуть во все нюансы документации, нужно знать Java.
- Kotlin активно развивается, разработчики исправляют его недостатки, аудитория языка неуклонно растёт. Новые приложения, особенно небольшие, пишутся на Kotlin. Однако большинство прежних написаны на Java. Их нужно кому-то поддерживать. К тому же многие компании отдают предпочтение Java как языку более развитому и предсказуемому.
- На мобильной разработке свет клином не сошёлся. Такие языки программирования, как Java, C/C++, Swift, очень похожи между собой — и изучение Java позволит быстрее разобраться в других, а вот Kotlin — нет.
Где работают Android-программисты
Во-первых, в студиях мобильной разработки, которые ведут несколько проектов одновременно.
Во-вторых, в компаниях, для которых мобильное приложение — часть бизнеса: это банки, интернет-магазины, СМИ, онлайн-сервисы. Шанс попасть в крупную компанию есть не только у опытных разработчиков, но и у новичков.
Кроме того, всегда можно найти клиентов на фрилансе или придумать собственное приложение и зарабатывать на нём. Например, популярнейший FBReader разработал в одиночку преподаватель математики из Петербурга Николай Пульцин:
Сколько платят Android-разработчикам
Разработчикам-новичкам предлагают зарплату 50–70 тысяч рублей, специалистам со стажем от двух лет — до 150 тысяч, а опытные андроид-программисты могут рассчитывать на зарплату 200–300 тысяч. Есть вакансии с заработком больше 400 тысяч, но их немного.
В ноябре 2020 на HeadHunter было около 6 000 вакансий для андроид-разработчиков, а предлагаемые зарплаты распределялись так:
Карьерный рост и перспективы профессии
В Android-разработке, как и везде в IT, новичок начинает с позиции Junior, затем прокачивает скиллы и становится Middle. Через несколько лет может претендовать на позицию Senior, а наиболее успешные дорастают до тимлидов.
С 2016 года в СМИ ходили слухи, что Google скоро заменит Android новой операционной системой Fuchsia — и Android-разработчики останутся не у дел. Всё прояснилось в 2019 году на конференции Google I/O: руководитель направления Android Хироши Локхаймер заверил, что компания не собирается отказываться от Android для смартфонов. Fuchsia будут применять в умных домах, носимой электронике и устройствах дополненной реальности.
Но даже если Google неожиданно передумает, андроид-программисты без работы не останутся: кому, как не им, переводить приложения на новую операционную систему.
Что должен знать будущий Android-разработчик
Чтобы стать востребованным специалистом, новичку нужно изучить:
- языки программирования Java и Kotlin, на которых написано большинство приложений;
- среду мобильной разработки Android Studio. В ней настраивают интерфейс продукта и программируют его логику;
- общие принципы разработки: оформление кода, как правильно именовать функции и переменные, как разделять код на файлы и многое другое. Не обойтись и без основ ООП;
- языки HTML, CSS, язык разметки XML;
- базовые принципы дизайн-концепций и дизайн-систему Google — Material Design;
- операционную систему Android (это проект с открытым исходным кодом). Нужно знать её файловую структуру, функции и принципы работы;
- популярные фреймворки и библиотеки для мобильных приложений;
- распределённую систему управления версиями Git и GitHub (сервис для проектов, использующих Git) — для совместной работы с членами команды и публикации портфолио;
- unit- и UI-тестирование ПО, чтобы определять качество работы, тестировать гипотезы и отдельные фишки приложения;
- основы алгоритмизации (это поможет не остаться кодером — стать программистом);
- английский на уровне, достаточном для чтения учебных материалов (в частности документации).
Есть мнение, что программирование — это на 90% поиск ответов и только на 10% написание кода. Поэтому на вопрос «С чего начать учить программирование?» логичнее всего ответить — с английского языка.
Это первый язык, который должен выучить программист. У читающих на языке первоисточника огромное преимущество: им доступны лучшие учебные материалы, они раньше узнают обо всех изменениях , а если ещё и разговорный подтянуть, то их профессиональные горизонты не ограничатся отечественными компаниями.
Как всё это изучают
Кто-то изучает сам. Есть много книг, мануалов, видеоуроков, форумов, лучшие из которых, вроде введения в Android, как раз на английском языке.
Однако новичку одинаково легко потеряться в учебных материалах и выбрать неудачный порядок знакомства с ними. Поэтому самостоятельное освоение Android-разработки съедает уйму времени, которое лишним не бывает. Вдобавок — страдает от недостатка практики.
Ценители более системного подхода предпочитают онлайн-курсы (например, на edx.org, Coursera.org, Udacity.org). Но и здесь те же проблемы: выбрать подходящий непросто, качество материала и его полнота очень разнятся, гарантий и обратной связи нет, курсов на русском совсем мало. Да и с бесплатностью всё не так однозначно — эти платформы постепенно превращаются в коммерческие, отступая от первоначальной идеи.
Конечно, есть и исключения — образцы доступного качества вроде легендарного MIT . Но к сожалению, у него нет курса для Android-разработчиков.
Такой курс есть у Skillbox. Стартовать с опытными наставниками и постоянной обратной связью гораздо выгоднее. Наши студенты изучают всё на практике, общаются с менторами, создают полноценный проект для портфолио и быстро входят в профессию.
Первые полгода можно учиться бесплатно, а рассчитываться уже с первой зарплаты — с трудоустройством мы тоже помогаем.
Google Play Store — магазин приложений, а также игр, книг, музыки и фильмов для владельцев устройств с операционной системой Android.
Eclipse — это IDE («единая/интегрированная среда разработки») для кроссплатформенных приложений. Распространяется на условиях свободного ПО (free software). Подробнее тут.
Android Development Tools («Инструменты разработки под Android») — плагин, который Google предоставляет для разработки Android-приложений в IDE Eclipse.
Среда Android-разработки на базе интегрированной среды IntelliJ IDEA от JetBrains.
Включает эмулятор Android, языки программирования, компиляторы, инструменты для сборки приложения и создания интерфейсов.
Сегодня Android Studio — официально поддерживаемая Google IDE.
Объектно-ориентированное программирование — это парадигма разработки ПО, в которой приложения состоят из объектов, каждый из которых является экземпляром некоторого класса, а каждый класс — потомком другого класса в иерархии наследования.
Подробнее об ООП здесь.
Google регулярно выпускает обновления и новые библиотеки. Поэтому выучить что-то один раз и только на этом ехать дальше — в Android-разработке не выйдет.
Массачусетский технологический институт (читается «эм-ай-ти») — один из престижнейших технических вузов мира; ещё в 2016 году полностью оцифровал свою учебную программу и открыл материалы всем желающим.
Источник
Кто такой Android-разработчик. Обзор изнутри от Артёма Шабана
Про Android-разработку рассказывает Артём Шабан, Development Director в Onde.
Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить перспективы или просто сверить часы с авторитетным коллегой. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его ещё полезней.
Про Android-разработку рассказывает Артём Шабан, Development Director в Onde.
Продолжаем цикл материалов про ИТ-специальности. Каждую из них описывает «типичный представитель» — опытный специалист. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, джуниорам и сочувствующим выбрать специальность в ИТ, оценить перспективы или просто сверить часы с авторитетным коллегой. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его ещё полезней.
Коротко обо мне:
— 7 лет в разработке;
— опыт в Android-разработке — около 5 лет;
— пришёл в Onde джуном и прошёл весь путь до сеньора и тимлида;
— сейчас моя роль в Onde — Development Director.
В общем виде цель работы Android-разработчика — разработать мобильное приложение так, чтобы пользователь открыл его и сказал: «Вау! Оно решает мою проблему». Весь труд разработчика направлен на выполнение данной цели.
Мобильный разработчик старается максимально облегчить жизнь пользователю: приложение не должно «вылетать»; оно не должно тормозить даже на старых или дешёвых устройствах (ведь Android-смартфонов очень и очень много!); интерфейс, который создают дизайнеры и реализуют программисты, должен быть удобен и понятен. Такие задачи разработчик решает каждый день.
Компания поставляет инновационное программное обеспечение для on-demand предприятий с 2011 года. В компании 70+ энтузиастов и энтузиасток, стремящихся улучшить транспортное сообщение во всех уголках планеты.
Главная специализация Onde — разработка софта, необходимого компаниям для on-demand доставки, заказа такси и услуг. Клиенты компании находятся в 60+ странах и составляют активную и уникальную группу предпринимателей в сфере on-demand мобильности.
Как Android-разработка отличается от других видов разработки (и, по-моему, круче их всех)?
На самом деле, все виды разработки важны. Важен бэкенд, который обеспечивает правильную работу приложений на серверах. Спасибо «бэкендерам» за это! С фронтендом пользователь сталкивается в первую очередь, потому что именно «фронтендеры» разрабатывают интерфейс (UX/UI) приложения. Как известно, встречают по одёжке — поэтому чем круче UX/UI, тем больше шансов у приложения стать популярным.
Но самые крутые ребята — «мобильщики» — разработчики, которые создают сами приложения. Быть «мобильщиком» круто хотя бы потому, что ты всегда можешь увидеть и показать другим результаты своего труда. Бэкенд-разработчик не может открыть своё приложение перед мамой, женой или другом и сказать: «Смотри, как круто я сделал!». Если ты работаешь мобильным разработчиком в крупной компании, то твоими приложениями будут пользоваться сотни тысяч или даже миллионы людей. Это вдохновляет.
Почему Android, а не iOS?
Мобильная разработка ведётся на двух самых популярных платформах: Android и iOS. И здесь начинается настоящий холивар. Объясню, почему я когда-то сделал выбор в пользу Android.
- Порог входа на Android ниже, чем на iOS — как для пользователя, так и для разработчика. Телефон на Android можно купить за $50 или даже дешевле. Сколько там стоит новый айфон? Разработчик может даже не покупать девайс, чтобы работать над приложением. Можно обойтись Android-эмуляторами на компьютере. Когда-то я так и начинал.
- Android широко используют не только на смартфонах, но и в «умных» вещах (IoT): от автомобилей до «разумных» утюгов и стиральных машин.
- Мир Android очень сложный и разнообразный. У айфона всего пару десятков моделей, Android-девайсов — тысячи. Интересно знать, что твоим приложением будут пользоваться на тысячах разных устройств! Слова «оптимизация» и «перформанс» всё ещё не забыты в Android-разработке. Миллионы людей в Африке и Азии используют супер-дешёвые девайсы, и твоё приложение должно стабильно работать на любом «китайфоне». Мир Android-девайсов постоянно подкидывает тебе новые вызовы и новые задачи. Конечно, это не только интересно, но и сложно: надо быть всегда готовым, что приложение перестанет работать на очередной нетипичной модели смартфона.
- Android — это open-source платформа. Код, на котором она написана, доступен для каждого. Всегда можно заглянуть поглубже и узнать, каким образом разработана и функционирует сама система.
Как Android-разработчик работает над приложением?
Основные этапы разработки выглядят примерно так.
- Во-первых, Android-разработчик должен понимать контекст задачи: для кого и для чего предназначено приложение, как оно будет выглядеть и работать. Обычно в начале работы есть готовый макет UX/UI приложения и его общее описание. Основа приложения — UX (User Experience — проект взаимодействия пользователя с интерфейсом). Он выглядит как раскадровка экрана будущего приложения, набросок того, как пользователь будет работать с программой. Потом на проект накладывается начальный UI-интерфейс, а уже готовый дизайн отдаётся разработчику. Опытные разработчики участвуют в создании приложении уже на первом этапе — проектирования макета UX. Ведь всегда есть технические ограничения, и о них лучше узнать уже на стадии проектирования.
- Разработчики (часто при помощи бизнес-аналитиков) расписывают кейсы (use cases) — основные последовательности действий в приложении. Нажал одну кнопку в интерфейсе — открылось основное окно. Нажал другую кнопку — выскочил список настроек. И так далее. В небольших стартапах начальная работа над приложением может ограничиваться работой над UX/UI.
- Основная разработка ведётся поэкранно. «Экраны» — это важные участки приложения, которые создаются по отдельности. Например, три экрана разделяются между командой, потом соединяются. Если разработчик не знает, как написать тот или иной участок кода или добавить какой-то компонент программы, — он гуглит. Или консультируется у коллег. В этой работе всегда надо учиться.
- Экраны готовы, приложение готово. Тестировщики должны проверить, чтобы всё соответствовало требованиям. Но начинает тестирование сам разработчик — надо же покликать и убедиться, что приложение работает нормально. Иногда разработчик пишет для тестировщиков автоматизированные тесты.
- Финальный этап — выход приложения в Google Play. В небольших компаниях заливает приложение в стор сам разработчик. Сделать это несложно — нужно всего-то нажать пару кнопок. Но в больших компаниях, как Onde, в сторы загружают десятки и сотни приложений, так что этим занимаются отдельные люди.
Когда приложение готово и вышло в Google Play, работа разработчика не заканчивается. Ему предстоит поддерживать, изменять и улучшать программу.
Приведу пример типичной задачи. UI-дизайнеры перенесли кнопку в другое место интерфейса и изменили её цвет. Разработчику нужно поменять разметку (layout) приложения. И далее — проверить, что кнопка правильно расположена на разных ориентациях экрана, а при нажатии она правильно меняет цвет, тень, положение. Вы же помните, что Android-девайсов великое множество? Так вот надо ещё убедиться, что кнопка будет правильно располагаться и отображаться на экранах разного размера и разрешения.
Какие инструменты использует Android-разработчик?
- Android Studio. Это официальная IDE (интегрированная среда разработки) для Android, созданная JetBrains и Google. Здесь пишется код.
- Git. Сюда складывается написанный код и здесь хранится.
- Смартфон или Android-эмулятор на компьютере. На них приложение запускается и тестируется.
Сейчас большинство Android-разработчиков пишет код на Kotlin, но ещё пару лет назад все писали на Java. Эти два языка похожи (оба относятся к группе JVM-языков), поэтому переходить с одного на другой несложно. Если совсем просто, то Kotlin — тот же Java, только немного красивей и приятней. Сегодня Kotlin — один из официальных языков для Android.
Что должен знать и уметь Android-разработчик?
Скиллы разработчика сильно зависят от его уровня. Деления на такие уровни всегда условны, и абсолютной градации нет. Для простоты выделю для разработчика три роли: джун, миддл и все остальные (сеньор, тимлид, технический директор и пр.).
Для себя я определил очень простой способ их различать — по уровню задач. Джун всегда решает элементарные и понятные задачи. Миддл уже справится с любой задачей. Он сделает её правильно, но, скорее всего, не с первого раза — ему придётся совершить несколько итераций. А вот сеньор или «равный» ему специалист сразу справится с любой, даже самой сложной задачей.
Можно сравнить разработку программ со сборкой автомобиля. Джуну для сборки понадобятся детали и инструкция. Придётся хорошенько постараться, но рано или поздно машину он соберёт. Миддлу дай запчасти — и авто будет готово. А вот сеньор — тот человек, который может спроектировать машину с нуля. Достаточно поставить перед ним общую задачу: «машина должна быть быстрая» или «это должен быть внедорожник».
Джуну дают типовые задачи начального уровня. Обычно они связаны с UX/UI: добавить в интерфейс кнопочку, изменить параметры того или иного элемента. Другими словами, в хорошо известных местах приложения он меняет понятные кусочки кода. Основной скилл джуна — умение учиться. По моему мнению, для джуна в принципе не очень важны знания конкретных технологий (языка программирования или фреймворка). Знания очень быстро устаревают. Единственное, что не устаревает, — это способность думать и учиться.
Миддлу не страшно дать любую задачу, и он точно с ней справится. Большинство программистов (независимо от того, как их роли называются в конкретной компании) — миддлы. В Беларуси эта роль начинается после двух лет хорошего опыта. Миддл работает с уже готовой архитектурой. Знает, как она работает, знает её базовые компоненты. Он уже отлично владеет языками программирования и фреймворком Android.
Сеньор не только знает и понимает архитектуру приложения, но может и сам её спроектировать. Он решает концептуальные задачи. Сеньору, в дополнение ко всем перечисленным навыкам миддла, необходимо очень развитое абстрактное мышление. На этом уровне программирование превращается в настоящее творчество.
Есть ли жизнь после сеньора?
Почти любой разработчик идёт по этой лестнице — джун-миддл-сеньор. Дальше перед ним открываются два концептуально разных пути.
Он может развиваться в хард-скиллах — вырасти в очень крутого технического специалиста. Это может быть Principal Developer или Solution Architect. Они решают технические задачи высшего порядка: концептуальные проблемы с перформансом или кросс-платформенностью, сами проектируют программы.
Второй путь — менеджерский. Сеньор может стать тимлидом, а из тимлида вырасти в технического директора — СТО. Это вершина развития технического менеджера.
И, конечно, всегда можно открыть свою компанию и развивать собственные идеи и продукты.
Что читать и где учиться
Не буду рекомендовать много книг. Признаюсь честно: сам я до конца не прочитал ни одной книжки по программированию. Хотя наверняка кому-то книжки нравятся и помогают.
Очень рекомендую всем новичкам писать свои приложения. Это звучит сложно, но на деле это не так.
Как бы я сейчас учился программировать под Android? Во-первых, нашёл бы бесплатный курс по программированию. Во-вторых, посмотрел бы видео-гайд по созданию своего приложения. Параллельно создавал бы простенькое приложение. Таким образом можно изучить основы языка и применить их сразу на практике. В конце такого курса обучения на руках у джуна будет готовое приложение, и с ним можно идти устраиваться на работу.
Напоследок небольшая история.
Однажды на собеседование в Onde пришёл человек. Он не знал ни Java, ни Kotlin. Зато написал собственное приложение на Delphi — простейшую игру вроде змейки. Мы даже не знали, как его собеседовать, — человек ничего не знал из нужных нам технологий! Но он создал своё приложение и отлично понимал базовые принципы программирования. Сейчас этот человек — один из ключевых Android-разработчиков в компании.
Список ресурсов:
Kotlin
- Для тех кто не знает языки программирования: «Head First. Kotlin».
- Для тех, кто умеет немного программировать: короткий гайд на официальном сайте Kotlin.
- «Head First. Паттерны проектирования» — одна из немногих книг которую я прочитал, потому что там картинок больше чем текста =). Она для тех, кто уже умеет программировать, и хочет развиваться дальше. Паттерны проектирования — это обязательные знания, чтобы трансформироваться из джуна в миддлы. Поэтому для начала ее можно не читать, но стоит запомнить и прочитать в будущем.
Android
- Базовый сайт, который стоит добавить в закладки: developer.android.com.
- Бесплатные поэтапные уроки на русском (что-то на Kotlin, что-то на Java, но не стоит этого бояться, синтаксис очень похож): developer.alexanderklimov.ru.
Бесплатные курсы, рекомендованные Kotlin и Google:
Технические новости (советую читать, чтобы быть в теме): Android-разработка на Хабрахабр.
Источник