Size: a a a

Android Broadcast

2020 January 21
Android Broadcast
#ArchitectureComponent #Navigation #BottomNavigation

Beginner’s Guide to Bottom Navigation with Android Jetpack — Part 1

Jetpack Navigation - это решение, предложенное разработчиками из Google для решения сложностей навигации. Самое важное, что Jetpack Navigation это не только API, но и визуальный редактор, а также Safe Args плагин для Gradle, который упрощает передачу аргументов и делает ее безопасной.

В статье разбирается интеграция Jetpack Navigation с Bottom Navigation из Material
источник
Android Broadcast
#ArchitectureComponent

Beginner’s Guide to Bottom Navigation with Android Jetpack — Part 2

Во второй части разбирается:
👉 реализация меню для каждого из Fragment с Bottom Navigation
👉 навигация в глубину и скрытие/показ Bottom Navigation
👉 двойной back для выхода из приложения
источник
Android Broadcast
#Coroutines

DispatcherProvider

Использовать Dispatchers для получения стандартных CoroutineDispatcher напрямую - не самая лучшая практика, так как у вас не будет возможности легко изменить их. Например, это может быть полезно при рефакторинге или написание Unit тестов (мы же все стараемся их писать 😁), когда все выполнение должно происходить синхронно.

Для решения этой задачи обычно рекомендуется использовать свой собственный интерфейс или класс DispatcherProvider (название может отличаться), который содержит ссылки на стандартные CoroutineDispatcher с разницей, что он не является Singletone и доставляется с помощью DI (не всегда) в те места где требуется получение CoroutineDispatcher.

Библиотека решает упростить это, реализовав за вас. Подход интересный и своеобразный. Мне кажется, что автор усложнил концепцию, описанную выше.
источник
Android Broadcast
источник
2020 January 22
Android Broadcast
#Java #Java14

Java 14: записи (records preview)

Android разработка уже переехала на рельсы Kotlin (своей основной массой), но под капотом все равно старая добрая Java и про нее забывать не стоит.

В статье разбирается новая возможность в Java 14 records, которая направлена на упрощение синтаксиса языка. Фактически record - это аналоги data класса из Kotlin.
источник
Android Broadcast
#Gradle #AnnotationProcessing #Performance

Инкрементальный annotation processing для ускорения gradle-сборок

Практически всем в Android разработке приходится сталкиваться с процессингом аннотаций, а в частности kapt. Чтобы этот процесс происходил быстрее нужно выполнение инкрементальной компиляции, т.е. компилировать только необходимый код, а не весь полностью. Эти возможности появились в Gradle 4.7 и Kotlin 1.3.30.

В статье рассматривается теория и эффект от применения этих нововведений подробно:
👉 Как работает инкрементальная компиляция
👉 Инкрементальный annotation processing
👉 Категории процессоров аннотаций
👉 Опыт внедрения incremental annotation processing в hh.ru
👉 Профайлинг инкрементальных сборок
👉 Результаты бенчмарков
👉 Анатомия сборки в Gradle Build Scan
👉 Incremental vs parallel
источник
Android Broadcast
#Analytics #Firebase

Google Analytics vs. Firebase Analytics vs. Google Analytics

У Google слишком много аналитик:
👉 Google Analytics Classic
👉 Google Analytics for Mobile (deprecated)
👉 Google Analytics 360
👉 Firebase Analytics
👉 Google Analytics for Firebase

В чем разница? Зачем постоянные обновления в названиях? Что из этого стоит использовать в современных Android приложениях? Ответы в статье
источник
Android Broadcast
Команда языка Kotlin запустили новый опрос, чтобы вы поделились своим опытом использования языка. Что вам нравится? Что нет? Что вызывает сложности? На все это можно ответить в опросе.

Также вы сможете выиграть призы:
🔥 3 билета на KotlinConf 2020
🔥 20 маек с символикой Kotlin
источник
Android Broadcast
#Новости #Podcast #Kotlin #Multiplatform

