- Как стать Android-разработчиком
- Плюсы Android-разработки
- С чего начать изучение Android-разработки
- С чего начать карьеру
- Частые вопросы новичков
- Выводы
- 8 языков программирования для Android-разработчика
- Авторизуйтесь
- 8 языков программирования для Android-разработчика
- Kotlin
- Python
- JavaScript
- Стоит ли становиться Android-разработчиком?
- Выводы
Как стать Android-разработчиком
Разработчик Дмитрий Гордин провел открытое занятие для Нетологии и рассказал, с чего начинать изучение Android-разработки и как найти первую работу.
Для создания все новых и новых мобильных приложений компаниям нужны талантливые разработчики: профессия востребована, и специалистам готовы платить. По статистике зарплатного сервиса «Мой Круг», разработчики с опытом от 2 лет получают 50 000 − 100 000 рублей в регионах, 90 000 − 160 000 в Москве. Для сравнения, веб-разработчикам платят 50 000 − 110 000 рублей. Программисты, которые работают на иностранные компании, получают больше.
Плюсы Android-разработки
- Распространенность. В сентябре 2018 Android занимает 75% рынка смартфонов, iOS — 24%:
Статистика распространенности операционных систем мобильных устройств
- Разнообразие устройств. Можно писать приложения для смартфонов, планшетов, умных часов, музыкальных систем и телевизоров.
- Дешевле оплата аккаунта. Чтобы публиковать мобильные приложения в Google Play, разработчик платит $25 один раз. Аккаунт Apple Developer стоит $99 в год.
- Android — OpenSource проект. Исходный код системы доступен для всех. Можно посмотреть как сделана та или иная функция. Документация встроена прямо в код в комментариях, ее можно посмотреть прямо в IDE.
С чего начать изучение Android-разработки
План обучения может отличаться, в зависимости от задач и бэкграунда начинающего разработчика. Дальше опишем базовые знания и навыки, которые понадобятся в любом случае.
Изучите основы программирования
Базовые знания HTML и CSS. Выучите синтаксис языков и терминологию, чтобы грамотно формулировать вопросы и быстрее искать на них ответы. Например, эффективнее искать в Google не скругление углов у кнопки, а cornerRadius — поисковик выдаст больше релевантных ответов.
Основы XML. Это язык разметки, который не содержит логики работы или алгоритмов и предназначен для удобного хранения данных. Его стоит выучить, чтобы размечать пользовательский интерфейс, задавать расположение кнопок и текстовых полей, других элементов приложения. XML позволяет использовать мультиязычность, в XML-файлы записывают строки в разных языках.
Принципы работы HTTP и REST. Это протоколы взаимодействия приложений с окружающим миром — другими приложениями и сервисами, например, серверами в интернете. Их нужно осваивать, чтобы понимать, как приложение взаимодействует с другими сервисами и получает информацию из них.
Разница между языками программирования. Компьютер не различает, в чем была написана программа — он выполняет машинные коды. Языки программирования были созданы для разработчиков. У них много общего — почти во всех есть функции, переменные, классы, массивы. Если вы знаете, как использовать их в одном языке, при необходимости сможете перейти на другой. Язык нужно выбирать под решение конкретной задачи, например, для мобильной разработки стандарт — Java.
Общие принципы разработки. Чтобы писать понятный код, который смогут читать коллеги в крупных общих проектах, нужно выучить:
- как называть функции и переменные;
- разделять текст программы на файлы;
- расставлять переносы и пробелы.
Освоить все сразу при обучении не получится, навыки придут с практикой и будут постоянно совершенствоваться.
Основы объектно-ориентированного программирования. Одна из основных идей Java-разработки, которая заключается в следующем. Все предметы или явления реального мира можно представить в программе в виде совокупности их свойств и выполняемых действий. Разрабатывать программу проще, когда вы понимаете: приложение — объект, любое окно в нем — объект, свойства — высота, ширина и цвет фона, методы — рисование изображения, добавление элементов.
Git и Github. Git позволяет просматривать историю проекта, все изменения, кто и когда их вносил. В системе можно обнаружить ошибку и сделать откат. Github нужен для сложных проектов, над которыми работают несколько разработчиков одновременно. Когда один из разработчиков выкладывает код, ознакомиться с ним и редактировать может вся команда. При этом есть возможность работать даже над одним и тем же участком кода параллельно, не мешая работе другого разработчика.
Изучите среду Android
Графические элементы приложений. При создании интерфейса приложения не нужно писать код с нуля, достаточно использовать готовые блоки — View. Существуют разные виды блоков:
- для отображения текста;
- для отображения изображений;
- для размещения на экране других элементов.
Для первых приложений вам будет достаточно готовых блоков, в дальнейшем вы научитесь разрабатывать свои.
Файловая система Android. Ее нужно освоить, чтобы оптимизировать работу приложения и научить его запускаться каждый раз не с чистого листа, а сохранять свое состояние между перезапусками. Также файловая система позволяет обмениваться данными с другими приложениями, например, загружать фотографии из галереи.
Жизненный цикл Android-приложения. Когда пользователь будет работать с вашим приложением, может поступить звонок, прийти СМС или другое приложение выведет уведомление поверх окна. Для таких случаев нужно прописать поведение программы, например, сворачивание окна, паузу, сохранение текущего состояния или уменьшение громкости звука. Если не настроить жизненный цикл приложения, использовать его будет неудобно.
Технологические решения Android. Многие приложения выполняют одинаковые действия, например, запрашивают информацию в интернете, выполняют поиск или сохраняют массивы данных. Чтобы не писать код для этих действий с нуля, научитесь использовать библиотеки — типовые решения. Это части кода, которые хорошо работают и их можно вставлять в свое приложение.
Навигация между экранами. В большинстве приложений предусмотрено несколько экранов. Чтобы пользователь мог переходить между ними, сворачивать или закрывать, вам нужно разработать систему навигации и прописать алгоритм действий для каждого способа навигации.
Работа с сенсорами и тачем. Освойте класс SensorManager, чтобы научить приложение взаимодействовать с датчиками в смартфоне — акселерометром, гироскопом, датчиками расстояния и освещения.
Производительность приложений. Чтобы ваше приложение не потребляло много ресурсов и не заставляло смартфон зависать, научитесь тестировать и дорабатывать производительность.
Все перечисленное — только основы Android-разработки. Также придется освоить библиотеки кода, научиться работать с разными версиями OC Android. Когда будете писать первое приложение — понять суть этапов разработки от изучения документации до тестирования и дебаггинга, релиза, техподдержки и обновления.
Обучение в онлайн-университете: курс «Android-разработчик с нуля»
Освойте инструменты разработки
Основной инструмент разработки приложений — Android Studio. Программа состоит из двух частей:
- Визуального редактора. Здесь можно задавать расположение графических элементов будущего приложения вручную, например, перетаскивать кнопки.
- Редактора кода. В нем пишут, что нужно сделать при нажатии кнопки, увеличении или уменьшении экрана, скроллинге. Писать код можно на любом языке, например, Java или Kotlin.
Подробную видео-инструкцию по скачиванию и установке смотрите здесь: developer.android.com/studio/install
С чего начать карьеру
- Решайте задачи по Java. Найти их можно на тематическом сайте Javarush, в квестах Java Syntax, Java Collections, Java Core и других. Работайте над задачами ежедневно, чтобы освоить язык.
- Переходите на более сложные проекты — разрабатывайте лабиринты, змейку, словари и публикуйте на GitHub. Так вы будете собирать портфолио и сможете показать его работодателю.
- Выкладывайте приложения из GitHub на Google Play. Даже если у программ не будет тысяч скачиваний, ссылки на них можно указать в резюме.
- Изучите вакансии и посмотрите, какие библиотеки используют в компаниях. Освойте Glide, Retrofit, Room, Fabric — с ними работают многие работодатели.
- Выберите потенциального работодателя и идите на собеседование как Junior. Если вас не возьмут на работу сразу, порекомендуют, что изучить и какие пробелы в знаниях и навыках заполнить.
Пример вакансии для junior-уровня
Частые вопросы новичков
Нужно ли знать английский, чтобы стать Android-разработчиком
Разговорный английский для разработки не нужен, но придется освоить технический. Сначала обучающие материалы можно читать на русском, технические термины в них будут созвучны с английскими.
Можно ли научиться разрабатывать мобильные приложения самостоятельно
В интернете доступно много обучающих материалов на русском и английском, их можно освоить самостоятельно. Но для понимания нужно изучить основы, и это лучше делать на курсах под руководством профессионалов. Преподаватели помогут освоить материал с нуля быстрее, ответят на вопросы, дадут рекомендации, проведут ревью кода. Полученные знания лучше сразу отработать на практике — после каждого занятия нужны практические задачи.
Нужно ли знать математику и получить профильное образование
Чтобы начать программировать, диплом университета не нужен. Профильные знания понадобятся, если вы будете работать над соответствующим проектом.
Нужно ли знать все об Android наизусть
Не нужно, но важно уметь задавать вопросы в поисковике и искать на них ответы в документации, на профильных сайтах и форумах. У разработчиков большое сообщество, опытные программисты помогают новичкам. Документация есть в Android Studio, получить полезную информацию можно там.
Что общего у Android с HTML, CSS, Javascript
Мобильная и веб-разработка — разные отрасли. Но если вы знаете языки HTML, CSS, Javascript и понимаете принципы программирования, перейти в Android будет проще.
Можно использовать не Java, а другие языки
Использовать Javascript, Python, C# и другие альтернативные языки стоит, только если решение оправдано, поможет сэкономить время и деньги. Большинство сложных приложений, где нужно взаимодействие с аппаратной платформой телефона, лучше писать на Java или Kotlin. Именно с Java начинают обучение на курсах, так как язык самый распространенный.
Выводы
Android-разработка — перспективное направление. Программисты нужны работодателям, и им готовы платить. Новичкам доступно много обучающих материалов, сильное сообщество опытных коллег всегда поможет советами. Обучаться можно самостоятельно, но чтобы упростить и ускорить процесс, лучше обратиться за помощью к преподавателям и начать с курсов.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Источник
8 языков программирования для Android-разработчика
Авторизуйтесь
8 языков программирования для Android-разработчика
Android-разработчики пишут не только на Java и Kotlin: в этой статье разберём 8 популярных языков программирования, которые подходят для разработки Андроид-приложений, расскажем, насколько востребована профессия и где её освоить.
Это официальный язык для разработки под Android, который поддерживается Android Studio и является основой для изучения Kotlin.
Вообще, когда начинаются споры о том, что лучше, Java или Kotlin, следует помнить, что Kotlin — это обёртка над Java. Чтобы понять документацию Kotlin и получить помощь в процессе разработки мобильных Android приложений, следует знать именно Java.
- Основные преимущества языка:
- больше материалов и легче найти информацию;
- большое комьюнити;
- среда Android Studio изначально заточена под работу с Java;
- зная Java, легко изучить Kotlin.
Kotlin
Ещё один официальный и не менее популярный язык. Также поддерживается Android Studio, характеризуется синтаксическим сахаром и предоставляет корутины, что упрощает асинхронную работу.
Синтаксис Java заочно предполагает более громоздкий код, чем в случае с Kotlin. Например, так Android-разработчик будет присваивать текст полю на этих двух языках программирования:
Java
Kotlin
helloTextView.text = «Hello world»
Как видим, Kotlin позволяет написать то же самое, но гораздо быстрее, с использованием меньшего количества строк.
Главные преимущества Kotlin в разработке под Android:
- лаконичный код;
- поддерживается Android Studio;
- предоставляет корутины;
- востребован из-за нехватки Kotlin-разработчиков.
Примечание Следующие языки рекомендуем рассматривать как альтернативные варианты, а не базу для Android разработки.
Python
Да, энтузиастам удалось приспособить один из самых популярных языков программирования под Андроид разработку. Реализовано это с помощью Kivy и BeeWare:
- Kivy — это open source библиотека для создания кроссплатформенных приложений, в том числе под Android и iOS.
- BeeWare — это набор UI-инструментов для создания нативных Android-приложений.
Будем откровенны, Android-разработчик, который пишет мобильные приложения на языке программирования Python, — большая редкость. В основном это что-то для себя или проекты молодых амбициозных фирм.
Если вы знаете Python, попробовать определённо стоит.
C-языки позиционируются как высокопроизводительные, и это важно, особенно если мы говорим о чём-то тяжеловесном вроде мобильной 3D-игры.
Но стоит сразу оговориться, что прибегнуть к Java всё-таки придётся: без этого языка вам не создать полноценное мобильное приложение. Android NDK позволит написать на C/C++ только часть приложения, например библиотеку, которую через Java можно подключить к программе.
JavaScript
А вот Android-разработка на JS более жизнеспособна.
С фреймворком React Native вы можете создавать мобильные приложения с многофункциональным мобильным UI. При этом такие программы полностью нативны, то есть не являются мобильными веб-приложениями. Всё потому, что React Native использует те же компоненты, что и простые приложения для Android.
- сборка быстрее, чем в Android Studio;
- для создания качественного UI есть flexbox;
- простая передача данных по сети с использованием API.
Flutter — относительно новая технология от Google, полноценный SDK, выпущенный в 2018 году.
По ряду параметров считается более удачным решением, чем React Native. Позволяет писать кроссплатформенные приложения, поэтому эффективен в разработке приложений для Android с общей базой кода на языке Dart.
Dart позиционируется как альтернатива JavaScript. Он компилируется в бинарный код, за счёт чего достигается высокая скорость выполнения операций. Вместо XML Dart использует так называемые деревья макетов.
Основные преимущества Dart:
- легко освоить, зная Java;
- высокая производительность программ;
- Hot Reload во Flutter — быстрая перезагрузка с сохранением состояния.
Программирование на Андроид с использованием C# подразумевает платформу Xamarin. С её помощью можно создавать одну логику приложения на C# для Android и iOS.
Схематическое представление работы Xamarin:
Как видно, пользовательский интерфейс разрабатывается индивидуально для обеих платформ, при этом бизнес-логика остаётся общей.
Но, как и в случае с языком программирования Python, Андроид разработчик, пишущий на C#, — это, скорее, исключение, чем правило. Такое решение подойдёт тем, кто знает язык и хочет попробовать себя в мобильной разработке.
Стоит ли становиться Android-разработчиком?
По данным IDC за конец 2020 года, доля ОС Android на рынке смартфонов составила 85%:
По всему миру насчитывается почти 3 миллиарда устройств на этой системе. Можно смело заявить, что Android-разработчик — профессия востребованная.
По данным hh.ru, в России насчитывается порядка 7000 соответствующих вакансий, а в США — 12 000, согласно LinkedIn.
На портале Glassdoor средняя зарплата Android-разработчика в России составляет 170 000 руб. в месяц, а в США — 96 000 $ годовых.
Кроме того, мобильная разработка позволяет также зарабатывать на собственных приложениях. Для наглядности: выручка маркета Google Play в 2020 году составила около 38,6 млрд долларов.
Выводы
Несмотря на весь спектр языков, обучение Android-программированию должно начинаться с Java и Kotlin, как двух официальных языков.
Начинающим Android-разработчикам и просто новичкам в программировании отлично подойдут онлайн-курсы Android, в ходе которых можно и теорию освоить, и поучаствовать в реальных проектах.
Источник