Android developer по русски

Как стать Android-разработчиком с нуля: дорожная карта

Авторизуйтесь

Как стать Android-разработчиком с нуля: дорожная карта

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

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. Продвинутая разработка предполагает тестирование, управление зависимостями, работу с параллелизмом и многопоточностью.

Источник

Русская документация Android

Разработка под android

Русская документация Android

Если ты ищешь русскую документацию по android и твоя цель это разработка приложений под android, добро пожаловать!

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

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

Читайте также:  Vice city san andreas android

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

При переводе я буду использовать термины, которые уже прижились в русскоязычной литературе, например: явления (Activity), намерения (Intents), поставщики содержимого (Content Providers) и прочие, с которыми ты познакомишься в уроках.

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

Материалы сайта не наследуют лицензию Creative Commons Attribution 2.5, под которой выпущена официальная документация. Копирование и распространение информации с сайта не разрешается без предварительного согласования с владельцем.

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

Источник

Кто такой 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.

  1. Порог входа на Android ниже, чем на iOS — как для пользователя, так и для разработчика. Телефон на Android можно купить за $50 или даже дешевле. Сколько там стоит новый айфон? Разработчик может даже не покупать девайс, чтобы работать над приложением. Можно обойтись Android-эмуляторами на компьютере. Когда-то я так и начинал.
  2. Android широко используют не только на смартфонах, но и в «умных» вещах (IoT): от автомобилей до «разумных» утюгов и стиральных машин.
  3. Мир Android очень сложный и разнообразный. У айфона всего пару десятков моделей, Android-девайсов — тысячи. Интересно знать, что твоим приложением будут пользоваться на тысячах разных устройств! Слова «оптимизация» и «перформанс» всё ещё не забыты в Android-разработке. Миллионы людей в Африке и Азии используют супер-дешёвые девайсы, и твоё приложение должно стабильно работать на любом «китайфоне». Мир Android-девайсов постоянно подкидывает тебе новые вызовы и новые задачи. Конечно, это не только интересно, но и сложно: надо быть всегда готовым, что приложение перестанет работать на очередной нетипичной модели смартфона.
  4. Android — это open-source платформа. Код, на котором она написана, доступен для каждого. Всегда можно заглянуть поглубже и узнать, каким образом разработана и функционирует сама система.
Читайте также:  Права доступа root для android

Как Android-разработчик работает над приложением?

Основные этапы разработки выглядят примерно так.

  1. Во-первых, Android-разработчик должен понимать контекст задачи: для кого и для чего предназначено приложение, как оно будет выглядеть и работать. Обычно в начале работы есть готовый макет UX/UI приложения и его общее описание. Основа приложения — UX (User Experience — проект взаимодействия пользователя с интерфейсом). Он выглядит как раскадровка экрана будущего приложения, набросок того, как пользователь будет работать с программой. Потом на проект накладывается начальный UI-интерфейс, а уже готовый дизайн отдаётся разработчику. Опытные разработчики участвуют в создании приложении уже на первом этапе — проектирования макета UX. Ведь всегда есть технические ограничения, и о них лучше узнать уже на стадии проектирования.
  2. Разработчики (часто при помощи бизнес-аналитиков) расписывают кейсы (use cases) — основные последовательности действий в приложении. Нажал одну кнопку в интерфейсе — открылось основное окно. Нажал другую кнопку — выскочил список настроек. И так далее. В небольших стартапах начальная работа над приложением может ограничиваться работой над UX/UI.
  3. Основная разработка ведётся поэкранно. «Экраны» — это важные участки приложения, которые создаются по отдельности. Например, три экрана разделяются между командой, потом соединяются. Если разработчик не знает, как написать тот или иной участок кода или добавить какой-то компонент программы, — он гуглит. Или консультируется у коллег. В этой работе всегда надо учиться.
  4. Экраны готовы, приложение готово. Тестировщики должны проверить, чтобы всё соответствовало требованиям. Но начинает тестирование сам разработчик — надо же покликать и убедиться, что приложение работает нормально. Иногда разработчик пишет для тестировщиков автоматизированные тесты.
  5. Финальный этап — выход приложения в Google Play. В небольших компаниях заливает приложение в стор сам разработчик. Сделать это несложно — нужно всего-то нажать пару кнопок. Но в больших компаниях, как Onde, в сторы загружают десятки и сотни приложений, так что этим занимаются отдельные люди.

Когда приложение готово и вышло в Google Play, работа разработчика не заканчивается. Ему предстоит поддерживать, изменять и улучшать программу.

Приведу пример типичной задачи. UI-дизайнеры перенесли кнопку в другое место интерфейса и изменили её цвет. Разработчику нужно поменять разметку (layout) приложения. И далее — проверить, что кнопка правильно расположена на разных ориентациях экрана, а при нажатии она правильно меняет цвет, тень, положение. Вы же помните, что Android-девайсов великое множество? Так вот надо ещё убедиться, что кнопка будет правильно располагаться и отображаться на экранах разного размера и разрешения.

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

  1. Android Studio. Это официальная IDE (интегрированная среда разработки) для Android, созданная JetBrains и Google. Здесь пишется код.
  2. Git. Сюда складывается написанный код и здесь хранится.
  3. Смартфон или Android-эмулятор на компьютере. На них приложение запускается и тестируется.

