Size: a a a

Android Broadcast

2020 January 13
Android Broadcast
#UI #ConstraintLayout

The Essential Components of ConstraintLayout

ConstraintLayout призван создавать сложные иерархию View без необходимости вложений. Возможности о которых вы могли не знать:
👉 Соотношение сторон (замена PercentFrameLayout)
👉 Guideline
👉 Barrier
👉 Group
👉 Chains (замена LinearLayout)
👉 Flow

Эти возможности разбираются в статье, за исключением Flow (про него читайте в отдельной статье)
источник
Android Broadcast
#RxJava #Kotlin

Fundamentals of RxJava with Kotlin for absolute beginners

Хороше интро в мир RxJava на Kotlin:
👉 Что такое RxJava
👉 Создание Observable
👉 Backpressure
👉 Типы emitter: Flowable, Maybe, Single, Completable
👉 Schedulers
👉 Операторы
👉 Disposable - отмена выполнения
👉 Subject = Observable + Observer
источник
2020 January 14
Android Broadcast
#MotionLayout #Animation #AndroidStudio

How to perfect android animations using MotionLayout

MotionLayout привносит совсем новый уровень удобства создания анимаций в Android Studio, создавая их не в коде, а через визуальный редактор. В статье разбирается как сделать анимацию с помощью нового инструмента
источник
Android Broadcast
#WorkManager

When WorkManager Stops Working

Будьте внимательны при использование Work Manager unique work и политики APPEND. Проблема заключается в том, что это политика реализована на цепочках и если одна из задач выполняется с ошибкой, то все последующие не будут выполняться.

Что можно сделать:
👉 Не использовать политику APPEND
👉 Никогда не давать unique work завершаться с ошибкой. Только Success и внутри объект с результатом
👉 Использовать WorkManager.pruneWork()

Ждем когда Google исправит эту досадную реализацию
источник
Android Broadcast
#Gradle #Flake #Test

Introducing flaky test mitigation tools for Gradle

Разработчики из Gradle представили новый плагин Test Retry Gradle Plugin, который повторяет выполнение неудачно выполнившихся тестов заданное количество раз. Flaky тесты отображаются специальным образом в тестовом отчете и Build Scan

Поддерживается следующие тестовые фреймворки:
👉 JUnit4
👉 JUnit Platform (JUnit 5)
👉 Spock
👉 TestNG
источник
2020 January 15
Android Broadcast
#DependencyInjection #Dagger #Fragment

Constructor injection into Fragments with respect of scopes

Android имеет одно неприятное ограничения - основные компоненты должны создаваться только через конструктор по умолчанию. Исключением стал Fragment в AndroidX.Fragment 1.1.0, который позволяет задать кастомную FragmentFactory в FragmentManager. Я уже ранее рассказывал как можно соединить Dagger и Inject в конструкторы Fragment.

В статье вы можете найти как решить проблему, когда у вас есть Dagger Scope и нужно делать inject зависимостей из них.
источник
Android Broadcast
#AndroidAcademy #Minsk #Coroutines

Android Academy Minsk Advanced Topic #0 Coroutines

Android Academy Minsk начинает год с Advanced курса в рамках которого вы сможете узнать о более продвинутых практиках в Android разработке

Начнется курс с рассказа о Kotlin Coroutine. Kotlin изменил Android разработку и вывел ее на новый уровень. Coroutine позволили упростить написание асинхронного кода, сделав ее эффективнее и потребляя меньше ресурсов, а также представив Flow - реактивный подход, который по скорости работы уделывает RxJava 😮 И расскажет об этом всем Йонатан Левин.

Регистрируйтесь! Количество мест ограничено!
Задасто свои вопросы вы можете в @androidacademyminsk

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

Следующим занятием пройдёт воркшоп, который позволит закрепить полученные знания на практике
источник
Android Broadcast
#Security #Networking #OkHttp

How to Prepare Your Android App for a Pentest – Networking Edition

Pentests (penetration testing) - это симуляция кибер атаки на приложение с целью выявления уязвимостей, которые могут быть использованы злоумышленниками.

В статье разбираются такие понятия как TLS, Certificate pinning, Hostname verification, а самое главное интеграция этого в вашего приложения на основе OkHttp.
источник
2020 January 16
Android Broadcast
#UI

Translucent SystemBars the right way — across API levels and themes

Вы уже поддержали в вашем приложении "Edge-to-Edge"? Если нет, то обязательно обратите внимание. Современные устройства со своими огромными экранами и отсутствием рамок позволяют получить наслаждение от такого дизайна в приложениях.

Неотъемлемой частью такого дизайна является работа с системными панелями и задание их прозрачности и цветов. В статье разбирается как это сделать с учетом особенностей Android 5.X, Android 6.0+ и Android 8.0+
источник
Android Broadcast
Разделяете ли вы модели для разных слоев в архитектуре (DB, Network, UI)?
Окончательные результаты
78%
Да
13%
Нет
8%
Зачем это делать?
Проголосовало: 405
источник
Android Broadcast
источник
2020 January 17
Android Broadcast
#Architecture #Coroutines #FLow

Store grand re-opening: loading Android data with coroutines

Android разработчики из New York Times решили закрыть проблем в рекомендуемой архитектуре от Google для Android приложение - Repository. Результатом чего стала библиотека Store 4.0.

