- Как стать Android-разработчиком с нуля: дорожная карта
- Авторизуйтесь
- Как стать Android-разработчиком с нуля: дорожная карта
- Java или Kotlin?
- Начало работы
- Система контроля версий
- Android Architecture
- Создание приложений
- Продвинутая разработка
- Заключение
- Дорожная карта Android-разработчика в 2019 году
- Начните разрабатывать под Android
- Развиваемся в качестве Android-разработчика
- Изучите Android Performance Patterns
- Поднимемся на третий уровень!
- Углубитесь в оптимизацию памяти с помощью Bitmap-средств
- Компоненты архитектуры Android
- Станьте профессионалом в тестировании
- Реактивное программирование с RxJava
- Узнайте все о Dagger
- Станьте специалистом в области безопасности
Как стать 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-разработчика в 2019 году
Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс «Android-разработчик», а также «Специализация Android-разработчик», которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным запускам.
2019 год – самое время, чтобы стать Android-разработчиком. Беря во внимание те инновации и тот прогресс, который сейчас происходит в сфере Android-разработки, можно сказать, что сейчас самое время стать частью этого движения. Последние достижения в Kotlin, Android Things и иных технологиях, делают Android приоритетным направлением развития для новичка, давая возможность получать актуальную информацию и двигаться вперед в определенном направлении.
Я решил написать это руководство после того, как подумал о том, что в 2017 году я сам проходил такой же путь. Надеюсь, оно поможет вам стать таким Android-разработчиком, каким вы хотите быть.
Начнем с самых основ.
Начните разрабатывать под Android
Когда вы это сделаете, у вас будет не просто хорошая среда разработки для создания приложений под Android, но и вы сами будете хорошо знакомы с основами для понимания общей терминологии, которая используется разработчиками в большинстве туториалов.
Теперь вы сможете создавать простые приложения и внедрять в них новые функции. Не стесняйтесь начинать с пустой рабочей области. С помощью воображения и навыков вы с легкостью сможете сами заполнить ее.
Когда вы наиграетесь с идеями, следующей целью на 2019 год поставьте создание игры, которая разовьет вас как разработчика, который создает приложения для миллиардов. А теперь перейдем ко второму уровню!
Развиваемся в качестве Android-разработчика
Следующий список нужно выполнять шаг за шагом. Он станет для вас лестницей, забираясь по которой вы сможете узнавать что-то новое, реализовывать себя и двигаться вперед.
- Разобраться с жизненным циклом Activity, чтобы продвигать рабочее приложение;
- Использовать динамические и гибкие конструкции пользовательского интерфейса с Fragments;
- Научиться отлаживать свое приложение под Android. Для этого можете использовать отладчик Android Studio;
- Разберитесь с Android activities, чтобы создавать экраны, с помощью которых пользователь сможет осуществлять навигацию по вашему приложению;
- Получите представление о контексте в Android;
- Изучите REST и HTTP, поскольку большинство профессиональных разработчиков хорошо разбираются в аспектах REST и HTTP;
- Научитесь использовать многопоточность:
- Узнайте, как направлять работу потока main;
- Осознайте важность многопоточности;
- Изучите предоставленные классы, которые помогут вам научиться использовать многопоточность в кратчайшие сроки;
- Узнайте, как Android обрабатывает потоки на уровне системы и как это может повлиять на ваш выбор архитектуры вашего приложения и какие-либо ее аспекты;
- Познакомьтесь с нюансами памяти системы и многопоточного кода;
- Узнайте, как применять многопоточные решения к громоздким и сложным задачам.
- Станьте экспертом в обработке изменений в конфигурации:
- В сохранении объекта во время изменения конфигурации;
- Самостоятельной обработке изменений.
- Разберитесь с базами данных и SQL:
- Облачными базами данных;
- Offline и локальными базами данных;
- Offline архитектурами и основными offline практиками.
- Узнайте о контент-провайдерах:
- Узнайте, как обмениваться данными с другими приложениями;
- Узнайте, как получить доступ к данным из других приложений;
- Создайте контент-провайдер, который поможет другим приложениям безопасно получать доступ к вашему приложению и изменять данные в нем;
- Поиграйтесь с поставщиком календаря и поставщиком контактов.
Узнайте о лучших сторонних Android-библиотеках. [Самые полезные и широко используемые]:
Все эти шаги помогут вам сформировать твердое профессиональное понимание экосистемы Android и подготовит вас к работе по крайней мере с 10-15 различными типами бизнес-кейсов Android-приложений.
Изучите Android Performance Patterns
Если вы действительно хотите получить чрезвычайно мощный и запоминающийся опыт работы с Android, шаблоны производительности станут для вас хорошим подспорьем. Когда вы выполните следующий список действий, вы не только узнаете, как ими пользоваться, но и познакомитесь с теми, которые могли упустить. Шаблоны производительности являются невероятным инструментом в руках Android-разработчика. Итак, вам нужно будет узнать следующее, когда дело дойдет до Android Performance Patterns:
- Асинхронные задачи бесполезны для процессов, которые выполняются вследствие длинных или потоковых вызовов. Узнайте, как использовать Handlerthread, чтобы обрабатывать эти процессы иначе;
- Научитесь разбираться с утечками памяти;
- Узнайте, как совместить IntentService с многопоточностью для повышения эффективности;
- Изучите шаблоны производительности Android Service, чтобы убивать сервисы, как только их работа заканчивается;
- Познакомьтесь со специфическими Android hashmap¬-контейнерами, чтобы балансировать производительность и память при создании приложений;
- Узнайте, как использовать инструмент мониторинга памяти, чтобы наблюдать, как аллоцирование влияет на производительность вашего приложения;
- Оптимизируйте приложения для работы по сети с помощью кэширования;
- Оптимизируйте частоту сетевых запросов вашего приложения;
- Узнайте, как бороться с утечками view;
- Узнайте, как работает сборщик мусора;
- Поймите, как обновление визуальных свойств вашего приложения влияет на производительность;
- Получите глубокое понимание вертикальной синхронизации;
- Разберитесь, как коррелируют интерфейс в Android и GPU, чтобы обнаружить сложности, с которыми вам необходимо разобраться для обеспечения гладкой работы вашего приложения;
- Поймите, как создавать приложение, которое выдает 60 fps без потери фреймов, а также узнайте, сколько других приложений конкурируют с вашим за ресурсы системы и разработайте стратегии для их обработки;
- Узнайте, как отслеживать производительность GPU и улучшать рендеринг вашего приложения;
- Изучите стратегии, которые помогут меньше разряжать батарею;
- Посоревнуйтесь с другими разработчиками, чьи приложения находятся в разделе лучших в PlayStore и попытайтесь улучшить время запуска. Посмотрим, как далеко вы сможете зайти.
- Уменьшите размер вашего приложения.
Поднимемся на третий уровень!
Углубитесь в оптимизацию памяти с помощью Bitmap-средств
Узнайте и как использовать Glide для обработки bitmap-объектов в своем Android-приложении. Вы столкнетесь с проблемами при обработке тонн контента в приложении, которая потребует извлечения изображений, их декодирования и отображения bitmap-объектов. Если вы не научитесь делать это правильно, то ваше приложение не добьется успеха, поскольку пользователи могут решить, что оно недостаточно качественное.
Обратите внимание, что теперь вам нужно уметь обрабатывать до 48 Мб bitmap-объектов изображений с камеры, которые на сегодняшний день может выдать камера пользователя. Они с легкостью могут съесть всю доступную память.
Компоненты архитектуры Android
Одна из самых главных вещей, которой я научился как Android-разработчик, был навык внедрения инновационных практик в архитектуры и их компоненты. Как только я начал выходить за рамки MVP, MVVM, MVx’s и т.д., я понял, что вокруг этих архитектурных компонентов есть огромное пространство для инноваций.
Например, еще в 2017 году настройки BLE(Bluetooth low energy) по умолчанию не соответствовали должному уровню. Понимание того, что этот архитектурный компонент можно улучшить путем создания промежуточной сервисной библиотеки, было для меня настоящим открытием.
Итак, чтобы хорошо разобраться в этой теме, я бы предложил вам выбрать отдельные архитектурные компоненты вашего приложения и изучить методики их оптимизации. Вот те, которые приходят мне на ум:
- Data Binding
- Lifecycles
- LiveData
- Navigation
- Paging
- Room
- ViewModel
- WorkManager
Станьте профессионалом в тестировании
Вы же не хотите стать одним из тех разработчиков, которые в случае обнаружения ошибки говорят «на моей машине отлично работает», правда? Итак, основываясь на знании архитектуры вашего приложения и ее оптимизации, создайте юнит-тесты (JUnit4), узнайте, как пользоваться Espresso и сосредоточьтесь на отчетах о покрытии кода, которые восхитят ведущих разработчиков и VPE. Подумайте о том, как эти отчеты могут стать полезными для других разработчиков, тестировщиков, менеджеров или других заинтересованных сторон и помочь им разобраться с критическими проблемами производительности приложения и расставить приоритеты.
Не забывайте про автоматизацию и повторное использование тестов в той мере, в которой это возможно. Такой подход откроет вам путь на руководящие позиции.
Реактивное программирование с RxJava
Само собой разумеется и наиболее вероятно, что этот аспект является самым важным в вашем резюме и вашем профессиональном портфолио. Есть множество мест, где вы можете узнать на практике, как работать с RxJava. Я порекомендую следующие источники:
Они послужат хорошей отправной точкой на пути к освоению RxJava и его аспектов. Если вы хотите узнать больше о RxJava, обязательно ознакомьтесь с ними, а также изучите:
- Всю глубину Observables в RxJava;
- Реализацию кэширования в RxJava.
Узнайте все о Dagger
Следующие шаги помогут вам стать профи в Dagger:
- Просмотрите документацию и разберитесь до конца с процессом внедрения зависимостей;
- Составьте список ограничений;
- Создайте проект и используйте в нем Dagger 2.
Станьте специалистом в области безопасности
Профессиональный Android-разработчик и специалист в информационной безопасности? Вау! Такое нечасто в себе может совместить один человек!
А вот несколько вещей, с которыми вы можете ознакомиться в 2019 году, чтобы стать им:
- Узнайте, как изолировать данные и код вашего приложения от других приложений;
- Изучите криптографические функции и реализуйте их;
- Научитесь уменьшать риски, связанные с ошибками управления памятью;
- Узнайте, как оптимально использовать разрешения пользователя для управления данными приложения;
- Безопасно храните и шифруйте данные в: локальном хранилище, «налету» или в облаке;
- Станьте профессионалом в вопросах контент-провайдеров для обеспечения безопасного доступа;
- Убедитесь, что вы прячете данные (имеется в виду обфускация);
- Узнайте, как можно реализовать собственные решения в области безопасности, которые не являются частью основного стека Android;
- Проведите аудит сторонних библиотек, чтобы разбить их по уровню уязвимостей и сформировать для себя документ-исследование, которое поможет в будущем;
- Работайте над тем, чтобы сделать BLE более безопасным.
На этом я закончу. Надеюсь, эта статья поможет вам стать профессиональным Android-разработчиком, если вы начнете заниматься этим прямо сейчас в 2019 году!
Источник