Size: a a a

Android Broadcast

2020 June 16
Android Broadcast
#Gradle #Performance

10 Tips to Speed Up Android Gradle Build Times

Автор даёт 10 простых советов как ускорить время сборки вашего приложения. В статье приводится инфографика влияния того или иного изменения на время сборки, поэтому вы сможете выбрать наиболее подходящие для себя.

После применения всех рекомендаций результаты были следующими:
👉 Время полной сборки сократилось с 59 до 19 секунд, почти в три раза.
💥 Время инкрементальной сборки после изменения кода сократилось с 24 до 2 секунд, в 12 раз!
👉 Время инкрементальной сборки после изменения ресурсов сократилось с 15 до 4.5 секунд
источник
Android Broadcast
Используете ли вы kts для gradle файлов?
Анонимный опрос
58%
Не использую
22%
Использую в build.gradle
11%
Использую в settings.gradle
3%
Использую в init.gradle
7%
Использую в прочих gradle скриптах (script plugins)
Проголосовало: 1114
источник
Android Broadcast
#GooglePlay

История одной блокировки и разблокировки в Google Play

Статья от Skyeng о том, как из-за неудачной картинки на скриншоте, или из-за таких слов как «вакцина» и «лёгкие» потенциально можно получить блокировку аккаунта разработчика, а так же советы, как не попасть в такую ситуацию.
источник
Android Broadcast
#Testing

Using Fakes To Test Reactive Flows

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

В статье рассматривается альтернативный подход к созданию зависимостей для тестирования через создание fake-имплементаций и его преимущества.
источник
2020 June 17
Android Broadcast
#MotionLayout

MotionLayout: Visibility

Небольшая статья о тонкостях MotionLayout, с которой столкнулся автор. По этому инструменту пока ещё доступно не так много информации в сети, поэтому те кто начинают его использовать сталкиваются с не очевидным поведением.

Автор показывает на примере как можно управлять видимостью объектов внутри MotionLayout и как решить ситуацию, если у вашего Layout'а пропали все View.
источник
Android Broadcast
#Architecture #LiveStream

Все тайны MVI

Когда: 18 июня, ЧТ, 20:00 (GMT+3)
Где: YouTube канал Android Broadcast

Обсуждаем паттерн MVI от начала и до конца:
👉 в чем отличие
👉 преимущества
👉 как эффективно построить свое приложение с ним и 👉 почему для Jetpack Compose - это лучшая архитектура.

Делиться опытом будет Lead Android Engineer из Badoo - Аркадий Иванов, который на работе использует MVI, а также написал собственную библиотеку MVIKotiln.
Также вы могли слышать о нем по его библиотеке Reaktive - реализация Reactive Extensions на чистом Kotlin
источник
Android Broadcast
#JetpackCompose

Compose Academy

Jetpack Compose - современный набор инструментов для построения нативного Android UI с использованием декларативного подхода. Включает в себя несколько модулей (core, layout, material, wrappers and adapters for views, animation, test и другие).

На сайте Compose Academy можно найти практические примеры использования различных аспектов Jetpack Compose. Пока примеров немного, но достаточно для первого ознакомления. Автор обещает постепенно добавлять новые.
источник
Android Broadcast
#R8 #Proguard

How to break your Android App with ProGuard / R8

Такие оптимизаторы кода как ProGuard и R8 весьма полезны. Они помогают сократить не используемый код и ресурсы, произвести оптимизацию и обфускацию байт-кода.

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

Автор статьи рассказывает, как он встретил одну из таких ошибок у себя в приложении, пытался найти источник ее возникновения и в итоге нашел причину в правиле для оптимизации кода. В статье описано, как так получилось, что методы wait, nofify и nofifyAll класса Object были неявно помечены как не имеющие side-эффектов и были удалены при оптимизации.

Также в статье упомянуто issue, по результатам которого в новых версиях решили вызывать ошибку компиляции при наличии такого правила.
источник
2020 June 18
Android Broadcast
#Dagger #Hilt

Dependency Injection on Android with Hilt

Dagger Hilt - новая библиотека от Google, которая уже успела наделать шуму. В статье показывается как использовать новинку в проекте

Внимание: библиотека еще в альфа стадии
источник
Android Broadcast
Основные аннотации Hilt и их использование
источник
Android Broadcast
#FirebaseML #MLKit #MachineLearning

Машинное обучение для мобильных разработчиков вместе с Firebase ML

Машинное обучение становится все более востребованным. Google прилагает много усилий для того, чтобы развивать эту область. Также стремится предоставить разработчикам любого уровня познаний в машинном обучении возможность его использовать. В том числе и в мобильных приложениях.

Созданный ранее для этих целей проект ML Kit for Firebase, разделили на два отдельных продукта и обновили ML Kit SDK.

В статье подробнее описано для чего предназначен Firebase ML и ML Kit
источник
Android Broadcast
#Android11

New Android R Important Changes

Достаточно много материалов вышло в последние дни о будущей версии Android, и еще не меньше выйдет. Ребята в своей статье рассматривают достаточно интересные фишки:
👉 Одновременное использование нескольких камер устройства, например даже фронтальную и основную одновременно (хотя такая фишка у меня уже была на Nokia 7 Plus)
👉 Замена API Wi-Fi сканирования
источник
Android Broadcast
#MemoryLeak

Practical Guide To Solve OutOfMemoryError in Android Application

