#Coroutines #Kotlin
Preventing coroutine cancellation for important actions
Kotlin Coroutines базируются в своей работе на Structured Concurrency, но если выбрать неправильный CoroutineScope легко может выйти ситуация, что ваша операция не выполнится. Например, сообщение не отправится на сервер или данные не будут обновлены.
В статье разбирается как сделать чтобы все было хорошо с помощью специальной Job - NonCancellable
Preventing coroutine cancellation for important actions
Kotlin Coroutines базируются в своей работе на Structured Concurrency, но если выбрать неправильный CoroutineScope легко может выйти ситуация, что ваша операция не выполнится. Например, сообщение не отправится на сервер или данные не будут обновлены.
В статье разбирается как сделать чтобы все было хорошо с помощью специальной Job - NonCancellable
craigrussell
Preventing coroutine cancellation for important actions
A pattern for launching coroutines which cancel when the Activity or ViewModel is destroyed, but support allowing important parts of the coroutine to run uncancelled.
Android Broadcast
Как повлиял коронавирус на продуктивность вашей работы?
Обсуждение итогов опроса в @android_broadcast_talks
#CodeQuality #Kotlin
Detekt 1.7.0
🚀Увеличена скорость работы Gradle плагина
☑️Новое правило AbsentOrWrongFileLicense - проверка что каждый Kotlin файл имеет описание лицензии в шапке 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.
Implementing the Motion System With Material Components for Android
Система Material Design развивается и в ней появляются все новые возможности, как и библиотека Material Components Android реализует спецификацию. В новой версии библиотеки (1.2.0-alpha05) появилась реализация системы анимаций перемещения.
Направление развития очень хорошее🔥, теперь помимо стандартных виджетов мы будем иметь еще и стандартные анимации, которые нам смогут легко поставлять дизайнеры с помощью утилиты Direct.
Medium
Implementing The Motion System with material components for Android
Deep dive into The Motion System with Google’s latest Material Component library release
#Fragment
Раскладываем на части FragmentLifecycleCallbacks
Разбор возможностей FragmentLifecycleCallbacks:
👉 Отслеживание жизненного цикла Fragment
👉 Возможность выполнения действий на различных стадиях жизненного цикла Fragment (как до так и после) централизовано
👉 Примеры использования: Dagger и аналитика
Раскладываем на части FragmentLifecycleCallbacks
Разбор возможностей FragmentLifecycleCallbacks:
👉 Отслеживание жизненного цикла Fragment
👉 Возможность выполнения действий на различных стадиях жизненного цикла Fragment (как до так и после) централизовано
👉 Примеры использования: Dagger и аналитика
Хабр
Раскладываем на части FragmentLifecycleCallbacks
Привет! Сегодня я продолжаю рассказывать про инструменты, которые почему-то обделили вниманием. В своей предыдущей статье я написал про возможности ActivityLifec...
#Network #OkHttp
Authorization and retrying of web requests for OkHttp and Retrofit
Рецепт как с помощью OkHttp Interceptors можно реализовать повтор неудавшегося выполненного запроса и или обновить Auth Token, в случае если он истек.
Такой способ позволяет автоматизировать выполнение операций, которые стандартно приходится реализовать при работе с REST.
Authorization and retrying of web requests for OkHttp and Retrofit
Рецепт как с помощью OkHttp Interceptors можно реализовать повтор неудавшегося выполненного запроса и или обновить Auth Token, в случае если он истек.
Такой способ позволяет автоматизировать выполнение операций, которые стандартно приходится реализовать при работе с REST.
Lordcodes
Authorization and retrying of web requests for OkHttp and Retrofit | Lord Codes
Most remote APIs require some form of authorization in order to access them. We will explore using OkHttp Interceptors and Authorizers to authorize our web requests for use with OkHttp and Retrofit.
#Kotlin
Kotlin 1.4-M1 Released
Мы ждали, ждали, и ждали и снова ждали и наконец дождались! Первая превью следующей мажорной версии языка уже доступна
Что нового:
👉 Новый алгоритм Type Inference теперь включен по умолчанию: поддержка SAM, лучший вывод типов, smart cast для lambda
👉 Kotlin/JVM компилятор стали генерировать новые аннотации типов в байткоде для Java 8+
👉 Новый бекенд для Kotlin/JS
👉 Улучшения в standard library: удалено deprecated API, а что-то теперь помечено как deprecated
Полный список изменений здесь
Пока выкачена только первая партия изменений, но много чего еще впереди. Подробнее что стоит ждать можно найти здесь
Kotlin 1.4-M1 Released
Мы ждали, ждали, и ждали и снова ждали и наконец дождались! Первая превью следующей мажорной версии языка уже доступна
Что нового:
👉 Новый алгоритм Type Inference теперь включен по умолчанию: поддержка SAM, лучший вывод типов, smart cast для lambda
👉 Kotlin/JVM компилятор стали генерировать новые аннотации типов в байткоде для Java 8+
👉 Новый бекенд для Kotlin/JS
👉 Улучшения в standard library: удалено deprecated API, а что-то теперь помечено как deprecated
Полный список изменений здесь
Пока выкачена только первая партия изменений, но много чего еще впереди. Подробнее что стоит ждать можно найти здесь
The JetBrains Blog
Kotlin 1.4-M1 Released | The Kotlin Blog
We are happy to announce the first preview version of the new major release: Kotlin 1.4-M1.
A few months ago, we published an announcement of what to expect in Kotlin 1.4. As the release approaches,
A few months ago, we published an announcement of what to expect in Kotlin 1.4. As the release approaches,
#DynamicFeature
Exploring Dynamic Feature Navigation on Android
Navigation Component дал не только способ для реализации навигации в Android стандартным путем, но визуальный редактор.
Решение все же еще выглядит сырым т.к. не решен вопрос с возвращением результата (Activity.startActivityForResult) и навигацией в многомодульном приложение, когда у вас есть Dynamic Feature модуль. Обе этих функции будут поддерживаться в следующей версии библиотеки - Navigation 2.3.0.
В статье разбирается реализация работы с Dynamic Feature модулями в Navigation Component
Exploring Dynamic Feature Navigation on Android
Navigation Component дал не только способ для реализации навигации в Android стандартным путем, но визуальный редактор.
Решение все же еще выглядит сырым т.к. не решен вопрос с возвращением результата (Activity.startActivityForResult) и навигацией в многомодульном приложение, когда у вас есть Dynamic Feature модуль. Обе этих функции будут поддерживаться в следующей версии библиотеки - Navigation 2.3.0.
В статье разбирается реализация работы с Dynamic Feature модулями в Navigation Component
Medium
Exploring Dynamic Feature Navigation on Android
Since the introduction of the Navigation Component on Android, navigating the different parts of our application has become much more…
Умные часы на основе какой ОС вы используете с Android смарфтоном?
Anonymous Poll
7%
Android Wear/Google Wear
12%
Samsung Tizen
1%
Huawei Lite OS
1%
Firtbit OS
23%
Xiaomi MI Band
7%
Использую часы с другой ОС
39%
Нет часов вовсе
11%
Смотрю результаты
#Testing #BestPractices
Unit Testing Best Practices
Наши приложения нуждаются в тестах. Необходимо автоматизировать проверки того что мы пишем, чтобы повышать качество программ и обеспечить защиту от неосторожного рефакторинга.
В статье рассматриваются чему способствует практика написания тестов, а также лучшие практики в Unit тестировании.
Unit Testing Best Practices
Наши приложения нуждаются в тестах. Необходимо автоматизировать проверки того что мы пишем, чтобы повышать качество программ и обеспечить защиту от неосторожного рефакторинга.
В статье рассматриваются чему способствует практика написания тестов, а также лучшие практики в Unit тестировании.
Medium
Unit Testing Best Practices
A list of practical suggestions that can help you write better tests
#Testing
Stress-testing Android apps
При разработке приложений большинство разработчиков не уделяет внимание проверке приложений в стрессовых ситуациях:
👉 проблемы с сетью
👉 малое количество свободной памяти на диске
👉 проблемы с сервером
👉 убийство процесса приложения
и множество других ситуаций
В статье рассказывается про основные такие проблемы и как их можно протестировать в вашем приложении
Stress-testing Android apps
При разработке приложений большинство разработчиков не уделяет внимание проверке приложений в стрессовых ситуациях:
👉 проблемы с сетью
👉 малое количество свободной памяти на диске
👉 проблемы с сервером
👉 убийство процесса приложения
и множество других ситуаций
В статье рассказывается про основные такие проблемы и как их можно протестировать в вашем приложении
Medium
Stress-testing Android apps
Before starting with the recently published Trade Me app for jobs hunters, we spent some time reading and thinking about how we can build a…
#Tooling
Погружение в Charles Proxy
Рассказ о тестирование сетевого взаимодействия в мобильных приложениях с помощью утилиты Charles
В статье вы найдете инструкции по настройке, описание возможностей программы, как анализировать результаты, как подменять результаты и с какими стоит это делать
Погружение в Charles Proxy
Рассказ о тестирование сетевого взаимодействия в мобильных приложениях с помощью утилиты Charles
В статье вы найдете инструкции по настройке, описание возможностей программы, как анализировать результаты, как подменять результаты и с какими стоит это делать
Хабр
Погружение в Charles Proxy
Привет, Хабр! Меня зовут Настя, я работаю в команде тестирования мобильных приложений компании FunСorp. При приёмке задач мы уделяем большое внимание проверке клиент-серверного взаимодействия. Опыт...
Android Broadcast
#Conference #SaintPetersburg Mobius 2020 Piter 23-24 июня пройдет крупнейшая конференция по мобильной разработке Mobius. В рамках неё вы сможете встретиться с ведущими специалистами в мобильной разработке и узнать какие тренды нас ждут. Уже в программе:…
#Conference #SaintPetersburg #Mobius
Конференция Mobius переехала на 1 день раньше. Теперь она пройдет 22 - 23 июня.
Конференция Mobius переехала на 1 день раньше. Теперь она пройдет 22 - 23 июня.
#Android11
Exploring WindowInsets on Android 11
В Android 11 DP 2 появилась долгожданная функция - возможность синхронизации контента вашего приложения с виртуальной клавиатурой через WindowInsets
В статье рассматриваются изменения в WindowInsets в Android 11, WindowInsetsController и пример синхронизации контента приложения с клавиатурой
Exploring WindowInsets on Android 11
В Android 11 DP 2 появилась долгожданная функция - возможность синхронизации контента вашего приложения с виртуальной клавиатурой через WindowInsets
В статье рассматриваются изменения в WindowInsets в Android 11, WindowInsetsController и пример синхронизации контента приложения с клавиатурой
Medium
Exploring WindowInsets on Android 11
Android 11 Developer Preview 2 introduced a long-awaited feature: the ability to synchronize the app’s content with the IME (soft…
#Gradle
Вышел Gradle 6.3
👉 Поддержка Java 14
👉 Улучшены сообщения об ошибках
👉 Небольшие улучшения для авторов плагинов
👉 Исправления багов
Вышел 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 ввели ревью приложений на то, чтобы разрешение для доступа к местоположению не использовалось если вы не сможете убедить ревьюверов то, что оно нужно вам. Подробнее читайте здесь
Evolution of location access on Android
Последние пару лет изменения в получении доступа к местоположению разработчикам приложения значительно усложняется. Android 11 также продолжает эту тенденцию.
Автор статьи решил сделать обзор изменений:
👉 Android 8 и разграничения доступа к местоположению между активными (foreground) и фоновыми (background) приложениями
👉 Android 9 и ужесточение практик
👉 Android 10 и отдельно разрешения для получения местоположения в фоне
👉 Android 11 и одноразовое получение доступа к местоположению, а также изменение предоставления разрешения доступа к местоположению при работе приложений в фоне
Помимо всего этого в Google Play ввели ревью приложений на то, чтобы разрешение для доступа к местоположению не использовалось если вы не сможете убедить ревьюверов то, что оно нужно вам. Подробнее читайте здесь
Medium
Evolution of location access on Android
In Sep 2008, Android provided developers with the ability to use GPS location with app users’ permission as part of the first Android 1…
#Gradle
Module Graph Assert - Gradle plugin to keep your modules graph healthy and lean
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 🔥🔥🔥
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 🔥🔥🔥
Medium
Unboxing Koin 2.1 📦 🎉
What’s new for Koin 2.1?
#Kotlin #Coroutines #UnderTheHood
The suspend modifier — Under the hood
Текстовая версия выпущенного ранее ролика о том, как работает ключевое слово
The suspend modifier — Under the hood
Текстовая версия выпущенного ранее ролика о том, как работает ключевое слово
suspend
в Kotlin.Medium
The suspend modifier — under the hood
Kotlin Vocabulary: Coroutines