Когда провести стрим с подведением итогов 2020 года от Android Broadcast?
Final Results
32%
В этом году
12%
В следующем году
7%
Вообще не надо
29%
Без разницы, смотрю в записи
12%
Лучше текстовый пост
8%
Не участвую в опросе
#SQLite
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
#Performance
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
Вышел LeakCanary 2.6
👉 Отслеживание утечек View из диалогов, после того как те скрываются
👉 Отслеживание утечек Service
👉 Добавлена возможность настройки, какие watcher-ы должны быть установлены по умолчанию
👉 Дамп heap когда экран устройства выключается
👉 Новый артефакт leakcanary-android-release, который используется для анализа heap в релизных билдах (эксперементально). Например, для отправки в аналитику
👉 Plumber: исправление утечек из AOSP
👉 Фиксы багов и минорные улучшения
#UI #Material
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
MAD Skills Material Design Components: Wrap-Up
Подведение итогов третьей темы в MAD Skills - «Material Design Component» (далее MDC).
Что было:
👉 Зачем использовать MDC?
👉 Material тема и ее применения в приложениях
👉 Темная тема
👉 Material Motion
👉 Советы сообщества
👉 Сессия Live Q&A
Помимого видео вы найдете статьи в блоге на Medium и примеры приложений
#Compose #GraphQL
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
Jetpack Compose and GraphQL, a very merry combination!
Jetpack Compose - прекрасный декларативный подход, так горячо ожидаемый Android разработчиками. Да и не только мобильными, ведь Compose - мультиплатформенное решение.
В статье разбирается как совместить работу GraphQL в вариации от Apollo, пагинации и Compose.
Конечно, будет круто, если будет возможность не писать предварительно запросы для Apollo, а чтобы библиотека смогла брать соответствующие названия свойства для GraphQL и собирать запросы динамически во время работы приложения. Пока все в статике, но со временем в Android разработку могут прийти подходы работы с GraphQL как в JS фреймворках.
#Architecture
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
Работа с толстофичами: как разобрать слона на части и собрать обратно
В статье вы найдете
👉 Описание подхода разбиения функциональности приложения на реактивные black box компоненты
👉 Проблемы при разработке больших фич
👉 Декомпозиция фичи на систему реактивных black box на практическом примере из приложения hh
👉 Как связать атомарные фичи в функциональность одного экрана
👉 Преимущества подхода разбиения фич на атомарные реактивные компоненты
👉 Проблемы подхода и возможные пути их решения
Статья показывает практическое использование MVI для декомпозиции бизнес логики приложения, но подход к проектированию системы реактивных компонентов может быть интересен и за пределами MVI.
This media is not supported in your browser
VIEW IN TELEGRAM
VideoLayout - библиотека, которая упростит вам интеграцию видео в UI. В отличие от стандартной VideoView имеет лучшую производительность для видео фонов с меньшим количеством строк.
#AndroidBroadcast
Итоги года для Telegram канала Android Broadcast в инфографике от tgstat. Подробнее здесь
Спасибо всем подписчикам канала, что вы здесь. Ставьте лучики ☀️, чтобы зарядить создателей проекта на будущий год и пишите в личку @krlrozov, если есть что сказать больше
Итоги года для Telegram канала Android Broadcast в инфографике от tgstat. Подробнее здесь
Спасибо всем подписчикам канала, что вы здесь. Ставьте лучики ☀️, чтобы зарядить создателей проекта на будущий год и пишите в личку @krlrozov, если есть что сказать больше
Android — Keeping Release and Debug Installed All the Time
Тестируете приложение на личном устройстве? Для самого помню какая это боль когда разрабатываешь и пользуешься приложением в жизни. Приходится искать второе устройство (хорошая компания обычно предоставляет) либо использовать эмулятор.
Самый простой способ делать тестирование и не сносить релиз - сделать разные application id для разных типов сборок. Главное не забывайте класть ресурсы в нужную папку, правильно настроить все сторонние интеграции (Firebase, HMS, GMS и пр.)
Тестируете приложение на личном устройстве? Для самого помню какая это боль когда разрабатываешь и пользуешься приложением в жизни. Приходится искать второе устройство (хорошая компания обычно предоставляет) либо использовать эмулятор.
Самый простой способ делать тестирование и не сносить релиз - сделать разные application id для разных типов сборок. Главное не забывайте класть ресурсы в нужную папку, правильно настроить все сторонние интеграции (Firebase, HMS, GMS и пр.)
#Architecture #Navigation #Jetpack
Navigation Component-дзюцу, vol. 4 – Переоценка
Не так давно вышла серия статей «Navigation Component-дзюцу» из 3 частей, где автор рассказал о куче проблема с Navigation Arch Component и как команда боролась с ними.
После "Навигационной битвы" на YouTube канале Android Broadcast Влад помог Паше, автору статьи, решить проблемы с которыми они столкнулись. В четвертой части статьи вы найдете пересмотр костылей и как правильно стоило все использовать, чтобы убрать кучу лишнего кода.
Navigation Component-дзюцу, vol. 4 – Переоценка
Не так давно вышла серия статей «Navigation Component-дзюцу» из 3 частей, где автор рассказал о куче проблема с Navigation Arch Component и как команда боролась с ними.
После "Навигационной битвы" на YouTube канале Android Broadcast Влад помог Паше, автору статьи, решить проблемы с которыми они столкнулись. В четвертой части статьи вы найдете пересмотр костылей и как правильно стоило все использовать, чтобы убрать кучу лишнего кода.
#IntelliJ
В IntelliJ IDEA 2020.3.1 добавлена поддержка Apple Silicon
Новый релиз любимой IDE помимо фиксов багов в 2020.3 привнёс поддержку Apple Silicon. Все кто уже успел купить Mac на новых процессорах возрадуйтесь.
В IntelliJ IDEA 2020.3.1 добавлена поддержка Apple Silicon
Новый релиз любимой IDE помимо фиксов багов в 2020.3 привнёс поддержку Apple Silicon. Все кто уже успел купить Mac на новых процессорах возрадуйтесь.
This media is not supported in your browser
VIEW IN TELEGRAM
#AndroidBroadcast
Этот год выдался очень необычным и непривычным для всего мира и IT индустрии в частности. Многим из нас пришлось перебраться домой и работать удаленно. Тусовки сообщества трансформировались из оффлайн посиделок в онлайн. И я думаю, что это сделало нас крепче и глобальнее.
В новом году желаю тебе всего самого наилучшего, возвращения оффлайн формата, профессионального и карьерного роста! Ты лучший(ая)!
2021 - это год Android Broadcast. Для меня проект уже стал основным занятием, которое я буду развивать намного активнее. Новые форматы, контент и пользу русскоязычному сообществу.
Спасибо всем тем кто писал добрые слова и поддерживал проект, моя уверенность в проекте и новый шаг в его развитии - это отчасти ваша заслуга.
Кирилл Розов, создатель Android Broadcast
Этот год выдался очень необычным и непривычным для всего мира и IT индустрии в частности. Многим из нас пришлось перебраться домой и работать удаленно. Тусовки сообщества трансформировались из оффлайн посиделок в онлайн. И я думаю, что это сделало нас крепче и глобальнее.
В новом году желаю тебе всего самого наилучшего, возвращения оффлайн формата, профессионального и карьерного роста! Ты лучший(ая)!
2021 - это год Android Broadcast. Для меня проект уже стал основным занятием, которое я буду развивать намного активнее. Новые форматы, контент и пользу русскоязычному сообществу.
Спасибо всем тем кто писал добрые слова и поддерживал проект, моя уверенность в проекте и новый шаг в его развитии - это отчасти ваша заслуга.
Кирилл Розов, создатель Android Broadcast
Вышел ViewBindingPropertyDelegate 1.4.0
Что нового:
👉 Поддержка ViewHolder и ViewGroup
👉 Упрощение использования viewBinding в Activity
👉 Больше поддержки inflate в различных компонентах
👉 Улучшение производительности при использовании рефлексии
👉 Минорные улучшения и исправления
Что нового:
👉 Поддержка ViewHolder и ViewGroup
👉 Упрощение использования viewBinding в Activity
👉 Больше поддержки inflate в различных компонентах
👉 Улучшение производительности при использовании рефлексии
👉 Минорные улучшения и исправления
Forwarded from Kotlin Multiplatform Broadcast
#JVM
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
Tonnes of fun with Kotlin
Kotlin упростил жизнь разработчиков, закрыв множество кода от глаз, генерируя его. Но не всегда так очевидно и нужно быть внимательным:
👉 Extention функции не всегда статические методы
👉 Inline классы не всегда встраиваются в код, а используются как обычные классы
👉 Неочевидное перекрытие имен c extention функциями и обычными
👉 Особенности работы методов по умолчанию в интерфейсах неочевидны в каждом случае
#Performance #Jetpack
Отключаем Jetifier и ускоряем сборку: опыт Тинькофф.Бизнес
Переход с Android Support Library на Jetpack сопровождался необходимостью включения утилиты Jetifier, которая трансформировала старые библиотеки в новые. Зачем это надо было делать? Без этого проект вовсе бы не собрался.
С момента перехода прошло уже больше 2 лет, но не все разработчики в своих продуктах отключили эту утилиту, хотя вполне возможно в Support библиотек уже и нет в проекте.
В статье приводится:
👉 инструкция как проверить ваш проект
👉 что сделать со сторонними библиотеками, которые не выполнили миграцию
👉 Сравнение скорости сборки проекта с и без Jetifier
Отключаем Jetifier и ускоряем сборку: опыт Тинькофф.Бизнес
Переход с Android Support Library на Jetpack сопровождался необходимостью включения утилиты Jetifier, которая трансформировала старые библиотеки в новые. Зачем это надо было делать? Без этого проект вовсе бы не собрался.
С момента перехода прошло уже больше 2 лет, но не все разработчики в своих продуктах отключили эту утилиту, хотя вполне возможно в Support библиотек уже и нет в проекте.
В статье приводится:
👉 инструкция как проверить ваш проект
👉 что сделать со сторонними библиотеками, которые не выполнили миграцию
👉 Сравнение скорости сборки проекта с и без Jetifier
Demystifying Locale on Android
Как только вам нужно работать с датами и зонами времени, языками или форматированием то класс Locale
В статье разбирается что это такой за класс, что он из себя представляет и особенности работы c локализацией в Android.
Также вас ждет разбор основных ошибок разработчиков:
👉 Ошибки при работе cо строками из библиотек
👉 Разница между системной локалью и Locale.getDefault(). Правильно использовать
👉 Опасайтесь WebView.
Как только вам нужно работать с датами и зонами времени, языками или форматированием то класс Locale
В статье разбирается что это такой за класс, что он из себя представляет и особенности работы c локализацией в Android.
Также вас ждет разбор основных ошибок разработчиков:
👉 Ошибки при работе cо строками из библиотек
👉 Разница между системной локалью и Locale.getDefault(). Правильно использовать
ConfigurationCompat.getLocales(Resources.getSystem().configuration)[0]👉 Опасайтесь WebView.
#Безопасность
Retrieve Data From Android Devices Without Rooting
Демонстрация как можно вытащить приватные данные пользователя если разработчик не опирается на все практики.
Потенциальной угрозой является система бэкапа в Android. Разработчик должен настраивать что сохранять туда, а что нет.
Retrieve Data From Android Devices Without Rooting
Демонстрация как можно вытащить приватные данные пользователя если разработчик не опирается на все практики.
Потенциальной угрозой является система бэкапа в Android. Разработчик должен настраивать что сохранять туда, а что нет.
This media is not supported in your browser
VIEW IN TELEGRAM
#MotionLayout #Анимация
Motion Layout Playground - репозиторий с примерами UI и переходов, построенных на основе MotionLayout. В примере используется MotionLayout 2.1.0 (еще в стадии альфа), но часть анимаций работают и на текущей стабильной версии.
Motion Layout Playground - репозиторий с примерами UI и переходов, построенных на основе MotionLayout. В примере используется MotionLayout 2.1.0 (еще в стадии альфа), но часть анимаций работают и на текущей стабильной версии.
#Безопасность
Хранение ключей API в нативном коде
Развеивание мифа, что хранение ключей в нативном коде надежный способ обезопасить их от злоумышленников. Рассматривается несколько способ хранения и как взламывается нативный код.
Автор канала Android Guards побывал в гостях Android Broadcast (запись здесь), где мы составили карту защиты Android приложения.
Хранение ключей API в нативном коде
Развеивание мифа, что хранение ключей в нативном коде надежный способ обезопасить их от злоумышленников. Рассматривается несколько способ хранения и как взламывается нативный код.
Автор канала Android Guards побывал в гостях Android Broadcast (запись здесь), где мы составили карту защиты Android приложения.
Android Developer Reference - репозиторий со множеством сгруппированных по темам статей.
#AndroidBroadcast #ЛучшиеПрактики
▶️ Избавляемся от try-catch (17 мин)
Новое видео на канале Android Broadcast. Рассказываю как я сделал решение, чтобы избавить от try-catch и безопасно обрабатывать ошибки. Решение интегрировано с Retrofit, а также может быть использовано в других асинхронных операциях.
Ставьте лайки видео и подписывайтесь на канал. Также буду рад вашей обратной связи, ведь видео снимал в подготовленной студии и на новую камеру. Пишите в @android_broadcast_talks
▶️ Избавляемся от try-catch (17 мин)
Новое видео на канале Android Broadcast. Рассказываю как я сделал решение, чтобы избавить от try-catch и безопасно обрабатывать ошибки. Решение интегрировано с Retrofit, а также может быть использовано в других асинхронных операциях.
Ставьте лайки видео и подписывайтесь на канал. Также буду рад вашей обратной связи, ведь видео снимал в подготовленной студии и на новую камеру. Пишите в @android_broadcast_talks