Вам нужна комплектный блок для проводной зарядки со смартфоном/планшетом?
Anonymous Poll
46%
Да
15%
Пусть будет, про запас
21%
Нет
17%
Не участвую в опросе
#Navigation #Архитектура #Модуляризация
Разделяй и властвуй: Navigation Component в многомодульном проекте
В статье описывается подход к организации работы с Navigation Component в многомодульном проекте с множеством feature модулей.
Разделяй и властвуй: Navigation Component в многомодульном проекте
В статье описывается подход к организации работы с Navigation Component в многомодульном проекте с множеством feature модулей.
#Coroutines
How runBlocking May Surprise You
runBlocking - самый простой Coroutine Builder, который не заставляет использовать
Вызов кода
How runBlocking May Surprise You
runBlocking - самый простой Coroutine Builder, который не заставляет использовать
CoroutineScope и подружить синхронный мир с асинхронным.Вызов кода
runBlocking(Dispatchers.Main) { ... } на UI потоке в Android приведет к deadlock вашего приложения. И это полностью ожидаемое поведение. В статье автор делает подробный разбор как происходит работа этого кода.#Performance #Benchmark
Don’t Run Benchmarks on a Debuggable Android App
Объяснение почему делать тесты производительность на dev сборка делать не стоит и как режим работы debuggable приложений отличается от релизных приложений. Результаты тестов вы можете увидеть в таблице.
Кстати, разбор от автора статьи "Android App Startup Tip: Don’t Use Kotlin Coroutines", который понял свою ошибку
Don’t Run Benchmarks on a Debuggable Android App
Объяснение почему делать тесты производительность на dev сборка делать не стоит и как режим работы debuggable приложений отличается от релизных приложений. Результаты тестов вы можете увидеть в таблице.
Кстати, разбор от автора статьи "Android App Startup Tip: Don’t Use Kotlin Coroutines", который понял свою ошибку
#Chrome #CustomTab
Better content sharing with Custom Tabs
Custom Tabs позволяют отображать в приложении веб контент с синхронизацией Cookies, паролей, истории поиска из браузера. Причём открытие ссылки в Custom Tab происходит быстрее чем в отдельном приложении.
В Chrome 88 Custiom Tab теперь по умолчанию будет добавлять действие шаринга («поделиться»). Чтобы изменить это поведение вам надо использовать библиотеку androidx.browser 1.3.0 и новое API Share State.
Better content sharing with Custom Tabs
Custom Tabs позволяют отображать в приложении веб контент с синхронизацией Cookies, паролей, истории поиска из браузера. Причём открытие ссылки в Custom Tab происходит быстрее чем в отдельном приложении.
В Chrome 88 Custiom Tab теперь по умолчанию будет добавлять действие шаринга («поделиться»). Чтобы изменить это поведение вам надо использовать библиотеку androidx.browser 1.3.0 и новое API Share State.
Forwarded from Kotlin Multiplatform Broadcast
#Kotlin #stdlib
Kotlin Standard Library Safari. Strings (7 минут)
Новый подкаст с обзором различных API из стандартной Kotlin библиотеки. В первом эпизоде рассматривается API класс String
Kotlin Standard Library Safari. Strings (7 минут)
Новый подкаст с обзором различных API из стандартной Kotlin библиотеки. В первом эпизоде рассматривается API класс String
#UI #UX #Дизайн
Сага о мобильном дизайне, часть 2
В статье разбираются, хоть и известные для любого, кто близок к UI/UX, вещи, но все равно полезные, чтобы напомнить еще раз:
👉 UI – это про внешний вид (цвета, шрифты, тени и т.д.). UX – это про опыт пользователя (как пользователь взаимодействует с приложением, насколько успешно и удобно выполняет целевой сценарий)
👉 Тап-зона должна быть достаточной для любых пальцев
👉 Важные кнопки, элементы управления нужно располагать в области досягаемости большого пальца. Много людей управляют смартфоном большим пальцем и держат смартфон одной рукой
👉 Внимание пользователей очень ограничено. Нужно фокусировать пользователя на главном, убирать информационный шум.
👉 У пользователей разных платформ есть разные привычки. Важно соблюдать гайдлайны плаформ.
Непривычный паттерн вызывает растерянность.
👉 Выработанные UI/UX практики чаще надежнее новых инновационных подходов
Сага о мобильном дизайне, часть 2
В статье разбираются, хоть и известные для любого, кто близок к UI/UX, вещи, но все равно полезные, чтобы напомнить еще раз:
👉 UI – это про внешний вид (цвета, шрифты, тени и т.д.). UX – это про опыт пользователя (как пользователь взаимодействует с приложением, насколько успешно и удобно выполняет целевой сценарий)
👉 Тап-зона должна быть достаточной для любых пальцев
👉 Важные кнопки, элементы управления нужно располагать в области досягаемости большого пальца. Много людей управляют смартфоном большим пальцем и держат смартфон одной рукой
👉 Внимание пользователей очень ограничено. Нужно фокусировать пользователя на главном, убирать информационный шум.
👉 У пользователей разных платформ есть разные привычки. Важно соблюдать гайдлайны плаформ.
Непривычный паттерн вызывает растерянность.
👉 Выработанные UI/UX практики чаще надежнее новых инновационных подходов
#AndroidBroadcast #Новости
Новостной дайджест: Fragment Multi Backstack // Gradle 6.8 // Kotlin Roadmap
Первый выпуск новостей вам понравился и поэтому рубрика теперь становится регулярной. В новом выпуске вас ждут самые важные новости, интереснейшие статьи и события мобильной индустрии.
Новостной дайджест: Fragment Multi Backstack // Gradle 6.8 // Kotlin Roadmap
Первый выпуск новостей вам понравился и поэтому рубрика теперь становится регулярной. В новом выпуске вас ждут самые важные новости, интереснейшие статьи и события мобильной индустрии.
#ConstraintLayout #Анимация
MAD Skills - MotionLayout
Серия видео по анимациям с использованием MotionLayout (ConstraintLayout 2.0). Уже вышло 2 части:
👉 Анимация на основе ConstraintSet
👉 Анимация на основе Keyframe
MAD Skills - MotionLayout
Серия видео по анимациям с использованием MotionLayout (ConstraintLayout 2.0). Уже вышло 2 части:
👉 Анимация на основе ConstraintSet
👉 Анимация на основе Keyframe
#GooglePlay #Location #Security
New guidelines for accessing background location in Android
В этом году в Google Play вступают ограничения для приложений, которые используют доступ к местоположению пользователя в фоновом режиме работы приложения. Чтобы оставить эту функцию у себя, вам надо подать специальную форму.
В статье автор разбирает свою историю борьбы с поддержкой Google Play, чтобы доказать необходимость этой функции в его приложении.
Официальная документация
New guidelines for accessing background location in Android
В этом году в Google Play вступают ограничения для приложений, которые используют доступ к местоположению пользователя в фоновом режиме работы приложения. Чтобы оставить эту функцию у себя, вам надо подать специальную форму.
В статье автор разбирает свою историю борьбы с поддержкой Google Play, чтобы доказать необходимость этой функции в его приложении.
Официальная документация
#AndroidBroadcast
@android_broadcast - это не только Telegram канал, но множество других интересных источников, где можно получать информацию
@kotlin_broadcast - Telegram канал с новостями Kotlin разработки. Много внимания уделяется Kotlin Multiplatform Mobile, так как за ним будущее.
📺 YouTube канал Android Broadcast - новости, лучшие практики, подкасты и интервью.
🎵 Подкасты на SoundCloud, Яндекс Музыке, Apple Podcasts и др. сервисах.
Вы можете поддержать проект на Boosty или Patreon и получите ранний доступ к новым роликам и подкастам
Личные соц сети Кирилла, где он делится свои мыслями и работой над Android Broadcast:
👉 Twitter @kirill_rozov
👉 Instagram @krlrozov
🔥 Хотите выиграть билет на Podlodka Android Crew #3, все условия в Twitter посте и скоро в Instagram
@android_broadcast - это не только Telegram канал, но множество других интересных источников, где можно получать информацию
@kotlin_broadcast - Telegram канал с новостями Kotlin разработки. Много внимания уделяется Kotlin Multiplatform Mobile, так как за ним будущее.
📺 YouTube канал Android Broadcast - новости, лучшие практики, подкасты и интервью.
🎵 Подкасты на SoundCloud, Яндекс Музыке, Apple Podcasts и др. сервисах.
Вы можете поддержать проект на Boosty или Patreon и получите ранний доступ к новым роликам и подкастам
Личные соц сети Кирилла, где он делится свои мыслями и работой над Android Broadcast:
👉 Twitter @kirill_rozov
👉 Instagram @krlrozov
🔥 Хотите выиграть билет на Podlodka Android Crew #3, все условия в Twitter посте и скоро в Instagram
#Безопасность #Debug #ProGuard
Debugging Proguard configuration issues
Все те кто использует R8/ProGuard для обфускации и минификации своего кода как минимум раз сталкивались с тем, что приложение в релизе падает.
Автор приводит алгоритм по которому стоит искать ошибку:
1️⃣ Убедитесь что проблема связана именно с минификацией
2️⃣ Убедитесь не связана ли проблема с
3️⃣ Убедитесь не связана ли проблема с обфускацией кода
Автор также демонстрирует пример и как работает его рекомендация на практике
Debugging Proguard configuration issues
Все те кто использует R8/ProGuard для обфускации и минификации своего кода как минимум раз сталкивались с тем, что приложение в релизе падает.
Автор приводит алгоритм по которому стоит искать ошибку:
1️⃣ Убедитесь что проблема связана именно с минификацией
2️⃣ Убедитесь не связана ли проблема с
shrinkResources3️⃣ Убедитесь не связана ли проблема с обфускацией кода
Автор также демонстрирует пример и как работает его рекомендация на практике
#Java
Java 16 — новые синтаксические возможности языка
Весной выйдет новая версии Java под номером 16. И да, теперь это происходит так долго, так что версии растут несоизмеримо быстро.
Новая версии языка привносит всё то, к чему уже давно привыкли в Kotlin.
Java 16 — новые синтаксические возможности языка
Весной выйдет новая версии Java под номером 16. И да, теперь это происходит так долго, так что версии растут несоизмеримо быстро.
Новая версии языка привносит всё то, к чему уже давно привыкли в Kotlin.
#Безопасность #OWASP
Топ-10 уязвимостей мобильных приложений и способы их устранения
OWASP - это место где вы можете найти самые трендовые уязвимости мобильных приложений. Хотите начать защиту, смотрите туда.
В статье автор рассматривает список уязвимостей 2016 года и рассказывает о том как эта уязвимость проявляется, а также что делать разработчику, чтобы не дать злоумышленникам воспользоваться ею.
Список уязвимостей:
‼️ Неправильное использование платформы
‼️ Небезопасное хранилище данных
‼️ Небезопасная коммуникация
‼️ Небезопасная аутентификация
‼️ Недостаточная криптографическая стойкость
‼️ Небезопасная авторизация
‼️ Качество кода клиента
‼️ Подделка кода
‼️ Реверс-инжиниринг
‼️ Лишняя функциональность
Топ-10 уязвимостей мобильных приложений и способы их устранения
OWASP - это место где вы можете найти самые трендовые уязвимости мобильных приложений. Хотите начать защиту, смотрите туда.
В статье автор рассматривает список уязвимостей 2016 года и рассказывает о том как эта уязвимость проявляется, а также что делать разработчику, чтобы не дать злоумышленникам воспользоваться ею.
Список уязвимостей:
‼️ Неправильное использование платформы
‼️ Небезопасное хранилище данных
‼️ Небезопасная коммуникация
‼️ Небезопасная аутентификация
‼️ Недостаточная криптографическая стойкость
‼️ Небезопасная авторизация
‼️ Качество кода клиента
‼️ Подделка кода
‼️ Реверс-инжиниринг
‼️ Лишняя функциональность
#Jetpack #Пагинация
Paging 3 — Easier Way to Pagination
Paging 3 - это следующая версия Jetpack библиотеки для работы с пагинацией списков. Основные отличия от предыдущей версии:
👉 Написана на Kotlin
👉 Базируется на Kotlin Coroutine
👉 Поддержка повторов запросов и ошибок
В статье автор разбирает интеграцию версии Paging 3.0.0-alpha12 в приложение
Paging 3 — Easier Way to Pagination
Paging 3 - это следующая версия Jetpack библиотеки для работы с пагинацией списков. Основные отличия от предыдущей версии:
👉 Написана на Kotlin
👉 Базируется на Kotlin Coroutine
👉 Поддержка повторов запросов и ошибок
В статье автор разбирает интеграцию версии Paging 3.0.0-alpha12 в приложение
#AndroidOS
Google is working on MicroDroid, a stripped-down version of Android for virtual machines
Google работает над специальной версий Android, предназначенной для запуске в виртуальной машине. Это будет "обрезанная" версия Android System Image (GSI).
Возможно Google хочет иметь возможность запускать Android приложения в специальной песочнице на Android устройства, используя hypervisor.
Также проект вполне может являться частью переноса механизма виртуализации KVM на Android устройства с ARM64 SoC. Может и связан с Chrome OS и поддержкой Android приложений на других ОС. Время покажет.
Информация из коммита в Android
Google is working on MicroDroid, a stripped-down version of Android for virtual machines
Google работает над специальной версий Android, предназначенной для запуске в виртуальной машине. Это будет "обрезанная" версия Android System Image (GSI).
Возможно Google хочет иметь возможность запускать Android приложения в специальной песочнице на Android устройства, используя hypervisor.
Также проект вполне может являться частью переноса механизма виртуализации KVM на Android устройства с ARM64 SoC. Может и связан с Chrome OS и поддержкой Android приложений на других ОС. Время покажет.
Информация из коммита в Android
#ML #MlKit #Камера
Google ML Kit Selfie Segmentation
Google ML Kit - это набор инструментов, который позволит вам использовать силу ML в своих приложения под Android и iOS. Например одна из последних фичей сервиса - отделение фона и фокус на важном, например человеке в кадре.
С помощью такого API вы можете добавить свой собственный фон за объектом или размывать его для крутых портретов.
API работает на Android и iOS. Чтобы получить ранний доступ к API вам надо заполнить специальную форму.
Google ML Kit Selfie Segmentation
Google ML Kit - это набор инструментов, который позволит вам использовать силу ML в своих приложения под Android и iOS. Например одна из последних фичей сервиса - отделение фона и фокус на важном, например человеке в кадре.
С помощью такого API вы можете добавить свой собственный фон за объектом или размывать его для крутых портретов.
API работает на Android и iOS. Чтобы получить ранний доступ к API вам надо заполнить специальную форму.
#Jetpack #WorkManager
Вышел WorkManager 2.5.0
Вышла новая стабильная версия WorkManager, которая принесла:
👉 Новый артефакт
👉 Теперь явно можно указать в каком процессе надо выполнять
👉 Улучшено выполнение
👉 Размер истории выполненых Job хранится теперь 1 день вместо 7. Если нужно больше, то это можно регулировать с помощью
👉 Новое тестовое Kotlin API
👉 Исправление багов
Вышел WorkManager 2.5.0
Вышла новая стабильная версия WorkManager, которая принесла:
👉 Новый артефакт
work-multiprocess, улучающий работу в приложениях со множеством процессов.👉 Теперь явно можно указать в каком процессе надо выполнять
WorkRequest. Надо использовать RemoteWorkManager👉 Улучшено выполнение
WorkRequest, юлагодаря тому что теперь проверяется можно ли запустить JobService для выполнения задач👉 Размер истории выполненых Job хранится теперь 1 день вместо 7. Если нужно больше, то это можно регулировать с помощью
keepResultsForAtLeast() API. Это сделано с целью сокращения расхода места на диске👉 Новое тестовое Kotlin API
👉 Исправление багов
Сегодня иду в гости в подкаст ProConf, который строится вокруг обсуждения конференций, чтобы вам их не смотреть.
Я присоединюсь чтобы обсудить прошедший Android Summit 2020. Всё можно будет увидеть в прямом эфире или в записи после.
Сегодня в 19.00 (GMT+3) подключайтесь
Я присоединюсь чтобы обсудить прошедший Android Summit 2020. Всё можно будет увидеть в прямом эфире или в записи после.
Сегодня в 19.00 (GMT+3) подключайтесь
#Networking #Безопасность
OAuth 2.0 -> OAuth 2.1. Что дальше?
Безопасность - важный аспект любого приложения. Для реализации авторизации по принципам OAuth 2.0 мы уже давно привыкли, хоть многие и понимают это по разному.
В своей статье автор рассматривает принципы OAuth 2.0 и почему понадобилось спустя 8 лет работать над OAuth 2.1.
OAuth 2.0 -> OAuth 2.1. Что дальше?
Безопасность - важный аспект любого приложения. Для реализации авторизации по принципам OAuth 2.0 мы уже давно привыкли, хоть многие и понимают это по разному.
В своей статье автор рассматривает принципы OAuth 2.0 и почему понадобилось спустя 8 лет работать над OAuth 2.1.
#Performance #Аналитика
Приложение отвечает: как мы уменьшили количество ANRs в шесть раз.
Часть 2, про исправление ошибок
Продолжение серии статей от Badoo как они истребили ANR в статистике своего приложения! В новой части ребята разбирают как проверяли слабые места приложения, которые по итогу оказался вызов Application.onCreate() и особенно, когда запуске приложения происходил в фоне. Например, при отправке Broadcast приложению.
Разработчики провели анализ и выполнили следующие оптимизации:
👉 Lazy загрузка
👉 Инициализация в фоновом потоке
👉 Сторонние библиотеки и их ContentProvider
👉 Оптимизировать работы с SharedPreference, ведь даже вызов apply() в результате может приводить к ANR
👉 Обработка push уведомлений в отдельном процессе
Приложение отвечает: как мы уменьшили количество ANRs в шесть раз.
Часть 2, про исправление ошибок
Продолжение серии статей от Badoo как они истребили ANR в статистике своего приложения! В новой части ребята разбирают как проверяли слабые места приложения, которые по итогу оказался вызов Application.onCreate() и особенно, когда запуске приложения происходил в фоне. Например, при отправке Broadcast приложению.
Разработчики провели анализ и выполнили следующие оптимизации:
👉 Lazy загрузка
👉 Инициализация в фоновом потоке
👉 Сторонние библиотеки и их ContentProvider
👉 Оптимизировать работы с SharedPreference, ведь даже вызов apply() в результате может приводить к ANR
👉 Обработка push уведомлений в отдельном процессе