Android Broadcast
14.2K subscribers
3.51K photos
339 videos
11 files
5.88K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Widget #Calendar

CalendarView - хорошо кастомизируемый виджет календаря, основанный на RecyclerView.

Возможности библиотеки:
👉 Выбор одного значения или диапазона
👉 Режим недели или месяца
👉 Ограничение дат
👉 Кастомизация внешнего вида ячеек
👉 Кастомизация внешнего вида календаря
👉 Любой день в качестве первого дня недели
👉 Горизонтальный или вертикальный скролл
👉 Добавление headers/footers к любому месяцу
👉 Простой скролл к дате и месяцу
👉 Возможность использования любых кастомизаций RecyclerView

Библиотека работает на основе ThreeTenABP для возможности работы с Java 8 Date Time на старых версиях Android SDK
#ArchitectureComponents #LiveData

Unit-testing LiveData and other common observability problems

Важно помнить, что LiveData посылает обновления, только в том случае, когда у нее есть хотя бы один подписчик (observer). Это может привести к ошибкам в ваших тестах (успешно их прохождению или нет).

В статье рассматриваются ошибки и рекомендации по использованию LiveData в тестах:
👉 Используйте LiveData.getOrAwaitValue(timeout: Long) для получения результата из LiveData в unit тестах
👉 Используйте InstantTaskExecutorRule для предотвращения проблем с многопоточностью при работе с LiveData
👉 Частая ошибка - используйте один и тот же объект ViewModel, если он шарится между несколькими Fragment
#Coroutines

Corbind

Помните RxBinding? Так вот её аналог, только построенный на Kotlin Coroutine-ах. Библиотека позволяет осуществлять биндинги к самым популярным виджетам из Android SDK и AndroidX

Corbind поддерживает Channel и Flow.
#AndroidQ

Вышел Android 10

Вот и состоялся выход новой стабильной версии ОС Android. Что это привносит? Давайте разбираться:
👉 Теперь нет букв в названиях Android и сладостей. Только цифры. Скатились до iOS 😥
👉 Поддержка складываемых устройств (кстати оба из них не стали выходить 😁)
👉 Поддержка сетей 5G
👉 Темная тема
👉 LiveCaption - теперь можно сделать субтитры для всего что воспроизводится в системе
👉 Новая система навигации жестами, которую Google пытается стандартизировать кросс производителей устройств
👉 Большой упор на приватность данных
👉 Улучшение работы с камерой
👉 Улучшение виртуальной машины ART
👉 Поддержка быстрых обновлений безопасностей и патчей без необходимости перезагрузки
#Coroutines #DynamicProxy

A little reflection about coroutines

Как протестировать код, который использует Retrofit интерфейс? Использовать моки или HttpMocker. Есть более эффективный способ - самому реализовать свою Proxy для Retrofit со стабами. Подробности того как это сделать когда вы используете Coroutine или нет вы найдёте в статье
#Gradle #Performance

Gradle Remote Build Cache Misses

Gradle дало большую гибкость в сборке приложений. Но за все приходится платить и цена - это скорость сборки. С ростом проектом она увеличивается. Разработчики решили эту проблему, начав разбивать проекты на модули, где каждый из них собирается отдельно и может более эффективно кэшироваться.

Кэширование сборки тоже не самый эффективный механизм Gradle, но есть часть Gradle Enterprise - Remote Build Cache, которая позволяет шарить кэш между различными машинами. Больше подробностей о этой функции в статье от SoundСloud
Всем привет. На этой неделе я не смог выдерживать ритм по новостям + мало чего интересно + все мои силы между старой и новой работой идут на то, чтобы сделать Kotlin/Everywhere Minsk, которая состоится 7 сентября. Были 3 напряжённых месяца подготовки и остается совсем чуть-чуть. Регистрируйтесь чтобы получить видео, посетить мероприятие или помочь в качестве волонтёра.

Со следующей неделе я вернусь к привычному ритму посту новостей. Спасибо за понимание
#Tablet #Android10

