С чего начать изучение андроид разработки
Перейти к содержимому

С чего начать изучение андроид разработки

  • автор:

Как начать программировать под Android? Пошаговый план

В этой статье мы рассмотрим, как начать программировать под Android. Пошаговый план с ссылками на ресурсы, курсы и книги и типичные вопросы, которые задают на собеседованиях на позицию junior Android-разработчика. Ну а если вы хотите быстро за 12 занятий вникнуть в азы Android — то приглашаю на практический онлайн-интенсив где вы с наставником разработаете собственный проект.

Итак, вы решили начать программировать под операционную систему Android. Для начала, вам нужно изучить язык программирования. В мире Android на момент написания статьи (март 2020) года используются как Java, так и Kotlin, однако второй официально рекомендован компанией Google и набирает всё большую популярность, так что, если вы не знаете ни одного языка программирования — то можете изучать Kotlin, если же вы уже знаете какой-либо объектно-ориентированный язык программирования, то изучить Java или Kotlin для вас не составит труда. На рынке тренд идет в сторону Kotlin.

Изучаем язык

Kotlin

Чтобы освоить Kotlin, вам могут пригодиться, следующие ресурсы:

  • Try Kotlin — набор примеров и заданий по Kotlin cразу с консолью, в которой можно ввести код и проверить
  • Kotlin Bootcamp for Programmers — туториал от Google
  • Android Kotlin Fundamentals Course — набор мини-курсов для быстрого старта в Android — разработке
  • Книга «Kotlin. Программирование для профессионалов» — Книга Джоша Скина и Дэвида Гринхола основана на популярном курсе Kotlin Essentials от Big Nerd Ranch. Яркие и полезные примеры, четкие объяснения ключевых концепций и основополагающих API не только знакомят с языком Kotlin, но и учат эффективно использовать его возможности
  • Kotlin Bootcamp for Programmers — хороший видеокурс, объясняющий основы программирования на Kotlin

Java

Чтобы освоить Java, вам могут пригодиться, следующие ресурсы:

  • Изучаем Java Сьерра Кэти, Бэйтс Берт — эта книга не только научит вас теории языка Java и объектно-ориентированного программирования, она сделает вас программистом. В ее основу положен уникальный метод обучения на практике. В отличие от классических учебников информация дается не в текстовом, а в визуальном представлении.
  • Become a Java Developer — курс от Udacity, который поможет вам изучить Java
  • Джошуа Блох: Java. Эффективное программирование — эта книга является классикой для Java-программистов. Для новичков может быть несколько сложновата, но постарайтесь прочитать ее хотя бы половину и вернитесь к ней через годик, все сразу станет на свои места. Кстати, многие вопросы на собеседовании по Java взяты именно отсюда, так что не ленитесь, почитайте.
  • Java. Библиотека профессионала. Том 1. Основы | Хорстманн Кей С. — Эта книга давно уже признана авторитетным, исчерпывающим руководством и практическим справочным пособием для опытных программистов, стремящихся писать на Java надежный код для реальных приложений. Быстро освоить основной синтаксис Java, опираясь на имеющийся опыт и знания в программировании.

Изучаем Android SDK

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

  • Android Kotlin Fundamentals — набор туториалов для начинающих Android-разработчиков от Google на языке программирования Kotlin. Из курса вы узнаете об основных компонентах Android SDK, таких как Activity, Intent, BroadcastReceiver и других.
  • Become an Android Developer — курс на Udacity, где за 6 месяцев вам расскажут от том как разрабатывать мобильные приложения под Android
  • Школа мобильной разработки — набор лекций об устройстве Android от Яндекс. Часть материала немного устарела, но даже сейчас будет очень полезна как начинающим, так и уже более-менее опытным разработчикам.
  • Android Programming: The Big Nerd Ranch Guide — достаточно понятная книга для новичков, чтобы понять программирование под Android OS
  • The Busy Coder’s Guide to Android Development — книга, которая уже, наверное стала классикой для Android — программистов, один из самых полных источников знаний по Android OS

