#OkHttp #Networking #Optimization
Maximizing OkHttp connection reuse
Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.
К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Maximizing OkHttp connection reuse
Разработчики из Booking закопались в оптимизации OkHttp чтобы получить больше скорости для своих сетевых запросов. Узкое место было найдено в том, что переиспользование socket соединений не работает так эффективно, как хотелось бы разработчикам библиотеки.
К сожалению, библиотека OKHttp не содержит callback, который бы позволил бы перехватить управление созданием RealConnection, не вам стоит обратить на рекомендацию от создателей:
Security.insertProviderAt(Conscrypt.newProvider(), 1);
Medium
Maximizing OkHttp connection reuse
debugging a 3rd party library
#Architecture #SOLID
Понятнее о S.O.L.I.D
Принципы SOLID стали фундаментальными при разработке программного обеспечения, но не всех их знают или до конца понимают. Если вы до сих пор о них не слышали или хотите разобраться, то лучшим решением станет прочитать книгу Роберта Мартина "Чистая Архитектура"
Если такой возможности нет, то автор статьи постарался максимально просто и доходчиво объяснить каждый из них, при этом использовал примеры на Java и Kotlin, близкие Android разработчикам.
Понятнее о S.O.L.I.D
Принципы SOLID стали фундаментальными при разработке программного обеспечения, но не всех их знают или до конца понимают. Если вы до сих пор о них не слышали или хотите разобраться, то лучшим решением станет прочитать книгу Роберта Мартина "Чистая Архитектура"
Если такой возможности нет, то автор статьи постарался максимально просто и доходчиво объяснить каждый из них, при этом использовал примеры на Java и Kotlin, близкие Android разработчикам.
Хабр
Понятнее о S.O.L.I.D
Большинство разработчиков с разговорами о принципах архитектурного дизайна, да и принципах чистой архитектуры вообще, обычно сталкивается разве что на очередном...
#UI #Compose
JetPack Compose With Server Driven UI
Server Driven UI - это новый подход к управлению вашим UI который станет более доступен с релизом Jetpack Compose. Ключевая идея состоит в том чтобы управлять данными, которые отображают ваши View, удалённо с помощью обновлений с сервера.
В статье описан один из вариантов такого подхода на примере приложения для отображения списков фильмов. Кроме этого автор показывает как с помощью Compose можно создавать комплексный UI с несколькими scrollable списками.
JetPack Compose With Server Driven UI
Server Driven UI - это новый подход к управлению вашим UI который станет более доступен с релизом Jetpack Compose. Ключевая идея состоит в том чтобы управлять данными, которые отображают ваши View, удалённо с помощью обновлений с сервера.
В статье описан один из вариантов такого подхода на примере приложения для отображения списков фильмов. Кроме этого автор показывает как с помощью Compose можно создавать комплексный UI с несколькими scrollable списками.
Medium
JetPack Compose With Server Driven UI
A new way to build reactive apps with JetPack Compose UI
#Firebase #MachineLearning #TensorFlow
Enhance your TensorFlow Lite deployment with Firebase
В статье рассказывается о полезных возможностях Firebase при использовании TensorFlow Lite:
👉 deploy моделей в облаке (вручную или автоматизировано). Это позволит доставить модель на устройство без необходимости перепубликации приложения
👉 измерение скорости ответа модели, с помощью Firebase Performance Monitoring
👉 проведение A/B тестов с разными моделями с помощью Firebase Remote Config и Firebase A/B Testing
💪 статья содержит примеры кода
💪 есть ссылки на codelabs (Android и iOS), которые помогут освоить рассмотренные вопросы на практике
Enhance your TensorFlow Lite deployment with Firebase
В статье рассказывается о полезных возможностях Firebase при использовании TensorFlow Lite:
👉 deploy моделей в облаке (вручную или автоматизировано). Это позволит доставить модель на устройство без необходимости перепубликации приложения
👉 измерение скорости ответа модели, с помощью Firebase Performance Monitoring
👉 проведение A/B тестов с разными моделями с помощью Firebase Remote Config и Firebase A/B Testing
💪 статья содержит примеры кода
💪 есть ссылки на codelabs (Android и iOS), которые помогут освоить рассмотренные вопросы на практике
The Firebase Blog
Enhance your TensorFlow Lite deployment with Firebase
ОПРОС ДЛЯ РАЗРАБОТЧИКОВ ПОД ANDROID:
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Final Results
38%
Windows
43%
macOS
16%
Дистрибутивы Linux
3%
Не участвую в опросе
#Dagger #Hilt #Fragment
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
Dagger Hilt - библиотека которая уже наделала много шуму, но я не смог там найти одной удобной возможности - inject зависимостей в конструкторы
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
Dagger Hilt - библиотека которая уже наделала много шуму, но я не смог там найти одной удобной возможности - inject зависимостей в конструкторы
Fragment
. Автор статьи рассказывает как это можно сделатьTechYourChance
Dagger Hilt: Custom Entry Point for FragmentFactory Integration
A tutorial of using Dagger Hilt's Entry Points convention to work around lifecycle mismatch between Hilt and custom FragmentFactory in Android apps
#Android11 #Notifications
People Notifications
В Android 11 добавляются новые возможности уведомлений - "People Notifications". Это сообщения, связанные с каким-то человеком или группой людей. Особенно важную роль это сыграет для мессенджеров и любых приложение где есть чат.
People Notifications
В Android 11 добавляются новые возможности уведомлений - "People Notifications". Это сообщения, связанные с каким-то человеком или группой людей. Особенно важную роль это сыграет для мессенджеров и любых приложение где есть чат.
Medium
People notifications
In Android 11, we’re making Android more people-centric and expressive, reimagining the way we have conversations on our phones, and…
#StrictMode
Smooth Operator: Using StrictMode to make your Android App ANR free
Хотите проверить то что ваше приложение не выполняет никаких IO операций на главном потоке или используется только шифрованное соединение по сети? Тогда всем может помочь в этом StrictMode. В статье вы найдете как настроить StrictMode и как выглядит обнаружение проблем.
Если хотите использовать StrictMode удобнее, на любой версии API и даже иметь DSL для настройки, то обратите внимание на мою библиотеку - StrictMode Compat.
Smooth Operator: Using StrictMode to make your Android App ANR free
Хотите проверить то что ваше приложение не выполняет никаких IO операций на главном потоке или используется только шифрованное соединение по сети? Тогда всем может помочь в этом StrictMode. В статье вы найдете как настроить StrictMode и как выглядит обнаружение проблем.
Если хотите использовать StrictMode удобнее, на любой версии API и даже иметь DSL для настройки, то обратите внимание на мою библиотеку - StrictMode Compat.
Rebecca Franks - @riggaroo
Smooth Operator: Using StrictMode to make your Android App ANR free – Rebecca Franks - @riggaroo
Performing any kind of long blocking operations or disk IO operations on the Android Main thread can cause ANR issues. (Application Not Responding). You may not even realise that you have a potential ANR until it is too late and is already in your user’s…
#Jetpack
Обновление Android Jetpack 24.06.20
Прошло уже больше недели, а я не написал о новом релизе Jetpack. Что у нас тут:
👉 Новая стабильная версия Navigation 2.3.0: поддержка Dynamic Feature, Activity Result и др
👉 Biometric 1.1.0-alpha01 - наконец-то пофиксили все утечки памяти из первой версии
👉 Новые Emoji 1.1.0
👉 Новый мажорный релиз WorkManager на подходе - вышла первая rc
Обновление Android Jetpack 24.06.20
Прошло уже больше недели, а я не написал о новом релизе Jetpack. Что у нас тут:
👉 Новая стабильная версия Navigation 2.3.0: поддержка Dynamic Feature, Activity Result и др
👉 Biometric 1.1.0-alpha01 - наконец-то пофиксили все утечки памяти из первой версии
👉 Новые Emoji 1.1.0
👉 Новый мажорный релиз WorkManager на подходе - вышла первая rc
Android Developers
Navigation | Jetpack | Android Developers
#Kotlin
Kotlin dilemma: Extension or Member
Extension функции - одна из самых популярных возможностей языка Kotlin, но проблема ее в том что разработчики слишком увлеклись ей и используют ее для всего.
Когда стоит сделать extension функцию:
👉 Nullable receiver
👉 Вы не можете модифицировать класс
👉 Сделать интерфейс/класс минималистичным
Kotlin dilemma: Extension or Member
Extension функции - одна из самых популярных возможностей языка Kotlin, но проблема ее в том что разработчики слишком увлеклись ей и используют ее для всего.
Когда стоит сделать extension функцию:
👉 Nullable receiver
👉 Вы не можете модифицировать класс
👉 Сделать интерфейс/класс минималистичным
Medium
Kotlin dilemma: Extension or Member
A blog describing pitfalls of incorrect usage of Kotlin’s Extension functions.
#Conference #Online #CFP
Сообщество Mobile People организовывают глобальную онлайн-конференцию Mobile Z-Days и ищут спикеров
Событие пройдет 8-10 сентября, а до 3 июля можно подать заявку, чтобы стать спикером!
Темы, которые будут на конференции: Android, iOS, Flutter, React Native, Xamarin
Сообщество Mobile People организовывают глобальную онлайн-конференцию Mobile Z-Days и ищут спикеров
Событие пройдет 8-10 сентября, а до 3 июля можно подать заявку, чтобы стать спикером!
Темы, которые будут на конференции: Android, iOS, Flutter, React Native, Xamarin
wearecommunity.io
Mobile Days: Registration
3 days of coolest talks about iOS, Android and Flutter
#Espresso #Testing
Testing Espresso Matchers
Espresso - это фреймворк для UI тестирования Android приложений. Для поиска определенной view в иерархии или для проверки состояния view в Espresso используются объекты класса
Можно использовать как множество готовых Matchers, покрывающих большинство кейсов, так и создавать собственные. Например, для редких состояний view или для custom view.
В статье расписано как можно реализовать собственный Matcher на примере custom view, и как его потом использовать в UI тестах.
Testing Espresso Matchers
Espresso - это фреймворк для UI тестирования Android приложений. Для поиска определенной view в иерархии или для проверки состояния view в Espresso используются объекты класса
org.hamcrest.Matcher
Можно использовать как множество готовых Matchers, покрывающих большинство кейсов, так и создавать собственные. Например, для редких состояний view или для custom view.
В статье расписано как можно реализовать собственный Matcher на примере custom view, и как его потом использовать в UI тестах.
Medium
Testing Espresso Matchers
If you are using instrumentation tests in your Android app, it is likely that you are using Espresso— allowing you to define expectations…
#Dagger #Hilt
EXPLORING HILT: APPLICATION LEVEL CODE GENERATION
Хотите узнать как работает магия? Тогда вам стоит почитать в статью и отправиться в путешествие какой код генерирует Hilt - расширение Dagger для Android разработки
EXPLORING HILT: APPLICATION LEVEL CODE GENERATION
Хотите узнать как работает магия? Тогда вам стоит почитать в статью и отправиться в путешествие какой код генерирует Hilt - расширение Dagger для Android разработки
Android Developers
Dependency injection with Hilt | Android Developers
#Architecture
Вероятно, хватит рекомендовать «Чистый код»
В мире разработки ПО Роберт Мартин считается своего рода "иконой". Этот человек написал несколько книг, которые стали для многих программистов настольными. Но один из главных нюансов программирования в том, что оно постоянно развивается и видоизменяется, то что было актуально 10 лет назад сегодня может быть абсолютно нерелевантным.
Автор в статье рассказывает о неточностях и проблемах книги "Чистый код", рассказывает о том что сам код, приведённый в книге, не такой уж и "чистый". Автор не использует правило "критикуешь - предлагай", что было бы весьма актуально для подобной темы.
Интересно узнать ваше мнение относительно этой статьи, поэтому не поленитесь после прочтения поставить палец вверх или вниз в конце этого поста.
Вероятно, хватит рекомендовать «Чистый код»
В мире разработки ПО Роберт Мартин считается своего рода "иконой". Этот человек написал несколько книг, которые стали для многих программистов настольными. Но один из главных нюансов программирования в том, что оно постоянно развивается и видоизменяется, то что было актуально 10 лет назад сегодня может быть абсолютно нерелевантным.
Автор в статье рассказывает о неточностях и проблемах книги "Чистый код", рассказывает о том что сам код, приведённый в книге, не такой уж и "чистый". Автор не использует правило "критикуешь - предлагай", что было бы весьма актуально для подобной темы.
Интересно узнать ваше мнение относительно этой статьи, поэтому не поленитесь после прочтения поставить палец вверх или вниз в конце этого поста.
Хабр
Вероятно, хватит рекомендовать «Чистый код»
Возможно, мы никогда не сможем прийти к эмпирическому определению «хорошего кода» или «чистого кода». Это означает, что мнение одного человека о мнении другого человека о «чистом коде» обязательно...
#Benchmark #Flutter #React
Native vs Flutter vs React Native: тестируем производительность в работе с UI-элементами
В статье сравнивается потребление ресурсов и быстродействие при отрисовке различных типов анимаций между нативными приложениями на Android и iPhone и такими же приложениями написанными на Flutter и React Native.
Ожидаемо, нативные приложения работают быстрее и показывают лучшие результаты в рендеринге и использовании ресурсов, Flutter держится в середине, React Native оказался наиболее медленным.
Native vs Flutter vs React Native: тестируем производительность в работе с UI-элементами
В статье сравнивается потребление ресурсов и быстродействие при отрисовке различных типов анимаций между нативными приложениями на Android и iPhone и такими же приложениями написанными на Flutter и React Native.
Ожидаемо, нативные приложения работают быстрее и показывают лучшие результаты в рендеринге и использовании ресурсов, Flutter держится в середине, React Native оказался наиболее медленным.
Хабр
Native vs Flutter vs React Native: тестируем производительность в работе с UI-элементами
Давайте возьмём задачи разной сложности и сравним потребление памяти, FPS, загрузку CPU и GPU при работе мобильных приложений, созданных с помощью разных технологий. Предыстория Мы постоянно изучаем...
#Meetup #Online #Android11
Организаторы Android Academy из разных городов и проведут пять встреч о Android 11 и помогут узнать о всех его особенностях
Формат: раз в две недели, полтора часа горячих обсуждений, кода и выводов!
Когда: 7 июля в 19:00 (GMT+3)
Организаторы Android Academy из разных городов и проведут пять встреч о Android 11 и помогут узнать о всех его особенностях
Формат: раз в две недели, полтора часа горячих обсуждений, кода и выводов!
Когда: 7 июля в 19:00 (GMT+3)
#Android11 #ScopedStorage
Bringing modern storage to Viber’s users
В Android 11 ограничения к доступу файловой системы будут введены, после того как были отложены в Android 10. Вам придется проверить как вы работаете с файлами, обращаетесь к медиа и как это подружить между новыми и старыми версиями.
На своем примере рассказывают разработчики из Viber как они прошли этот путь и сделали доступ к файловой системе по всем последним рекомендациям
Bringing modern storage to Viber’s users
В Android 11 ограничения к доступу файловой системы будут введены, после того как были отложены в Android 10. Вам придется проверить как вы работаете с файлами, обращаетесь к медиа и как это подружить между новыми и старыми версиями.
На своем примере рассказывают разработчики из Viber как они прошли этот путь и сделали доступ к файловой системе по всем последним рекомендациям
Android Developers Blog
Bringing modern storage to Viber’s users
This blogpost is a collaboration between Google and Viber. Authored by Kseniia Shumelchyk from Google and Anton Novikov, Sergey Kozlov from Viber.
#Design
Стилизация Android-приложений и дизайн-система: как это сделать и подружить одно с другим
Дизайн система - это принципы, которые позволят вам унифицировать подходи описания компонентов и эффективно реализовывать дизайн в приложение на основе этих «кирпичиков».
В статье автор разбирает подходы как реализовать дизайн систему в Android приложении
Стилизация Android-приложений и дизайн-система: как это сделать и подружить одно с другим
Дизайн система - это принципы, которые позволят вам унифицировать подходи описания компонентов и эффективно реализовывать дизайн в приложение на основе этих «кирпичиков».
В статье автор разбирает подходы как реализовать дизайн систему в Android приложении
Хабр
Стилизация Android-приложений и дизайн-система: как это сделать и подружить одно с другим
Привет читателям! В какой-то момент любое крупное приложение разрастается так, что сложно везде поддерживать однотипный дизайн и динамично реагировать на любые изменения и тенденции в дизайне и...
#GooglePlay #Subscription
New features to acquire and retain subscribers
Google Play пополняется новыми возможностями по работе с подписками:
👉 Новое flow для использования промокода теперь поможет пользователям проще получить подписку по нему
👉 Промокод для множества пользователей, которые можно использовать в рекламных кампаниях.
👉 Возможность указать что даёт подписка. При отмене подписки эта информацию будет показана пользователю
👉 Пользователи могут возобновить недавно истекшую подписку через приложение Google Play
👉 Уведомление о предстоящем уменьшение цены на подписку
👉 Функции «Account hold» и «Restoration» будут работать для всех приложений по умолчанию с 1 ноября 2020
👉 «Subscrption pause» и «Resubscribe» будут включены с возможностью отключения с 1 ноября 2020
Всем разработчикам рекомендуется перейти на Google Play Billing Library v2 или v3
New features to acquire and retain subscribers
Google Play пополняется новыми возможностями по работе с подписками:
👉 Новое flow для использования промокода теперь поможет пользователям проще получить подписку по нему
👉 Промокод для множества пользователей, которые можно использовать в рекламных кампаниях.
👉 Возможность указать что даёт подписка. При отмене подписки эта информацию будет показана пользователю
👉 Пользователи могут возобновить недавно истекшую подписку через приложение Google Play
👉 Уведомление о предстоящем уменьшение цены на подписку
👉 Функции «Account hold» и «Restoration» будут работать для всех приложений по умолчанию с 1 ноября 2020
👉 «Subscrption pause» и «Resubscribe» будут включены с возможностью отключения с 1 ноября 2020
Всем разработчикам рекомендуется перейти на Google Play Billing Library v2 или v3
Android Developers Blog
New features to acquire and retain subscribers
Posted by Angela Ying, Product Manager, Google Play Subscription continues to be one of the fastest growing business models for apps in...
Android Broadcast
ОПРОС ДЛЯ РАЗРАБОТЧИКОВ ПОД ANDROID:
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Какой ОС на своем оснвном компьютере для разработке вы пользуетесь?
Больше всего среди Android разработчиков маководов. С чем это связано? С ОС или железом от компании? Также интересно узнать мнение людей кто сам выбирает Windows, а не на работе дали комп такой.
Все ответы пишите в @android_broadcast_talks
Все ответы пишите в @android_broadcast_talks