#Networking #Безопасность
OAuth 2.0 -> OAuth 2.1. Что дальше?
Безопасность - важный аспект любого приложения. Для реализации авторизации по принципам OAuth 2.0 мы уже давно привыкли, хоть многие и понимают это по разному.
В своей статье автор рассматривает принципы OAuth 2.0 и почему понадобилось спустя 8 лет работать над OAuth 2.1.
OAuth 2.0 -> OAuth 2.1. Что дальше?
Безопасность - важный аспект любого приложения. Для реализации авторизации по принципам OAuth 2.0 мы уже давно привыкли, хоть многие и понимают это по разному.
В своей статье автор рассматривает принципы OAuth 2.0 и почему понадобилось спустя 8 лет работать над OAuth 2.1.
#Performance #Аналитика
Приложение отвечает: как мы уменьшили количество ANRs в шесть раз.
Часть 2, про исправление ошибок
Продолжение серии статей от Badoo как они истребили ANR в статистике своего приложения! В новой части ребята разбирают как проверяли слабые места приложения, которые по итогу оказался вызов Application.onCreate() и особенно, когда запуске приложения происходил в фоне. Например, при отправке Broadcast приложению.
Разработчики провели анализ и выполнили следующие оптимизации:
👉 Lazy загрузка
👉 Инициализация в фоновом потоке
👉 Сторонние библиотеки и их ContentProvider
👉 Оптимизировать работы с SharedPreference, ведь даже вызов apply() в результате может приводить к ANR
👉 Обработка push уведомлений в отдельном процессе
Приложение отвечает: как мы уменьшили количество ANRs в шесть раз.
Часть 2, про исправление ошибок
Продолжение серии статей от Badoo как они истребили ANR в статистике своего приложения! В новой части ребята разбирают как проверяли слабые места приложения, которые по итогу оказался вызов Application.onCreate() и особенно, когда запуске приложения происходил в фоне. Например, при отправке Broadcast приложению.
Разработчики провели анализ и выполнили следующие оптимизации:
👉 Lazy загрузка
👉 Инициализация в фоновом потоке
👉 Сторонние библиотеки и их ContentProvider
👉 Оптимизировать работы с SharedPreference, ведь даже вызов apply() в результате может приводить к ANR
👉 Обработка push уведомлений в отдельном процессе
#AndroidAuto #GooglePlay
Expanding the reach of your Android Auto apps
Google продолжает готовить больше возможностей для создателей приложения для Android Auto. Сейчас вы уже можете публиковать приложения в open testing трек Google Play. Для этого вам придётся использовать библиотеку Android for Cars App.
Команда сейчас работает над переносом библиотеки в Android Jetpack. После этого будет готовиться публикация приложения в production трек Google Play.
Expanding the reach of your Android Auto apps
Google продолжает готовить больше возможностей для создателей приложения для Android Auto. Сейчас вы уже можете публиковать приложения в open testing трек Google Play. Для этого вам придётся использовать библиотеку Android for Cars App.
Команда сейчас работает над переносом библиотеки в Android Jetpack. После этого будет готовиться публикация приложения в production трек Google Play.
#AndroidBroadcast #Kotlin #Multiplatform
MOKO - готовый фреймворк для Android + iOS приложений на основе Kotlin Mobile Multiplatform
Когда: понедельник, 1 февраля, 10:00 (GMT+3)
Опыт компании IceRock в разработке мобильных приложений (нескольких десятков) с использованием Kotlin Multiplatform. Результат этого опыта - MOKO
Гость выпуска - Алексей Михайлов, CTO в IceRock Development
Технический директор компании аутсорс разработки, в прошлом разработчик под мобильные платформы Android и iOS. В студенчестве создал soProject для S.T.A.L.K.E.R. :)
MOKO - готовый фреймворк для Android + iOS приложений на основе Kotlin Mobile Multiplatform
Когда: понедельник, 1 февраля, 10:00 (GMT+3)
Опыт компании IceRock в разработке мобильных приложений (нескольких десятков) с использованием Kotlin Multiplatform. Результат этого опыта - MOKO
Гость выпуска - Алексей Михайлов, CTO в IceRock Development
Технический директор компании аутсорс разработки, в прошлом разработчик под мобильные платформы Android и iOS. В студенчестве создал soProject для S.T.A.L.K.E.R. :)
#GooglePlay
Обновление правил Google Play от 28.01.2021
Обновление правил, которое затронуло приложения для азартных игр:
👉 Новые страны для публикации лицензированных приложений для азартных игр на реальные деньги
👉 Вводятся новые требования для программ лояльности в игровой форме (без подробностей)
👉 Уточнение правил для азартных игр
Обновление правил Google Play от 28.01.2021
Обновление правил, которое затронуло приложения для азартных игр:
👉 Новые страны для публикации лицензированных приложений для азартных игр на реальные деньги
👉 Вводятся новые требования для программ лояльности в игровой форме (без подробностей)
👉 Уточнение правил для азартных игр
#Jetpack
Обновление Android Jetpack от 27.01.2021
Новые мажорные релизы
🎉 Autofill Version 1.1.0 - поддержка API Android 11 и новое InlineSuggestionUi API
🎉 Biometric Version 1.1.0 - поддержка API Android 11 и исправлены утечки памяти и проблемы производительности
🎉 RecyclerView-Selection Version 1.1.0 - улучшение производительности и
🎉 Transition Version 1.4.0 - появились KTX расширения
🎉 Work Version 2.5.0 - подробности изменения здесь, особенно если у вас приложение с несколькими процессами + новый инспектор в Android Studio
Багфикс релизы
🔨 Media2 Version 1.1.2
🔨 Navigation Version 2.3.3
Готовятся к мажорному релизу
🌔 CameraX 1.0.0-rc02
🌔 Fragment Version 1.3.0-rc02
🌓 Annotation-Experimental Version 1.1.0-beta01
🌓 Room Version 2.3.0-beta01 - БД теперь может сама закрываться если она не используется определенное время
В разработке
🏗️ Biometric Version 1.2.0-alpha02 - улучшение API и больше поддержки Kotlin Coroutines
🏗️ CameraX 1.1.0-alpha01
🏗️ Emoji Version 1.2.0-alpha03
🏗️ Hilt Version 1.0.0-alpha03 - поддержка ViewModel и WorkManager / исправление багов
🏗️ Paging Version 3.0.0-alpha13 - изменения API
🏗️ Window Version 1.0.0-alpha02
Обновление Android Jetpack от 27.01.2021
Новые мажорные релизы
🎉 Autofill Version 1.1.0 - поддержка API Android 11 и новое InlineSuggestionUi API
🎉 Biometric Version 1.1.0 - поддержка API Android 11 и исправлены утечки памяти и проблемы производительности
🎉 RecyclerView-Selection Version 1.1.0 - улучшение производительности и
🎉 Transition Version 1.4.0 - появились KTX расширения
🎉 Work Version 2.5.0 - подробности изменения здесь, особенно если у вас приложение с несколькими процессами + новый инспектор в Android Studio
Багфикс релизы
🔨 Media2 Version 1.1.2
🔨 Navigation Version 2.3.3
Готовятся к мажорному релизу
🌔 CameraX 1.0.0-rc02
🌔 Fragment Version 1.3.0-rc02
🌓 Annotation-Experimental Version 1.1.0-beta01
🌓 Room Version 2.3.0-beta01 - БД теперь может сама закрываться если она не используется определенное время
В разработке
🏗️ Biometric Version 1.2.0-alpha02 - улучшение API и больше поддержки Kotlin Coroutines
🏗️ CameraX 1.1.0-alpha01
🏗️ Emoji Version 1.2.0-alpha03
🏗️ Hilt Version 1.0.0-alpha03 - поддержка ViewModel и WorkManager / исправление багов
🏗️ Paging Version 3.0.0-alpha13 - изменения API
🏗️ Window Version 1.0.0-alpha02
#Jetpack #Navigation #Fragment #Dagger
Hilt integration with the Jetpack navigation library
В Hilt 1.0.0-alpha03 появилась интеграция с Navigation библиотекой, которая позволяет получить ViewModel со скопом графа навигации
Hilt integration with the Jetpack navigation library
В Hilt 1.0.0-alpha03 появилась интеграция с Navigation библиотекой, которая позволяет получить ViewModel со скопом графа навигации
#AndroidOS
A Garbage Collection Story
Статья в которой рассказывается о сборщике мусора (GC) в Android, а именно:
👉 Как занимаются ячейки памяти
👉 Появление утечек памяти
👉 Причины OutOfMemoryException
👉 Что плохо с GC в Dalvik VM?
👉 ART и heap fragmentation
Вроде бы матёрому разработчику будет все понятно, но автор настолько легко доносит тему на примере парковки, что я не смог обойти статью мимо.
Еще очень круто об это рассказали Chet Hasse и Roman Guy - https://youtu.be/Zc4JP8kNGmQ
A Garbage Collection Story
Статья в которой рассказывается о сборщике мусора (GC) в Android, а именно:
👉 Как занимаются ячейки памяти
👉 Появление утечек памяти
👉 Причины OutOfMemoryException
👉 Что плохо с GC в Dalvik VM?
👉 ART и heap fragmentation
Вроде бы матёрому разработчику будет все понятно, но автор настолько легко доносит тему на примере парковки, что я не смог обойти статью мимо.
Еще очень круто об это рассказали Chet Hasse и Roman Guy - https://youtu.be/Zc4JP8kNGmQ
#AndroidBroadcast #Новости #Jetpack
Новостной дайджест от 01.02.2021 (15 мин)
Новости Android разработки прошедшей недели:
👉 WorkManager 2.5.0
👉 WorkManager Инспектор в Android Studio
👉 Ускорение старта приложения и уменьшение ANR
👉 AndroidX Biometric 1.1.0: исправление утечек и фикс производительности
и много чего ещё интересного в выпуске!
Поддержать любимый проект http://bit.ly/3sratqQ
P.S. В это выпуске я сделал крупный план и использовал другие подходы в монтаже. Как вам? Оставляйте свой отзыв на YouTube. Это очень важно, позволяет развиваться и повышать качество
Новостной дайджест от 01.02.2021 (15 мин)
Новости Android разработки прошедшей недели:
👉 WorkManager 2.5.0
👉 WorkManager Инспектор в Android Studio
👉 Ускорение старта приложения и уменьшение ANR
👉 AndroidX Biometric 1.1.0: исправление утечек и фикс производительности
и много чего ещё интересного в выпуске!
Поддержать любимый проект http://bit.ly/3sratqQ
P.S. В это выпуске я сделал крупный план и использовал другие подходы в монтаже. Как вам? Оставляйте свой отзыв на YouTube. Это очень важно, позволяет развиваться и повышать качество
#Gradle
Take care of your gradle home directory
История как Gradle Daemon поедает десятки гигабайт на вашем SSD, чтобы "ускорить" работу. Готовьтесь периодически подчищать за ним
Take care of your gradle home directory
История как Gradle Daemon поедает десятки гигабайт на вашем SSD, чтобы "ускорить" работу. Готовьтесь периодически подчищать за ним
#Fragment
7 Common Mistakes Easily Made with Android Fragment
Любой Android разработчик имеет дело с
❌ Создавать новый экземпляр
❌ Создавать объекты в
❌ Восстанавливать состояние в
❌ Держать ссылку на
❌ Обращаться к View во время сохранения состояния Fragment
❌ Использовать
❌ Использовать имя класса
❌ От себя еще добавлю - не храните ссылки на объекты, привязанные к жизненному циклу View, за пределами
7 Common Mistakes Easily Made with Android Fragment
Любой Android разработчик имеет дело с
Fragment, но правильно варить с ними приложения не всегда очевидно. Автор статьи рассказывает о наиболее популярных ошибка разработчиков:❌ Создавать новый экземпляр
Fragment без проверки того что он уже добавлен❌ Создавать объекты в
onCreateView(), которые живут дольше чем UI❌ Восстанавливать состояние в
onCreateView()❌ Держать ссылку на
Fragment в Activity/Fragment❌ Обращаться к View во время сохранения состояния Fragment
❌ Использовать
add() в транзакциях вместо replace()❌ Использовать имя класса
Fragment как его тег❌ От себя еще добавлю - не храните ссылки на объекты, привязанные к жизненному циклу View, за пределами
onDestoyView().Сейчас все мы стали работать из дома. Неотъемлемой частью этого является наша семья и соседи. У меня вообще происходит веселье: годовалая дочка бегает с криком по дому, лает пёс, и стучит клавиатура с мышкой 😁
Решением этого для меня стал сервис Krisp.В понедельник на стриме по Moko я протестил его и был в восторге - весь шум за меня убрал AI. Прелесть решения в том что вам не нужно какой-то специальной видеокарты как в решении от Nvidia.
Обязательно пробуйте. Если пройдете регистрацию по моей ссылки, то получите месяц Pro бесплатно как и я. Это позволит сделать звук на стримах лучше!
Решением этого для меня стал сервис Krisp.В понедельник на стриме по Moko я протестил его и был в восторге - весь шум за меня убрал AI. Прелесть решения в том что вам не нужно какой-то специальной видеокарты как в решении от Nvidia.
Обязательно пробуйте. Если пройдете регистрацию по моей ссылки, то получите месяц Pro бесплатно как и я. Это позволит сделать звук на стримах лучше!
#AndroidBroadcast
Хотите пройти интервью у Кирилла, чтобы проверить свои силы? Тогда у вас есть такая возможность сделать это в прямом эфире на канале Android Broadcast. Заполните форму и ждите когда с вами свяжутся.
Хотите пройти интервью у Кирилла, чтобы проверить свои силы? Тогда у вас есть такая возможность сделать это в прямом эфире на канале Android Broadcast. Заполните форму и ждите когда с вами свяжутся.
Какие сервисы Firebase вы используете? (Множественный выбор)
Anonymous Poll
65%
Cloud Messaging
32%
Realtime Database / Firestore
83%
Crashlytics
61%
Analytics / Google Analytics
30%
Remote Config
12%
Performance Monitoring
30%
App Distribution
13%
A/B Testing
24%
Autentication
5%
Hosting / Cloud Funtions
#ProGuard
ProGuard Playground - онлайн песочница для проверки ваших keep правил
ProGuard представила бета версию своей песочницы для проверки ваших keep правил. Утилита сразу подсвечивает какие классы у вас будут сохранены в вашем JAR или APK.
Вы можете интерактивно настроить все что вам необходимо оставить без изменений в release сборке. Также результата можно шарить по ссылке. Например, я сделал пример для приложения Muzei.
ProGuard Playground - онлайн песочница для проверки ваших keep правил
ProGuard представила бета версию своей песочницы для проверки ваших keep правил. Утилита сразу подсвечивает какие классы у вас будут сохранены в вашем JAR или APK.
Вы можете интерактивно настроить все что вам необходимо оставить без изменений в release сборке. Также результата можно шарить по ссылке. Например, я сделал пример для приложения Muzei.
#Firebase
Firebase Experimental Extensions
Firebase активно развивается и добавляет новые расширения, которые вы можете добавить в свой Firebase проект и использовать в мобильных приложения
Представлены новые экспериментальные расширения
👉 Короткие ссылки на основе Firebase Dynamic Links
👉 Выполнение анализа тональности текста в Firestore
👉 Adding custom claims to Firebase Auth users
👉 Периодические записи в Firestore
Помимо прочего стало доступно расширение для переводов текста
Firebase Experimental Extensions
Firebase активно развивается и добавляет новые расширения, которые вы можете добавить в свой Firebase проект и использовать в мобильных приложения
Представлены новые экспериментальные расширения
👉 Короткие ссылки на основе Firebase Dynamic Links
👉 Выполнение анализа тональности текста в Firestore
👉 Adding custom claims to Firebase Auth users
👉 Периодические записи в Firestore
Помимо прочего стало доступно расширение для переводов текста
Into the Sunset on May 1st: Bintray, JCenter, GoCenter, and ChartCenter
JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
JFrog закрывает кучу своих сервисов, включая Bintray. Практически все современные библиотеки заливались на этот сервис, так что у авторов много работы, ведь в конце февраля опубликовать новые не получится. Теперь Maven Central ?
#Kotlin
Вышел Kotlin 1.4.30
Новая минорная версия языка привнесла множество изменений о которых вы можете узнать из поста на канале @kotlin_broadcast.
Важно: Новый Backend JVM IR компилятора перешел в Beta, а старый больше не поддерживается. В 1.5.0 этот компилятор будет работать по умолчанию. Поэтому вам надо попробовать скомпилировать и проверить ваш проект.
Что значит попробовали
1️⃣ Хотя бы раз собрать проект. Инструкция как попробовать новый компилятор
2️⃣ Что-то подебажить
3️⃣ Отправить нам репорты/баги о том, что не работает с примерами кода по возможности. Это можно будет сделать через YouTrack или в Slack Kotlinlang.org
4️⃣ Поработать с ним какое-то время, а лучше заадоптить насовсем
Давайте поможем ребятам довести новый JVM IR backend до стабильного состояния! Это здорово облегчит жизнь нам и его разработчикам, а также приблизит нас к Jetpack Compose.
Вышел Kotlin 1.4.30
Новая минорная версия языка привнесла множество изменений о которых вы можете узнать из поста на канале @kotlin_broadcast.
Важно: Новый Backend JVM IR компилятора перешел в Beta, а старый больше не поддерживается. В 1.5.0 этот компилятор будет работать по умолчанию. Поэтому вам надо попробовать скомпилировать и проверить ваш проект.
Что значит попробовали
1️⃣ Хотя бы раз собрать проект. Инструкция как попробовать новый компилятор
2️⃣ Что-то подебажить
3️⃣ Отправить нам репорты/баги о том, что не работает с примерами кода по возможности. Это можно будет сделать через YouTrack или в Slack Kotlinlang.org
4️⃣ Поработать с ним какое-то время, а лучше заадоптить насовсем
Давайте поможем ребятам довести новый JVM IR backend до стабильного состояния! Это здорово облегчит жизнь нам и его разработчикам, а также приблизит нас к Jetpack Compose.
#Dagger #Hilt
Hilt: Dependency Injection on Android
Серия уроков по Dagger Hilt в которой подробно рассматриваются все аспекты использования этой надстройки над Dagger и как осуществлять миграцию уже существующих Android проектов. Каждый урок совсем короткий - по несколько минут.
Hilt: Dependency Injection on Android
Серия уроков по Dagger Hilt в которой подробно рассматриваются все аспекты использования этой надстройки над Dagger и как осуществлять миграцию уже существующих Android проектов. Каждый урок совсем короткий - по несколько минут.
#Coroutines #UnderTheHood
Bridging the gap between coroutines, JVM threads, and concurrency problems
Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
Bridging the gap between coroutines, JVM threads, and concurrency problems
Хотите узнать как работают Coroutine на JVM? Как они связаны c Java потоками? Какую роль в этом выполняет CoroutineDispatcher? В статье найдете ответы простым языком с отсылкой в исходники
#Android11 #Security
Adapting your apps for Android 11 privacy changes (18 мин)
Обзор изменений, которых вам придется сделать, чтобы мигрировать своё приложения на targetSdk=30 и ужиться со всеми нововведениями ОС.
Будем честны - озаботимся этим только в последний срок, а это сентябрь, может август.
Adapting your apps for Android 11 privacy changes (18 мин)
Обзор изменений, которых вам придется сделать, чтобы мигрировать своё приложения на targetSdk=30 и ужиться со всеми нововведениями ОС.
Будем честны - озаботимся этим только в последний срок, а это сентябрь, может август.