Это далеко не полный список, материалов огромное количество, но изучив вышеперечисленные ресурсы, вам с запасом хватит знаний для программирования под Android. Главное — не забывайте ежедневно практиковаться, общаться с наставником или ментором чтобы быстрее понимать свои ошибки и учиться на них.

Изучаем популярные библиотеки

Итак, вы неплохо знаете синтаксис языка, понимаете ООП, умеете применять наследование там где оно нужно и ваши приложения более-менее работают. Возможно, еще без применения архитектуры (MVP/MVVM/VIPER/RIBs) и без навороченных библиотек или фрэймворков. Самое время изучить и их.

В этом разделе я приведу список наиболее популярных библиотек, который используются в большинстве Android — проектов. Изучив их, вы смело сможете претендовать на звание junior или даже middle — разработчика.

Для многопоточного программирования

  • RxJava 2 — видеокурс введение в RxJava на Stepic или бесплатный базовый курс по RxJava
  • Kotlin Coroutines — набор туториалов и документация по корутинам от Jet Brains
  • Основы работы с WorkManager— туториал по работе с WorkManager
  • Advanced Coroutines with Kotlin Flow and LiveData — туториал от Google как рабоать с корутинами и LiveData

Библиотеки для Dependency injection

  • Dagger2
  • Koin — пошаговый туториал для изучения основ

Библиотеки для сетевого взаимодействия

  • Retrofit — пошаговый туториал, где вы создадите приложение для поиска фильмов

Библиотеки для обработки изображений

Библиотеки для работы с Json

Библиотеки для хранения данных

  • Room — мини-курс, который поможет понять основы Room + LiveData
  • Realm

Изучив, материалы из этого списка вы уверенно сможете претендовать на роль джуниор-разработчика, а в следующем посте мы рассмотрим наиболее часто задаваемые вопросы на собеседованиях. А прямо сейчас приглашаю вас на онлайн-интенсив по разработке

  • Практический онлайн-интенсив по Android-разработке для от junior до middle
  • Практический онлайн-интенсив по Android-разработке с нуля
  • Не забудьте присоединиться к нам в Telegram — канале AndroidSchool.ru где публикуются полезные материалы для Android-разработчика и скидки на продвинутые курсы

Start Android — учебник по Android для начинающих и продвинутых

Если Вы новичок, то начните обучение с уроков. Они помогут Вам изучить Android с нуля до среднего уровня.

Блог

В блоге собраны материалы о различных SDK, API, библиотеках, паттернах и просто интересных кейсах.

Продвинутым разработчикам будут интересны курсы, в которых подробно рассмотрены полезные и востребованные технологии и библиотеки.

Compose

Новый, декларативный UI фреймворк под Android.

Kotlin

Набирающий популярность, удобный и лаконичный язык программирования под Android. Основная тема курса — корутины.

Architecture Components

Набор механизмов от Google для построения архитектуры приложения.

Тестирование

Полезный инструмент для каждого Android разработчика. Избавьтесь от ошибок в ваших приложениях.

Dagger 2

Отличный помощник в реализации паттерна Dependency Injection. Поможет сделать ваш код чистым и снизить зависимости между объектами.

RxJava

Мощный и гибкий инструмент для удобной реализации повседневных задач

С чего начать путь в ИТ: Android-разработчик

Сегодня сложно представить повседневную жизнь без смартфона. В них есть все: интернет-магазины, мобильные банки, трекеры для спорта, питания и привычек, электронные книги, документы, таблицы, фотографии, фильмы.

Рынок мобильной разработки стремительно развивается: в 2020 год доля смартфонов на базе Android занимала более 70% рынка. Поэтому сегодня профессия Android-разработчика одна из самых востребованных и перспективных.

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

Чем занимается Android-разработчик

Android-разработчик создает приложения для устройств на базе операционной системы Android: пишет программный код, верстает экраны, собирает сборки, заливает приложение в магазин, откуда его могут скачать пользователи.

Также он анализирует техническое задание от заказчика и вносит рекомендации, проводит code review и тестирует свой код.