В версии 4.0 библиотека также мигрировал с Java и RxJava на Kotlin и Coroutines + Flow.
источник
Android Broadcast
#Binder #IPC

Android Binder Framework

Android Binder - это особенный вид Inter-Process Communication (IPC), разработанная с учетом особенностей мобильных устройств и адаптированная специально под Android.

Почему пришлось заморачиваться? В Android каждое приложение работает в своем собственном процессе, но им необходимо постоянно взаимодействовать с собой, причем эффективно.
источник
Android Broadcast
#Kotlin #typealias

Alter type with typealias

Typealias - это возможность языка Kotlin, которая позволяет вам избавиться от написания длинного типа, например

typealias StringPredicate = (String, String) -> Boolean

Особенность в том, что при компиляции typealias будет заменяться на исходный тип, не создавай ничего дополнительного

Также typealias нашел хорошее применение в Kotlin Multiplatform, где позволяет писать actual типы ссылаясь на уже существующие.

expect annotation class Test
actual typealias Test = org.junit.Test

Единственное, что надо понимать, что если вы увлечетесь и начнете заменять все подряд на typealias, то ваш код может стать сложнее для понимания других разработчиков. Поэтому правила Человека-Паука все еще в силе 😁!

Больше в статье и официальной документации
источник
2020 January 18
Android Broadcast
#Новости

Android Broadcast - это уже не только Telegram канал, но и подкаст. Вы можете найти все выпуски (их пока 4) на множестве площадок. Уже 2 записанных подкаста и находятся на стадии постобработки. Подписывайтесь, что узнать о них первым:
👉 SoundCloud
👉 Google Podcasts
👉 Pocket Casts
👉 Castbox
👉 Apple Podcasts
👉 Spotify
👉 Яндекс Музыка
👉 YouTube
источник
Android Broadcast
Android Broadcast призывает на помощь

Всем привет! Меня зовут Кирилл Розов. Я автор канала "Android Broadcast". Канал заметно вырос с момента своего появления. Проект идет дальше и о Android Broadcast нельзя сказать только в рамках Telegram канала. Сейчас вы уже можете найти видео на YouTube канале и подкасты на SoundCloud, Apple Podcasts, YouTube и др. площадках

За всем этим контентом стоят часы подготовки и часы постобработки. Хочется развиваться активнее и делать больше интересного материала, но в силу того что проект некоммерческий, я не могу уделять ему все свое время. Поэтому хочу обратиться к вам по трём поводам:

1️⃣ Присоединяйтесь к команде Android Broadcast!
Работе в проекте много и пригодятся все ваши навыки, как технические, так и нет. Задач много и разных: графический дизайн, помочь с сайтом. управлением контентом, постобработка записей подкастов. продвижение и др.

Если у вас есть желание помочь, то обязательно пишите

2️⃣ Подписаться на Android Broadcast
Просьба довольна стандартная, но очень важная для создателей контента, так как это позволяет привлекать больше внимание аудитории вне подписчиков и пиарить проект активнее. Подписывайтесь:
👉 Android Broadcast YouTube канал
👉 Android Broadcast Twitter
👉 Персональный Twitter Кирилла Розова
👉 SoundCloud
👉 Google Podcast
👉 Apple Podcasts

3️⃣ Помочь Android Broadcast материально
Проект «Android Broadcast» некоммерческий и все затраты кладутся на мои плечи. Расходы растут с появлением нового контента: подписки на сервисы, оборудование, продвижение и пр. Если вы хотите помочь Android Broadcast, то это можно сделать через Patreon.

Присоединяйтесь и давайте развивать проект для сообщества вместе!

С большим уважением ко всем читателям и благодарность за поддержку, автор "Android Broadcast"
Кирилл Розов
источник
Android Broadcast
#SQLite #Room

SQLite Triggers (+ Android Room)

SQLite - самая популярная БД в мобильных ОС. Почему? Немалую роль сыграло в этом ее встраивание в мобильные ОС и схожесть синтаксиса запросов с SQL. В Android вы также могли слышать о библиотеке Room, которая является ORM для SQLite и значительно упрощает работу с получением данных, а также получением их обновлений через LiveData, RxJava Observable или Coroutines Flow.

В статье автор разбирается в механизме SQLite Trigger и как оповещается об обновление данных в Room.
источник
2020 January 20
Android Broadcast
#TrustedWeb

Introducing android-browser-helper, a library for building Trusted Web Activities

Google представила первую стабильную версию библиотеки Android Browser Helper, цель которой облегчить работу с Trusted Web Activity (TWA). Все это делается уже поверх существующих библиотек из AndroidX.

Руководство по миграции с Chrome Custom Tab на Android Browser Helper
источник
Android Broadcast
#RecyclerView

Zoom Recyler Layout

Куда не заводит только фантазия дизайнеров, чтобы сделать UI приложения красивым и неповторимым. Библиотека "Zoom Recyler Layout" может сделать переключение между элементами списка красивым.

Поддерживается обе ориентации
источник
Android Broadcast
В каком варианте вы предпочитаете читать книги?
Окончательные результаты
44%
Бумажный
43%
Электронный
7%
Не читаю книги
7%
Посмотреть ответы
Проголосовало: 484
источник