Для всех кто прикупил новые MacBook c M1 и хочет их использовать как основную машину для разработки хорошая новость - в команде Android уже работают над версией эмулятора ARM64, которую можно будет запускать на Apple Silicon.
Пока все находится в разработке и не работает множество функций в системе, таких как WebView, звук, Vulkan и др. Для приложений где этот функционал отсутсвует или некритичен вы можете попробовать обкатать этот эмулятор
Найдена уязвимость в библиотеке Google Play Core, которая позволяет выполнять код удаленно. Уязвимость содержится во всех версиях библиотеки с 1.3.6 до 1.7.1. Бегите обновляться до любой версии, начиная с 1.7.2.
Чтобы проверить, использует ли ваше приложение эту библиотеку выполните в терминале команду ./gradlew <МОДУЛЬ ПРИЛОЖЕНИЯ>:dependencies | fgrep "com.google.android.play:core"
Возможно библиотека не подключена у вас явным образом, но может подключаться транзитивно из других библиотек
Рад представить вам генерального партнёра проекта Android Broadcast - AvitoTech. Это очень классные ребята с отличной культурой разработки. У меня появилась возможность работать с ними ближе в рамках сотрудничества и я этому очень рад!
Если вам интересно присоединиться к их команде, то прямо сейчас они ищут Android разработчиков в команды: 🔥Speed (CI/CD, фреймворки для тестирования и релизы) 🚀Performance (ускорение Авито на всех платформах)
Советы как сделать работу вашего RecyclerView максимально быстрой и плавной: 👉 Максимально простая иерархия View. И плоская 👉 Не стесняйтесь прибегать к Custom View, чтобы сделать иерархию плоской 👉 Большое количество уникальных типов элементов негативно влияет сна производительность 👉 Используйте оптимизации RecyclerView: DiffUtils, setHasFixedSize(), setItemViewCacheSize(), setRecycledViewPool()
Встречайте канал @kotlin_broadcast. В новом канале от автора @android_broadcast будет множество новостей которые касаются Kotlin и Multiplatform разработки.
Важно: Самые важные новости касательно Android разработки на Kotlin по-прежнему будут в @android_broadcast!
#Location Improving urban GPS accuracy for your app Google улучшает позиционирование в больших городах. Заработает это для тех кто использует Fused Location Provider. Улучшения затрагивают 3850 городов, но Россия и Украина в них не попадает (
Наверняка вы знаете что разделять item'ы в RecyclerView путём добавления в их xml специального view-разделителя - это очень плохая практика. Для этих целей существует такой инструмент как ItemDecoration.
Благодаря тому что мы можем наследоваться от этой абстракции у нас открываются возможности разнообразной реализации, например: 👉 Убрать разделитель для последнего item'а 👉 Сделать специальные разделители для определённого ViewType 👉 Показывать уникальные разделители для item'ов на определённых позициях.
Автор подробно рассматривает все случаи кастомных декораций и даёт примеры кода для реализации в своих проектах
Google улучшает позиционирование в больших городах. Заработает это для тех кто использует Fused Location Provider. Улучшения затрагивают 3850 городов, но Россия и Украина в них не попадает (
Android хоть и имеет богатый набор виджетов, но всегда приходится прибегать к специфичным кастомизациям или вовсе сделать что-то свое. Также ожно из важных причин является производительность, так как сложная иерархия View, которая позволит достичь результата, может получиться напорядок медленее.
В статье вы найдете руководство как сделать простой кастомный виджет на Kotlin
Jetpack Compose открывает новые горизонты, меняя взгляд на построения UI. Когда все переезжает из XML в код и становится ближе к бизнес логике, то этим становится проще управлять через сервер.
Например, сделать Server-Driven UI более эффективно чем это делалось на View. Автор статьи приводит в пример свое видение такой реализации
GitHub - самый популярный сервис для хранения кода, особенно open source проектов. Не так давно на сервисе появилась фича GitHub Actions, которая позволяет автоматизировать ваши процессы, связанные с кодом в рамках GitHub.
В первой части статьи рассматривается настройка автоматической проверки кода на Pull Request и сборка релизных артефактов. Во второй части запускаются UI тесты в Firebase Test Lab
FragmentTransaction: 👉 Почему всегда надо использовать setReorderingAllowed(true). Связано с анимациями и back stack 👉setMaxLifecycle() 👉 Особенности show()/hide() 👉 Особенности attach()/detach()
Библиотека для создания экранов настроек на основе стандартного фреймворка. Библиотека имеет удобный DSL на основе Kotlin для создания экрана настроек в runtime
Browser 1.3.0 👉 Улучшения Trusted Web Activity API с помощью возможности отправки команд 👉 Возможность управлять показом опции шаринга 👉 Больше возможностей по управлению цветом Custom Tab
Wear Input 1.0.0 👉 Возможность обработки физических клавиш из Jetpack библиотеки 👉 API для тестирования работы с кнопками
Navigation 2.3.2 👉 Safe Args API теперь совместимо с Kotlin explicit API mode 👉 Испралвение багов
Что еще: 👉 Произошли важные фиксы в Activity Result API 👉FragmentScenario переезжает полностью на Kotlin 👉RecyclerView 1.2.0-beta01 не принес изменений с альфы, что говорит о уже неплохой стабильности 👉 Множество beta и rc релизов
Авторы библиотеки Okio (OkHttp, Retrofit и др.) активно работают над реализацией мультиплатформенного API для работы с файлами и потоками. Сделано уже много чего, ждем полноценного релиза библиотеки в KMP варианте
10 декабря JetBrains организует вебинар, посвященный использованию Kafka в серверных приложениях на Kotlin.
Вебинар будет интересен разработчикам, которые уже использую Kotlin для серверных приложений, а также тем, кто только планирует начать. Написать сервер для своего приложения, и расширить применение Kotlin за пределы Android будут очень полезным навыком!