что такое android developer
Чем занимаются андроид-разработчики
И за что получают 103 тысячи рублей.
Андроид установлен в 8 из 10 смартфонов в мире. Это 2,5 миллиарда пользователей, а также крупнейший рынок мобильных приложений. Всю эту вселенную обслуживают андроид-разработчики.
В этой статье разбираемся, что именно делают, какими инструментами пользуются и сколько зарабатывают разработчики приложений для Андроида.
Карта мира мобильных операционных систем. Всё синее — андроид. Источник: Bloomberg
Что делает
Андроид-разработчик создаёт приложения и поддерживает их работу. При этом он не только пишет код, но может и заниматься другими вещами:
В компаниях андроид-разработчиков могут объединять в команды, чтобы за каждым человеком закреплялся узкий набор задач: одни пишут код, вторые его тестируют, третьи отвечают за обновления и так далее. А могут и свалить всё на одного умельца, дай бог ему здоровья.
Что должен знать
В андроид-разработке много направлений, и поэтому сложно сказать, какие именно навыки пригодятся. Обычно в вакансиях спрашивают следующее:
База знаний андроид-разработчика постоянно расширяется, поскольку Гугл регулярно выпускает новые обновления и библиотеки. Если вы хотите что-то один раз выучить и просто работать — это не про андроид-разработку.
Зарплата андроид-разработчика
В 2020 году средняя зарплата андроид-разработчика 103 тысячи рублей — это примерно столько же, что и год назад. Больше всего вакансий в Московской области и в Крыму, а самый высокий средний доход в Курганской области — здесь работодатели готовы платить 150 тысяч рублей.
Во втором полугодии 2020 года начинающие специалисты получают 60 тысяч рублей — сайт «Хабр Карьера» не делит мобильную разработку на iOS и андроид-направления, поэтому эта средняя зарплата для всех джунов.
Рабочие инструменты
Основной инструмент андроид-разработчика — программа Android Studio. Она постоянно обновляется, совместима с любой операционной системой, доступна для бесплатного скачивания и находится на сайте developer.android.com.
Android Studio позволяет написать приложение с нуля или начать с макета:
В Android Studio встроен редактор макетов и есть функции для командной работы, тестирования и рефакторинга кода. Поддерживаются языки Kotlin и Java. Полный перечень возможностей смотрите в «Гиде пользователя» на сайте программы — документация на русском языке с описанием каждой функции.
Стандартный режим Android Studio 4.0.1 — версия программы, актуальная на момент обзора
Перспективы
С 2016 года андроид-разработчиков пугают страшилкой, что Гугл откажется от андроида, переведёт все устройства на OS Fuchsia и оставит всех без работы. В 2019 году на конференции Google I/O ситуация прояснилась: Fuchsia не станет заменой андроида, а будет использоваться для умного дома, интернета вещей и прочих гаджетов. Об этом заявил глава направления Android Хироши Локхаймер.
То есть андроид никуда не уходит, но даже если бы это было не так — всё равно не страшно. У Гугла в запасе нет столько программистов, которые способны перевести все устройства на новую операционную систему — это будут делать андроид-разработчики. Работы всегда будет много.
Что касается развития карьеры, то здесь есть три варианта:
Кто такой Android-разработчик?
Эксперт в Java, Kotlin, Android, SQL, проектировании информационных систем.
Android — лидер среди операционных систем во всем мире с огромным количеством поддерживаемых устройств. Чтобы начать разрабатывать мобильные приложения на этой ОС, нужно знать Java, но лучше еще и Kotlin, а медианная зарплата такого специалиста составляет 140 тыс. рублей. Вместе с Android-разработчицей такси Maxim и ментором курса «Android-разработчик» Ариной Мурашевой ответили на главные вопросы о профессии.
Что делает Android-разработчик?
Он создает и поддерживает приложения на операционной системе Android. На ней работают не только смартфоны, но и планшеты, умные часы, а также Smart TV. Именно от разработчика зависит, насколько удобным и функциональным будет приложение.
Специалист мобильной разработки не только создает архитектуру приложения, но и делает удобный пользовательский интерфейс, тестирует приложение, работает с API (Application Programming Interface — программный интерфейс приложения).
Android-разработчик создает приложения для устройств на операционной системе Android. Он пишет код, работает над интерфейсом и дизайном, тестирует приложение и исправляет баги, а также адаптирует его под разные модели устройств (которых у Android великое множество).
Где нужен и насколько востребован Android-разработчик?
Пандемия ускорила переход бизнеса в онлайн, и рост интернет-торговли и связанных с ней сфер продолжается, а владельцы бизнеса стремятся охватывать как можно больше аудитории, создавая приложения как для iOS, так и для Android. Разработчиков приложений активно ищут в маркетинге, ритейле, банкинге, транспортных агрегаторах, гостиничном бизнесе, образовании, спорте и играх.
По данным statcounter на начало 2021 года, доля Android среди мобильных устройств в мире составляла 74,34% (это около 2,5 млрд активных устройств).
На июнь 2021 года на hh.ru было 1574 вакансии Android-разработчика в России (против 1461 iOS-разработчика). Можете посмотреть актуальное состояние рынка, вбив в любой поисковик работы название вакансии.
Сколько получает Android-разработчик?
Согласно исследованию Хабр Карьеры, медианная зарплата мобильного разработчика в России — 140 тыс. рублей. Разработчик на Android c опытом 1–2 года в России получает в среднем около 120 тыс. рублей в месяц.
Мидл-специалист может получать от 100 тыс. рублей в месяц, а синьор и тимлид в среднем от 180 тыс. рублей.
Плюсы и минусы профессии
Плюсы:
«Плюсы — видишь результат своей работы. Из минусов — китайские телефоны, которые тоже нужно поддерживать».
Минусы:
Станьте мобильным разработчиком в штате или на фрилансе — или запускайте собственные приложения и игры под Android. Дополнительная скидка по промокоду BLOG — 5%.
Что лучше: Android или iOS?
Android любят за открытый код и доступность, но ругают за обилие различных устройств. iOS — хвалят за прозрачные обновления ОС и небольшое количество смартфонов, но не любят за высокие цены на устройства. Что выбрать — каждый решает сам.
На самом деле разнообразие устройств для Android — это и плюс: не нужно никакой дополнительной техники — писать код можно на любой операционной системе (macOS, Linux или Windows). А вот для разработки на iOS обязательно понадобится техника от Apple.
Читайте: Что выбрать: Android или iOS?
Что нужно знать и уметь?
Какие нужны софт-скилы?
В мобильной разработке, как и в разработке в целом, необходимо уметь общаться с коллегами и заказчиками. «Я работаю в довольно крупной компании, — говорит Арина Мурашева, — поэтому умение договариваться и работать в команде нужно всегда. Здесь каждый человек отвечает за определенные задачи и общаться приходится много».
Еще один важный навык — умение гуглить и задавать вопросы вовремя. «Не понял — посмотри в документации, загугли, почитай статьи, загляни в книги. А если нет результата — пора обращаться за помощью к коллегам», — советует Арина.
Если я передумаю, то смогу перейти с Android на iOS?
Да, нужно будет только освоить язык программирования Swift, изучить документацию Apple и другие инструменты разработки, например iOS Console (программа просмотра журнала консоли iOS для macOS) и Hyperion (решение для улучшения дизайна) и т. д. Еще есть разработчики, которые занимаются кроссплатформенной разработкой и делают приложения, которые функционируют на обеих платформах. В любом случае, навыки мобильной разработки на одной платформе пригодятся в работе над другой и учить все с нуля не придется.
Как начать?
Можно бесплатно загрузить среду для разработки Android Studio на сайте developer.android.com. Правда, если у вас на компьютере 4 Гб оперативной памяти — среда займет ее большую часть.
Для разработки под Android используются языки Java и Kotlin, оба являются объектно-ориентированными — соответственно, вам нужно знать принципы ООП.
Начать учить Java и Kotlin можно по видеоурокам, книгам и мануалам, параллельно изучая официальную документацию по Android.
Придется разобраться и с архитектурными стилями HTTP и REST, которые помогают приложениям взаимодействовать с другими приложениями и серверами.
Затем следует изучить файловую структуру и принципы работы операционной системы. Разработчик должен знать, как оптимизировать работу приложения, понимать, как файловая система обменивается данными с другими приложениями. Также нужно разбираться в жизненном цикле приложения и его взаимодействии с операционной системой.
После можно переходить к основам дизайна и проектированию мобильных приложений, принципам, по которым работает навигация и располагаются графические элементы. У Android для этого есть гайдлайны по разработке интерфейса.
Когда освоитесь, напишите свое небольшое приложение, выложите его на GitHub и опубликуйте в Google Play. Затем попробуйте освоить популярные библиотеки, например Glide, Retrofit и Room.
Можно пройти бесплатные курсы на Coursera, посещать вебинары и читать книги. Еще один вариант быстро прокачать навыки — поучаствовать в хакатоне, чемпионате по мобильной разработке. Хакатон от Android Academy проходит, например, на Хабре.
На курсе «Андроид-разработчик» SkillFactory можно пройти весь путь с нуля до создания своего приложения за 16 месяцев (уже на 8-м месяце вы будете обладать уровнем junior). Вы изучите принципы ООП, Java Core, многопоточность, паттерны проектирования и начнете мыслить алгоритмически. Мы даем навыки в формате практики: вы будете отрабатывать материал на тренажерах, интерактивных вебинарах, сквозных и командных проектах.
Параллельно с обучением мы подготовим вас к техническим собеседованиям, поможем определить карьерную цель и составить резюме. Наш Карьерный центр будет сопровождать вас на протяжении всей программы и поможет найти работу после.
Станьте мобильным разработчиком в штате или на фрилансе. Вы начнете с основ программирования, изучите Java, Kotlin, Android Studio, Git, UX/UI и PlayMarket.
Android-разработчик: что умеет, сколько получает, как им стать
Большинство мобильных устройств в мире работают на Андроиде. Разбираемся, кто же делает для них приложения.
Говорящие цифры
На Android сегодня работает около двух миллиардов устройств — от смартфонов и планшетов до умных холодильников и бытовых роботов.
Система занимает первое место среди мобильных операционок. Она управляет 73% смартфонов в мире — это больше, чем у всех остальных ОС вместе взятых.
В первом квартале 2020 года в онлайн-магазине Google Play было два с половиной миллиона приложений, а уже в сентябре их число перевалило за три.
Но и этого мало. Людям нужны новые мессенджеры, службы для заказа еды и такси, банковские программы и, конечно, игры. На последние приходится около трети всех скачиваний.
Все эти приложения пишут и поддерживают андроид-разработчики. Профессия востребована. И работы хватает не только матёрым специалистам, но и новичкам.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Чем занимается Android-разработчик
Создаёт приложения и поддерживает их работу, — в частности:
Эти обязанности обычно распределяются между членами команды. Например, за интерфейс и логику часто отвечают дизайнеры, но бывает и так, что всем занимается один программист.
Инструменты Android-разработчика
Началом массовой разработки под Android считается 2008 год. Тогда появился магазин приложений Android Market (в 2012 его переименовали в Google Play). Здесь разработчики выставляют свои приложения.
Сперва их создавали в среде Eclipse с установленным плагином ADT ( Android Development Tools ). Этот плагин страдал от брешей в безопасности. С конца 2016 года он больше не поддерживается.
Среда 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 (джавишный код можно вызвать из Kotlin естественным способом, а котлиновский — использовать в Java без особых сложностей).
При этом код на Kotlin крайне лаконичен:
В 2019 Google объявила Kotlin приоритетным в андроид-разработке. Похоже, что произошло это из-за долгой судебной тяжбы с компанией Oracle — создателем Java. Oracle уже 10 лет пытается получить с Google несколько миллиардов за нарушение авторских прав. Суды ещё идут, но Google от греха подальше решила перейти на другой язык.
Kotlin удобнее пользоваться, он решает ряд проблем Java, и изучить его можно намного быстрее. А ещё он сразу входит в Android Studio. Так зачем нам учить Java, если уже есть Kotlin?!
Не всё так однозначно (пока что). Начинающему разработчику важно изучать оба языка, но упор делать всё-таки на Java. Почему?
Где работают 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-разработчик
Чтобы стать востребованным специалистом, новичку нужно изучить:
Есть мнение, что программирование — это на 90% поиск ответов и только на 10% написание кода. Поэтому на вопрос «С чего начать учить программирование?» логичнее всего ответить — с английского языка.
Как всё это изучают
Кто-то изучает сам. Есть много книг, мануалов, видеоуроков, форумов, лучшие из которых, вроде введения в Android, как раз на английском языке.
Однако новичку одинаково легко потеряться в учебных материалах и выбрать неудачный порядок знакомства с ними. Поэтому самостоятельное освоение Android-разработки съедает уйму времени, которое лишним не бывает. Вдобавок — страдает от недостатка практики.
Ценители более системного подхода предпочитают онлайн-курсы (например, на edx.org, Coursera.org, Udacity.org). Но и здесь те же проблемы: выбрать подходящий непросто, качество материала и его полнота очень разнятся, гарантий и обратной связи нет, курсов на русском совсем мало. Да и с бесплатностью всё не так однозначно — эти платформы постепенно превращаются в коммерческие, отступая от первоначальной идеи.
Такой курс есть у Skillbox. Стартовать с опытными наставниками и постоянной обратной связью гораздо выгоднее. Наши студенты изучают всё на практике, общаются с менторами, создают полноценный проект для портфолио и быстро входят в профессию.
Первые полгода можно учиться бесплатно, а рассчитываться уже с первой зарплаты — с трудоустройством мы тоже помогаем.
Кто такой 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-разработчик работает над приложением?
Основные этапы разработки выглядят примерно так.
Когда приложение готово и вышло в Google Play, работа разработчика не заканчивается. Ему предстоит поддерживать, изменять и улучшать программу.
Приведу пример типичной задачи. UI-дизайнеры перенесли кнопку в другое место интерфейса и изменили её цвет. Разработчику нужно поменять разметку (layout) приложения. И далее — проверить, что кнопка правильно расположена на разных ориентациях экрана, а при нажатии она правильно меняет цвет, тень, положение. Вы же помните, что Android-девайсов великое множество? Так вот надо ещё убедиться, что кнопка будет правильно располагаться и отображаться на экранах разного размера и разрешения.
Какие инструменты использует Android-разработчик?
Сейчас большинство Android-разработчиков пишет код на Kotlin, но ещё пару лет назад все писали на Java. Эти два языка похожи (оба относятся к группе JVM-языков), поэтому переходить с одного на другой несложно. Если совсем просто, то Kotlin — тот же Java, только немного красивей и приятней. Сегодня Kotlin — один из официальных языков для Android.
Что должен знать и уметь Android-разработчик?
Скиллы разработчика сильно зависят от его уровня. Деления на такие уровни всегда условны, и абсолютной градации нет. Для простоты выделю для разработчика три роли: джун, миддл и все остальные (сеньор, тимлид, технический директор и пр.).
Для себя я определил очень простой способ их различать — по уровню задач. Джун всегда решает элементарные и понятные задачи. Миддл уже справится с любой задачей. Он сделает её правильно, но, скорее всего, не с первого раза — ему придётся совершить несколько итераций. А вот сеньор или «равный» ему специалист сразу справится с любой, даже самой сложной задачей.
Можно сравнить разработку программ со сборкой автомобиля. Джуну для сборки понадобятся детали и инструкция. Придётся хорошенько постараться, но рано или поздно машину он соберёт. Миддлу дай запчасти — и авто будет готово. А вот сеньор — тот человек, который может спроектировать машину с нуля. Достаточно поставить перед ним общую задачу: «машина должна быть быстрая» или «это должен быть внедорожник».
Джуну дают типовые задачи начального уровня. Обычно они связаны с UX/UI: добавить в интерфейс кнопочку, изменить параметры того или иного элемента. Другими словами, в хорошо известных местах приложения он меняет понятные кусочки кода. Основной скилл джуна — умение учиться. По моему мнению, для джуна в принципе не очень важны знания конкретных технологий (языка программирования или фреймворка). Знания очень быстро устаревают. Единственное, что не устаревает, — это способность думать и учиться.
Миддлу не страшно дать любую задачу, и он точно с ней справится. Большинство программистов (независимо от того, как их роли называются в конкретной компании) — миддлы. В Беларуси эта роль начинается после двух лет хорошего опыта. Миддл работает с уже готовой архитектурой. Знает, как она работает, знает её базовые компоненты. Он уже отлично владеет языками программирования и фреймворком Android.
Сеньор не только знает и понимает архитектуру приложения, но может и сам её спроектировать. Он решает концептуальные задачи. Сеньору, в дополнение ко всем перечисленным навыкам миддла, необходимо очень развитое абстрактное мышление. На этом уровне программирование превращается в настоящее творчество.
Есть ли жизнь после сеньора?
Почти любой разработчик идёт по этой лестнице — джун-миддл-сеньор. Дальше перед ним открываются два концептуально разных пути.
Он может развиваться в хард-скиллах — вырасти в очень крутого технического специалиста. Это может быть Principal Developer или Solution Architect. Они решают технические задачи высшего порядка: концептуальные проблемы с перформансом или кросс-платформенностью, сами проектируют программы.
Второй путь — менеджерский. Сеньор может стать тимлидом, а из тимлида вырасти в технического директора — СТО. Это вершина развития технического менеджера.
И, конечно, всегда можно открыть свою компанию и развивать собственные идеи и продукты.
Что читать и где учиться
Не буду рекомендовать много книг. Признаюсь честно: сам я до конца не прочитал ни одной книжки по программированию. Хотя наверняка кому-то книжки нравятся и помогают.
Очень рекомендую всем новичкам писать свои приложения. Это звучит сложно, но на деле это не так.
Как бы я сейчас учился программировать под Android? Во-первых, нашёл бы бесплатный курс по программированию. Во-вторых, посмотрел бы видео-гайд по созданию своего приложения. Параллельно создавал бы простенькое приложение. Таким образом можно изучить основы языка и применить их сразу на практике. В конце такого курса обучения на руках у джуна будет готовое приложение, и с ним можно идти устраиваться на работу.
Напоследок небольшая история.
Однажды на собеседование в Onde пришёл человек. Он не знал ни Java, ни Kotlin. Зато написал собственное приложение на Delphi — простейшую игру вроде змейки. Мы даже не знали, как его собеседовать, — человек ничего не знал из нужных нам технологий! Но он создал своё приложение и отлично понимал базовые принципы программирования. Сейчас этот человек — один из ключевых Android-разработчиков в компании.
Список ресурсов:
Kotlin
Android
Бесплатные курсы, рекомендованные Kotlin и Google:
Технические новости (советую читать, чтобы быть в теме): Android-разработка на Хабрахабр.