#Kotlin #Serialization
Вышла KotlinX Serialization 1.0.0-RC
Официальная библиотека сериализации от разработчиков Kotlin подходит к релизу и нас ждут изменения
👉 Миграция на Kotlin 1.4
👉 Изменение и стабилизация API
👉 Исправление багов
👉 Улучшение производительности
Вышла KotlinX Serialization 1.0.0-RC
Официальная библиотека сериализации от разработчиков Kotlin подходит к релизу и нас ждут изменения
👉 Миграция на Kotlin 1.4
👉 Изменение и стабилизация API
👉 Исправление багов
👉 Улучшение производительности
GitHub
Release 1.0.0-RC · Kotlin/kotlinx.serialization
Release candidate for 1.0.0 version. The goal of RC release is to collect feedback from users
and provide 1.0.0 release with bug fixes and improvements based on that feedback.
While working on 1.0....
and provide 1.0.0 release with bug fixes and improvements based on that feedback.
While working on 1.0....
#Tooling #Performance
Yet Another Methods Profiler for Android (YAMP)
Утилита для анализа
Такого рода инструмент позволяет понять какие методы у вас вызывались и где было потрачено много времени, чтобы расследовать проблемы в производительности.
Скачать последний релиз можно ➡️здесь
Подробное руководство найдете в README на Github
Задать свои вопросы автору @Grishberg вы можете в чате @android_broadcast_talks
Yet Another Methods Profiler for Android (YAMP)
Утилита для анализа
.trace
файлов, аналогичная Android Profiler, но скорость работы выше и управление удобнее.Такого рода инструмент позволяет понять какие методы у вас вызывались и где было потрачено много времени, чтобы расследовать проблемы в производительности.
Скачать последний релиз можно ➡️здесь
Подробное руководство найдете в README на Github
Задать свои вопросы автору @Grishberg вы можете в чате @android_broadcast_talks
GitHub
GitHub - Grigory-Rylov/android-methods-profiler: Yet another Android Profiler for AOSP .trace files
Yet another Android Profiler for AOSP .trace files - Grigory-Rylov/android-methods-profiler
#Conferenсe #Online
2020 год получился очень насыщенным на события. Но впереди еще осень, а это значит, что конференционный сезон в самом разгаре! Вопреки всему, уже 11-14 ноября пройдет Mobius 2020 Moscow. И снова в онлайне!
После летней онлайн-конференции ребята получили много разнообразных отзывов, и теперь усиленно работают над опытом онлайн-спикеров, пытаясь обеспечить обратную связь с аудиторией, живое общение с экспертами в рамках выступления, и даже планируют сделать почти все доклады парными!
Программный комитет конференции постарается найти содокладчика или эксперта, который поддержит темп доклада и поможет вовлечь аудиторию в диалог, чтобы у вас не было впечатления «разговора с монитором».
Если вы еще думаете, стоит ли участвовать - вот вам знак 🙂 Переходите по ссылке, заполняйте форму подачи заявки на доклад и становитесь спикером Mobius 2020 Moscow. Стоит поспешить, приём заявок открыт до 31 августа!
По всем вопросам можно писать @OksanaMiroshnichenko
2020 год получился очень насыщенным на события. Но впереди еще осень, а это значит, что конференционный сезон в самом разгаре! Вопреки всему, уже 11-14 ноября пройдет Mobius 2020 Moscow. И снова в онлайне!
После летней онлайн-конференции ребята получили много разнообразных отзывов, и теперь усиленно работают над опытом онлайн-спикеров, пытаясь обеспечить обратную связь с аудиторией, живое общение с экспертами в рамках выступления, и даже планируют сделать почти все доклады парными!
Программный комитет конференции постарается найти содокладчика или эксперта, который поддержит темп доклада и поможет вовлечь аудиторию в диалог, чтобы у вас не было впечатления «разговора с монитором».
Если вы еще думаете, стоит ли участвовать - вот вам знак 🙂 Переходите по ссылке, заполняйте форму подачи заявки на доклад и становитесь спикером Mobius 2020 Moscow. Стоит поспешить, приём заявок открыт до 31 августа!
По всем вопросам можно писать @OksanaMiroshnichenko
#Fragment
Fragments: Rebuilding the Internals
В релизе Fragment 1.3.0-alpha08 произошел рефакторинг Fragment под капотом. Одна из новинок - FragmentStateManager, в который было выделено много логики из
FragmentStateManager отвечает за:
👉 Переход Fragment между методами его жизненного цикла
👉 Запуск анимаций
👉 Выполнение отложенных транзакций
Благодаря этому рефакторингу:
👉 было закрыто более 10 багов долгожителей в Fragment
👉 дало дорогу поддержки множеству back stack-ов в рамках одного FragmentManager
👉 Заложена основа для упрощения жизненного цикла Fragment
Fragments: Rebuilding the Internals
В релизе Fragment 1.3.0-alpha08 произошел рефакторинг Fragment под капотом. Одна из новинок - FragmentStateManager, в который было выделено много логики из
Fragment
.FragmentStateManager отвечает за:
👉 Переход Fragment между методами его жизненного цикла
👉 Запуск анимаций
👉 Выполнение отложенных транзакций
Благодаря этому рефакторингу:
👉 было закрыто более 10 багов долгожителей в Fragment
👉 дало дорогу поддержки множеству back stack-ов в рамках одного FragmentManager
👉 Заложена основа для упрощения жизненного цикла Fragment
Medium
Fragments: rebuilding the internals
Introducing: the new state manager
#Jetpack
Обновление Jetpack 19.08.2020
👉 Concurrent 1.1.0: поддержка ListenableFuture и Kotlin Coroutines
👉 Webkit 1.3.0: улучшения в работе с темной темой и возможность проверки работает ли WebView в отдельном процессе
👉 Fragment 1.3.0-alpha08: переписана работа с состоянием Fragment, что позволило закрыть множество старых багов
👉 AppCompat 1.3.0-alpha02: заменили растровую графику векторной, WindowInsetsCompat стало использовать Android 11 API
👉 Biometric 1.1.0-alpha02: портированы API из Android 11, исправление багов и утечек памяти
👉 Core 1.5.0-alpha02: новые API для
👉 Множество новых beta релизов
Обновление Jetpack 19.08.2020
👉 Concurrent 1.1.0: поддержка ListenableFuture и Kotlin Coroutines
👉 Webkit 1.3.0: улучшения в работе с темной темой и возможность проверки работает ли WebView в отдельном процессе
👉 Fragment 1.3.0-alpha08: переписана работа с состоянием Fragment, что позволило закрыть множество старых багов
👉 AppCompat 1.3.0-alpha02: заменили растровую графику векторной, WindowInsetsCompat стало использовать Android 11 API
👉 Biometric 1.1.0-alpha02: портированы API из Android 11, исправление багов и утечек памяти
👉 Core 1.5.0-alpha02: новые API для
NotificationCompat
и WindowInsetsCompat
👉 Множество новых beta релизов
#Jetpack #Security
Новая библиотека Security Identity Credential
Библиотека предоставляет бэкпорт нового API из Android 11 и использовать его, начиная с API 24 ( Android 7.0)
Новая библиотека Security Identity Credential
Библиотека предоставляет бэкпорт нового API из Android 11 и использовать его, начиная с API 24 ( Android 7.0)
#GooglePlay
Google Play In-App Review API: integration and experience
В последней версии библиотеки Google Play Core появилась возможность оставлять отзывы на приложения напрямую из приложения без необходимости открытия Google Play.
В статье рассматривается опыт интеграции этой возможности и тестирование этой возможности. Как результат рост количества отзывов в 5 раз!
Google Play In-App Review API: integration and experience
В последней версии библиотеки Google Play Core появилась возможность оставлять отзывы на приложения напрямую из приложения без необходимости открытия Google Play.
В статье рассматривается опыт интеграции этой возможности и тестирование этой возможности. Как результат рост количества отзывов в 5 раз!
Medium
Google Play In-App Review API: integration and experience
Google Play Core library version 1.8.0 brings a long-awaited feature: native in-app review dialog. I added it to the latest version of…
#Test
Автотесты на Android. Картина целиком
Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
Автотесты на Android. Картина целиком
Как выстроить автотесты в вашем проекте? Это тяжело? В команде Avokado так не считают и в статье отвечают на ряд вопросов:
👉 Зачем нужны автотесты?
👉 Процесс написания тестов
👉 Инструменты
👉 Где запускать тесты?
👉 Инфраструктура
Хабр
Автотесты на Android. Картина целиком
Всем привет! Автотесты под Android — это непросто. Чтобы выстроить процесс автотестирования, надо запланировать и решить множество задач. Но самая большая беда заключается в том, что нигде нет полного...
#Design #Material
Android Design System and Theming: Typography
Подробный разбор работы со шрифтами в Material Design на Android:
👉 Ресурсы шрифтов
👉 Стандартные стили
👉 Система шрифтов Material Design
👉 Темы и стили для текста в Android
Android Design System and Theming: Typography
Подробный разбор работы со шрифтами в Material Design на Android:
👉 Ресурсы шрифтов
👉 Стандартные стили
👉 Система шрифтов Material Design
👉 Темы и стили для текста в Android
Medium
Android Design System and Theming: Typography
Android Design System and Android Theming can help us to have a simple, powerful, and easy to maintain application theme.
#RecyclerView
RecyclerView.ItemDecoration: используем по максимуму
RecyclerView есть в любом нативном Android приложении. В статье делятся опытом применения
RecyclerView.ItemDecoration: используем по максимуму
RecyclerView есть в любом нативном Android приложении. В статье делятся опытом применения
ItemDecoration
. С помощью этого класса можно решить много задач интересным образом и более эффективно чем через ViewХабр
RecyclerView.ItemDecoration: используем по максимуму
Привет, дорогой читатель Хабра. Меня зовут Олег Жило, последние 4 года я Android-разработчик в Surf . За это время я поучаствовал в разного рода крутых проектах, но и с легаси-кодом поработать...
#RxJava
RxRelay – это магия? Subject vs RxRelay
Для всех кому нравится работать с Rxjava и приходится это делать (Coroutine победят!). Альтернатива Subject - RxRelay. В статье происходит разбор решения и их отличия
RxRelay – это магия? Subject vs RxRelay
Для всех кому нравится работать с Rxjava и приходится это делать (Coroutine победят!). Альтернатива Subject - RxRelay. В статье происходит разбор решения и их отличия
Хабр
RxRelay – это магия? Subject vs RxRelay
В Android-комьюнити я встречал три типа разработчиков, которые сталкивались с RxRelay: Те, кто не понимают зачем RxRelay используется в их проекте, зачем он...
#Performance
Assets or Resource Raw folder of Android?
В Android есть возможность 2 образами положить произвольные файлы - aasets и raw ресурсы. Что выбрать? Что быстрее? Что займёт меньше места в APK?
В статье найдёте сравнение
Assets or Resource Raw folder of Android?
В Android есть возможность 2 образами положить произвольные файлы - aasets и raw ресурсы. Что выбрать? Что быстрее? Что займёт меньше места в APK?
В статье найдёте сравнение
Medium
Assets or Resource Raw folder of Android?
Guide to put your raw asset in the right location
#Firebase #Analytics
New API for manually tracking screen views in Google Analytics
В Firebase Analytics появилась возможность вручную трекать показы экраны на Android и iOS. Событие
Когда это может пригодиться:
👉 Отправка события когда пользователь провел какое-то время на экране (не было случайного входа на экран)
👉 Экраны в вашем приложении, которые автоматическая статистика понять не могла, например дочерние View или Fragment
Старое API setCurrentScreen стало deprecated и надо с него уходить. В статье есть гайд как это сделать
New API for manually tracking screen views in Google Analytics
В Firebase Analytics появилась возможность вручную трекать показы экраны на Android и iOS. Событие
screen_view
теперь можно отправить самостоятельно и иметь больше контроля за нимКогда это может пригодиться:
👉 Отправка события когда пользователь провел какое-то время на экране (не было случайного входа на экран)
👉 Экраны в вашем приложении, которые автоматическая статистика понять не могла, например дочерние View или Fragment
Старое API setCurrentScreen стало deprecated и надо с него уходить. В статье есть гайд как это сделать
The Firebase Blog
New API for manually tracking screen views in Google Analytics
#ConstraintLayout #MotionLayout
Вышел ConstraintLayout 2.0
Наконец-то вышел стабильный релиз долгостроя AndroidX - ConstraintLayout 2.0
Что нового:
👉 Улучшенный Runtime
👉 Новый механизм Flow, нечто подобное Chain, позволяющее управлять позиционированием группой виджетов горизонтально или вертикально
👉 Новый helper Layer
👉 Простой способ строить анимации с помощью MotionLayout
👉 Обновленный Layout Editor в Android Studio 4.1 с поддержкой ConstraintLayout 2.0
👉 MotionEditor - визуальный редактор анимаций, доступный с Android Studio 4.0
Примеры использования можно найти здесь
Вышел ConstraintLayout 2.0
Наконец-то вышел стабильный релиз долгостроя AndroidX - ConstraintLayout 2.0
Что нового:
👉 Улучшенный Runtime
👉 Новый механизм Flow, нечто подобное Chain, позволяющее управлять позиционированием группой виджетов горизонтально или вертикально
👉 Новый helper Layer
👉 Простой способ строить анимации с помощью MotionLayout
👉 Обновленный Layout Editor в Android Studio 4.1 с поддержкой ConstraintLayout 2.0
👉 MotionEditor - визуальный редактор анимаций, доступный с Android Studio 4.0
Примеры использования можно найти здесь
#Kotlin #DSL #Lint
Kotlin DSL —defining mandatory parameters
Kotlin DSL - удобный способ заменить Builder и позволить описывать создание сложных объектов более явно, в особенности когда они имеют вложенности.
Проблема DSL что нельзя каким-то образом проверить, что разработчик использовал все необходимые поля. Такая проверка могла пройти в коде в рантайме или нужно было требовать заполнение во вне DSL.
В статье автор рассказывает о свое библиотеке DSLint, которая на основе Android Lint делает проверку того что все необходимые поля были заполнены.
Kotlin DSL —defining mandatory parameters
Kotlin DSL - удобный способ заменить Builder и позволить описывать создание сложных объектов более явно, в особенности когда они имеют вложенности.
Проблема DSL что нельзя каким-то образом проверить, что разработчик использовал все необходимые поля. Такая проверка могла пройти в коде в рантайме или нужно было требовать заполнение во вне DSL.
В статье автор рассказывает о свое библиотеке DSLint, которая на основе Android Lint делает проверку того что все необходимые поля были заполнены.
Medium
Kotlin DSL —defining mandatory parameters
Or, why I wrote another Android library
#MemoryLeak #ViewBinding
Avoiding memory leaks when using Data Binding and View Binding
При использовании View Binding легко попасть в ситуацию, когда у вас в Fragment начнет утекать память. Связано это с тем, что ViewBinding хранит ссылки на View, которые уничтожаются в
Самое интересное, что автор предложил решением мою библиотеку ViewBindingPropertyDelegate, которая изящно решает работу с ViewBinding и DataBinding.
Avoiding memory leaks when using Data Binding and View Binding
При использовании View Binding легко попасть в ситуацию, когда у вас в Fragment начнет утекать память. Связано это с тем, что ViewBinding хранит ссылки на View, которые уничтожаются в
onDestroyView()
и создаются в onCreateView()
.Самое интересное, что автор предложил решением мою библиотеку ViewBindingPropertyDelegate, которая изящно решает работу с ViewBinding и DataBinding.
Medium
Avoiding memory leaks when using Data Binding and View Binding
In our current project we are using a lot of Data Binding and recently we have started using View Binding as well.
#Coroutines #Testing #Flow
Turbine - маленькая библиотека для тестирования kotlinx.coroutines Flow
Автор - Jake Wharton
Библиотека позволяет проверить какие данные были проэмичены в Flow
Turbine - маленькая библиотека для тестирования kotlinx.coroutines Flow
Автор - Jake Wharton
Библиотека позволяет проверить какие данные были проэмичены в Flow
#Android11 #Animations
Animating your Keyboard (part 1)
В Android 11 появилась возможность создавать плавные анимации UI при открытии/закрытии системной клавиатуры, благодаря множествам улучшений в WindowInsets, которые также доступны в WindowInsetsCompat.
Чтобы поддержать новую возможность вам надо:
1️⃣ Добавить поддержку edge-to-edge в ваше приложение (отрисовка под системными панелями)
2️⃣ Добавить слушателя на изменение отступа при открытии/закрытии клавиатуры
3️⃣ Добавить реакцию на изменения
В первой части рассказывается про то как сделать приложение "edge-to-edge", новые API WindowInsets в Android 11 и рекомендации по использованию.
Помимо всего появилось новое API - WindowInsetsController, позволяющее показать/скрыть клавиатуру и много чего другого. Это API заменило собой работу с показом/скрытием системного UI и настройкой его отображения, например Immersive Mode. WindowInsetsController пока нет в AndroidX, но появится.
Animating your Keyboard (part 1)
В Android 11 появилась возможность создавать плавные анимации UI при открытии/закрытии системной клавиатуры, благодаря множествам улучшений в WindowInsets, которые также доступны в WindowInsetsCompat.
Чтобы поддержать новую возможность вам надо:
1️⃣ Добавить поддержку edge-to-edge в ваше приложение (отрисовка под системными панелями)
2️⃣ Добавить слушателя на изменение отступа при открытии/закрытии клавиатуры
3️⃣ Добавить реакцию на изменения
В первой части рассказывается про то как сделать приложение "edge-to-edge", новые API WindowInsets в Android 11 и рекомендации по использованию.
Помимо всего появилось новое API - WindowInsetsController, позволяющее показать/скрыть клавиатуру и много чего другого. Это API заменило собой работу с показом/скрытием системного UI и настройкой его отображения, например Immersive Mode. WindowInsetsController пока нет в AndroidX, но появится.
Medium
Animating your Keyboard
New WindowInsets APIs for checking the keyboard (IME) visibility and size
#Android11 #Animations
Animating your keyboard (part 2): Reacting to WindowInset animations
Во второй части рассказывается про интеграцию со слушателем
Animating your keyboard (part 2): Reacting to WindowInset animations
Во второй части рассказывается про интеграцию со слушателем
WindowInsets
в Android 11 на основе нового API WindowInsetsAnimationMedium
Animating your keyboard: Reacting to inset animations
#AndroidBroadcast #Kotlin #Multiplatform
Разбор Kotlin 1.4: быстрее и лучше (Livestream)
Обсуждаем новую версию Kotlin с Developer Advocate из JetBrains Светланой Исаковой и командой Android Dev Podcast! Разбираем всё: синтаксис языка, библиотеки KotlinX, улучшения в IDE и Multiplatform
Помимо прочего во время стрима будет проводиться розыгрыш ценных призов для настоящих Kotlin программистов!
Соведущие:
- Михаил Емельянов, Head of Android Dev в ЦФТ
- Вадим Котов, Android Developer в AdCombo
- Дмитрий Мовчан, Android Software Engineer в Revolut
Подписывайтесь на канал, чтобы не пропустить новые видео и поддержать автора
Разбор Kotlin 1.4: быстрее и лучше (Livestream)
Обсуждаем новую версию Kotlin с Developer Advocate из JetBrains Светланой Исаковой и командой Android Dev Podcast! Разбираем всё: синтаксис языка, библиотеки KotlinX, улучшения в IDE и Multiplatform
Помимо прочего во время стрима будет проводиться розыгрыш ценных призов для настоящих Kotlin программистов!
Соведущие:
- Михаил Емельянов, Head of Android Dev в ЦФТ
- Вадим Котов, Android Developer в AdCombo
- Дмитрий Мовчан, Android Software Engineer в Revolut
Подписывайтесь на канал, чтобы не пропустить новые видео и поддержать автора