#Activity
Deep Dive into Activity Results API — No More onActivityResult()
Новая версия библиотеки androidx.activity (1.2.0) принесет нам отключение onActivityResult() в пользу нового API Activity Results API. Причем уже до релиза стабильной версии документация уже переехала на новый способ.
В статье вы найдет подробный разбор с новым API:
👉 ActivityResultContract и как его использовать
👉 Встроенные ActivityResultContract: TakePicture, GetContent и др.
👉 Запрос системных permission: RequestPermission и RequestMultiplePermissions
Deep Dive into Activity Results API — No More onActivityResult()
Новая версия библиотеки androidx.activity (1.2.0) принесет нам отключение onActivityResult() в пользу нового API Activity Results API. Причем уже до релиза стабильной версии документация уже переехала на новый способ.
В статье вы найдет подробный разбор с новым API:
👉 ActivityResultContract и как его использовать
👉 Встроенные ActivityResultContract: TakePicture, GetContent и др.
👉 Запрос системных permission: RequestPermission и RequestMultiplePermissions
Medium
Deep Dive into Activity Results API — No More onActivityResult()
Learn New ActivityResultContracts by Examples
#Fragment
Android Fragments: Fragment Result
Помимо улучшений в работе с Activity.onActivityResult(), разработчики из Google также трудятся над улучшением коммуникацией между Fragment.
В библиотеке androidx.fragment версии 1.3.0 (находится в разработке) Fragment.setTargetFragment() теперь deprecated. На замену этому API пришел FragmentResultListener в FragmentManager
Android Fragments: Fragment Result
Помимо улучшений в работе с Activity.onActivityResult(), разработчики из Google также трудятся над улучшением коммуникацией между Fragment.
В библиотеке androidx.fragment версии 1.3.0 (находится в разработке) Fragment.setTargetFragment() теперь deprecated. На замену этому API пришел FragmentResultListener в FragmentManager
Medium
Android Fragments: Fragment Result
Passing data between Fragments with the Fragment result APIs
#Coroutines #Kotlin
Kotlin Coroutines - Use Cases on Android
Github репозиторий, в котором есть примеры использования Kotlin Coroutine в разных случаях:
👉 сетевые операции
👉 работа с БД (Room)
👉 отладка
👉 обработка исключений
👉 WorkManager + Coroutines
👉 анализ производительности
Каждый из рассмотренных примеров хорошо описан
Kotlin Coroutines - Use Cases on Android
Github репозиторий, в котором есть примеры использования Kotlin Coroutine в разных случаях:
👉 сетевые операции
👉 работа с БД (Room)
👉 отладка
👉 обработка исключений
👉 WorkManager + Coroutines
👉 анализ производительности
Каждый из рассмотренных примеров хорошо описан
#Conference #Online
TechLead Conf 2020 Online (8-9 июня)
Программа TechLead Conf 2020 Online охватывает прикладные и концептуальные аспекты инженерных практик. Прикладные — кейсы внедрения и использования конкретных решений «в бою». Концептуальные — кто такой техлид, как им стать, куда развиваться.
На конференции будут обсуждать все этапы жизненного цикла инженерных практик — от появления идеи внедрения до измерения результатов после успешного запуска. Устроят открытый обмен решениями типичных задач: работа с legacy, изменение архитектуры, вмешательство в процесс разработки.
Стоимость билета на время карантина снижена в 4 раза (4900 ₽ или 66$)! Купить билет здесь
TechLead Conf 2020 Online (8-9 июня)
Онлайн-конференция, полностью посвященная инженерным процессам и практикам
Программа TechLead Conf 2020 Online охватывает прикладные и концептуальные аспекты инженерных практик. Прикладные — кейсы внедрения и использования конкретных решений «в бою». Концептуальные — кто такой техлид, как им стать, куда развиваться.
На конференции будут обсуждать все этапы жизненного цикла инженерных практик — от появления идеи внедрения до измерения результатов после успешного запуска. Устроят открытый обмен решениями типичных задач: работа с legacy, изменение архитектуры, вмешательство в процесс разработки.
Стоимость билета на время карантина снижена в 4 раза (4900 ₽ или 66$)! Купить билет здесь
#RecyclerView
Restore RecyclerView scroll position
В следующей версии android.recyclerview 1.2.0 (пока в разработке) будет улучшено восстановление позиции скролла для случая, когда данные для адаптера загружаются асинхронно, до того как происходит восстановление состояние RecyclerView.
Новая возможность - это метод Adapter.setStateRestorationPolicy(), который позволяет установить одно из 3 значений для восстановления позиции:
👉 ALLOW - восстановление сразу же (режим по умолчанию)
👉 PREVENT - ожидает когда вы зададите другой режим восстановления
👉 PREVENT_WHEN_EMPTY - только когда адаптер не пустой
Restore RecyclerView scroll position
В следующей версии android.recyclerview 1.2.0 (пока в разработке) будет улучшено восстановление позиции скролла для случая, когда данные для адаптера загружаются асинхронно, до того как происходит восстановление состояние RecyclerView.
Новая возможность - это метод Adapter.setStateRestorationPolicy(), который позволяет установить одно из 3 значений для восстановления позиции:
👉 ALLOW - восстановление сразу же (режим по умолчанию)
👉 PREVENT - ожидает когда вы зададите другой режим восстановления
👉 PREVENT_WHEN_EMPTY - только когда адаптер не пустой
Medium
Restore RecyclerView scroll position
You might have had the problem where a RecyclerView loses the scroll position when your Activity/Fragment is re-created. This usually…
Каким образом вы распространяете приложение через Google Play ?
Final Results
31%
Unversal APK
34%
App Bundle без Dynamic Feature
5%
App Bundle c Dynamic Feature
9%
Не публикуюсь в Google Play
6%
Multiple APK
16%
Не участвую в опросе
#Navigation #AppBundle #DynamicDelivery
Navigating your way around customizable delivery
Android App Bundle - это формат, который упростил распространение приложений под Android и сделал размер их для пользователей меньше. Помимо всего с помощью него вы можете воспользоваться такой возможностью как Dynamic Delivery
В статье рассказывается о:
👉 Возможности App Bundle
👉 Dynamic Delivery
👉 Текущие возможности этих фичей
👉 Будущие возможности
👉 Поддержка Dynamic Feature в AndroidX Navigation
👉 Библиотека Play Core Ktx
Navigating your way around customizable delivery
Android App Bundle - это формат, который упростил распространение приложений под Android и сделал размер их для пользователей меньше. Помимо всего с помощью него вы можете воспользоваться такой возможностью как Dynamic Delivery
В статье рассказывается о:
👉 Возможности App Bundle
👉 Dynamic Delivery
👉 Текущие возможности этих фичей
👉 Будущие возможности
👉 Поддержка Dynamic Feature в AndroidX Navigation
👉 Библиотека Play Core Ktx
Medium
Navigating your way around customizable delivery
How to modularize your app and take advantage of Android App Bundles conditional delivery features.
#Podcast
Android Broadcast Podcast - Huawei Mobile Services
Не Google Play Services единым! Huawei разрабатывает свои собственные сервисы Huawei Mobile Services и свой магазин приложений App Gallery. Поговорили с представителем компании о доступных сервисах, что есть в магазине, как выйти на китайский рынок и насколько все там хорошо
Гость - Жигарьков Иван, Developer Advocate в Huawei Cloud Russia
Android Broadcast Podcast - Huawei Mobile Services
Не Google Play Services единым! Huawei разрабатывает свои собственные сервисы Huawei Mobile Services и свой магазин приложений App Gallery. Поговорили с представителем компании о доступных сервисах, что есть в магазине, как выйти на китайский рынок и насколько все там хорошо
Гость - Жигарьков Иван, Developer Advocate в Huawei Cloud Russia
#Gradle
Вышел Gradle 6.4
👉 Поддержка Java Module System aka Project Jigsaw
👉 Precompiled Groovy DSL script plugins. Фича перекочевали из Gradle Kotlin DSL
👉 Single dependency lock file per project
👉 Мелкие улучшения и фикс багов
Для Android разработчиков не так много чего интересного ☹️
Вышел Gradle 6.4
👉 Поддержка Java Module System aka Project Jigsaw
👉 Precompiled Groovy DSL script plugins. Фича перекочевали из Gradle Kotlin DSL
👉 Single dependency lock file per project
👉 Мелкие улучшения и фикс багов
Для Android разработчиков не так много чего интересного ☹️
#Poзыгрыш
Розыгрыш курса "DevJobAccelerator"
Результаты розыгрыша из стрима "Опыт проведения Android собеседований: как вести и какие требования
Победитель - Дмитрий Мовчан (определялся случайным образом)
Также вы можете воспользоваться промокодом Broadcast и получить скидку на курс
Розыгрыш курса "DevJobAccelerator"
Результаты розыгрыша из стрима "Опыт проведения Android собеседований: как вести и какие требования
Победитель - Дмитрий Мовчан (определялся случайным образом)
Также вы можете воспользоваться промокодом Broadcast и получить скидку на курс
YouTube
Розыгрыш курса "DevJobAccelerator"
Результаты розыгрыша из стрима "Опыт проведения Android собеседований: как вести и какие требования"
Розыгрыш проводился из всех кто оставил комментарий со своей историей о интервью. С помощью генератора случайных чисел выбиралось 3 победителя, приз которым…
Розыгрыш проводился из всех кто оставил комментарий со своей историей о интервью. С помощью генератора случайных чисел выбиралось 3 победителя, приз которым…
#Android11
Join us for #Android11: The Beta Launch Show!
Запуск публичной beta версии Android 11 (сейчас выпускаются версии для разработчиков) будет отмечен целым шоу. Раньше оно проходило в рамках Google I/O, в этом году смотрим онлайн
Когда: 3 июня, среда, 18:00 (время московское)
Где: YouTube канал Android Developers
Join us for #Android11: The Beta Launch Show!
Запуск публичной beta версии Android 11 (сейчас выпускаются версии для разработчиков) будет отмечен целым шоу. Раньше оно проходило в рамках Google I/O, в этом году смотрим онлайн
Когда: 3 июня, среда, 18:00 (время московское)
Где: YouTube канал Android Developers
#Android11
Android 11: Beta Plans
Карантин внес коррективы в график выход сборок Android 11 - все двигается на месяц вперед. Также стала доступна Developer Preview 4 в которой нет серьезных изменений
Android 11: Beta Plans
Карантин внес коррективы в график выход сборок Android 11 - все двигается на месяц вперед. Также стала доступна Developer Preview 4 в которой нет серьезных изменений
#UI
Refactoring Android Themes with Style
Рекомендации по работе по структуризации тем и стилей в Android на основе доклада “Developing Themes with Style” от Nick Butcher и Chris Banes. Также в статье разбирается рефакторинг нескольких тем на одну.
Подход очень интересный и я возьму его себе на заметку, так как раньше делал по другому
Refactoring Android Themes with Style
Рекомендации по работе по структуризации тем и стилей в Android на основе доклада “Developing Themes with Style” от Nick Butcher и Chris Banes. Также в статье разбирается рефакторинг нескольких тем на одну.
Подход очень интересный и я возьму его себе на заметку, так как раньше делал по другому
Medium
Refactoring Android Themes with Style: Restructuring Themes
Making changes to themes and styles safely
How to list Third-Party Dependencies Licenses in your Android app
Разбор как настроить OSS Licenses Gradle плагина, который позволяет вам добавить в приложение Activity, которая выведет всех библиотек, подключенных в ваше приложение, и их лицензии
Разбор как настроить OSS Licenses Gradle плагина, который позволяет вам добавить в приложение Activity, которая выведет всех библиотек, подключенных в ваше приложение, и их лицензии
John Codeos
How to list Third-Party Dependencies Licenses in your Android app - John Codeos
%
#GooglePlay #AppSigning
Answers to common questions about App Signing by Google Play
Google Play App Signing - это система безопасного хранения ключей подписи вашего приложения. Если вы используете App Bundle для загрузки ваших сообщений в Google Play, то вы точно знакомы с этой системой.
В статье раскрываются ответы на вопросы:
👉 Что делать в случае потери ключа?
👉 Почему разработчикам стоит переключиться н на использование App Signing?
👉 У меня очень старый ключ, который не отвечает современным требования криптографической безопасности. Что делать?
👉 Upload Key был украден. Что делать?
👉 Как скачать ключ, который используется для подписи конечно приложения? (Ответ: никак)
👉 Как убедиться что приватный ключ не перехвачен при загрузке его в Google Play?
👉 Как защищен ключ в инфраструктуре Google?
👉 Как получить доступ к публичному сертификату, для использования на сторонних сервисах (напр. Facebook SDK, Firebase)?
👉 Чем отличаются артефакты, отправляемые пользователям, от тех что вы собираете локально?
👉 Как получить доступ к артефактам, отправляемые пользователям?
👉 Как распространять приложение в других магазинах?
👉 Нужно ли переключаться на Android App Bundle и использовать Dynamic Delivery ?
Answers to common questions about App Signing by Google Play
Google Play App Signing - это система безопасного хранения ключей подписи вашего приложения. Если вы используете App Bundle для загрузки ваших сообщений в Google Play, то вы точно знакомы с этой системой.
В статье раскрываются ответы на вопросы:
👉 Что делать в случае потери ключа?
👉 Почему разработчикам стоит переключиться н на использование App Signing?
👉 У меня очень старый ключ, который не отвечает современным требования криптографической безопасности. Что делать?
👉 Upload Key был украден. Что делать?
👉 Как скачать ключ, который используется для подписи конечно приложения? (Ответ: никак)
👉 Как убедиться что приватный ключ не перехвачен при загрузке его в Google Play?
👉 Как защищен ключ в инфраструктуре Google?
👉 Как получить доступ к публичному сертификату, для использования на сторонних сервисах (напр. Facebook SDK, Firebase)?
👉 Чем отличаются артефакты, отправляемые пользователям, от тех что вы собираете локально?
👉 Как получить доступ к артефактам, отправляемые пользователям?
👉 Как распространять приложение в других магазинах?
👉 Нужно ли переключаться на Android App Bundle и использовать Dynamic Delivery ?
Medium
Answers to common questions about Play App Signing
Here is some advice on enabling app signing by Google Play, based on questions our Developer Relations team has heard from developers.
#R8 #JakeWharton
R8 Optimization: Lambda Groups
Разбор как оптимизируются лямбда выражения в Java и Kotlin с помощью R8
R8 Optimization: Lambda Groups
Разбор как оптимизируются лямбда выражения в Java и Kotlin с помощью R8
#LiveData #Coroutines #ArchitectureComponents
No more LiveData in Your Repository: There are better options
Google предложила в своей стандартной архитектуре использовать LiveData для получения данных из Repository. Это позволяет получать последние обновления.
Но так ли LiveData подходит для выполнения этой задачи? Либо лучше взять Coroutine Flow или Rx Observable для этого? Мой совет: "Да"! - LiveData больше про UI.
No more LiveData in Your Repository: There are better options
Google предложила в своей стандартной архитектуре использовать LiveData для получения данных из Repository. Это позволяет получать последние обновления.
Но так ли LiveData подходит для выполнения этой задачи? Либо лучше взять Coroutine Flow или Rx Observable для этого? Мой совет: "Да"! - LiveData больше про UI.
Medium
No more LiveData in Your Repository: There are better options.
Three years ago at a Google I/O that every Android developer remembers, Google announced Android Architecture Components and we were all…
#Kotlin #Coroutines
Вышла kotlinx.coroutines 1.3.6
В новой версии произошли горячие изменения:
👉 Представлен StateFlow. LiveData может умереть 😈
👉 Множество операторов Flow перешли в stable из experimental статуса
👉 Добавлена поддержка RxJava3
👉 Улучшение дебага
👉 Исправление багов
Пошел разбираться в StateFlow 😁
Вышла kotlinx.coroutines 1.3.6
В новой версии произошли горячие изменения:
👉 Представлен StateFlow. LiveData может умереть 😈
👉 Множество операторов Flow перешли в stable из experimental статуса
👉 Добавлена поддержка RxJava3
👉 Улучшение дебага
👉 Исправление багов
Пошел разбираться в StateFlow 😁
GitHub
kotlinx.coroutines/CHANGES.md at master · Kotlin/kotlinx.coroutines
Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub.
#Jetpack #Foldable
Support New Form Factors with the new Jetpack WindowManager Library
Рассказ о библиотеке WindowManager из Android Jetpack, которая отвечает за поддержку работы с новыми различными форматами устройств (по большей части складные) для старых и новых версий Android.
Библиотека все еще находится в alpha-01, причем статус этот стоит у нее аж с 27 февраля. Библиотека оказалась ненужна. Видно авторы переоценили популярность такого рода устройств и желание разработчиков адаптировать под них приложения.
Support New Form Factors with the new Jetpack WindowManager Library
Рассказ о библиотеке WindowManager из Android Jetpack, которая отвечает за поддержку работы с новыми различными форматами устройств (по большей части складные) для старых и новых версий Android.
Библиотека все еще находится в alpha-01, причем статус этот стоит у нее аж с 27 февраля. Библиотека оказалась ненужна. Видно авторы переоценили популярность такого рода устройств и желание разработчиков адаптировать под них приложения.
Medium
Support new form factors with the new Jetpack WindowManager library
WindowManager is a recent addition to Android Jetpack that aims to help application developers support new device form factors and provide…