Android Broadcast
14.2K subscribers
3.5K photos
336 videos
11 files
5.87K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Coroutines #Kotlin

Preventing coroutine cancellation for important actions

Kotlin Coroutines базируются в своей работе на Structured Concurrency, но если выбрать неправильный CoroutineScope легко может выйти ситуация, что ваша операция не выполнится. Например, сообщение не отправится на сервер или данные не будут обновлены.

В статье разбирается как сделать чтобы все было хорошо с помощью специальной Job - NonCancellable
#CodeQuality #Kotlin

Detekt 1.7.0

🚀Увеличена скорость работы Gradle плагина
☑️Новое правило AbsentOrWrongFileLicense - проверка что каждый Kotlin файл имеет описание лицензии в шапке Kotlin файла
👉Множество мелких улучшение и исправлений
#Material #Animation

Implementing the Motion System With Material Components for Android

Система Material Design развивается и в ней появляются все новые возможности, как и библиотека Material Components Android реализует спецификацию. В новой версии библиотеки (1.2.0-alpha05) появилась реализация системы анимаций перемещения.

Направление развития очень хорошее🔥, теперь помимо стандартных виджетов мы будем иметь еще и стандартные анимации, которые нам смогут легко поставлять дизайнеры с помощью утилиты Direct.
#Fragment

Раскладываем на части FragmentLifecycleCallbacks

Разбор возможностей FragmentLifecycleCallbacks:
👉 Отслеживание жизненного цикла Fragment
👉 Возможность выполнения действий на различных стадиях жизненного цикла Fragment (как до так и после) централизовано
👉 Примеры использования: Dagger и аналитика
#Network #OkHttp

Authorization and retrying of web requests for OkHttp and Retrofit

Рецепт как с помощью OkHttp Interceptors можно реализовать повтор неудавшегося выполненного запроса и или обновить Auth Token, в случае если он истек.

Такой способ позволяет автоматизировать выполнение операций, которые стандартно приходится реализовать при работе с REST.
#Kotlin

Kotlin 1.4-M1 Released

Мы ждали, ждали, и ждали и снова ждали и наконец дождались! Первая превью следующей мажорной версии языка уже доступна

Что нового:
👉 Новый алгоритм Type Inference теперь включен по умолчанию: поддержка SAM, лучший вывод типов, smart cast для lambda
👉 Kotlin/JVM компилятор стали генерировать новые аннотации типов в байткоде для Java 8+
👉 Новый бекенд для Kotlin/JS
👉 Улучшения в standard library: удалено deprecated API, а что-то теперь помечено как deprecated

Полный список изменений здесь

Пока выкачена только первая партия изменений, но много чего еще впереди. Подробнее что стоит ждать можно найти здесь
#DynamicFeature

Exploring Dynamic Feature Navigation on Android

Navigation Component дал не только способ для реализации навигации в Android стандартным путем, но визуальный редактор.

Решение все же еще выглядит сырым т.к. не решен вопрос с возвращением результата (Activity.startActivityForResult) и навигацией в многомодульном приложение, когда у вас есть Dynamic Feature модуль. Обе этих функции будут поддерживаться в следующей версии библиотеки - Navigation 2.3.0.

В статье разбирается реализация работы с Dynamic Feature модулями в Navigation Component
#Testing #BestPractices

Unit Testing Best Practices

Наши приложения нуждаются в тестах. Необходимо автоматизировать проверки того что мы пишем, чтобы повышать качество программ и обеспечить защиту от неосторожного рефакторинга.

В статье рассматриваются чему способствует практика написания тестов, а также лучшие практики в Unit тестировании.
#Testing

Stress-testing Android apps

При разработке приложений большинство разработчиков не уделяет внимание проверке приложений в стрессовых ситуациях:
👉 проблемы с сетью
👉 малое количество свободной памяти на диске
👉 проблемы с сервером
👉 убийство процесса приложения
и множество других ситуаций

В статье рассказывается про основные такие проблемы и как их можно протестировать в вашем приложении
#Tooling

Погружение в Charles Proxy

Рассказ о тестирование сетевого взаимодействия в мобильных приложениях с помощью утилиты Charles

В статье вы найдете инструкции по настройке, описание возможностей программы, как анализировать результаты, как подменять результаты и с какими стоит это делать
#Android11

Exploring WindowInsets on Android 11

В Android 11 DP 2 появилась долгожданная функция - возможность синхронизации контента вашего приложения с виртуальной клавиатурой через WindowInsets

В статье рассматриваются изменения в WindowInsets в Android 11, WindowInsetsController и пример синхронизации контента приложения с клавиатурой
#Gradle

Вышел Gradle 6.3
👉 Поддержка Java 14
👉 Улучшены сообщения об ошибках
👉 Небольшие улучшения для авторов плагинов
👉 Исправления багов
#Permissions #Location

Evolution of location access on Android

Последние пару лет изменения в получении доступа к местоположению разработчикам приложения значительно усложняется. Android 11 также продолжает эту тенденцию.

Автор статьи решил сделать обзор изменений:
👉 Android 8 и разграничения доступа к местоположению между активными (foreground) и фоновыми (background) приложениями
👉 Android 9 и ужесточение практик
👉 Android 10 и отдельно разрешения для получения местоположения в фоне
👉 Android 11 и одноразовое получение доступа к местоположению, а также изменение предоставления разрешения доступа к местоположению при работе приложений в фоне

Помимо всего этого в Google Play ввели ревью приложений на то, чтобы разрешение для доступа к местоположению не использовалось если вы не сможете убедить ревьюверов то, что оно нужно вам. Подробнее читайте здесь
​​#Gradle

Module Graph Assert - Gradle plugin to keep your modules graph healthy and lean

Gradle плагин, который поможет вам визуализировать граф зависимостей модулей в вашем проекте и позволит проанализировать его визуально.
#DependencyInjection

Unboxing Koin 2.1

Не так давно вышла следующая версия популярного DI фреймворка на чистом Kotlin - Koin 2.1.

Улучшения в новой версии:
🚀 Изменения во внутренней архитектуре и лучшая производительность
👉 Изменения в работе со Scope
👉 Koin Gradle plugin — проверка графа во время компиляции
👉 Inject зависимостей через setter (experimental)
👉 Новые JUnit правила, которые избавляют от зависимости на какую либо mock библиотеку
👉 Лучшая совместимость с Ktor

Обновления для Android:
👉 Android Lifecycle Scopes
👉 Поддержка SavedState для ViewModel
👉 Поддержка inject в конструкторы Fragment

Следующая версия будет 3.0, которая принесет поддержку Kotlin MPP 🔥🔥🔥