При добавление поддержкой темной темы в ваше приложение необходимо убедиться, что вы не используете хардкорно заданные цвета. Лучший вариант - это автоматизировать такую проверку. Например, с помощь Android Lint.
В статье рассматривает как написать такую проверку самостоятельно. Исходный код примера можно найти здесь.
Когда ваш проект имеет множество модулей, это позволяет ускорить сборку. А как насчет того чтобы выполнять задачи только на модулях, в которых произошли изменения и зависимых от них? Например тесты и проверку стиля кода
В статье рассматривается как из Gradle найти изменения в Git и запустить тесты только для измененных модулей.
В Retrofit 2.6.0 была добавлена поддержка Kotlin Coroutine - функции в интерфейсе Retrofit можно помечать ключевым словом suspend . Что стоит за этой реализацией? Какие образом Java Dynamic Proxy может работать с Coroutine? В своей статье Jake делает разбор
Отображение текста одна из самых тяжелых графических операций в UI, так как для того чтобы нарисовать текст нужно сделать множество просчетов. Отключение переноса слов и перенос measuring текста в фоновый поток значительно разгружают ваш UI. Что же такого происходит под капотом в TextView?
В статье вы найдете подробный разбор как объекта строки превращается в картинку на экране: 👉 Нативные библиотеки под капотом 👉 Как происходит перенос текста на новую строку 👉 Использование различных стилей в TextView 👉Spanы 👉 Как текст располагается в TextView 👉 Оптимизация производительность TextView
В Android Q была добавлена новая система навигация жестами. Это новинка позволяет приложениям отображаться от края до края вашего экрана! В статье разбирается все особенности новой фичи и адаптации вашего приложения к ней.
При сборке вашего приложения одним из шагов является запуск Manifest Merger - утилиту, отвечающую за сбор манифестов из всех aar зависимостей, модулей и основного приложения, и получения финального AndroidManifest, который добавляется в APK.
В статье рассказывается как при использование App Bundle разработчик столкнулся с непонятным багом и каким путем прошел, чтобы найти проблему с объединением AndroidManifest. Я сам сталкивался с такими же проблемами, так как не всегда ошибки, не позволяющие вашему приложению нормально работать, приводят к ошибки во время сборки.
Как часто к вам приходит заказчик со своим видением как должно работать приложение в Android? Например, как должен меняться в нем язык (и плевать что этот функционал заложен в системе).
В статье вы найдете руководство как реализовать такую фичу и чтобы форматирование данных и разметка у вас были соответствующими.
RecyclerView - компонент который есть в любом приложение. Он имеет возможность с помощью анимации показывать изменения данных в нем. Делается это довольно непросто, поэтому Google дала нам DiffUtil - утилита, которая за нас вычисляет разницу и анимирует список.
Для тех кто хочет понять как работает эта магия (а называется она алгоритм Майерса) ты вы можете узнать это от ребят из Redmadrobot. Объясняют довольно доступно и с красивыми иллюстрациями.
Dagger на сегодня является самым популярным DI для Android. Почему так? Он богат возможностями, не использует рефлексию и проверят ваш граф во время компиляции.
Для всех любителей Kotlin использование Dagger порой является неудобным и трудным в силу того, что эта библиотека изначально разрабатывалась для Java и до сих пор на официальном сайте нет полноценного руководства как ее лучше использовать с Kotlin.
Команда Android решила исправит это и дать ряд рекомендаций: 👉Всегда используйте последнюю версию Dagger (сейчас это 2.24) 👉Включите инкрементальную компиляцию Dagger вkapt 👉При выполнение inject зависимости в непубличное свойство класса, задавайте квалификатор на поле 👉Dagger работает эффективнее если зависимости в @Module предоставляются через статические методы. Используйтеobjectдля объявления@Moduleи добавляйте аннотацию@JvmStaticк каждому методу @Provides. 👉 Работа с generic в Kotlin и Java отличается, поэтому при inject зависимостей с generic вам будет полезна аннотация@JvmSuppressWildcards 👉 Будьте осторожны с использованием single line function, так как Dagger при построение графа опирается на возвращаемый тип. Указывайте явно возвращаемый тип всегда или используйте функции с телом.
7 сентября пройдет крутейшее событие в Беларуси по Kotlin - Kotlin/Everywhere Minsk. Вас ожидают известные спикеры из-за рубежа и нашей страны и классный материал по использованию Kotlin!
Не так давно Google дала всем разработчикам доступ к In-App Updates, которая позволяет обновлять приложение изнутри. Разработчики из Pandao делятся тем как интегрировать работу с библиотекой и какой эффект ее применения.
Kotlin имеет множество операторов для обработки коллекций, которые выполняются сразу же и создаются новые коллекции. Альтернативой ему служит Sequence API, которое реализует lazy API для обработки коллекций. В статье рассматриваются различия между этими подходами.
Несколько рекомендаций при реализации архитектуры MVVM на основе Architecture Components: 👉ViewModel не должна использовать классы из Android SDK. Используйте интерфейсы, которые позволят вам абстрагироваться от платформенной реализации. 👉View не должна содержать какой либо логики (быть пассивной). Место для всей логики - это ViewModel. 👉ViewModel не должна иметь ссылки на View 👉 Если вы хотите получать обновления данных от LiveData для обновления UI, тогда используйте viewLifecycleOwner.
Как бы не штормило Jake Wharton новый мажорный релиза RxBinding вышел, что несомненно порадует всех любителей Rx. В версии 3.0 произошли следующие изменения: 🎉 Библиотека переписана на Kotlin 🎉 Миграция на AndroidX 👉 Удалены все deprecated методы 👉 Отказ от использования AutoValue в пользу Kotlin data классов
Вышла новая версия Dagger 2, которая не привнесла ничего значимого: 👉 Удалено устаревшее API из dagger.androidHas{Activity,Fragment,Service,ContentProvider,BroadcastReceiver} 👉 Инкрементальный процессинг аннотаций теперь включён по умолчанию 👉 Исправление багов
Всем привет. Лего горячая пора и пора отпусков, вот и я решил отдохнуть и набраться сил. Уезжаю в небольшую поездку и оставляю комп дома, так как это единственный надежный способ не дать самому себе работать 😁
В связи с этим до следующей недели новостей не ждите.