#SVG
Very long vector path
Сталкивались с тем что Android Lint жалуется на слишком большой VectorDrawable у вас в ресурсах? Всё верно! Авторы фреймворка задумывались и VectorDrawable как о легком варианте иконок, а не сложных графических ресурсах.
В статье автор показывает проблемы и предлагает несколько утилит для оптимизации SVG:
👉 Avocado
👉 Svgo
👉 Svgomg
Также как вариант может сработать взять стандартную Material иконку не ту, которую дал дизайнер, а добавить из пресета Android Studio. Дизайнеры берут вариант SVG, который неоптимизирован для Android VectorDrawable, а в AS лежат оптимальные.
Very long vector path
Сталкивались с тем что Android Lint жалуется на слишком большой VectorDrawable у вас в ресурсах? Всё верно! Авторы фреймворка задумывались и VectorDrawable как о легком варианте иконок, а не сложных графических ресурсах.
В статье автор показывает проблемы и предлагает несколько утилит для оптимизации SVG:
👉 Avocado
👉 Svgo
👉 Svgomg
Также как вариант может сработать взять стандартную Material иконку не ту, которую дал дизайнер, а добавить из пресета Android Studio. Дизайнеры берут вариант SVG, который неоптимизирован для Android VectorDrawable, а в AS лежат оптимальные.
#Material #UI
Вышла Material Component 1.3.0
В новой версий библиотеки вас ждёт:
👉 Виджет Time Picker
👉 Виджеты для отображения прогресса: линейный и круговой
👉 Исправление багов
Вышла Material Component 1.3.0
В новой версий библиотеки вас ждёт:
👉 Виджет Time Picker
👉 Виджеты для отображения прогресса: линейный и круговой
👉 Исправление багов
#Security
Android Nesting Intents
Intent вложенный в другой Intent может стать уязвимостью вашего приложения. Проблема заключается в том что вы можете положить Intent, который должен запустить компонент вашего приложения, а это возможно только если он будет публично доступен (в манифесте стоит exported=“true”) либо открыт доступ приложениям подписанным таким же ключом как у вас.
Решением является использование PendingIntent, который в отличие от Intent всегда выполняет в Context в котором он был создан т.е. вызов будет происходить как будто все происходит внутри вашего приложения. Тем самым вам не придется открыть чего либо наружу. Заметили что все системные API принимают именно PendingIntent, а не Intent?
Android Nesting Intents
Intent вложенный в другой Intent может стать уязвимостью вашего приложения. Проблема заключается в том что вы можете положить Intent, который должен запустить компонент вашего приложения, а это возможно только если он будет публично доступен (в манифесте стоит exported=“true”) либо открыт доступ приложениям подписанным таким же ключом как у вас.
Решением является использование PendingIntent, который в отличие от Intent всегда выполняет в Context в котором он был создан т.е. вызов будет происходить как будто все происходит внутри вашего приложения. Тем самым вам не придется открыть чего либо наружу. Заметили что все системные API принимают именно PendingIntent, а не Intent?
#Dagger #Koin #Hilt
How Dagger, Hilt and Koin differ under the hood?
Сравнение подкапотной работы популярнейших решений для DI на Android, а также их преимуществ и производительности
How Dagger, Hilt and Koin differ under the hood?
Сравнение подкапотной работы популярнейших решений для DI на Android, а также их преимуществ и производительности
#конференция #cfp
Конференция по мобильной разработке Mobius ищет спикеров!
Если вы давно хотели поделиться с профессиональным сообществом полезными знаниями и заодно устроить себе челлендж, но все ждали знака — это он. Пришлите заявку, пройдите отбор и выступите в прямом эфире Mobius 2021 Piter, который пройдет 13-16 апреля.
Больше всего ждут следующие темы:
👉 Платформы под капотом
👉 Software Craftsmanship
👉 Архитектура;
👉 Качество продукта;
👉 Тренды в мобильной разработке
👉 Инфраструктура
Но этим списком не ограничивается — вы можете подать заявку с любой темой из области мобильной разработки. Если у вас мало опыта публичных выступлений или вы сомневаетесь в своей теме, все равно подавайте. Программный комитет конференции поможет подготовить материал и выступление, а также улучшить ваши ораторские навыки.
Заявки принимаются до 16 февраля. Вопросы присылайте @OksanaMiroshnichenko
Конференция по мобильной разработке Mobius ищет спикеров!
Если вы давно хотели поделиться с профессиональным сообществом полезными знаниями и заодно устроить себе челлендж, но все ждали знака — это он. Пришлите заявку, пройдите отбор и выступите в прямом эфире Mobius 2021 Piter, который пройдет 13-16 апреля.
Больше всего ждут следующие темы:
👉 Платформы под капотом
👉 Software Craftsmanship
👉 Архитектура;
👉 Качество продукта;
👉 Тренды в мобильной разработке
👉 Инфраструктура
Но этим списком не ограничивается — вы можете подать заявку с любой темой из области мобильной разработки. Если у вас мало опыта публичных выступлений или вы сомневаетесь в своей теме, все равно подавайте. Программный комитет конференции поможет подготовить материал и выступление, а также улучшить ваши ораторские навыки.
Заявки принимаются до 16 февраля. Вопросы присылайте @OksanaMiroshnichenko
Publishing to Maven Central
После объявление о закрытие JCenter стали как никогда актуальны статьи о переезде в Maven Central и их посыпалось как из ведра. В статье рассматривается публикация артефактов, автоматизация процесса и примеры
После объявление о закрытие JCenter стали как никогда актуальны статьи о переезде в Maven Central и их посыпалось как из ведра. В статье рассматривается публикация артефактов, автоматизация процесса и примеры
Автор создал новый технический контент в несколькких форматах. Что предпочитаете вы?
Final Results
61%
Читать статью
25%
Смотреть видео
4%
Слушать видео
5%
Слушать подкаст
5%
Не участвую в опросе
#AndroidBroadcast #Новости
Новостной дайджеcт для Android разработчиков #3
Еженедельный дайджест успел стать традицией. Что вас ждёт в выпуске:
👉 Kotlin 1.4.30
👉 kotlinx.serialization 1.1.0-RC
👉 Material Components 1.3.0
👉 JFrog закрывают JCenter
👉 ProGuard Playground
👉 Kotlin Coroutines и JVM потоки
👉 Адаптируем ваши приложения для Android 11 с учётом изменений приватности
👉 Hilt и миграция на него
👉 Dagger vs Hilt vs Koin под капотом
👉 7 простых ошибок использования Fragment
👉 Публичная Beta Harmony OS 2.0
👉 Первый независимый смартфон Honor
Поддержи Android Broadcast, что сделать его круче и регулярнее!
Новостной дайджеcт для Android разработчиков #3
Еженедельный дайджест успел стать традицией. Что вас ждёт в выпуске:
👉 Kotlin 1.4.30
👉 kotlinx.serialization 1.1.0-RC
👉 Material Components 1.3.0
👉 JFrog закрывают JCenter
👉 ProGuard Playground
👉 Kotlin Coroutines и JVM потоки
👉 Адаптируем ваши приложения для Android 11 с учётом изменений приватности
👉 Hilt и миграция на него
👉 Dagger vs Hilt vs Koin под капотом
👉 7 простых ошибок использования Fragment
👉 Публичная Beta Harmony OS 2.0
👉 Первый независимый смартфон Honor
Поддержи Android Broadcast, что сделать его круче и регулярнее!
#Dagger
Вышел Dagger 2.32
👉 В
👉 Исправление багов в генерации
Hilt
👉 Новый метод
👉
👉 Удалили deprecated
👉 Исправили работу с Android Gradle Plugin 4.2.0-beta04
Вышел Dagger 2.32
👉 В
AssistedFactory теперь надо явно задавать имена для аргументов, которые имеют одинаковый тип👉 Исправление багов в генерации
AssistedFactoryHilt
👉 Новый метод
delayComponentReady() в HiltAndroidRule, который позволяет инициализировать компоненты в тестах до запуска выполнения теста👉
HiltAndroidRule теперь требует чтобы inject() вызывался не более одного раза в тесте👉 Удалили deprecated
ApplicationComponent👉 Исправили работу с Android Gradle Plugin 4.2.0-beta04
#Архитектура #Модуляризация
Modularization of Android Applications in 2021
Модуляризация Android приложений уже никого не удивишь. Тему замусолили вдоль и поперёк, кто-то интегрировал к себе, кто-то забил. Ребята из Касперского развивают свой опыт про модуляризацию и раскрывают различные аспекты:
👉 Принципы разделения модулей
👉 Модуляризация с явной инициализацией
👉 Модуляризация с отложенной инициализацией модулей
Modularization of Android Applications in 2021
Модуляризация Android приложений уже никого не удивишь. Тему замусолили вдоль и поперёк, кто-то интегрировал к себе, кто-то забил. Ребята из Касперского развивают свой опыт про модуляризацию и раскрывают различные аспекты:
👉 Принципы разделения модулей
👉 Модуляризация с явной инициализацией
👉 Модуляризация с отложенной инициализацией модулей
#AndroidBroadcast
Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)
В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.
Подключайтесь чтобы послушать и задавать свои вопросы
Ktor: микросервисы, веб приложения и клиенты в одном фреймворке (Livestream)
Сегодня в 19.00 (GMT+3)
В гости Android Broadcast приходит Леонид Сташевский - Tech Lead проекта Ktor из JetBrains. Мы обсудим с ним Ktor, его особенности и будущее.
Подключайтесь чтобы послушать и задавать свои вопросы
#Kotlin
Announcing Kotlin Symbol Processing (KSP) Alpha
С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу
Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
Announcing Kotlin Symbol Processing (KSP) Alpha
С переходом нового компилятора Kotlin в Beta статус плагины компилятора тоже развиваются. Помните Kotlin Symbol Processing (KSP), которая призвана ускорить генерацию кода в Kotlin проектах, заменив KAPT? Так вот она перешла в альфу
Статус поддерживаемых библиотек сейчас можно найти здесь, а также добавить те, которые важны вам. Сейчас адаптацию пока начали делать только в Room.
#Jetpack
Обновление Android Jetpack от 10.02.2021
Новая неделя принесла нам целую кучу нового функционала в стабильных версиях:
👉 Новое Activity Result API
👉 Рефакторинг внутренностей Fragment
👉 Новое API для передачи/получения результата между Fragment
👉 Улучшения работы с Lifecycle
👉 Возможность получать LifecycleOwner, ViewModelStoreOwner из View
👉 Deprecation onAttachFragment(), FragmentViewPager, Fragment.setRetainInstance() и др. API
Подробности изменений на сайте developer.android.com
Обновление Android Jetpack от 10.02.2021
Новая неделя принесла нам целую кучу нового функционала в стабильных версиях:
👉 Новое Activity Result API
👉 Рефакторинг внутренностей Fragment
👉 Новое API для передачи/получения результата между Fragment
👉 Улучшения работы с Lifecycle
👉 Возможность получать LifecycleOwner, ViewModelStoreOwner из View
👉 Deprecation onAttachFragment(), FragmentViewPager, Fragment.setRetainInstance() и др. API
Подробности изменений на сайте developer.android.com
Как вы относитесь к утечкам? Наприсер скриншоты Android 13
Anonymous Poll
43%
Смотрю, но не воспринимаю как важную информацию до анонса
12%
Верю проверенным источникам
30%
Не смотрю
2%
Другое
12%
Не участвую в опросе
Quality to match with your user’s expectations
На сайте developers.android.com появился новый раздел "App Quality", содержащий ключевые аспекты качественного Android приложения.
В первом релизе вы найдете:
👉 UI/UX
👉 Функциональность
👉 Производительность и стабильность
👉 Приватность и безопасность
👉 Google Play
На сайте developers.android.com появился новый раздел "App Quality", содержащий ключевые аспекты качественного Android приложения.
В первом релизе вы найдете:
👉 UI/UX
👉 Функциональность
👉 Производительность и стабильность
👉 Приватность и безопасность
👉 Google Play
Early Access Program for Qodana, a New Product That Brings the “Smarts” of JetBrains IDEs Into Your CI Pipeline
IDEA помимо хорошего функционала по навигацию и рефакторинга кода содержит внутри себя множество проверок кода на разных языках - статический анализ. Использовать их отдельно от IDEA не представляется возможным, но новый продукт от JetBrains это делает. Встречайте Qodana!
Проект состоит из 2 частей: ядро IDEA без GUI для использования на CI как линтера и интерактивный Web UI для отчётов.
Посмотреть примеры работы можно на qodana.beta.teamcity.com (логинтесь как гость) и в любом проекте открывает таб "Qodana".
Использовать Qodana можно через Docker образ, GitHub Action, плагин для TeamCIty или как облачный сервис.
После такого понадобятся ли нам Detekt, Ktlint и прочие анализаторы кода? Как минимум нужен локальный Gradle плагин ещё
IDEA помимо хорошего функционала по навигацию и рефакторинга кода содержит внутри себя множество проверок кода на разных языках - статический анализ. Использовать их отдельно от IDEA не представляется возможным, но новый продукт от JetBrains это делает. Встречайте Qodana!
Проект состоит из 2 частей: ядро IDEA без GUI для использования на CI как линтера и интерактивный Web UI для отчётов.
Посмотреть примеры работы можно на qodana.beta.teamcity.com (логинтесь как гость) и в любом проекте открывает таб "Qodana".
Использовать Qodana можно через Docker образ, GitHub Action, плагин для TeamCIty или как облачный сервис.
После такого понадобятся ли нам Detekt, Ktlint и прочие анализаторы кода? Как минимум нужен локальный Gradle плагин ещё
#GitHub #CI #CD
GitHub Actions for Android developers
После покупки GitHub компанией Microsoft сервис стал обрастать кучей возможностей и стал не только местом хранения кода, но CI/CD (GitHub Actions) и хранилищем артефактов. Причем все это доступно бесплатно, естественно в ограниченном количестве.
В статье автор разбирает как использовать эти возможности, чтобы автоматизировать сборку Android артефактов, тестирование, публикацию релиза + уведомление в Slack. Для всего этого уже существует огромный набор готовых Action от разработчиков, которые и используются в статье.
GitHub Actions for Android developers
После покупки GitHub компанией Microsoft сервис стал обрастать кучей возможностей и стал не только местом хранения кода, но CI/CD (GitHub Actions) и хранилищем артефактов. Причем все это доступно бесплатно, естественно в ограниченном количестве.
В статье автор разбирает как использовать эти возможности, чтобы автоматизировать сборку Android артефактов, тестирование, публикацию релиза + уведомление в Slack. Для всего этого уже существует огромный набор готовых Action от разработчиков, которые и используются в статье.
#DataBinding #Coroutines
StateFlow with One- and TwoWay-DataBinding on Android
В Android Studio Arctic Fox будет поддерживаться DataBinding на основе StateFlow. В статье автор рассказывает как это реализовать
StateFlow with One- and TwoWay-DataBinding on Android
В Android Studio Arctic Fox будет поддерживаться DataBinding на основе StateFlow. В статье автор рассказывает как это реализовать
#Compose #AndroidStudio #Jetpack
В Android Studio Arctic Fox Canary 6 добавили поддержку Jetpack Compose в Layout Inspector. Теперь можно проверять что и как у вас отображается на экране. Руководство по настройке здесь
В Android Studio Arctic Fox Canary 6 добавили поддержку Jetpack Compose в Layout Inspector. Теперь можно проверять что и как у вас отображается на экране. Руководство по настройке здесь
#AndroidBroacast
Собеседование в прямом эфире (~ 2 часа)
На канале прошло собеседование в прямом эфире. Было 300+ человек в онлайне. Кандидат - Senior Adroid разработчик с 5 годами опыта в Android. Опыт был невероятный и сиквел уже напрашивается. Жду еще обратной связи, но уже готов сделать в марте снова, причём изменив формат проведения на livecoding или в компанию другого формата.
В первую очередь поучаствовать в новом интервью получат подписчики любого уровня на Boosty
Собеседование в прямом эфире (~ 2 часа)
На канале прошло собеседование в прямом эфире. Было 300+ человек в онлайне. Кандидат - Senior Adroid разработчик с 5 годами опыта в Android. Опыт был невероятный и сиквел уже напрашивается. Жду еще обратной связи, но уже готов сделать в марте снова, причём изменив формат проведения на livecoding или в компанию другого формата.
В первую очередь поучаствовать в новом интервью получат подписчики любого уровня на Boosty