Expand your app beyond mobile to reach Android users at large

В Google неожиданно решили вспомнить, что у них есть поддержка больших экранов, а вендоры производят планшеты и Chrome OS имеет поддержку Android приложений и там очень эффективно работает планшетный дизайн.
Заботитесь ли вы поддержкой планшетов в своих приложениях?
Anonymous Poll
26%
Да
67%
Нет
7%
Не знаю
Рассылка Now in Android

Google стала делать рассылку с новостями в мире Android, но зачем они если есть Android Broadcast 😁
#Tools #Performance

Android third party tools to increase the performance of your app

Как облегчить себе поиск проблем в производительности приложения? В статье рассматриваются следующие инструменты:
👉 Leak Canary - популярный инструмент, позволяющий находить утечки памяти
👉 Android Performance Monitor (Block Canary) - библиотека для обнаружения ui-фризов
👉 AndroidDevMetrics - позволяет замерить сколько времени уходит на инициализацию Activity и Dagger 2
👉 Takt - намерение FPS
👉 Nanoscape от Uber - трасировщик с более высокой скоростью работы и более аккуратный чем Android Studio CPU Profiler
👉 Android God Eye - утилита, которая может следить за множеством параметров FPS/RAM/PSS/Battery, Cpu/Heap/Traffic, Leak Memory/App Janks, Network и Thread
👉 Booster - коллекция модулей для поиска проблем производительности, оптимизации многопоточности и др Включает в себя около 20 модулей с разными целями. По заявлением авторов вы можете увеличить производительность вашего приложения нв 15% ~ 25% и уменьшить размер на 1MB ~ 10MB.
👉 Profilo от Facebook - утилита для сбора информации о производительности опубликованного приложения
#UI

Contour

Все кто хочет использовать код для созданию UI в Android, сейчас вариантов не так много:
👉 Anko Layouts - больше не поддерживается
👉 Jetpack Compose - еще не готово
👉 Создавать View через код - мучительно и больно

Представляю вам новую библиотеку - Contour
Она предоставляет typesafe, Kotlin API для сложных layout на Android
#AndroidX #JetpackWeekly

Android Jetpack Weekly #7

Прошедшая неделя была очень богатой на обновления:
👉 Кастомные конструкторы в Fragment - здравствуй Dagger 2 и inject в конструкторы
👉Улучшения в Navigation: dialog target, навигация по uri
👉Новые Kotlin APIs в *-ktx
👉 Улучшения в Preference Framework и Preference из SDK уже deprecated
#AndroidAcademy #Minsk

Сегодня, 9 сентября состоится очередная лекция курса Android Academy Minsk - Android Fundamentals #1 : Hello world. В лекции вы узнаете
👉 Как создать простой Android проект
👉 Базисы работы с ресурсами
👉 Немного о Context и Activity
#Android10 #Security

Project Mainline в Android 10

Обновление устройств и их поддержка - это большая проблема Android. Если вы купили телефон флагман, вы столкнётесь с такой проблемой меньше, но все равно столкнётесь. Купив в этом году Galaxy S10 вы не получите обновления также быстро после выхода Galaxy S11, так как компании нужно продавать свежий флагман. На дешевые телефон компании забивают еще раньше 😔 + этому не способствовал сам Android, так как его ядро было большим монолитом.

Google стала решать эту проблему - «Project Treble» в Android 8 и потом «Project Mainline» в Android 10. Первый разделил ядро ОС на слои, отделив работу с железом в отдельный слой, а второй - позволяет обновлять наиболее критичные компоненты без необходимости перезагрузки устройства и обновления прошивки, аналогично приложениям Google Play.

В статье разбираются детали работы «Project Mainline»
#Kotlin

Unit, Nothing, Any (and null)

Kotlin имеет систему типов отличную от Java - есть понятия nullable типов и специальные типы Any, Nothing и Unit. За что эти типы отвечают, в каких ситуациях применяются и чем отличаются - вы найдете в статье.