iTechArt logo

Android — почему так популярен, и как стать Android-разработчиком?

Development & QA

Android — самая популярная мобильная операционная система в мире. По данным за февраль 2021 она установлена на 71,9% мобильных девайсов. И, само собой, это одно из важных направлений разработки в iTechArt. Узнали у наших разработчиков, в чем же причина популярности ОС и с чего начинать тем, кто хочет стать Android Developers.

Наши собеседники
Дмитрий Головко.jpg

Дмитрий Головко

Software Engineer iTechArt

Убежден, что главное для начинающих Android-разработчиков – стремление и самодисциплина.

Алексей Зубковский.jpg

Алексей Зубковский

Software Engineer iTechArt

Считает, что в Android-разработке Kotlin скоро может потеснить Java.

Какие ключевые технологии, фреймворки и языки сейчас применяются в Android-разработке?

ДМИТРИЙ ГОЛОВКО: Существует два вида мобильной разработки — нативная и кроссплатформенная. Для нативной разработки есть два основных языка — Java и Kotlin. Оба работают на JVM и компилируются в байт-код Java. Для кроссплатформенной разработки чего только нет: и Flutter с языком Dart, React, Xamarin на C#, да и и на C++ никто не запрещает работать.

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

АЛЕКСЕЙ ЗУБКОВСКИЙ: Java используют на проектах, которые ведутся уже давно. Kotlin выбирают в основном для новых проектов. В плане синтаксического сахара, фишек и удобства использования Kotlin лучше. Стоит, конечно, учитывать, что на Android использовалась Java 7, а в каких-то старых проектах есть модули и на Java 6.

Относительно фреймворков, на Kotlin мои потребности вполне покрывает Koin, довольно понятный и более простой, чем Dagger. Есть и другие, вроде Hilt и Toothpick. По работе с асинхронным кодом, с потоками, кроме котлиновских coroutines, которые являются частью самого языка, часто используют RxJava. Другие компоненты применяют по необходимости из библиотек Android Jetpack.

Станет ли Kotlin популярнее Java?

АЛЕКСЕЙ ЗУБКОВСКИЙ: На мой взгляд, В Android-разработке такая перспектива есть и довольно большая. Много новых проектов создаются на Kotlin, а в старых некоторые модули переписывают с Java. Плюс, поддержка со стороны Google, очень существенный бонус.

Kotlin позволяет использовать написанную на Java базу: с его помощью можно вызывать Java классы и нормально работать с ними. Может и есть какие-то совсем узкие кейсы, но, в целом, на одном проекте без проблем могут уживаться и Kotlin, и Java.

С Java на Kotlin легко перейти. Причина, по которой когда-то переходил я, — код на Kotlin короче и выразительнее.

ДМИТРИЙ ГОЛОВКО: Все возможно. С одной стороны, Google активно продвигает Kotlin. Но, в то же время, Java много лет, он проник во многие области и на нем написано огромное количество legacy-кода. Похожая ситуация у Apple с их Objective C и Swift.

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

Сможет ли другая ОС отобрать у Android лидирующие позиции? Например, Fuchsia от Google.

ДМИТРИЙ ГОЛОВКО: Главная причина популярности Android в том, что это open source проект, над ним работает целый альянс компаний, включая Google, Samsung, Intel, HTC: любой производитель может сделать оболочку на основе этой ОС для своих устройств. В то же время, Google разработал немало сервисов, которые помогают реализовывать Android-приложения быстрее и проще: конкурентоспособность ОС очень высокая.

АЛЕКСЕЙ ЗУБКОВСКИЙ: Fuchsia разрабатывают уже довольно давно, а новостей по ней немного. С другой стороны, Huawei из-за проблем с сервисами Google активно занимаются собственной ОС, Harmony.

На данный момент, не вижу альтернативных систем, способных получить такое же, как у Android, распространение среди производителей. Конкретно Huawei, скорее всего, перейдет на свою Harmony. В таком случае, в будущем в Китае и на азиатском рынке в целом может сложится другое соотношение используемости операционных систем.

Вопрос для новичков: какой минимум знаний потребуется, чтобы стать Android-разработчиком?

АЛЕКСЕЙ ЗУБКОВСКИЙ: Как минимум нужно разбираться на достаточном уровне в Java и/или Kotlin. Кроме этого, должны присутствовать знания Android Core, основных Android-компонентов вроде Activity, Service, BroadcastReceiver, ContentProvider, понимание их жизненных циклов.

Junior-специалисту важно разбираться во view, layouts, понимать, как они работают, уметь работать с сетью и минимально — с базами данных, знать основные паттерны проектирования.

ДМИТРИЙ ГОЛОВКО: Минимальные знания SDK, умение пользоваться средой разработки — основной сейчас является Android Studio. Не лишним будет знание паттернов, принципов Clean Code, SOLID. 

Но главное — стремление и самодисциплина: стартовать можно и без опыта. Наш коллега, прежде, чем начать карьеру, совмещал обучение с заботой о семье и личными делами. По итогу, когда пришел к нам на собеседование, оказался достаточно сильным кандидатом на позицию джуна. Буквально за пару месяцев осилил все нужные знания и зашел на проект. Сейчас успешно работает в команде!

Посоветуй книги и ресурсы, откуда можно брать информацию

АЛЕКСЕЙ ЗУБКОВСКИЙ: В первую очередь, это документация developer.android.com. По Kotlin — прекрасная документация на kotlinlang.org. Дополнительно полезные материалы рекомендую искать на Medium и Хабре.

Из книг — «Android. Программирование для профессионалов» и Kotlin in action.

ДМИТРИЙ ГОЛОВКО: Новичкам посоветовал бы Startandroid. Ресурс на русском, довольно старый, но постоянно обновляется. Автор разбирает основы и добавляет новые темы платно, но ценник очень приемлемый. Можно купить курс по разбору библиотек, например, RxJava.

Если говорить о книгах, по-моему, они быстро устаревают. Приятное исключение — The big nerd ranch guide: оно ежегодно переиздается. А вообще, информации по Android очень много, ее совсем несложно найти на Stackoverflow или в документации Google.