#Security #Biometric #AndroidX
Fingerprint Authentication using BiometricPrompt Compat от Natig Babayev
Современная безопасность давно ушла от простых паролей. Все современные небюджетные устройства имеют биометрическую авторизацию: отпечаток пальца, радужка глаза, лицо и пр.
Android поддерживает авторизацию по отпечатку пальца, но она была помечена как deprecated в Android P, и на смену FingerprintManager пришло BiometricPrompt API. Идея такой замены заключается в расширение поддерживаемых метод идентификации в Android SDK и стандартизации UI. Но это только усилило извечную проблему Android.- фрагментацию API. Эту проблема призвана решить новая библиотека из AndroidX androidx.biometric, которая сейчас находится в разработке.
В рамках статье автор рассматривает использование новой библиотеки.
Fingerprint Authentication using BiometricPrompt Compat от Natig Babayev
Современная безопасность давно ушла от простых паролей. Все современные небюджетные устройства имеют биометрическую авторизацию: отпечаток пальца, радужка глаза, лицо и пр.
Android поддерживает авторизацию по отпечатку пальца, но она была помечена как deprecated в Android P, и на смену FingerprintManager пришло BiometricPrompt API. Идея такой замены заключается в расширение поддерживаемых метод идентификации в Android SDK и стандартизации UI. Но это только усилило извечную проблему Android.- фрагментацию API. Эту проблема призвана решить новая библиотека из AndroidX androidx.biometric, которая сейчас находится в разработке.
В рамках статье автор рассматривает использование новой библиотеки.
Medium
Fingerprint Authentication using BiometricPrompt Compat
With BiometricPrompt, fingerprint authentication on Android apps isn’t frustrating anymore.
#GooglePlay
Get your apps ready for the 64-bit requirement
Google Play все сильнее закручивает болты для разработчиков (что на мой взгляд хорошо). Уже сделали ограничения по targetSdk и SMS и CALL_LOG разрешения. Но приближается очередное обновление политики - все приложения, которые содержат нативный код, теперь будут должны поддерживать 64-битную архитектуру. Правило вступает для всех приложение с 1 августа 2019 , а с 1 августа 2021 года смартфоны с поддержкой 64 битной архитектуры не будут видеть приложения, которые не поддерживают данную архитектуру.
Есть исключения из правил:
👉 Android Wear приложения
👉 Android TV приложения
👉 Для приложение на Unity 5.6 и более старых изменения вступают в силу 1 августа 2021
Get your apps ready for the 64-bit requirement
Google Play все сильнее закручивает болты для разработчиков (что на мой взгляд хорошо). Уже сделали ограничения по targetSdk и SMS и CALL_LOG разрешения. Но приближается очередное обновление политики - все приложения, которые содержат нативный код, теперь будут должны поддерживать 64-битную архитектуру. Правило вступает для всех приложение с 1 августа 2019 , а с 1 августа 2021 года смартфоны с поддержкой 64 битной архитектуры не будут видеть приложения, которые не поддерживают данную архитектуру.
Есть исключения из правил:
👉 Android Wear приложения
👉 Android TV приложения
👉 Для приложение на Unity 5.6 и более старых изменения вступают в силу 1 августа 2021
Android Developers Blog
Get your apps ready for the 64-bit requirement
64-bit CPUs deliver faster, richer experiences for your users. Adding a 64-bit version of your app provides performance improvements, makes way for future innovation, and sets you up for devices with 64-bit only hardware.
Как вы относитесь к политике ужесточения публикации приложений в Google Play?
Anonymous Poll
72%
Позитивно
9%
Негативно
19%
Мне все равно
#ProGuard #R8
ProGuard and R8: a comparison of optimizers
ProGuard приобрел значительную долю популярности, если не большую, за счет Android разработки. Каково же их разочарование когда Google начала разрабатывать R8 как замену ProGuard и уже в следующем релизе Android Studio 3.4 R8 по умолчанию заменит ProGuard.
В статье вы найдете сравнение ProGuard и R8. Сразу скажу что R8 не срывает оваций т.к. часть оптимизаций, которые уже давно есть в ProGuard еще не реализованы в новой утилите от Google, но она содержит другие и активно наращивает обороты. Также R8 сфокусировано на Android разработке: исправление багов с интерпретаций байткода на различных версиях Android, удаление сервисного кода от Kotlin и прочие.
ProGuard and R8: a comparison of optimizers
ProGuard приобрел значительную долю популярности, если не большую, за счет Android разработки. Каково же их разочарование когда Google начала разрабатывать R8 как замену ProGuard и уже в следующем релизе Android Studio 3.4 R8 по умолчанию заменит ProGuard.
В статье вы найдете сравнение ProGuard и R8. Сразу скажу что R8 не срывает оваций т.к. часть оптимизаций, которые уже давно есть в ProGuard еще не реализованы в новой утилите от Google, но она содержит другие и активно наращивает обороты. Также R8 сфокусировано на Android разработке: исправление багов с интерпретаций байткода на различных версиях Android, удаление сервисного кода от Kotlin и прочие.
Guardsquare
ProGuard and Android R8 Optimizer Comparison | Guardsquare
Android's optimizer R8 is growing on the horizon, so we get a lot of questions how it relates to ProGuard. In this blog, we'll have a closer look.
#Podcast #Kotlin #Multiplatform
Talking Kotlin Podcast: Multiplatform Development with Kevin Galligan
Обсуждение Kotlin Multiplatform в очередном эпизоде подкаста Talking Kotlin
Talking Kotlin Podcast: Multiplatform Development with Kevin Galligan
Обсуждение Kotlin Multiplatform в очередном эпизоде подкаста Talking Kotlin
Talking Kotlin
Multiplatform Development with Kevin Galligan
We chat with Kevin about multi-platform development with Kotlin. Amongst many things, we discuss its differences with alternative technologies, the state of tooling and libraries, as well as factors people should consider when adopting OSS technologies.
#R8 #Optimization #Kotlin
R8 Optimization: Null Data Flow Analysis (Part 2)
R8 Optimization: Null Data Flow Analysis (Part 1)
Продолжение серии статей от Jake Wharton про оптимизации, которые выполняет R8 в Kotlin коде. В статье рассматривает о том как R8 избавляется от сервисного кода по проверки Java объектов на null.
R8 Optimization: Null Data Flow Analysis (Part 2)
R8 Optimization: Null Data Flow Analysis (Part 1)
Продолжение серии статей от Jake Wharton про оптимизации, которые выполняет R8 в Kotlin коде. В статье рассматривает о том как R8 избавляется от сервисного кода по проверки Java объектов на null.
Jake Wharton
R8 Optimization: Null Data Flow Analysis (Part 2) – Jake Wharton
#Library #UI #PorterDuff
The power of Android Porter/Duff Mode
В статье рассказывается о создание анимации источника света на основе Porter/Duff Mode и все это собрано в библиотеку.
Github LightProgress
The power of Android Porter/Duff Mode
В статье рассказывается о создание анимации источника света на основе Porter/Duff Mode и все это собрано в библиотеку.
Github LightProgress
Medium
The power of Android Porter/Duff Mode with View Animation
In this article we’ll try to implement a custom Android loading indicator with “Light” animation.
#Dagger #LibUpdates #DependencyInjection
Dagger 2.21 is out
Вышла новая версия Dagger. Релиз не содержит нового функционала и включает:
👉 Улучшение скорости сборки
👉 Новые валидации графа зависимостей
👉 Улучшения в генерированном коде
Dagger 2.21 is out
Вышла новая версия Dagger. Релиз не содержит нового функционала и включает:
👉 Улучшение скорости сборки
👉 Новые валидации графа зависимостей
👉 Улучшения в генерированном коде
GitHub
Release Dagger 2.21 · google/dagger
Build performance improvements (174a7a9)
Separately, there may be an increase in build times for opensource users using javac9 or javac10. Neither javac8 or javac11 should be affected. (96fcce8)
...
Separately, there may be an increase in build times for opensource users using javac9 or javac10. Neither javac8 or javac11 should be affected. (96fcce8)
...
#Deadlock #Kotlin #Coroutines
Deadlocks in non-hierarchical Communicating Sequential Processes (CSP) от Roman Elizarov
Рассказ о том, как при CSP (actor в корутинах), можно получить deadlock. Самое главное - как этого не допускать! Эта статья яркий пример, что каким бы крутым не было решение, то допустить ошибку можно с любой и надо быть внимательным.
Deadlocks in non-hierarchical Communicating Sequential Processes (CSP) от Roman Elizarov
Рассказ о том, как при CSP (actor в корутинах), можно получить deadlock. Самое главное - как этого не допускать! Эта статья яркий пример, что каким бы крутым не было решение, то допустить ошибку можно с любой и надо быть внимательным.
Medium
Deadlocks in non-hierarchical CSP
Coroutines communicating via channels can suffer from communication deadlocks. Let‘s see an example and discuss how deadlock can be…
#ProGuard #Security #HowItWork
Как работает ProGuard от @miproblema
Если вы делаете качественные Android приложение с высоким уровнем безопасности и маленьким размер, то вы наверняка знаете, что такое ProGuard. Много написано о том как настроить эту утилиту, но как она работает? Что происходит для того чтобы оптимизировать ваше приложение и оставить его рабочим? Статья раскрывает как работает ProGuard
Как работает ProGuard от @miproblema
Если вы делаете качественные Android приложение с высоким уровнем безопасности и маленьким размер, то вы наверняка знаете, что такое ProGuard. Много написано о том как настроить эту утилиту, но как она работает? Что происходит для того чтобы оптимизировать ваше приложение и оставить его рабочим? Статья раскрывает как работает ProGuard
Хабр
Как работает ProGuard
Если вы когда-либо задумывались о безопасности своего приложения, либо как-то хотели оптимизировать свой код, то, наверняка, вы знаете что такое ProGuard. Возмо...
#Lifecycle #ViewModel #Activity
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes
Четвертая часть в серии диаграмм жизненного цикла основных компонентов Android. В последней статье вы найдете информацию о жизненном цикле:
👉 ViewModel в Activity и Fragment
👉 Translucent Activity
👉 Activity в различных launch режимах: "single top" и "single task"
The Android Lifecycle cheat sheet — part IV : ViewModels, Translucent Activities and Launch Modes
Четвертая часть в серии диаграмм жизненного цикла основных компонентов Android. В последней статье вы найдете информацию о жизненном цикле:
👉 ViewModel в Activity и Fragment
👉 Translucent Activity
👉 Activity в различных launch режимах: "single top" и "single task"
#Image #Native #Library
Spectrum by Facebook - cross-platform image transcoding library
Facebook делает много интересных проектов в Open Source, либо открывает те которыми ужа давно пользуются. Spectrum - один из таких проектов. Библиотека позволяет выполнять основные операции с изображениями в форматах JPG, PNG и WEBP:
👉 Encoding - сохранение Bitmap на диск
👉 Transcoding - конвертирование одного формата изображений в другой
👉 Decoding - считывание Bitmap из закодированной картинки
👉 Transforming - выполнение базовых преобразований изображений: поворот, изменений размера, обрезка.
Библиотека отличается тем что:
👍 лучше оптимизирует картинку при сохранение на диск
👍 при групповом выполнение операций оптимизирует их
👍 все операции выполняются за рамками Java Heap, что позволяет эффективнее использовать память на Android
Spectrum GitHub
Spectrum by Facebook - cross-platform image transcoding library
Facebook делает много интересных проектов в Open Source, либо открывает те которыми ужа давно пользуются. Spectrum - один из таких проектов. Библиотека позволяет выполнять основные операции с изображениями в форматах JPG, PNG и WEBP:
👉 Encoding - сохранение Bitmap на диск
👉 Transcoding - конвертирование одного формата изображений в другой
👉 Decoding - считывание Bitmap из закодированной картинки
👉 Transforming - выполнение базовых преобразований изображений: поворот, изменений размера, обрезка.
Библиотека отличается тем что:
👍 лучше оптимизирует картинку при сохранение на диск
👍 при групповом выполнение операций оптимизирует их
👍 все операции выполняются за рамками Java Heap, что позволяет эффективнее использовать память на Android
Spectrum GitHub
#Kotlin #Coroutines
Kotlin Coroutine Cheat Sheet от Kt.Academy
Cheat sheet с основными классами корутин и их описанием.
Исходник в PDF.
Kotlin Coroutine Cheat Sheet от Kt.Academy
Cheat sheet с основными классами корутин и их описанием.
Исходник в PDF.
#WebView
Digging into failed redirects within Android Webviews от Joe Birch
История исследования проблемы с авторизацией oAuth в WebView и какую роль в этом сыграла WebSettings. setDomStorageEnabled.
Digging into failed redirects within Android Webviews от Joe Birch
История исследования проблемы с авторизацией oAuth в WebView и какую роль в этом сыграла WebSettings. setDomStorageEnabled.
Medium
Digging into failed redirects within Android Webviews
Header Photo by The Nigmatic on Unsplash
#Library #GPU #Video
GPUVideo-android
Библиотека, позволяющая применять различные фильтры и модифицировать видео в ExoPlayer. Библиотека построена на основе MediaCodeс API.
Библиотека позволяет делать:
👉 Поворот видео
👉 Изменять размер видео
👉 Накладывать фильтры (40 различных из коробки)
👉 Убирать аудио
👉 Задавать битрейт
GPUVideo-android
Библиотека, позволяющая применять различные фильтры и модифицировать видео в ExoPlayer. Библиотека построена на основе MediaCodeс API.
Библиотека позволяет делать:
👉 Поворот видео
👉 Изменять размер видео
👉 Накладывать фильтры (40 различных из коробки)
👉 Убирать аудио
👉 Задавать битрейт
GitHub
GitHub - MasayukiSuda/GPUVideo-android: This library apply video filter on generate an Mp4 and on ExoPlayer video and Video Recording…
This library apply video filter on generate an Mp4 and on ExoPlayer video and Video Recording with Camera2. - MasayukiSuda/GPUVideo-android
#Push
How to solve missing push notifications in Android
Сталкивались ли вы с проблемой того что на некоторых устройства не доходят push уведомления от Firebase Cloud Messaging? Даже high priority 😞 Это связано с определенными оптимизациями на устройствах от различных производителей:
👉 OnePlus убивает приложения, которые потребляют много CPU ресурсов по мнению системы 😞
👉 Xiaomi по умолчанию не стартует приложения при старте системы и соотвественно к вашему приложению ничего не доходит 😞
Популярные приложения этим не страдают, так как производители по умолчанию добавляют таких мажоров как Facebook, WhatApp и пр. в исключения.
Также помимо оптимизаций производителей есть стандартные оптимизации в Android, направленные на сокращение потребления батарейки, уменьшая частоту прихода push нотификаций
Ребята из команды Flock решили обойти проблемы интересным путем. Они воспользовались XMPP API для пашей, которое позволяет получить результат доставки push клиенту, в отличие от его HTTP коллеги. Как только они определяют что клиент теряет уведомления, они предлагают пользователю внести приложение в список исключений.
How to solve missing push notifications in Android
Сталкивались ли вы с проблемой того что на некоторых устройства не доходят push уведомления от Firebase Cloud Messaging? Даже high priority 😞 Это связано с определенными оптимизациями на устройствах от различных производителей:
👉 OnePlus убивает приложения, которые потребляют много CPU ресурсов по мнению системы 😞
👉 Xiaomi по умолчанию не стартует приложения при старте системы и соотвественно к вашему приложению ничего не доходит 😞
Популярные приложения этим не страдают, так как производители по умолчанию добавляют таких мажоров как Facebook, WhatApp и пр. в исключения.
Также помимо оптимизаций производителей есть стандартные оптимизации в Android, направленные на сокращение потребления батарейки, уменьшая частоту прихода push нотификаций
Ребята из команды Flock решили обойти проблемы интересным путем. Они воспользовались XMPP API для пашей, которое позволяет получить результат доставки push клиенту, в отличие от его HTTP коллеги. Как только они определяют что клиент теряет уведомления, они предлагают пользователю внести приложение в список исключений.
Hacker Noon
How to solve missing push notifications in Android
Android is the most popular mobile operating system now with more than 76% market share. This has, in part, been possible due to its open…
#Gradle #Kotlin #DSL
Takeaways from migrating a complex Android project to Gradle Kotlin DSL
Для всех тех кто мечтает перевести Gradle в своих проектах на Kotlin DSL данная статья опечалит вас 😞:
👉 Время сборки значительно увеличивается
👉 DSL сторонних плагинов не адаптированно для использования с Kotlin DSL
👉 Процесс миграции не из простых
👉 Больше кодогенерации требуется, чтобы запустить Gradle сборку
👉 Мало примеров
Также вам стоит обновиться до Gradle 5.X так как там уже стабильное Kotlin DSL
Takeaways from migrating a complex Android project to Gradle Kotlin DSL
Для всех тех кто мечтает перевести Gradle в своих проектах на Kotlin DSL данная статья опечалит вас 😞:
👉 Время сборки значительно увеличивается
👉 DSL сторонних плагинов не адаптированно для использования с Kotlin DSL
👉 Процесс миграции не из простых
👉 Больше кодогенерации требуется, чтобы запустить Gradle сборку
👉 Мало примеров
Также вам стоит обновиться до Gradle 5.X так как там уже стабильное Kotlin DSL
Medium
Takeaways from migrating a complex Android project to Gradle Kotlin DSL
Recently I’ve decided to try to migrate the project I’m working on to Gradle Kotlin DSL. The project contains three application modules…
#Podcast #Redex #Proguard
Inside Facebook Mobile: Android Bytecode Optimisation with Emma
Я уверен что большинство разработчиков знакомы с ProGuard, но слышали ли вы о решение для оптимизации dex файлов от Facebook - Redex? В подкасте обсуждается о необходимости оптимизации байткода и базовых принципах работы Redex.
Inside Facebook Mobile: Android Bytecode Optimisation with Emma
Я уверен что большинство разработчиков знакомы с ProGuard, но слышали ли вы о решение для оптимизации dex файлов от Facebook - Redex? В подкасте обсуждается о необходимости оптимизации байткода и базовых принципах работы Redex.
Pocket Casts
Android Bytecode Optimisation with Emma - Meta Tech Podcast
In this episode, Pascal and Mihaela chat with Emma about Redex, an open-source bytecode optimiser for Android apps. Emma talks about the importance and trade-offs of such optimisations and walks us through the basic steps of how Redex works and the...