Переход с Android Support Library на Jetpack сопровождался необходимостью включения утилиты Jetifier, которая трансформировала старые библиотеки в новые. Зачем это надо было делать? Без этого проект вовсе бы не собрался.
С момента перехода прошло уже больше 2 лет, но не все разработчики в своих продуктах отключили эту утилиту, хотя вполне возможно в Support библиотек уже и нет в проекте.
В статье приводится: 👉 инструкция как проверить ваш проект 👉 что сделать со сторонними библиотеками, которые не выполнили миграцию 👉 Сравнение скорости сборки проекта с и без Jetifier
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным: 👉 Extention функции не всегда статические методы 👉 Inline классы не всегда встраиваются в код, а используются как обычные классы 👉 Неочевидное перекрытие имен c extention функциями и обычными 👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
Что нового: 👉 Поддержка ViewHolder и ViewGroup 👉 Упрощение использования viewBinding в Activity 👉 Больше поддержки inflate в различных компонентах 👉 Улучшение производительности при использовании рефлексии 👉 Минорные улучшения и исправления
Этот год выдался очень необычным и непривычным для всего мира и IT индустрии в частности. Многим из нас пришлось перебраться домой и работать удаленно. Тусовки сообщества трансформировались из оффлайн посиделок в онлайн. И я думаю, что это сделало нас крепче и глобальнее.
В новом году желаю тебе всего самого наилучшего, возвращения оффлайн формата, профессионального и карьерного роста! Ты лучший(ая)!
2021 - это год Android Broadcast. Для меня проект уже стал основным занятием, которое я буду развивать намного активнее. Новые форматы, контент и пользу русскоязычному сообществу.
Спасибо всем тем кто писал добрые слова и поддерживал проект, моя уверенность в проекте и новый шаг в его развитии - это отчасти ваша заслуга.
Не так давно вышла серия статей «Navigation Component-дзюцу» из 3 частей, где автор рассказал о куче проблема с Navigation Arch Component и как команда боролась с ними.
После "Навигационной битвы" на YouTube канале Android Broadcast Влад помог Паше, автору статьи, решить проблемы с которыми они столкнулись. В четвертой части статьи вы найдете пересмотр костылей и как правильно стоило все использовать, чтобы убрать кучу лишнего кода.
Тестируете приложение на личном устройстве? Для самого помню какая это боль когда разрабатываешь и пользуешься приложением в жизни. Приходится искать второе устройство (хорошая компания обычно предоставляет) либо использовать эмулятор.
Самый простой способ делать тестирование и не сносить релиз - сделать разные application id для разных типов сборок. Главное не забывайте класть ресурсы в нужную папку, правильно настроить все сторонние интеграции (Firebase, HMS, GMS и пр.)
Итоги года для Telegram канала Android Broadcast в инфографике от tgstat. Подробнее здесь
Спасибо всем подписчикам канала, что вы здесь. Ставьте лучики ☀️, чтобы зарядить создателей проекта на будущий год и пишите в личку @krlrozov, если есть что сказать больше
VideoLayout - библиотека, которая упростит вам интеграцию видео в UI. В отличие от стандартной VideoView имеет лучшую производительность для видео фонов с меньшим количеством строк.
В статье вы найдете 👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты 👉 Проблемы при разработке больших фич 👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh 👉 Как связать атомарные фичи в функциональность одного экрана 👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты 👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается: 👉 как работать с FTS в Android 👉 что происходит под капотом (виртуальные таблицы) 👉 сравнение различных версий FTS 👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Для всех кто любит реактивное программирование, использовал библиотеку RxBinding возрадуйтесь - теперь у вас есть стабильная версия binding на основе Coroutines Flow
Для всех тех кто не обновляет свои приложения до последней версии targetSdk, только когда Google заставит, рекомендую ознакомиться со статьей, в которой автор разбирает обновления в коде: 👉 Foreground Service Type 👉 Доступ с местоположению в фоне 👉 Одноразовые разрешения (One-Time Permissions) 👉 Scoped Storage 👉 Ограничения на доступ к другим приложениям 👉 Уведомления 👉 Отслеживание показа IME 👉 AsyncTask Deprecated 👉 Множество ограничений и изменений в поведении Toast
У вас есть возможность получить опыт работы в одной из крутейшей компании России, научиться работать в Scrum. Помимо всего прочего стажировка оплачиваемая , удаленная и вас будет свой наставник - инженер из Авито. Вы будете решать боевые задачи с первого дня!
Все позиции на стажировку можно найти здесь. После успешной стажировки вы сможете стать полноценным сотрудником Авито.
Вопрос уникальной идентификации устройства/пользователя зачастую стоит при разработке приложений. Все хотят собрать много данных, независимо от сервисов аналитик.
В статье автор разбирает различные подходы к идентификации пользователя в современной Android разработке с учетом всех ограничений. Обратите внимание на 2 библиотеки: Android-device-identification и Fingerprint-android.