Android-разработка: за и против
Мобильная разработка под Android привлекает новичков карьерными перспективами. Рассмотрим преимущества и недостатки этого направления.
vlada_maestro / shutterstock
Мобильный разработчик — сегодня это одна из наиболее высокооплачиваемых IT-специализаций.
Смартфоны на Android занимают 80% рынка мобильных устройств. Поэтому, несмотря на то, что iOS-разработчики «стоят» дороже, программисты на Android более свободны в выборе компании и проектов для работы. Рассмотрим плюсы и минусы этой профессии.
9 плюсов разработки под Android
- Низкая стоимость разработки и устройств. Для разработки под iOS нужен макбук, который стоит недешево. Писать код под Android можно на любой операционной системе: macOS, Linux или Windows. Сами устройства также стоят в два-три раза дешевле, чем продукция Apple.
- Один стек технологий для всех проектов. Новичку нужно освоить один из двух языков, официальную среду разработки и минимум инструментов — для любого нового приложения стек технологий будет один и тот же, даже при переходе в другую компанию. Новичок в той же в веб-разработке сразу столкнется с «зоопарком» инструментов.
- Доступность исходников по сравнению с iOS. Большая часть кода Android открыта: вы можете загрузить его на свой компьютер и изучать, как все устроено изнутри. Сам код несложный и разбит на модули. Если что-то в вашем приложении не будет работать, можно найти исходники и разобраться.
Несмотря на то, что код операционной системы выложен в свободный доступ, многие из её компонентов разрабатываются внутри Google. Некоторые части платформы останутся закрытыми. Например, создателям приложений неизвестно, как работает Play Market изнутри. - Качественно написанная документация. Для Android-разработчиков создано множество чётких руководств, которые упрощают коммуникации между специалистами по всему миру.
- Активное сообщество энтузиастов в интернете. Новичок легко получит поддержку на любом этапе своего обучения, придя на StackOverflow и GitHub с вопросом.
- Время появления приложения в магазине. В случае с iOS счет идет на недели, тогда как с Android приложение доступно для скачивания в магазине сразу после нажатия кнопки «Опубликовать». Нужно только несколько часов, пока оно разойдется по дата-центрам.
- Стоимость размещения приложения. Да, за право размещать собственные приложения в магазинах платформ вам придется заплатить. В AppStore это $100 ежегодно за девелоперскую программу. А в Google Play Market вы платите $25 один раз при регистрации — и на этом расходы заканчиваются.
- Java. Ее изучение — это отличный старт для начинающего разработчика, поскольку вы освоите основные концепции ООП, с которыми сможете быстрее изучить любой другой язык. На Java, кроме мобильных, пишут и веб-приложения, а также игры и серверы. Поэтому при желании вы сможете сменить сферу деятельности, не меняя основной инструмент. А вот Swift и Objective-C — специфические языки только для iOS-разработки.
- Сферы применения. На Android программируют приложения не только для смартфонов, вы сможете разрабатывать программы для умных часов, Smart TV, VR/AR и найти интересный для себя проект.
Разумеется, есть и подводные камни при создании мобильных приложений под Android, посмотрим, чем рискует разработчик.
Недостатки мобильной разработки для Android
- Много устройств. Выше мы сказали, что доступность — это плюс. Но обратная сторона медали — необходимость поддерживать приложение для каждой модели смартфонов разных производителей с этой системой внутри. На не очень качественных китайских телефонах приложение может «крашиться» не по вине разработчика, а из-за аппаратных проблем.
- Огромное число экранов. Пункт плавно вытекает из предыдущего — большое разнообразие экранов создает дополнительные сложности при разработке. Чтобы решить проблему разного соотношения сторон, нельзя просто взять и растянуть интерфейс приложения. Приходится поддерживать несколько типов экранов и фактически разрабатывать копии.
- Несколько версий операционной системы. iOS обновляется ежегодно, и старые версии не получают поддержки — актуальны только последняя и предпоследняя. С Android дела обстоят иначе. Google не может обновлять систему на всех устройствах — это делают вендоры. В итоге актуальны оказываются сразу несколько версий Android. Не все производители быстро обновляют свои устройства, а кто-то не делает этого вообще.
Все это затрудняет работу специалистам. Если вы договариваетесь с заказчиками приложения, что будете поддерживать только 90% версий, — это уже отлично. Но некоторые требуют поддержку и всех 100%. И это боль разработчика: с каждым обновлением появляются новые API, которые он хочет использовать, но их нет на старых версиях ОС. Эту проблему частично решает библиотека совместимости.
Google на сегодняшний день — монополист, который задаёт тренды в развитии IT. Раньше к «корпорации добра» относились почти с трепетом, сегодня же у разработчиков копятся претензии, а до техподдержки зачастую невозможно достучаться.
Одна из главных проблем — блокировки приложений, а затем и аккаунтов без объяснения причин. На все жалобы в техподдержку разработчики получают стандартный ответ от бота. Причем это касается не только мелких и неизвестных приложений, но и тех, у которых миллионы загрузок. Известны примеры, когда закрывались целые компании из-за автоматического бана приложения, вокруг которого строился весь бизнес.
Заключение
Мы рассказали об особенностях операционной системы Android и частично сравнили ее с iOS. Недостатки есть в любых системах и любых языках — и к ним нужно быть готовым. Сейчас на сайте HeadHunter около 4 тысяч вакансий по Android-разработке.