#SQLite #Coroutines #Room #ArchitectureComponents
Threading models in Coroutines and Android SQLite API
В Room 2.1.0 появилась поддержка Coroutine, но особенность их работы в том, что они не гарантируют выполнение всей Coroutine в одном Java потоке. И тут получается проблема - SQLite требует выполнение транзакций в одном и том же потоке.
Как эту проблему решили разработчики Room? Для этого была создана специальная функции withTransaction, которая позволяет выполнять транзакции в БД с помощью Room на основе Coroutine.
В статье вы найдете подробности реализации транзакций SQLite при использовании Coroutine и как можно использовать CoroutineContext.
Threading models in Coroutines and Android SQLite API
В Room 2.1.0 появилась поддержка Coroutine, но особенность их работы в том, что они не гарантируют выполнение всей Coroutine в одном Java потоке. И тут получается проблема - SQLite требует выполнение транзакций в одном и том же потоке.
Как эту проблему решили разработчики Room? Для этого была создана специальная функции withTransaction, которая позволяет выполнять транзакции в БД с помощью Room на основе Coroutine.
В статье вы найдете подробности реализации транзакций SQLite при использовании Coroutine и как можно использовать CoroutineContext.
Medium
Threading models in Coroutines and Android SQLite API
Implementing suspending transactions in Room
#GooglePlay #X64
Migrating to 64-bit
С августа 2019 в силу вступают требования Google Play о том, что каждое приложение должно иметь поддержку 64-битной версии нативных библиотек. Эти требования вводятся для лучшей поддержки современных устройств и обеспечения более высокой производительности.
Migrating to 64-bit
С августа 2019 в силу вступают требования Google Play о том, что каждое приложение должно иметь поддержку 64-битной версии нативных библиотек. Эти требования вводятся для лучшей поддержки современных устройств и обеспечения более высокой производительности.
YouTube
Migrating to 64-bit
Google Play now requires new and updated apps with native libraries to have a corresponding 64-bit version. Having a 64-bit version of your app not only makes it compatible for devices with 64-bit only hardware, but it also improves your app’s performance!…
#Kotlin #Awards
Kotlin named Breakout Project of the Year at OSCON
На конференции OSCON (O'Reilly Open Source Software Conference), Kotlin удостоился награды "Open Source Award for Breakout Project of the Year" (самый прорывной open source проект года).
Нет сомнений почему Kotlin получил эту награду. Kotlin значительно изменил мир Java разработки, в особенности на Android, и даже стал основным языком для разработке на этой платформе. Также Kotlin #1 наиболее растущий язык на Github.
Kotlin named Breakout Project of the Year at OSCON
На конференции OSCON (O'Reilly Open Source Software Conference), Kotlin удостоился награды "Open Source Award for Breakout Project of the Year" (самый прорывной open source проект года).
Нет сомнений почему Kotlin получил эту награду. Kotlin значительно изменил мир Java разработки, в особенности на Android, и даже стал основным языком для разработке на этой платформе. Также Kotlin #1 наиболее растущий язык на Github.
Android Developers Blog
Kotlin named Breakout Project of the Year at OSCON
Posted by Wojtek Kaliciński, Developer Advocate, Android Stephanie Saad Cuthbertson announces support for Kotlin during the Develope...
#Security #AndroidQ #RuntimePermissions
Android Permissions System Vulnerabilities and Possible Workarounds
На конференции PrivacyCon 2019 показали как более 1300 Android приложений, включая множество популярных, с сотнями миллионов пользователей собирают приватные данные даже после того как им было запрещен доступ к соответствующим разрешениям. Эти приложения пользуются уязвимостями в системе разрешений Android.
В Android Q было исправлено множество из этих проблем. Встает ряд вопросов:
👉 Но сколько устройств получат обновление до этой версии ОС ?
👉 Как быстро это произойдет?
👉 В каком году минимальная актуальная версия Android станет Q ?
Мы можем только предполагать и надеяться 😔
В статье вы найдете информацию об уязвимостях, как ими пользуются злоумышленники и решение их в Android Q.
Android Permissions System Vulnerabilities and Possible Workarounds
На конференции PrivacyCon 2019 показали как более 1300 Android приложений, включая множество популярных, с сотнями миллионов пользователей собирают приватные данные даже после того как им было запрещен доступ к соответствующим разрешениям. Эти приложения пользуются уязвимостями в системе разрешений Android.
В Android Q было исправлено множество из этих проблем. Встает ряд вопросов:
👉 Но сколько устройств получат обновление до этой версии ОС ?
👉 Как быстро это произойдет?
👉 В каком году минимальная актуальная версия Android станет Q ?
Мы можем только предполагать и надеяться 😔
В статье вы найдете информацию об уязвимостях, как ими пользуются злоумышленники и решение их в Android Q.
Medium
Android Permissions System Vulnerabilities and Possible Workarounds
Possible workarounds to handle permission system vulnerabilities until Android Q is in production
#Architecture #Modularization #ArchitectureComponents
Modularization by Feature and Layer with Android Architecture Components
Команда Android в последние 2 года активно стала решать трудности, связанные с разработкой эффективной архитектуры для Android приложений. Результат этого - Android Architecture Components.
Трендом текущей Android разработки является модуляризация. Она дает плюсы в архитектуре, более высокую скорость сборки проектов и возможность использовать Dynamic Features.
Как позволяет это реализовать текущий стек Architecture Components вы найдете в статье
Modularization by Feature and Layer with Android Architecture Components
Команда Android в последние 2 года активно стала решать трудности, связанные с разработкой эффективной архитектуры для Android приложений. Результат этого - Android Architecture Components.
Трендом текущей Android разработки является модуляризация. Она дает плюсы в архитектуре, более высокую скорость сборки проектов и возможность использовать Dynamic Features.
Как позволяет это реализовать текущий стек Architecture Components вы найдете в статье
Medium
Modularization by Feature and Layer with Android Architecture Components
Hello! In this story I want to have a quick look at modular android development in conjunction with android architecture components.
#AndroidX #News #AndroidXWeekly
Android Jetpack - это множество библиотек (аж 74 группы библиотек!). В них постоянно происходят улучшения и обновления. Следить за этой информацией неудобно и я решил каждую неделю делать краткий обзор изменений.
Android Jetpack - это множество библиотек (аж 74 группы библиотек!). В них постоянно происходят улучшения и обновления. Следить за этой информацией неудобно и я решил каждую неделю делать краткий обзор изменений.
#AndroidX #AndroidXWeekly
AndroidX Weekly Update #1
Произошли следующие обновления:
👉 Fragment 1.1.0-rc03
Правка бага перед релизом стабильной версии 1.1.0
👉 Navigation 2.1.0-beta02
Удалена зависимость на JaCoCo
👉 ViewPager2 1.0.0-beta02
Удалена зависимость на JaCoCo. Список багов все ещё большой 😞
👉 WorkManager 2.2.0-beta02
Удалена зависимость на JaCoCo
👉 Test 1.2.1-alpha02
Обновление версий зависимостей до соответствующих alpha версий
AndroidX Weekly Update #1
Произошли следующие обновления:
👉 Fragment 1.1.0-rc03
Правка бага перед релизом стабильной версии 1.1.0
👉 Navigation 2.1.0-beta02
Удалена зависимость на JaCoCo
👉 ViewPager2 1.0.0-beta02
Удалена зависимость на JaCoCo. Список багов все ещё большой 😞
👉 WorkManager 2.2.0-beta02
Удалена зависимость на JaCoCo
👉 Test 1.2.1-alpha02
Обновление версий зависимостей до соответствующих alpha версий
#WorkManager
Вышел WorkManager 2.1.0
Изменения по сравнению с версией 2.0.1:
👉
👉 Отложенная инициализация WorkManager
👉 PeriodicWorkRequest теперь поддерживает начальную задержку
👉 Добавлена возможность делегирования WorkerFactory с помощью DelegatingWorkerFactory
👉 Добавлена возможность задавать Executor, используемый WorkManager
👉 Добавлены TestWorkerBuilder и TestListenableWorkerBuilder, которые позволяют писать unit тесты Worker и ListenableWorker
👉 Добавлено возможность получения количества попыток в WorkInfo
👉 Возможность добавления в Data
👉 WorkManager теперь зависит от Room 2.1.0, что должно исправить часть багов с БД
Вышел WorkManager 2.1.0
Изменения по сравнению с версией 2.0.1:
👉
work-runtime-ktx требует Java 8👉 Отложенная инициализация WorkManager
👉 PeriodicWorkRequest теперь поддерживает начальную задержку
👉 Добавлена возможность делегирования WorkerFactory с помощью DelegatingWorkerFactory
👉 Добавлена возможность задавать Executor, используемый WorkManager
👉 Добавлены TestWorkerBuilder и TestListenableWorkerBuilder, которые позволяют писать unit тесты Worker и ListenableWorker
👉 Добавлено возможность получения количества попыток в WorkInfo
👉 Возможность добавления в Data
Byte и Array<Byte>👉 WorkManager теперь зависит от Room 2.1.0, что должно исправить часть багов с БД
Android Developers
WorkManager | Jetpack | Android Developers
#RecyclerView
A Custom LayoutManager Case: Bumble Beeline
История от разработчиков из Badoo как они писали свой собственный LayoutManager для RecyclerView.
A Custom LayoutManager Case: Bumble Beeline
История от разработчиков из Badoo как они писали свой собственный LayoutManager для RecyclerView.
Medium
A custom LayoutManager case: Bumble Beeline
A step by step guide to building a custom LayoutManager
#Kotlin #TypeAlias #InlineClass
Kotlin: Type aliases and inline classes
В Kotlin есть функционал, довольно схожий - Type Alias и Inline Class. Подробнее о этих фичах языка и отличиях вы можете узнать из статьи.
Kotlin: Type aliases and inline classes
В Kotlin есть функционал, довольно схожий - Type Alias и Inline Class. Подробнее о этих фичах языка и отличиях вы можете узнать из статьи.
Medium
Kotlin: Type aliases and inline classes
There is no doubt that Kotlin is here to stay for a long time.
#Performance
An idiomatic Android approach to measuring execution time
Хотите замерить время выполнения вашего кода на Android правильно? Тогда вам надо использовать утилитный класс TimingLogger, доступный с API Level 1!
Только не забудьте, чтобы TimingLogger работал необходимо выполнить следующую команду:
An idiomatic Android approach to measuring execution time
Хотите замерить время выполнения вашего кода на Android правильно? Тогда вам надо использовать утилитный класс TimingLogger, доступный с API Level 1!
Только не забудьте, чтобы TimingLogger работал необходимо выполнить следующую команду:
adb shell setprop log.tag.TimingLoggerDemo VERBOSEMedium
TimingLogger: An idiomatic Android approach to measuring execution time
During your career as an Android developer you will eventually encounter some less than optimal performing code. Maybe this is code that…
#Dagger
Вышел Dagger 2.24
Вышла новая версия Dagger 2, которая не привнесла ничего значимого:
👉 Удалено устаревшее API из
👉 Исправление багов
Вышел Dagger 2.24
Вышла новая версия Dagger 2, которая не привнесла ничего значимого:
👉 Удалено устаревшее API из
dagger.android Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver}
👉 Инкрементальный процессинг аннотаций теперь включён по умолчанию👉 Исправление багов
GitHub
Release Dagger 2.24 · google/dagger
Deprecations/removals
dagger.android's Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver} interfaces are now removed in favor of HasAndroidInjector (which can handle any type). H...
dagger.android's Has{Activity,Fragment,Service,ContentProvider,BroadcastReceiver} interfaces are now removed in favor of HasAndroidInjector (which can handle any type). H...
#RxJava
RxBinding 3.0
Как бы не штормило Jake Wharton новый мажорный релиза RxBinding вышел, что несомненно порадует всех любителей Rx. В версии 3.0 произошли следующие изменения:
🎉 Библиотека переписана на Kotlin
🎉 Миграция на AndroidX
👉 Удалены все deprecated методы
👉 Отказ от использования AutoValue в пользу Kotlin data классов
RxBinding 3.0
Как бы не штормило Jake Wharton новый мажорный релиза RxBinding вышел, что несомненно порадует всех любителей Rx. В версии 3.0 произошли следующие изменения:
🎉 Библиотека переписана на Kotlin
🎉 Миграция на AndroidX
👉 Удалены все deprecated методы
👉 Отказ от использования AutoValue в пользу Kotlin data классов
GitHub
RxBinding/CHANGELOG.md at master · JakeWharton/RxBinding
RxJava binding APIs for Android's UI widgets. Contribute to JakeWharton/RxBinding development by creating an account on GitHub.
#MVVM #AppArchitecture #ArchitectureComponents
Android MVVM — Do’s and Don’ts
Несколько рекомендаций при реализации архитектуры MVVM на основе Architecture Components:
👉
👉 View не должна содержать какой либо логики (быть пассивной). Место для всей логики - это
👉 ViewModel не должна иметь ссылки на View
👉 Если вы хотите получать обновления данных от
Android MVVM — Do’s and Don’ts
Несколько рекомендаций при реализации архитектуры MVVM на основе Architecture Components:
👉
ViewModel не должна использовать классы из Android SDK. Используйте интерфейсы, которые позволят вам абстрагироваться от платформенной реализации.👉 View не должна содержать какой либо логики (быть пассивной). Место для всей логики - это
ViewModel.👉 ViewModel не должна иметь ссылки на View
👉 Если вы хотите получать обновления данных от
LiveData для обновления UI, тогда используйте viewLifecycleOwner.Medium
MVVM Do’s and Don’ts
Some ground rules to follow while using MVVM Architecture.
#Kotlin #Sequence
Collections and sequences in Kotlin
Kotlin имеет множество операторов для обработки коллекций, которые выполняются сразу же и создаются новые коллекции. Альтернативой ему служит Sequence API, которое реализует lazy API для обработки коллекций. В статье рассматриваются различия между этими подходами.
Collections and sequences in Kotlin
Kotlin имеет множество операторов для обработки коллекций, которые выполняются сразу же и создаются новые коллекции. Альтернативой ему служит Sequence API, которое реализует lazy API для обработки коллекций. В статье рассматриваются различия между этими подходами.
Medium
Collections and sequences in Kotlin
Working with collections is a common task and the Kotlin Standard Library offers many great utility functions. It also offers two ways of…
#GooglePlay #InAppUpdates
How Pandao Uses the In-App Updates Flexible Flow to Speed up the App Update Process on Android
Не так давно Google дала всем разработчикам доступ к In-App Updates, которая позволяет обновлять приложение изнутри. Разработчики из Pandao делятся тем как интегрировать работу с библиотекой и какой эффект ее применения.
How Pandao Uses the In-App Updates Flexible Flow to Speed up the App Update Process on Android
Не так давно Google дала всем разработчикам доступ к In-App Updates, которая позволяет обновлять приложение изнутри. Разработчики из Pandao делятся тем как интегрировать работу с библиотекой и какой эффект ее применения.
Medium
How Pandao Uses the In-App Updates Flexible Flow to Speed up the App Update Process on Android
In-App Updates allows developers to deliver features, bug fixes, and performance improvements faster for active users.
#Kotlin #Conference #Minsk
7 сентября пройдет крутейшее событие в Беларуси по Kotlin - Kotlin/Everywhere Minsk. Вас ожидают известные спикеры из-за рубежа и нашей страны и классный материал по использованию Kotlin!
В списке спикеров уже подтверждены:
👉 Мarcin Moskala@KtAcademy
👉 Ильмир Усманов@JetBrains
👉 Marharyta Nedzelska@WIX, Kiev Kotlin User Group Lead
👉 Леонид Старцев@JetBrains
👉 Олег Семен@Lviv Kotlin User Group Lead
👉 Nicolas Fränkel@Exoscale
Регистрация уже открыта. Спешите пройти по ссылке
7 сентября пройдет крутейшее событие в Беларуси по Kotlin - Kotlin/Everywhere Minsk. Вас ожидают известные спикеры из-за рубежа и нашей страны и классный материал по использованию Kotlin!
В списке спикеров уже подтверждены:
👉 Мarcin Moskala@KtAcademy
👉 Ильмир Усманов@JetBrains
👉 Marharyta Nedzelska@WIX, Kiev Kotlin User Group Lead
👉 Леонид Старцев@JetBrains
👉 Олег Семен@Lviv Kotlin User Group Lead
👉 Nicolas Fränkel@Exoscale
Регистрация уже открыта. Спешите пройти по ссылке