Если у вас есть вопросы по Kotlin Multiplatform Mobile - спешите задать их в @android_broadcast_discussions, ведь совсем скоро я буду записывать эпизод "Android Broadcast Podcast" c представителями команды из JetBrains: Анастасией Капаниной (Product Manager Kotlin MPP) и Кириллом Шмаковым (разработчик в Kotlin MPP).
источник
Android Broadcast
#Podcast #Kotlin #Multiplatform

Android Broadcast #3: Kotlin Multiplatform - выходим за рамки Kotlin/Android c IceRock

В ожидании выпуска вы можете послушать другие эпизоды. Например, интересующимся Kotlin MPP подойдет выпуск об опыте разработчиков из компании IceRock о адаптации этой технологии для Android и iOS проектов. Ребята разработали более 10 проектов с ее использованием и говорят уже на реальном опыте применения в production.
источник
2020 January 23
Android Broadcast
#Kotlin

Zero-cost* abstractions in Kotlin

Очень часто приходится сталкиваться в коде с тем, что в виде чисел могут представляться разные по смыслу переменные. Лучший пример - идентификаторы ресурсов в Android. Все это выражается цифрами и передать неправильное значение довольно легко.

Google дала нам решение в виде xxxRes, IntDef, IntRange и др. аннотаций над типами, но это не позволяет избавиться от ошибки во время компиляции.

Как же это решать? Оборачивать все в отдельные классы? Это доп. расход памяти и всех нас учили использовать Java примитивы в предпочтение типам оберткам.

В Kotlin предложили свое решение - inline классы, которые во время компиляции встраивают обернутый объект в место вызова. В статье вы найдет больше подробностей об это возможности языка Kotlin и когда компилятор не может развернуть тип
источник
Android Broadcast
#JUnit #Test

Вышла новая версия JUnit 5.6.0

Основные изменения:
👉 Новый @Enabled/@DisabledForJreRange условия для выполнения теста
👉 Новое API TestInstancePreDestroyCallback для расширений
👉 Улучшение отчетов для крэшей во время поиска/выполнения тестов
👉 Модуляризация Javadoc

Множество других улучшений который вы можете найти в полном описание изменений
источник
Android Broadcast
Какую версию JUnit используете вы?

JUnit 5 (Spek 2 здесь) - 33
👍👍👍 13%
JUnit 4 - 115
👍👍👍👍👍👍👍👍 47%
Не пишу тесты - 83
👍👍👍👍👍👍 34%
Не знаю - 5
👍 2%
Использую другой тестовый framework - 3
👍 1%
Секрет. Но результаты посмотрю - 7
👍 3%
👥 246 человек уже проголосовало.
источник
Android Broadcast
#Gradle #CI #Performance

How fast are your Android CI builds? And why it matters

Android проекты растут и разрабатываются долгое время большими командами. Все разработчики локально страдают от того как собираются долго проекты, но на CI это делается еще дольше так как обычно ему надо сделать:
👉 Скомпилировать код
👉 Прогнать Unit тесты
👉 Запустить статический анализатор KtLint, Detekt, Checkstyle, Android Lint и др.

Все это еще происходит медленнее чем на локальной машине т.к. на сервере выключается Gradle демон, который не имеет смысла на CI, когда собирается много разных ветках или вовсе все в Docker контейнерах.

В статье приводится история ребят, которые вместе с DevOps сели решить проблему долгой сборки проекта (47 минут) и как у них получилось (8 минут)

От себя рекомендую периодически запускать Gradle Build Scan, чтобы проверить где у вас есть проблемные места в сборке.
источник
2020 January 24
Android Broadcast
#Kotlin #DSL #Builder

Builder Pattern vs Kotlin DSL

Когда у класса в конструкторе много параметров, хорошим тоном является использовать паттерн Builder. Но Kotlin может предложить более интересную альтернативу - Kotlin DSL.

В статье разбирается как заменить старый подход новым.
источник
Android Broadcast
Починить, хакнуть, раскопать. Решаем онлайн-квест Droid Mission

В прошлом году Яндекс провел квест для мобильных разработчиков Droid Mission. После подведения итогов можно ознакомиться с решениями задач.

