#Безопасность
Хранение ключей 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
#Jetpack
When “Compat” libraries won’t save you
Главное отличие Android от iOS в том, что Google обеспечивает поддержку старых версий Android, портируя функционал и добавляя возможность для безопасного вызова нового API.
В Android такие API зачастую называются Compat, но не все они такие, как можно ожидать. В статье разбирается пример NotificationManagerCompat
Подробно проблемы этого API я осветил в видео "Советы по уведомлениям в Android".
Важно: Скажете для iOS проблема неактуальна? Еще как! Многие приложения для iPhone поддерживают одну или две предыдущих версии ОС.
When “Compat” libraries won’t save you
Главное отличие Android от iOS в том, что Google обеспечивает поддержку старых версий Android, портируя функционал и добавляя возможность для безопасного вызова нового API.
В Android такие API зачастую называются Compat, но не все они такие, как можно ожидать. В статье разбирается пример NotificationManagerCompat
Подробно проблемы этого API я осветил в видео "Советы по уведомлениям в Android".
Важно: Скажете для iOS проблема неактуальна? Еще как! Многие приложения для iPhone поддерживают одну или две предыдущих версии ОС.
#Архитектура #Модуляризация
The greatest Android modularization mistake and how to undo it (4 мин на чтение)
Множество старых проектов или стартующих на скорую руку не парились тем, чтобы создавать множество модулей. Когда все начинает упираться в скорость сборки, низкая повторная используемость кода и проблемы с масштабированием при росте команды.
Если сделать модуляризацию проекта неправильно, то от нее можно получить еще больше проблем чем было. В статье разбираются такие ошибки:
👉 Разбитие одного монолитного модуля на несколько монолитных модулей. Да-да! Так случается.
👉 Feature модули знают друг про друга
Что надо делать:
👉 Дробите модули по фичам. Чем модули атомарнее, тем лучше. Только знайте грань
👉 Закрывайте используемые технологи абстракциями, не возвращайте модели для библиотеки (например Room) в другие модули
👉 Делайте модули изолированными друг от друга
The greatest Android modularization mistake and how to undo it (4 мин на чтение)
Множество старых проектов или стартующих на скорую руку не парились тем, чтобы создавать множество модулей. Когда все начинает упираться в скорость сборки, низкая повторная используемость кода и проблемы с масштабированием при росте команды.
Если сделать модуляризацию проекта неправильно, то от нее можно получить еще больше проблем чем было. В статье разбираются такие ошибки:
👉 Разбитие одного монолитного модуля на несколько монолитных модулей. Да-да! Так случается.
👉 Feature модули знают друг про друга
Что надо делать:
👉 Дробите модули по фичам. Чем модули атомарнее, тем лучше. Только знайте грань
👉 Закрывайте используемые технологи абстракциями, не возвращайте модели для библиотеки (например Room) в другие модули
👉 Делайте модули изолированными друг от друга
#Kotlin #Room #Jetpack
Using and testing Room Kotlin APIs
Разбор различных возможностей Room и кода, который генерируется по итогу.
Using and testing Room Kotlin APIs
Разбор различных возможностей Room и кода, который генерируется по итогу.
#Jetpack #Compose
Jetpack Compose Awesome - сборник множества информации по Jetpack Compose:
👉 Документация
👉 Новости
👉 Полезные статьи
👉 Разбор виджетов
👉 Библиотеки
👉 Проекты-примеры
👉 Видео
Jetpack Compose Awesome - сборник множества информации по Jetpack Compose:
👉 Документация
👉 Новости
👉 Полезные статьи
👉 Разбор виджетов
👉 Библиотеки
👉 Проекты-примеры
👉 Видео
How to Use Context Correctly in Android (3 мин)
Любое Android приложение неразрывно связано с Context. Правильно использовать Context с учетом того, что их несколько (
Любое Android приложение неразрывно связано с Context. Правильно использовать Context с учетом того, что их несколько (
Application
, Activity
и другие) надо знать, например не хранить ссылки за пределами жизненных циклов и др.This media is not supported in your browser
VIEW IN TELEGRAM
Иду в гости на канал "Mobile Developer. Поговорим о развитии карьеры разработчика после Senior. Всем будет в прямом эфире. Стрим пройдет завтра, 8 января 2021 в 15:00 по Москве!
#Архитектура #Модуляризация
Ленивая склейка модулей Android-приложения
Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.
Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
Ленивая склейка модулей Android-приложения
Описание способа организация модулей, когда приложения между собой не имеют явной связи и все организовываются между собой через интерфейсы, что позволяет обеспечить легкую заменяемость модулей.
Для решения задачи используется подход Component Holder, приправленный ленивой инициализацией для очистки ненужных зависимостей модулей с помощью GC.
#WorkManager #Jetpack #Kotlin
WorkManager — Kotlin APIs
Разбор Kotlin расширений и поддержки Coroutine в WorkManager
WorkManager — Kotlin APIs
Разбор Kotlin расширений и поддержки Coroutine в WorkManager
#AndroidStudio #DataBinding
Вышла Android Studio Arctic Fox Canary 4
Вышла новая канарейка Android Studio Arctic Fox. Главное новинкой является поддержка StateFlow в Data Binding
Вышла Android Studio Arctic Fox Canary 4
Вышла новая канарейка Android Studio Arctic Fox. Главное новинкой является поддержка StateFlow в Data Binding
#Производительность #UI #RecyclerView
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
Improve UI Performance with Async RecyclerView Layout Loading
История оптимизации производительности RecyclerView с использованием AsyncLayoutInflater, который переносит парсинг XML в View на фоновый поток. Результаты этой оптимизации и как ее реализовывали в статье.
#Архитектура
Separating Features in Android Fragment
Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.
Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.
В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
Separating Features in Android Fragment
Множество приложений используют A/B тестирование, чтобы понять предпочтения пользователей или проверить эффективность новой фичи.
Со стороны разработки множество таких экспериментов, проходящих одновременно, приводит ко множеству условий и изменений поведения приложения как конструктора.
В статье вы найдете взгляд автора как декомпозировать Fragment с несколько фичами
Forwarded from Kotlin Multiplatform Broadcast
#Coroutines
7 Gotchas When Explore Kotlin Coroutine
Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
7 Gotchas When Explore Kotlin Coroutine
Coroutine - это подход в асинхронном программировании, который был непривычен для меня, Android разработчика. В своё время я совершил много ошибок, пока осознавал правильный способ использования этого подхода. В статье приводятся популярные ошибки:
👉 Неверное использование runBlocking
👉 Отмена исполнения Coroutine
👉 Особенности работы из-за structured concurrency
👉 Неверная работа с CoroutineScope
#AndroidBroadcast
📺 Планы Android Broadcast 2021 (21 мин)
Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
📺 Планы Android Broadcast 2021 (21 мин)
Рассказал как остался без работы, что планирую делать дальше и об амбициозных планах на 2021 по развитию Android Broadcast.
#OpenGL
Resources for Learning OpenGL - An Android Developers Guide
Набор полезный книг, ресурсов, курсов и др материал для изучения OpenGL ES и использование его в Android.
Resources for Learning OpenGL - An Android Developers Guide
Набор полезный книг, ресурсов, курсов и др материал для изучения OpenGL ES и использование его в Android.
#AndroidOS
Evolution of Android Update System
Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.
В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
Evolution of Android Update System
Хоть статья не касается напрямую Android разработки, но нужно знать как работаю механизмы ОС и косвенно влияют на работу приложений.
В статье разбираются разные способы того как обновляется Android на вашем телефоне и как эти способы менялись для обеспечения скорости и надежности. Большое внимание уделяется A/B обновлениям, которые уже работают через Google Play
#Coroutines #Performance
Android App Startup Tip: Don’t Use Kotlin Coroutines
2 минут чтения
Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения:
👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти
👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard
👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу
Android App Startup Tip: Don’t Use Kotlin Coroutines
2 минут чтения
Громкое заявление, основанное на тесте с Moto G6 и Android 9. Хочу только описать свою точку зрения:
👉 Moto G6 имеет слабый бюджетный процессор Snapdragon 450 (14 nm) с невысокой скоростью оперативной и постоянной памяти
👉 Тестить производительность стоит только на релизных сборках после применения R8/ProGuard
👉 Готовы ли вы отказатьcя от Coroutine? Я нет! Возвращаться к Rx я не хочу