Сейчас большинство Android-разработчиков пишет код на Kotlin, но ещё пару лет назад все писали на Java. Эти два языка похожи (оба относятся к группе JVM-языков), поэтому переходить с одного на другой несложно. Если совсем просто, то Kotlin — тот же Java, только немного красивей и приятней. Сегодня Kotlin — один из официальных языков для Android.

Что должен знать и уметь Android-разработчик?

Скиллы разработчика сильно зависят от его уровня. Деления на такие уровни всегда условны, и абсолютной градации нет. Для простоты выделю для разработчика три роли: джун, миддл и все остальные (сеньор, тимлид, технический директор и пр.).

Читайте также:  Версия андроида для таб 4

Для себя я определил очень простой способ их различать — по уровню задач. Джун всегда решает элементарные и понятные задачи. Миддл уже справится с любой задачей. Он сделает её правильно, но, скорее всего, не с первого раза — ему придётся совершить несколько итераций. А вот сеньор или «равный» ему специалист сразу справится с любой, даже самой сложной задачей.

Можно сравнить разработку программ со сборкой автомобиля. Джуну для сборки понадобятся детали и инструкция. Придётся хорошенько постараться, но рано или поздно машину он соберёт. Миддлу дай запчасти — и авто будет готово. А вот сеньор — тот человек, который может спроектировать машину с нуля. Достаточно поставить перед ним общую задачу: «машина должна быть быстрая» или «это должен быть внедорожник».

Джуну дают типовые задачи начального уровня. Обычно они связаны с UX/UI: добавить в интерфейс кнопочку, изменить параметры того или иного элемента. Другими словами, в хорошо известных местах приложения он меняет понятные кусочки кода. Основной скилл джуна — умение учиться. По моему мнению, для джуна в принципе не очень важны знания конкретных технологий (языка программирования или фреймворка). Знания очень быстро устаревают. Единственное, что не устаревает, — это способность думать и учиться.

Миддлу не страшно дать любую задачу, и он точно с ней справится. Большинство программистов (независимо от того, как их роли называются в конкретной компании) — миддлы. В Беларуси эта роль начинается после двух лет хорошего опыта. Миддл работает с уже готовой архитектурой. Знает, как она работает, знает её базовые компоненты. Он уже отлично владеет языками программирования и фреймворком Android.

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

Есть ли жизнь после сеньора?

Почти любой разработчик идёт по этой лестнице — джун-миддл-сеньор. Дальше перед ним открываются два концептуально разных пути.

Он может развиваться в хард-скиллах — вырасти в очень крутого технического специалиста. Это может быть Principal Developer или Solution Architect. Они решают технические задачи высшего порядка: концептуальные проблемы с перформансом или кросс-платформенностью, сами проектируют программы.

Второй путь — менеджерский. Сеньор может стать тимлидом, а из тимлида вырасти в технического директора — СТО. Это вершина развития технического менеджера.

И, конечно, всегда можно открыть свою компанию и развивать собственные идеи и продукты.

Что читать и где учиться

Не буду рекомендовать много книг. Признаюсь честно: сам я до конца не прочитал ни одной книжки по программированию. Хотя наверняка кому-то книжки нравятся и помогают.

Очень рекомендую всем новичкам писать свои приложения. Это звучит сложно, но на деле это не так.

Как бы я сейчас учился программировать под Android? Во-первых, нашёл бы бесплатный курс по программированию. Во-вторых, посмотрел бы видео-гайд по созданию своего приложения. Параллельно создавал бы простенькое приложение. Таким образом можно изучить основы языка и применить их сразу на практике. В конце такого курса обучения на руках у джуна будет готовое приложение, и с ним можно идти устраиваться на работу.

Напоследок небольшая история.

Однажды на собеседование в Onde пришёл человек. Он не знал ни Java, ни Kotlin. Зато написал собственное приложение на Delphi — простейшую игру вроде змейки. Мы даже не знали, как его собеседовать, — человек ничего не знал из нужных нам технологий! Но он создал своё приложение и отлично понимал базовые принципы программирования. Сейчас этот человек — один из ключевых Android-разработчиков в компании.

Список ресурсов:

Kotlin

  • Для тех кто не знает языки программирования: «Head First. Kotlin».
  • Для тех, кто умеет немного программировать: короткий гайд на официальном сайте Kotlin.
  • «Head First. Паттерны проектирования» — одна из немногих книг которую я прочитал, потому что там картинок больше чем текста =). Она для тех, кто уже умеет программировать, и хочет развиваться дальше. Паттерны проектирования — это обязательные знания, чтобы трансформироваться из джуна в миддлы. Поэтому для начала ее можно не читать, но стоит запомнить и прочитать в будущем.

Android

  • Базовый сайт, который стоит добавить в закладки: developer.android.com.
  • Бесплатные поэтапные уроки на русском (что-то на Kotlin, что-то на Java, но не стоит этого бояться, синтаксис очень похож): developer.alexanderklimov.ru.

Бесплатные курсы, рекомендованные Kotlin и Google:

Технические новости (советую читать, чтобы быть в теме): Android-разработка на Хабрахабр.

Источник

Оцените статью