Тематика их абсолютно разная: SQLite, Android SDK, утечки памяти, Java, Android NDK, Dagger, Reverse Engineering и взлом приложений
источник
Android Broadcast
#Dagger

Dagger Browser - простая утилита для навигации по сгенерированному Dagger графу с помощью SPI плагина
источник
Android Broadcast
#Fragment

Android MultiStacks

Популярный дизайн паттерн в Android приложениях Bottom Navigation имеет один недостаток в реализации - в библиотеке AndroidX Fragment нет поддержки множества стеков для каждой вкладки ☹️. Библиотека Android MultiStacks предлагает решение этой проблемы.
источник
2020 January 25
Android Broadcast
#Podcast

Android Broadcast #5: "Как стать крутым разработчиком" с Денисом Неклюдовым

Каково это быть крутым и популярным разработчиком? Когда ты выступаешь на митапах и конференциях, твой голос узнают в подкастах и читают твои статьи. Однозначно интересно! Это дает как профессиональное развитие, так и карьерное продвижение. Как стать таким разработчиком выяснил с Денисом Неклюдовым. Завсегдатый Dev Fest-ов и тайный поклонник Android Academy.

Денис Неклюдов - Android разработчик в Lyft, Google Developer Expert в Android, IoT и Google Pay. Ведущий подкаста "Android Dev Podcast". Чаcтый спикер на конференция Mobius и Apps Conf.

Полезные ссылки:
👉 Android Dev Podcast RU
👉 Android Dev Podcast EN
👉 Android Dev Podcast Telegram
👉 Доклад "Google Ecosystem for Apps. Total Integrations"
👉 Доклад "Переезд: подготовка, выбор, освоение территории"
👉 Доклад "Переезд Vol2. Детальный разбор направлений"
👉 Интервью с Денисом "Об удаленке в Тайланде, переезде в Сингапур, экстраординарной визе в США!"
👉 Отзывы на "90 Seconds"
👉 Анонс курсов по трудоустройству от Дениса и Кати из Подлодки Подкаста
👉 Программа "Google Developer Experts"
👉 Денис на сайте GDE

Контакты:
👉 Кирилл Розов - krl.rozov@gmail.com, t.me/krlrozov
👉 Денис Неклюдов - t.me/nekdenis

Отдельное спасибо Александру Марцинкевичу за помощь в монтаже выпуска
YouTube
"Как стать крутым разработчиком" c Денисом Неклюдовым
Каково это быть крутым и популярным разработчиком? Когда ты выступаешь на митапах и конференциях, твой голос узнают в подкастах и читают твои статьи. Однозначно интересно! Это дает как профессиональное развитие, так и карьерное продвижение. Как стать таким разработчиком выяснил с Денисом Неклюдовым. Завсегдатый Dev Fest-ов и тайный поклонник Android Academy.

Денис Неклюдов - Android разработчик в Lyft, Google Developer Expert в Android, IoT и Google Pay. Ведущий подкаста "Android Dev Podcast". Чаcтый спикер на конференция Mobius и Apps Conf.

Полезные ссылки:
Android Dev Podcast RU - androiddev.apptractor.ru
Android Dev Podcast EN - soundcloud.com/android-dev-podcast
Android Dev Podcast Telegram - t.me/androiddevpodcast

Доклад "Google Ecosystem for Apps. Total Integrations" - youtu.be/PUtifEgE25A
Доклад "Переезд: подготовка, выбор, освоение территории" - youtu.be/TsZ3wiGTMrY
Доклад "Переезд Vol2. Детальный разбор направлений" - youtu.be/B3F3YqJ8SwE
Интервью с Денисом "Об удаленке в Тайланде, переезде в Сингапур…
источник
Android Broadcast
#Android10 #DarkTheme

Dark Mode

Темная тема - одна из самых долгожданных функций в Android 10. Её наличие позволяет сократить расход батареи и уменьшить напряжение на глаза в темных условиях. В видео разбирают как можно адаптировать ваше приложение под темную тему.
источник