#WorkManager
Unifying Background Task Scheduling on Android
Google проводит унификацию своих библиотек для выполнения задач в фоновом режиме. Суть проста - все мигрируем на WorkManager.
Если кто-то пользуется FirebaseJobDispatcher (FJD) или GCMNetworkManager (GCM), то вам пора браться за гайды по миграции: для FJD и для GCM. Поддержка FJD будет закрыта в апреле 2020, GCM - ноябрь 2020.
Если вы обновите targetSdk вашего приложения до Android 10 (API level 29), то FJD и GCM перестанут работать на Android 6.0+
Unifying Background Task Scheduling on Android
Google проводит унификацию своих библиотек для выполнения задач в фоновом режиме. Суть проста - все мигрируем на WorkManager.
Если кто-то пользуется FirebaseJobDispatcher (FJD) или GCMNetworkManager (GCM), то вам пора браться за гайды по миграции: для FJD и для GCM. Поддержка FJD будет закрыта в апреле 2020, GCM - ноябрь 2020.
Если вы обновите targetSdk вашего приложения до Android 10 (API level 29), то FJD и GCM перестанут работать на Android 6.0+
Android Developers Blog
Unifying Background Task Scheduling on Android
Android users care a lot about the battery life on their phones. In particular, how your app schedules deferrable background tasks play an important role in battery life. To help you build more battery-friendly apps, we introduced WorkManager as the unified…
#Calendar
Android Calendar Intent
Подробная инструкция того как работать с системным календарем в Android:
👉 Создать событие
👉 Открыть календарь на необходимой дате или событие
👉 Доступ к деталям события по id
Все описано очень хорошо и подробно!
Android Calendar Intent
Подробная инструкция того как работать с системным календарем в Android:
👉 Создать событие
👉 Открыть календарь на необходимой дате или событие
👉 Доступ к деталям события по id
Все описано очень хорошо и подробно!
Medium
Android Calendar Intent
Create a calendar event is not difficult. App can handle off all the operation to system Calendar app. How to do it? Click to see more!
#Kotlin
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
👉 Работа с
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Kotlin Delegates in Android: Utilizing the power of Delegated Properties in Android development
Рассказ о возможностях Kotlin delegated properties для решения различных Android задач:
👉 Работы с аргументами в
Fragment
👉 Работа с
SharedPreference
👉 Работа с составными собственными View
Но помните, что делегаты имеет скрытую цену!
Medium
Kotlin Delegates in Android
Making use of Delegated Properties in Android development
#Security
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
How to enable logging on any released Android app
Убираете ли вы логирование кода из релизного билда? Именно убираете а не отключаете. Когда в вашем коде остается возможность включить логи - это потенциальная дыра в безопасности и она подробно разбирается в статье.
Чтобы удалить логирование с помощью Logcat вы можете воспользоваться R8/ProGuard для удаления кода:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
}
Medium
How to enable logging on any Android app
Welcome to a series of Spy security articles where we’ll learn how to hack apk and …
#Room #SQLite
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
@Relation
над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.Medium
Database relations with Room
An important part of designing a relational database is splitting the data into related tables and pulling the data together in meaningful…
#Gradle #AndroidGradlePlugin
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Simple Guide to Android Product Flavors
Разбор в подробностях различных сборок приложения и как этот механизм реализован в Android Gradle Plugin c помощью
Product Flavor
и Build Type
.Medium
A Simple Guide to Android Product Flavors
When i first heard of the term product flavors the first thing that came into mind had nothing to do with Android…
#JetpackWeekly #Benchmark #ViewPager2
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Jetpack Weekly #12
🔥 Benchmark теперь стабильна. Начинайте измерять производительность вашего кода правильно!
🔥 ViewPager мертв. Да здравствует ViewPager2, который базируется на
RecyclerView
!👉 RecyclerView 1.1.0
👉 Exifinterface 1.1.0
🛠️ Room 2.2.2 с исправлениями багов
Medium
2
Benchmark Stable, ViewPager2 Stable, and next RecyclerView
#Podcast
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Android Dev Podcast перешел в английскую версию.Новый подкаст - это не дубляж уже существующего, а возможности приглашение новых гостей.
Например, совсем недавно появился выпуск в котором Денис Неклюдов взял интервью у основателя и CEO Gradle Hans Dockter. В рамках Android Dev Summit ребята сделали обзор новостей с Florina Muntenescu, Android Developer Advocate в Google.
Answers for Your OS
OS Today
questions about operating systems About Contacts Privacy Policy Cookies Android Windows Linux Apple Photoshop guide Other Quick Answer How You Know What Operating System You Have Find operating system info Windows button, type Computer...
#AndroidBroadcastBreakfest #Minsk #Meetup
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
Всем привет! Общение - это то, что позволяет нам эффективнее делиться знаниями и понимать друг друга. Намного эффективнее что-то обсудить голосом, чтобы найти эффективное решение или вдохновиться мыслью.
В эту субботу (30 ноября) в 11.00 в Минске я предлагаю встретиться всем желающим в кофейне GrayHouse (пр. Дзержинского, 11, метро "Грушевка"). Формат проведения встречи - свободное общение.
Тема встречи - Dependency Injection:
👉 Настолько ли важная роль DI? Есть ли жизнь без?
👉 Как заставить Dagger стать удобным инструментом, а не причинять кучу боли
👉 Koin и Kodein - есть ли жизнь с ними в больших проектах
👉 Отказ от библиотек для DI и решение доставки зависимостей самостоятельно
Задавайте свои вопросы, слушайте разговоры, любое ваше участие важно и позволит вам улучшить свои знания!
Есть вопросы или другие вопросы для обсуждения - предлагайте их в @android_broadcast_discussions
#CodeQuality #Kotlin
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
Вышел Detekt 1.2.0
В новой версии появились следующие улучшения:
👉 Улучшен HTML отчет
👉 Поддержка отключения правил по группам
👉 Поддержка параллельной фаз компиляции и анализа
👉 Исправление работы правил
👉 Улучшение определение текста во множестве правил
#Dagger
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Dagger Party Tricks: Refactoring
Dagger не прост, совсем не прост. Поэтому постигать его дзен можно всю свою карьеру разработчика, если она не закончится раньше чем вы сможете освоить полностью все. В статье вы найдете немного Dagger дзена.
Zac Sweers
Dagger Party Tricks: Refactoring
Techniques for refactoring Dagger code with ease.
#Kotlin #Parcel
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
A study of the Parcelize feature from Kotlin Android Extensions
В Kotlin 1.3.40 Parcelize стало стабильным, но только с версии 1.3.60 Android Studio перестало жаловаться, на его нестабильный статус, поэтому как никогда стоит напомнить, что есть способ сохранять ваши данные с использованием Parcel.
В статье разбирается как использовать библиотеку и какой код генерируется под капотом.
Medium
A study of the Parcelize feature from Kotlin Android Extensions
Life is too short to waste time on writing Parcelable code
#Kotlin #Coroutines #Arhitecture
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
Обновление подхода просто. Если раньше ваш слой модели мог возвращать
В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Lessons learnt using Coroutines Flow in the Android Dev Summit 2019 app
"Kotlin First" - лозунг современной Android разработки. В этом случае нельзя не использовать Kotlin Coroutines, чтобы максимально стремиться к этому принципу и получить все преимущества языка.
Авторы приложения для Android Dev Summit 2019 о том, как изменился их взгляд с появлением Flow в разработки Domain (
UseCase
) и Model (Repository
, Data Source
) слоев.Обновление подхода просто. Если раньше ваш слой модели мог возвращать
LiveData
(например за наблюдением обновление обновление в Room), то теперь все это переходит во Flow и превращается в LiveData
только в ViewModel
. Если вам не нужно наблюдать за изменениями - используйте обычные suspend
функции.В статье также рассказывается как перейти со старых подходов на Flow и как применять его в новом API. Ну и как же без освещения тестирования!
Medium
Lessons learnt using Coroutines Flow
in the Android Dev Summit 2019 app
#Obfuscation #Resources #Optimization
AabResGuard - A tool used to obfuscate aab resources
Чтоба защитить свой код от злоумышленников и оптимизировать его исполнение в Android разработке применяют
Энтузиасты решили исправить это и сделать тулзу, которая сможет выполнять с ресурсами:
🔥 Убрать дублирующиеся значения
🔥 Удалять ненужные файлы из папок
🔥 Обфусцировать названия ресурсов
🔥 Удалять заданные строки из конечной билда
Проект пока находится в стадии разработке, но я с нетерпением жду стабильного релиза!
AabResGuard - A tool used to obfuscate aab resources
Чтоба защитить свой код от злоумышленников и оптимизировать его исполнение в Android разработке применяют
R8
/ProGuard
. Но эти утилиты оптимизируют только Java byte code. А что с остальными файлами в AAB/APK? Ответ - ничего. Google не предоставляет каких либо инструментов для оптимизации ресурсов.Энтузиасты решили исправить это и сделать тулзу, которая сможет выполнять с ресурсами:
🔥 Убрать дублирующиеся значения
🔥 Удалять ненужные файлы из папок
META-INFO/
и lib/
🔥 Обфусцировать названия ресурсов
🔥 Удалять заданные строки из конечной билда
Проект пока находится в стадии разработке, но я с нетерпением жду стабильного релиза!
GitHub
GitHub - bytedance/AabResGuard: The tool of obfuscated aab resources.(Android app bundle资源混淆工具)
The tool of obfuscated aab resources.(Android app bundle资源混淆工具) - bytedance/AabResGuard
#RecyclerView #Sticky
Для всех тех кто реализует секции и sticky header в списках на основе RecyclerView появился новый игрок среди библиотек - StickyDecorator.
Библиотека легковесна и некоторые из декораций делает на основе
Для всех тех кто реализует секции и sticky header в списках на основе RecyclerView появился новый игрок среди библиотек - StickyDecorator.
Библиотека легковесна и некоторые из декораций делает на основе
Drawable
, что позволяет достичь более высокой скорости работы по сравнению с View
.GitHub
GitHub - OsomePteLtd/StickyDecorator: Lightweight library for sticky header and simple sectioning in RecyclerView
Lightweight library for sticky header and simple sectioning in RecyclerView - OsomePteLtd/StickyDecorator
#AndroidStudio
Android Studio Design Tools UX Changes — Split View
До релиза Android Studio 3.6 осталось не так много времени.Одним из заметных нововведений для всех тех кто работает с UI станет изменение отображения
В статье рассказывается о преимуществах этого обновления (на мой взгляд очень спорных).
Android Studio Design Tools UX Changes — Split View
До релиза Android Studio 3.6 осталось не так много времени.Одним из заметных нововведений для всех тех кто работает с UI станет изменение отображения
Design Tool
. Новый режим, который назван Design Tools Split View
, заменивший старый Layout Preview, теперь позволяет на одном экране совмещать редактор UI в XML и визуальный редактор.В статье рассказывается о преимуществах этого обновления (на мой взгляд очень спорных).
Medium
Android Studio Design Tools UX changes — split view
In this article, we would like to introduce the new behavior of the Design Editor in Android Studio 3.6, dive into some of the details of…
Рады ли вы обнволению Design Tools?
Anonymous Poll
12%
Раньше было лучше (Layout Preview)
43%
Рад 😁
31%
Не использую Android Studio 3.6
2%
Не пишу UI
12%
Другой вариант
#MemoryLeak
Вышел Leak Canary 2.0
Вышла новая мажорная версия популярного инструмента для отслеживания утечек памяти во время работы приложения. В новой версии произошла уйма изменений:
👉 Библиотека полностью переписана на Kotlin
👉 Улучшен механизм сборки дампов памяти, что будет меньше блокировать работу с приложением
👉 Новый UI для просмотра информации о утечках памяти
👉 Новая библиотека LeakSentry, которая позволяет определить когда происходит утечка и вызывает LeakCanary для сбора информации. Это поможет понять какие объекты приводят к
👉 Новый парсер heap, который работает эффективнее и быстрее
👉 Упрощена настройка библиотеки - 0 строк кода для включения, только добавление зависимости
👉 Новая утилита Heap Explorer, которая позволяет делать анализ heap в LeakCanary прямо на устройства
👉 Из коробки поддерживает отслеживание за утечками
👉 Новая библиотека Shark, которая используется
В обновление произошли значительные изменения API, поэтому если вы активно его использовали (а не просто подключали библиотеку), то вам надо будет выполнить миграцию. Больше информации на официальном сайте.
Вышел Leak Canary 2.0
Вышла новая мажорная версия популярного инструмента для отслеживания утечек памяти во время работы приложения. В новой версии произошла уйма изменений:
👉 Библиотека полностью переписана на Kotlin
👉 Улучшен механизм сборки дампов памяти, что будет меньше блокировать работу с приложением
👉 Новый UI для просмотра информации о утечках памяти
👉 Новая библиотека LeakSentry, которая позволяет определить когда происходит утечка и вызывает LeakCanary для сбора информации. Это поможет понять какие объекты приводят к
OutOfMemoryError
👉 Новый парсер heap, который работает эффективнее и быстрее
👉 Упрощена настройка библиотеки - 0 строк кода для включения, только добавление зависимости
👉 Новая утилита Heap Explorer, которая позволяет делать анализ heap в LeakCanary прямо на устройства
👉 Из коробки поддерживает отслеживание за утечками
Fragment
👉 Новая библиотека Shark, которая используется
LeakCanary
для анализа и может запускать в любой Java VM. Также доступен CLI, который вы можете использовать с компьютера для сбора информации о расходе памяти с устройстваВ обновление произошли значительные изменения API, поэтому если вы активно его использовали (а не просто подключали библиотеку), то вам надо будет выполнить миграцию. Больше информации на официальном сайте.
square.github.io
Change Log - LeakCanary
A memory leak detection library for Android
#Java #Java14
Пробуем улучшенный оператор instanceof в Java 14
Пока Android разработчики сконцентрировались на Kotlin (да и Google не собирается никого разворачивать от этого пути), разработчик Java нагоняют по наличию фичей современные языки-хипстеров. В Java 14 нас ждет аналог Smart Cast из Kotlin - Pattern Matching.
Пробуем улучшенный оператор instanceof в Java 14
Пока Android разработчики сконцентрировались на Kotlin (да и Google не собирается никого разворачивать от этого пути), разработчик Java нагоняют по наличию фичей современные языки-хипстеров. В Java 14 нас ждет аналог Smart Cast из Kotlin - Pattern Matching.
Хабр
Пробуем улучшенный оператор instanceof в Java 14
Не за горами новая, 14-я версия Java, а значит самое время посмотреть, какие новые синтаксические возможности будет содержать эта версия Java. Одной из таких син...
#Conference #Quiz
Организаторы крупнейшей мобильной конференции Mobius проводят опрос с целью улучшения контента и формата проведения конференции. У вас есть шанс выиграть призы за прохождение опроса!
Купить билет на декабрьский Mobius в Москве со скидкой по промокоду mobius19mskAndroidBpc
Организаторы крупнейшей мобильной конференции Mobius проводят опрос с целью улучшения контента и формата проведения конференции. У вас есть шанс выиграть призы за прохождение опроса!
Купить билет на декабрьский Mobius в Москве со скидкой по промокоду mobius19mskAndroidBpc