[Перевод] Дорожная карта Android-разработчика в 2019 году
Всем привет! У нас отличные новости. В этом месяце в Отус стартует базовый курс «Android-разработчик», а также «Специализация Android-разработчик», которая включает в себя целый пакет курсов. В связи с этим делимся с вами полезной статьей, перевод которой приурочен к данным запускам.
2019 год — самое время, чтобы стать Android-разработчиком. Беря во внимание те инновации и тот прогресс, который сейчас происходит в сфере Android-разработки, можно сказать, что сейчас самое время стать частью этого движения. Последние достижения в Kotlin, Android Things и иных технологиях, делают Android приоритетным направлением развития для новичка, давая возможность получать актуальную информацию и двигаться вперед в определенном направлении.
Я решил написать это руководство после того, как подумал о том, что в 2017 году я сам проходил такой же путь. Надеюсь, оно поможет вам стать таким Android-разработчиком, каким вы хотите быть.
Начнем с самых основ.
Начните разрабатывать под Android
- Ознакомьтесь с основами Java на Head First Java;
- Установите Android Studio;
- Установите Kotlin в Android Studio (можете пропустить этот шаг, если не настроены учить Kotlin в этом году);
- Ознакомьтесь с Android User Interface и узнайте больше о XML и компонентах View.
Когда вы это сделаете, у вас будет не просто хорошая среда разработки для создания приложений под Android, но и вы сами будете хорошо знакомы с основами для понимания общей терминологии, которая используется разработчиками в большинстве туториалов.
Теперь вы сможете создавать простые приложения и внедрять в них новые функции. Не стесняйтесь начинать с пустой рабочей области. С помощью воображения и навыков вы с легкостью сможете сами заполнить ее.
Когда вы наиграетесь с идеями, следующей целью на 2019 год поставьте создание игры, которая разовьет вас как разработчика, который создает приложения для миллиардов. А теперь перейдем ко второму уровню!
Развиваемся в качестве 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 Иinding
- 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 году!
На этом все. Ждем ваши комментарии!