Какие hard и soft скиллы нужны Android-разработчику

Hard skills

Идеально, если вы знаете Android SDK, языки Java или Kotlin, ООП, паттерны проектирования, принципы разработки и протокол HTTP, умеете работать с потоками и REST API.

Но на старте не обязательно иметь все навыки. Отсутствие одного или двух вы можете компенсировать высокой мотивацией работать и развитыми soft-скиллами, о которых рассказываем дальше.

Soft skills

Командная работа. В работе вы будете взаимодействовать разработчиками под Android и iOS, backend-разработчиками, менеджерами, аналитиками, тестировщиками. Чем слаженнее общение, тем эффективнее работа всей команды, ведь иногда от умения договориться зависит судьба релиза. Особенно это касается распределенных команд, разработчики которой находятся удаленно друг от друга. В ход идут все доступные виды связи — мессенджеры, переписки, аудио и видео-звонки, шаринг экрана.

Слушать других и давать фидбек. Научитесь слушать команду и адекватно реагировать на критику. Этот навык особенно пригодится на code review — проверке вашего программного кода другими разработчиками. Это отличная практика, которая позволит сократить количество ошибок в коде и прокачать навыки разработки, благодаря советам своих коллег.

Адаптироваться. Часто мы работаем в режиме быстро меняющихся условий — обновили макеты, добавились требования в задаче, нашли критический баг. Особенно если на носу очередной релиз. Важно быть на связи, оперативно включаться в работу и спокойно реагировать на изменения.

Самостоятельность. Чаще всего разработчики сами управляют своим рабочим временем, поэтому важно развивать в себе дисциплину, ответственность и умение принимать решения.

Плюсы профессии

Удобная среда разработки Android Studio, которая имеет встроенные эмуляторы Android-устройств, характеристики которых можно настраивать. Это значительно облегчает процесс тестирования вашего проекта — не нужен даже реальный девайс. Можно сконфигурировать эмулятор с нужным размером экрана, соотношением сторон, размером памяти и версией операционной системы.

Нет привязки к ОС. Разрабатывать под Android можно на любой системе — MacOs, Linux, Windows.

Материалы. Хорошо написанная документация, большое число руководств по разработке, гайды и статьи (ссылки на них мы оставили в конце материала).

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

Минусы профессии

Большое количество смартфонов. Это является как плюсом, так минусом. На рынке имеется большое число производителей со своими оболочками. Из-за аппаратных особенностей телефона функционал в приложении может вести себя по-разному. Например, могут возникнуть неожиданные краши на некоторых устройствах, или содержимое экрана будет отображаться не так, как вы задумали. Все это необходимо будет учитывать и исправлять в ходе разработки.

Большое количество версий операционных систем. Не все смартфоны получают последние обновления системы, поэтому приходится поддерживать различные версии ОС Android. Это чревато возникновением ошибок на определенных версиях, которые необходимо решить и учесть. И обязательно нужно проверять функционал на разных версиях операционной системы. Обычно этим занимаются тестировщики, но и разработчики не должны об этом забывать.

Большое количество различных экранов, на которых нужно проверять отображение и вносить коррективы, если требуется. Например, часто бывает, что на маленьких экранах не умещается какой-то элемент UI или на большом экране шрифт выглядит слишком мелко.

Нестандартные задачи, которые требуют искать нестандартные решения. Например, вам говорят использовать какой-то элемент дизайна «как в iOS», а в Android такого инструмента не существует. Приходится самому создавать кастомную view с нестандартным для операционной системы поведением.

Но пусть эти трудности вас не пугают 🙂

Я решил стать Android-разработчиком, что мне делать?

  1. Установите IDE Android Studio. Для этого следуйте инструкции.
  2. Выберите обучающий материал — ссылки на них мы оставили в конце статьи. А если вы хотите обучаться в офлайне и вживую общаться с преподавателем, рекомендуем оставить заявку на наш курс разработки под Android, и мы сообщим, когда откроется регистрация на новый поток.
  3. Дерзайте, учитесь новому, не бойтесь трудностей и, вуаля, вы — Android-разработчик!