Утечки памяти и, как следствие, OutOfMemoryError - больное место как для начинающего, так и для опытного Android разработчика. Основная проблема состоит в том что подобного рода ошибки не так очевидны и их сложно сразу отследить. Наиболее частые причины возникновения:
👉 Использование static Context, View или Activity
👉 Зарегистрированные, но не актуальные Listener'ы
👉 Использование getContext() вместо getApplicationContext() там где это необходимо
👉 Не статичные вложенные классы

В статье подробно рассказывается обо всех этих причинах, приводятся примеры подобных утечек и рассказывается как их избегать.
источник
2020 June 19
Android Broadcast
#JetpackCompose

Why do we need Jetpack Compose?

Приложения для Android успешно разрабатываются уже больше 10 лет, для чего же нам понадобился новый UI-фреймворк?

в статье рассматриваются недостатки имеющегося подхода:
👉 инструментарий 10-летней давности, когда на телефонах решались совсем другие задачи
👉 иерархия наследования с базовым классом View c десятками тысяч строк кода
👉 является частью ОС, что делает невозможным исправление ошибок без обновления прошивок
👉 нет поддержки Material Design, представленного позже

а также преимущества Jetpack Compose:
🔥 современные язык, парадигмы и инструменты. Для описания UI используется Kotlin, подходы взяты из таких UI-фреймворков как React и Flutter, полная поддержка со стороны Android Studio
🔥 единый источник правды. Больше ваш UI не будет отображать неактуальное состояние
🔥 команда разработки уделила особое внимание производительности фреймворка
🔥 поддержка Material Design из коробки
🔥 совместимость с имеющейся UI-иерархией
источник
Android Broadcast
#Розыгрыш

Разыграли билет на онлайн-конференция Podlodka Android Crew. Поздравляю победителя @ValeryBoretsky

Для тех кто не попал, то можете купить билет на сайте. Уже доступна расписание и всю следующую неделю будут говорить об архитектуре приложений. На сайте уже доступно расписание сессий.

Видео запись с розыгрышем
источник
Android Broadcast
#Android11 #Jetpack #UI

Screens - Large, Small and Foldable
Продолжительность 16 минут

Современная Android разработка подразумевает поддержку устройств с разными типами и размерами экранов, а также режимами отображения окон: мобилки, планшеты (они живы?), десктопы (Chrome OS), складываемые устройства а также многооконность

В видео рассказывается:
👉 Почему верстка должна быть адаптивной
👉 Хорошие практики для расположения элементов
👉 Jetpack Window Manager
👉 Android Compatibility Definition Document - документ с требованиями для Android устройств, где можно найти информацию о возможных конфигурациях, включая размеры экрана, окон в разных режимах и т.д.
👉 Возможность задать свои ограничения для конфигурации окон
👉 Эмуляторы, на которых можно тестировать разные конфигурации
👉 Deprecated APIs по работе с Display и WindowManager
👉 Новые APIs, в том числе новый класс WindowMetrics
источник
Android Broadcast
#Dagger

В Dagger появится Assisted Inject

Для тех кто не знает - это возможность добавлять параметры в конструкторы или методы, которых нет в графе, и предоставлять их через фабрики.

Подобную реализацию уже сделал Jake Wharton. AssistedInject on Square
источник
Android Broadcast
#Meetup #Online #Android11

Android 11: что нового?
Продолжительность: ~ 2 часа

Завтра, 20 июня в 12:00(GMT+3) пройдет митап по новинкам в Android 11, совместно организованный GDG группами Брянска и Калуги. Вас ждет 3 доклада:
👉 Изменения в Privacy / Федор Цымбал
👉 Новинки WindowInsets и анимации клавиатуры / Иван Баранов
👉 Обзор Notification Bubbles / Инесса Бухонова

Зарегистрироваться нужно 👉 тут
источник
Android Broadcast
#UI #Framework

Litho: лучшие практики для создания эффективного UI в Android

Многие слышали о Jetpack Compose, но не все знают, что уже давно существует конкурент от Facebook под названием Litho, который представляет собой фрэймворк, позволяющий создавать UI в декларативном стиле в коде. Причем его уже можно использовать в Production!

Основные преимущества этого фрэймворка:
👉 Все вычисления происходят вне UI потока в него передаётся лишь Draw
👉 Значительный прирост в производительности при отрисовке UI
👉 Интерфейс более плоский, потому что сокращается уровень вложенности Layout'ов

При этом существует и ряд недостатков:
⛔ Плохая интеграция с Android Studio
⛔ Нет поддержки в UI Preview
⛔ Интеграция с Kotlin всё ещё в разработке

Если же достоинства превосходят недостатки, то для вас статья от Сергея Рябова, разработчика Litho, в ней он постарался раскрыть большинство аспектов фреймворка.
источник
2020 June 20
Android Broadcast
#Conference #Online

DevParty Russia!

В субботу, 27 июня, ждём на 15-часовую бесплатную онлайн-конференцию DevParty от GDG Russia. Все начнется в 5 утра по московскому времени, встретим рассвет в Владивостоке, а завершим день и проводим закат в Калининграде. И все это в прямой трансляции!

В программе вас ждут:
- 3 потока (Mobile, Web, Cloud)
- 45 спикеров из более чем 10 стран
- 33 комьюнити GDG со всей России
- GDE по всем направлениям

В мобильном треке вас ждет 15 докладов от спикеров из Lyft, Avito, JetBrains, EPAM Systems, Replika.ai, Тинькофф, MERA, Surf и других компаний.
источник