#Activity
Improving inter-activity communication with Jetpack ActivityResult
В ближайшем релизе
Самое важное еще - все гайды с получением результата уже переписаны на новое API, а
Improving inter-activity communication with Jetpack ActivityResult
В ближайшем релизе
androidx.activity
нас ждёт замена onActivityResult() на новое API - Activity Result API. Вместо хранения requestCode
, понимание правильно resultCode
вы теперь просто делаете запрос и получаете результата.Самое важное еще - все гайды с получением результата уже переписаны на новое API, а
onActivityResult()
будет deprecatedAndroid Developers Blog
Improving inter-activity communication with Jetpack ActivityResult
Posted by Yacine Rezgui , Developer Advocate Whether you're requesting a permission, selecting a file from the system file manager, or...
#BestPractices
40 советов, которые навсегда изменят ваше программирование
Статья, которая содержит 40 достаточно полезных рекомендаций для разработчика, будет полезна как новичкам, так и опытным программистам. Заголовок немного кликбейтный, потому что каждому разработчику присущ свой стиль написания кода, но советы действительно помогут пересмотреть свои взгляды на определённые вещи в разработке.
40 советов, которые навсегда изменят ваше программирование
Статья, которая содержит 40 достаточно полезных рекомендаций для разработчика, будет полезна как новичкам, так и опытным программистам. Заголовок немного кликбейтный, потому что каждому разработчику присущ свой стиль написания кода, но советы действительно помогут пересмотреть свои взгляды на определённые вещи в разработке.
AppTractor
40 советов, которые навсегда изменят ваше программирование
В этой статье я даю некоторые советы, которые помогли мне в моей карьере. Прочитать это все можно быстро, но их внедрение и использование может занять всю жизнь.
#ArchitectureComponents #Navigation
What’s New in Navigation 2020
Navigation Arch Component в первой своей версии много чего не умел, чего не хватало разработчикам. За последнее время все это наверстали:
👉 Доступ к NavBackStackEntry: расширение навигации за рамки NavDestination
👉 Шаринг данных между элементами NavGraph с помощью NavBackStackEntry, которая является ViewModelProvider
👉 Поддержка Activity Result
👉 Поддержка Dynamic Features
👉 Тестирование навигации
👉 Получение параметров из Deep Link
👉 Kotlin DSL для описания графа
👉 Улучшения API
В статье найдете более подробный обзор этих возможностей
What’s New in Navigation 2020
Navigation Arch Component в первой своей версии много чего не умел, чего не хватало разработчикам. За последнее время все это наверстали:
👉 Доступ к NavBackStackEntry: расширение навигации за рамки NavDestination
👉 Шаринг данных между элементами NavGraph с помощью NavBackStackEntry, которая является ViewModelProvider
👉 Поддержка Activity Result
👉 Поддержка Dynamic Features
👉 Тестирование навигации
👉 Получение параметров из Deep Link
👉 Kotlin DSL для описания графа
👉 Улучшения API
В статье найдете более подробный обзор этих возможностей
Android Developers Blog
What’s New in Navigation 2020
News and insights on the Android platform, developer tools, and events.
#Jetpack #GItHub
Jetpack вернулся на GitHub!
Легендарное возвращение Jetpack на GitHub и возможность контрибьютить туда. Сейчас принимаются pull request-ы в Room и WorkManager
Jetpack вернулся на GitHub!
Легендарное возвращение Jetpack на GitHub и возможность контрибьютить туда. Сейчас принимаются pull request-ы в Room и WorkManager
Medium
Introducing Jetpack on GitHub
Interested in looking at the source code for or contributing to Jetpack libraries, and you like Github? We have something for you.
#WorkManager
Use WorkManager for immediate background execution
В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.
В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
Use WorkManager for immediate background execution
В WorkManage 2.3.0 появилась возможность выполнения задач в Foreground Service. Это хорошо подходит для выполнения долгих задач прямо в текущий момент.
В статье разбирается больше подробностей о том как выполнять WorkRequest в Foreground Service
Medium
Use WorkManager for immediate background execution
Some tasks just shouldn’t be deferred
Вы уже пробовали библиотеку CameraX ?
Final Results
20%
Да
63%
Нет
10%
Что это?
7%
Не участвую в опросе
#Jetpack #CameraX
CameraX: a glimpse into the past, present, and future
CameraX все еще пока находится в Beta, но уже множество разработчиков высказываются о позитивных моментах ее использования: уменьшение размера кодовой базы, связанной с камерой, и что теперь не надо отлаживать камеру на устройствах от различных производителей.
Чтобы все это еще работало точно и без проблем в Google создали специальную тестовую лабораторию с более чем 90 устройствами (полный список здесь) для проверки работы CameraX.
Возможности использования ночного режима, HDR и др функций, которые раньше были только доступны в стоковой камеры теперь доступны всем через CameraX.
CameraX: a glimpse into the past, present, and future
CameraX все еще пока находится в Beta, но уже множество разработчиков высказываются о позитивных моментах ее использования: уменьшение размера кодовой базы, связанной с камерой, и что теперь не надо отлаживать камеру на устройствах от различных производителей.
Чтобы все это еще работало точно и без проблем в Google создали специальную тестовую лабораторию с более чем 90 устройствами (полный список здесь) для проверки работы CameraX.
Возможности использования ночного режима, HDR и др функций, которые раньше были только доступны в стоковой камеры теперь доступны всем через CameraX.
Medium
CameraX: a glimpse into the past, present, and future
CameraX is an unbundled Android Jetpack library that helps you easily add camera capabilities within your Android apps. Traditionally…
#Arhitecture #LIveData
Don’t use LiveData in Repositories
Появление Arch Component показало и видение архитектуры от Google на основе этих компонентов (схема тут). Видение это подразумевало, что начиная от источников данных в Storage и Repostiory у вас возвращаются LiveData, для обеспечения реактивного получения обновления данных.
Вы задумывались о том, почему компонент
Также
Хорошей заменой для этого будет использование LiveData только для коммуникации между ViewModel и UI, а на всех остальных слоях другие реактивные подходы:
👉 Coroutines Flow
👉 Reaktive
👉 RxJava
Don’t use LiveData in Repositories
Появление Arch Component показало и видение архитектуры от Google на основе этих компонентов (схема тут). Видение это подразумевало, что начиная от источников данных в Storage и Repostiory у вас возвращаются LiveData, для обеспечения реактивного получения обновления данных.
Вы задумывались о том, почему компонент
LiveData
, который имеет связь с жизненным циклом (ЖЦ), используется в слое с данными. Данные должны быть абстрагированы от особенностей платформы, в особенности таких как ЖЦ. Также
LiveData
имеет особенности по работе, например обновление данных происходит через главный поток, для обеспечения синхронизации обновленийХорошей заменой для этого будет использование LiveData только для коммуникации между ViewModel и UI, а на всех остальных слоях другие реактивные подходы:
👉 Coroutines Flow
👉 Reaktive
👉 RxJava
Medium
Don’t use LiveData in Repositories
We recently joined a new project with heavy LiveData usage, everywhere. Here’s what we learned about LiveData, Threading and Repositories.
#AndroidBroadcast #Security
Безопасность мобильных приложений (Livestream)
Когда: Вторник, 28 июля, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Какие дыры есть в Android? Как ими могут воспользоваться злоумышленники? Куда развивается Android ОС в рамках безопасности? Как обеспечить защиту пользователя и сервиса от злоумышленников? На все эти вопросы будем искать ответы вместе в ходе выпуска.
Гость выпуска - Ольга Шкряба, Senior Mobile Security Engineer. Занимается исследованием и разработкой решений в сфере безопасности, а также поиском уязвимостей. Автор Telegram канала о безопасности мобильных приложений paradiSEcurity
Безопасность мобильных приложений (Livestream)
Когда: Вторник, 28 июля, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast
Какие дыры есть в Android? Как ими могут воспользоваться злоумышленники? Куда развивается Android ОС в рамках безопасности? Как обеспечить защиту пользователя и сервиса от злоумышленников? На все эти вопросы будем искать ответы вместе в ходе выпуска.
Гость выпуска - Ольга Шкряба, Senior Mobile Security Engineer. Занимается исследованием и разработкой решений в сфере безопасности, а также поиском уязвимостей. Автор Telegram канала о безопасности мобильных приложений paradiSEcurity
#UnderTheHood
Android Vitals - Diving into cold start waters
В статье разбирается как происходит холодный (когда процесса приложения не существует) запуск приложения Android. Хардкорненько и на любителя. Ставьте свои лайки и дизлайки чтобы понять интересно вам или нет
Android Vitals - Diving into cold start waters
В статье разбирается как происходит холодный (когда процесса приложения не существует) запуск приложения Android. Хардкорненько и на любителя. Ставьте свои лайки и дизлайки чтобы понять интересно вам или нет
DEV Community
Android Vitals - Diving into cold start waters 🥶
Header image: A Song of Ice and Fire by Romain Guy. This blog series is focused on stability and p...
#Kotlin
Kotlin 1.4.0-RC Released
Kotlin 1.4 уже совсем близко. В RC версии добавились следующие улучшения:
👉 Улучшена поддержка Gradle Kotlin Script
👉 Больше не нужно явно добавлять зависимость на stdlib, она будет подключаться вместе с плагином kotlin
👉 Управление CocoaPods зависимостями стало проще
👉 Различные улучшения в Koitlin/JS
👉 Часть API в stdlib перешло из состояния experimental в stable.
Kotlin 1.4.0-RC Released
Kotlin 1.4 уже совсем близко. В RC версии добавились следующие улучшения:
👉 Улучшена поддержка Gradle Kotlin Script
👉 Больше не нужно явно добавлять зависимость на stdlib, она будет подключаться вместе с плагином kotlin
👉 Управление CocoaPods зависимостями стало проще
👉 Различные улучшения в Koitlin/JS
👉 Часть API в stdlib перешло из состояния experimental в stable.
The JetBrains Blog
Kotlin 1.4.0-RC Released | The Kotlin Blog
We’re almost there! We're happy to unveil Kotlin 1.4.0-RC – the release candidate for the next major version of our programming language. Read on to learn about what has changed in Kotlin 1.4.0-RC, an
#Battery
Энергопотребление Android-приложений
Статья с обзором различных оптимизаций, которые ОС Android использует для ограничения работы приложений, направленных на продление работы устройства.
Мы как разработчики должны знать какие они есть, как с ними работать, а главное как протестировать их эффект на приложение.
Энергопотребление Android-приложений
Статья с обзором различных оптимизаций, которые ОС Android использует для ограничения работы приложений, направленных на продление работы устройства.
Мы как разработчики должны знать какие они есть, как с ними работать, а главное как протестировать их эффект на приложение.
Хабр
Энергопотребление Android-приложений
Ваши пользователи жалуются на то, что приложение очень быстро сажает заряд телефона? Запущенный фоновый сервис внезапно останавливается? Сообщения от FCM не дохо...
#R8 #Security
Shrinking Your App with R8
Буквально вчера мы поговорили про безопасность на стриме, и в дополнение рекомендую ознакомиться с альтернативой ProGuard от Google - R8.
В статье рассматривается:
👉 возможности R8
👉 зачем использовать code shrinking
👉 каких результатов позволяет достичь использование R8 для уменьшения размера приложений
👉 Как настроить R8 в приложении
Shrinking Your App with R8
Буквально вчера мы поговорили про безопасность на стриме, и в дополнение рекомендую ознакомиться с альтернативой ProGuard от Google - R8.
В статье рассматривается:
👉 возможности R8
👉 зачем использовать code shrinking
👉 каких результатов позволяет достичь использование R8 для уменьшения размера приложений
👉 Как настроить R8 в приложении
Medium
Shrinking Your App with R8
Posted by Søren Gjesse, Software Engineer
#ViewPager
ViewPager2 — digging the internal API to make it work with DiffUtil
Google больше не поддерживает ViewPager первой версии и рекомендует переходить на ViewPager 2.0, реализованный на основе RecyclerView, что позволяет использовать все его возможности.
Статья концентрируется на том как правильно настроить DiffUtil с ViewPager 2.0
ViewPager2 — digging the internal API to make it work with DiffUtil
Google больше не поддерживает ViewPager первой версии и рекомендует переходить на ViewPager 2.0, реализованный на основе RecyclerView, что позволяет использовать все его возможности.
Статья концентрируется на том как правильно настроить DiffUtil с ViewPager 2.0
Medium
ViewPager2 — digging the internal API to make it work with DiffUtil
Here I will show an example of using ViewPager2 with mutable fragments collection with DiffUtil and what problems are hidden there
#AndroidBroadcast
Просто интервью с Артемом Зиннатуллиным@Lyft
Когда: Пятница, 31 июля, 10:00 (GMT+3)
Просто интервью обо всем: работе, переезде, работе менеджером и куда идти после IT
Гость выпуска - Артем Зиннатуллин, Staff Software Engineer в Lyft. Работает над билд системами, дев тулингом, CI, библиотеками, инфраструктурой. До этого занимался мобильной разработкой, делал RxJava, Spek и другие. Ищет выход из IT
Просто интервью с Артемом Зиннатуллиным@Lyft
Когда: Пятница, 31 июля, 10:00 (GMT+3)
Просто интервью обо всем: работе, переезде, работе менеджером и куда идти после IT
Гость выпуска - Артем Зиннатуллин, Staff Software Engineer в Lyft. Работает над билд системами, дев тулингом, CI, библиотеками, инфраструктурой. До этого занимался мобильной разработкой, делал RxJava, Spek и другие. Ищет выход из IT
YouTube
Ламповые посиделки. Артем Зиннатуллин@Lyft
#AndroidBroadcast #ArtemZinnatullin #Lyft
Просто интервью обо всем: работе, переезде и куда идти после IT
Гость выпуска - Артем Зиннатуллин, Staff Software Engineer в Lyft. Работает над билд системами, дев тулингом, CI, библиотеками, инфраструктурой. До…
Просто интервью обо всем: работе, переезде и куда идти после IT
Гость выпуска - Артем Зиннатуллин, Staff Software Engineer в Lyft. Работает над билд системами, дев тулингом, CI, библиотеками, инфраструктурой. До…
#Coroutines #Kotlin14
Kotlin 1.4.0-RC: Debugging coroutines
Большое улучшение дебагера для Coroutine уже здесь и для этого вам нужен Kotlin 1.4. Новинки:
👉 Новый отдельный таб в дебаггере Idea "coroutines"
👉 Возможность просматривать все Coroutine которые выполняются и приостановлены
👉 Возможность проверить состояние любой coroutine и значения локальных и captured переменных
👉 Полный stacktrace создания coroutine
👉 Возможность получения отчета о состоянии каждой coroutine и ее стека
Пока все это работает только на Kotlin/JVM
Kotlin 1.4.0-RC: Debugging coroutines
Большое улучшение дебагера для Coroutine уже здесь и для этого вам нужен Kotlin 1.4. Новинки:
👉 Новый отдельный таб в дебаггере Idea "coroutines"
👉 Возможность просматривать все Coroutine которые выполняются и приостановлены
👉 Возможность проверить состояние любой coroutine и значения локальных и captured переменных
👉 Полный stacktrace создания coroutine
👉 Возможность получения отчета о состоянии каждой coroutine и ее стека
Пока все это работает только на Kotlin/JVM
The JetBrains Blog
Kotlin 1.4.0-RC: Debugging coroutines | The Kotlin Blog
We continue to highlight the upcoming changes in 1.4 release. In this blogpost, we want to describe a couple of important features related to coroutines:
New functionality to conveniently debug corou
New functionality to conveniently debug corou
#AndroidStudio #Gradle #Performance
Understanding your build with the Build Analyzer
В Android Studio (AS) 4.0 появилась возможность проанализировать скорость сборки вашего и увидеть визуализацию этого.
Рекомендую всем после установки AS 4.0 и выше сделать Clean Build и посмотреть есть ли у вас проблемные места в сборке и где они
Understanding your build with the Build Analyzer
В Android Studio (AS) 4.0 появилась возможность проанализировать скорость сборки вашего и увидеть визуализацию этого.
Рекомендую всем после установки AS 4.0 и выше сделать Clean Build и посмотреть есть ли у вас проблемные места в сборке и где они
Medium
Understanding your build with the Build Analyzer
As members of the Android Developer Tools team, my teammates and I come to work each day to build tools intended to make Android the best…
#AndroidGradlePlugin #Gradle #KotlinDSL
New APIs in the Android Gradle Plugin
Статья с обзором изменений в Android Gradle Plugin (AGP) 4.1. Нас ждет:
👉 Полная поддержка Gradle Kotlin DSL. Добились этого за счет выделения интерфейсов API и они написаны на Kotlin
👉 Опубликована новая документация по API AGP
👉 Новое Variant API (пример использования здесь), упрощающее работы с Tasks AGP и зависимостями на них
👉 Новое Artifcat API (пример использования здесь), которое позволяет эффективно управлять артефактами сборки Android проектов
Старое API останется работать и пока не будет удалено, но разработчиком Gradle плагинов стоит обратить внимание на изменения
New APIs in the Android Gradle Plugin
Статья с обзором изменений в Android Gradle Plugin (AGP) 4.1. Нас ждет:
👉 Полная поддержка Gradle Kotlin DSL. Добились этого за счет выделения интерфейсов API и они написаны на Kotlin
👉 Опубликована новая документация по API AGP
👉 Новое Variant API (пример использования здесь), упрощающее работы с Tasks AGP и зависимостями на них
👉 Новое Artifcat API (пример использования здесь), которое позволяет эффективно управлять артефактами сборки Android проектов
Старое API останется работать и пока не будет удалено, но разработчиком Gradle плагинов стоит обратить внимание на изменения
Medium
New APIs in the Android Gradle Plugin
Co-authored with Jerome Dochez
#Gradle #Cache
Configuration Caching deep dive
Одним из узких мест Gradle сборки является фаза конфигурации. Сейчас она происходит всегда при запуске любого таска, даже если ваш проект не поменялся.
В Gradle 6.6 появилась экспериментальная возможность, которая позволяет кэшировать информацию о графе task-ов. Команда Android Gradle Plugin (AGP) сразу же взяли ее на исследование для применения в AGP
В статье разбирается принципы работы этой фичи и как ее адаптировать
Поддержка этой возможности будет в Kotlin 1.4. Больше подробностей о поддержке в других Gradle плагинах можно найти здесь.
Configuration Caching deep dive
Одним из узких мест Gradle сборки является фаза конфигурации. Сейчас она происходит всегда при запуске любого таска, даже если ваш проект не поменялся.
В Gradle 6.6 появилась экспериментальная возможность, которая позволяет кэшировать информацию о графе task-ов. Команда Android Gradle Plugin (AGP) сразу же взяли ее на исследование для применения в AGP
В статье разбирается принципы работы этой фичи и как ее адаптировать
Поддержка этой возможности будет в Kotlin 1.4. Больше подробностей о поддержке в других Gradle плагинах можно найти здесь.
Medium
Configuration caching deep dive
What is configuration caching?
#Firebase
Product news and other highlights from Firebase Live
Команда Firebase представила новинки:
👉 Новый UI эмулятора для локальной разработки (видео)
👉 Упрощение процесса написания и тестирования правил безопасности (видео)
👉 Поддержка "Sign in with Apple" (видео)
👉 Поддержка платежей с помощью Stripe
👉 Улучшение деплоя моделей TensorFlow Lite. ML Model Managment API для управления моделями через CLI
👉 Crashlytics BigQuery streaming - возможость в реальном времени получать креши
Product news and other highlights from Firebase Live
Команда Firebase представила новинки:
👉 Новый UI эмулятора для локальной разработки (видео)
👉 Упрощение процесса написания и тестирования правил безопасности (видео)
👉 Поддержка "Sign in with Apple" (видео)
👉 Поддержка платежей с помощью Stripe
👉 Улучшение деплоя моделей TensorFlow Lite. ML Model Managment API для управления моделями через CLI
👉 Crashlytics BigQuery streaming - возможость в реальном времени получать креши
The Firebase Blog
Product news and other highlights from Firebase Live
Our team is driven by the belief that apps have drastically improved the way we live, work, learn, and socialize, keeping us connected to each other and plugged into the information we need. Now more than ever, we understand the importance of supporting our…