Дорожная карта по Android-разработке с нуля

Аватарка пользователя Марина Александровна

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

Как стать разработчиком Android-приложений с нуля, с чего начать и куда развиваться — поможет понять дорожная карта:

Дорожная карта по Android-разработке с нуля 1

  1. Java или Kotlin?
  2. Начало работы
  3. Система контроля версий
  4. Android Architecture
  5. Создание приложений
  6. Продвинутая разработка
  7. Заключение

Java или Kotlin?

Мы уже проводили сравнение Java и Kotlin, в ходе которого пришли к выводу, что оба языка важны. Так, без знания Java будет сложно разобраться в Kotlin, который всё ещё использует JVM. С другой стороны, Kotlin сделал большой шаг вперёд и ориентируется именно на Android-разработку, тогда как Java используется также для бэкенда, десктоп-приложений и Big Data.

Начало работы

Скачайте Android Studio и разберитесь с данной IDE.

Теперь настало время поближе познакомиться с выбранным языком. Если вы решили со старта взяться за Kotlin, имейте в виду, что документация предполагает хотя бы базовое знание Java.

Что Kotlin, что Java являются полноценными ООП языками, поэтому освойте принципы объектно-ориентированного программирования.

Изучите структуры данных и алгоритмы, подкрепите теорию практикой.

Скачайте систему автоматической сборки Gradle, потому как ручная сборка проектов с указанием нужных библиотек и фреймворков — процесс трудоёмкий.

Система контроля версий

Если вы ещё не работали с VCS, самое время начать. Изучите возможности и основные команды Git, выберите для себя один из веб-сервисов для хостинга проектов и попрактикуйтесь на первых репозиториях.

Android Architecture

Различные паттерны разработки позволяют повысить качество кода, сделать его более понятным и масштабируемым. К основных паттернам относятся:

  • MVVM (Model–View–ViewModel);
  • MVI (Model-View-Intent);
  • MVP (Model-View-Presenter).

Подробнее о них можно узнать из статьи.

Создание приложений

А здесь самое интересное.

Activity в Android — это по сути окно приложения. Простые приложения состоят из одного окна, сложные — из двух и более. Жизненный цикл Activity включает в себя шесть коллбэков:

  • onCreate() — создание активити;
  • onStart() — подготовку к отображению на экране;
  • onResume() — отображение на экране;
  • onPause() — приостановку процессов;
  • onStop() — состояние невидимости;
  • onDestroy() — завершение работы.

Далее изучите создание гибких интерфейсов с использованием фрагментов и начните выполнять отладку с помощью Android Studio Debugger.

Для работы с компонентами используйте такие инструменты, как Room, Navigation, WorkManager, LiveData, Data Binding. Из сторонних библиотек будут полезны Glide, Retrofit, GSON и Firebase.

Разберитесь с Intent для взаимодействия между объектами Activity и объектом Context, который предоставляет доступ к ресурсам и другим объектам, в том числе к Activity.

Ну и как стать Android-разработчиком с нуля без практики? Следуйте инструкциям из данного видеоурока и подключитесь к NASA через API, чтобы получить доступ к фотографиям из космоса:

Продвинутая разработка

Продолжайте развиваться, осваивая безопасную разработку. Для тестирования подойдут фреймворки JUnit и Espresso, для управления зависимости — библиотеки Dagger и Koin. Дополнительно почитайте о параллелизме и многопоточности, узнайте, что это и как используется в создании Android-приложений.

Заключение

Так как же стать Android-разработчиком с нуля? Определитесь с языком программирования, научитесь работать с Android Studio, Gradle и веб-сервисом для хостинга проектов. Вам предстоит разобраться в основных паттернах и их отличиях, изучить создание гибких интерфейсов, а также подключаться к другим сервисам через API. Продвинутая разработка предполагает тестирование, управление зависимостями, работу с параллелизмом и многопоточностью.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *