#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
#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