Forwarded from Mobile Developer (Алексей Гладков)
И тут же еще одна новость (впрочем весьма ожидаемая)
https://android-developers.googleblog.com/2022/10/announcing-experimental-preview-of-jetpack-multiplatform-libraries.html
Гугл анонсировал, что часть своих библиотек они будут делать в мультиплатформе
Очевидно начнут с тех либ, что на котлине, но глядишь и до вьюмоделей и лайвдаты доберутся
https://android-developers.googleblog.com/2022/10/announcing-experimental-preview-of-jetpack-multiplatform-libraries.html
Гугл анонсировал, что часть своих библиотек они будут делать в мультиплатформе
Очевидно начнут с тех либ, что на котлине, но глядишь и до вьюмоделей и лайвдаты доберутся
Android Developers Blog
Announcing an Experimental Preview of Jetpack Multiplatform Libraries
Posted by Márton Braun, Developer Relations Engineer
💯4
Forwarded from Android Live 🤖
Kotlin и bytecode
#kotlin
Полезная статья, где автор рассматривает фичи Kotlin со стороны байткода.
Кроме этого, тут есть несколько полезных штук, которые также освещены:
👉 что такое Java Virtual Machine и её спецификация;
👉 почему фичи Java и Kotlin совместимы;
👉 как выглядят основные фичи Kotlin в байткоде.
#kotlin
Полезная статья, где автор рассматривает фичи Kotlin со стороны байткода.
Кроме этого, тут есть несколько полезных штук, которые также освещены:
👉 что такое Java Virtual Machine и её спецификация;
👉 почему фичи Java и Kotlin совместимы;
👉 как выглядят основные фичи Kotlin в байткоде.
👍2
Forwarded from Mobile AppSec World (Yury Shabalin)
Анализ трафика Android-сматрфона
Крайне занимательная статья вышла на Хабр под названием "Анализ трафика телеметрической информации Android смартфона".
Автор взял обычный телефон со сброшенной к заводским установкам прошивкой и установленным пакетом российского ПО, без синхронизированных учётных записей. То есть по факту - телефон из "магазина" и проверил, кто и что отправляет в фоне на сервера, какую информацию, какие данные об устройстве, активности и т.д.
Крайне занимательно, что запросов и данных передается достаточно много (что не удивительно), но еще интереснее исследование было бы с десятком установленных приложений. Боюсь, что там целая армия исследователей понадобилась бы, чтобы все данные проанализировать. Ну или просто взять "голый" Xiaomi и умереть от количества информации, что все его стоковые приложения шлют :D
В общем, очень интересно почитать)
#Android #Telemetry #traffic
Крайне занимательная статья вышла на Хабр под названием "Анализ трафика телеметрической информации Android смартфона".
Автор взял обычный телефон со сброшенной к заводским установкам прошивкой и установленным пакетом российского ПО, без синхронизированных учётных записей. То есть по факту - телефон из "магазина" и проверил, кто и что отправляет в фоне на сервера, какую информацию, какие данные об устройстве, активности и т.д.
Крайне занимательно, что запросов и данных передается достаточно много (что не удивительно), но еще интереснее исследование было бы с десятком установленных приложений. Боюсь, что там целая армия исследователей понадобилась бы, чтобы все данные проанализировать. Ну или просто взять "голый" Xiaomi и умереть от количества информации, что все его стоковые приложения шлют :D
В общем, очень интересно почитать)
#Android #Telemetry #traffic
Хабр
Анализ трафика телеметрической информации Android смартфона
Сбор телеметрических данных о пользователях и их действиях в вебе и приложениях — плата за пользование «бесплатными» сервисами в Интернете. Пользователи расплачиваются своим вниманием и временем,...
👍3
Forwarded from Android Broadcast (Кирилл Розов)
Performance in Jetpack Compose (8 мин)
Советы по тому как сделать работу Jetpack Compose быстрее. Если есть проблемы - почитайте, вдруг пропустили что-то. Разбираются не только тривиальные кейсы
Советы по тому как сделать работу Jetpack Compose быстрее. Если есть проблемы - почитайте, вдруг пропустили что-то. Разбираются не только тривиальные кейсы
Forwarded from Android Broadcast (Кирилл Розов)
Новое руководство по архитектуре "UI State production"
Google продолжает создавать руководство по архитектуре Android приложений. В свежей части рассказали про управлением UI состояния: где оно должно создаваться, как им управлять и в каких случаях что использовать
#architecture
Google продолжает создавать руководство по архитектуре Android приложений. В свежей части рассказали про управлением UI состояния: где оно должно создаваться, как им управлять и в каких случаях что использовать
#architecture
👍3
Forwarded from Mobile Native ️️
Вчера разгребал избранное и наткнулся на тред от Евгения Мацюка, в котором он собрал различные ресурсы для подготовки к собесам в западные компании.
Там достаточно много полезных ресурсов, включая такие темы как Mobile System Design, HTTPS, Backend System Design, Solution Architecture и т.д.
Возможно кому-то пригодится.
Читать (Ru)
Там достаточно много полезных ресурсов, включая такие темы как Mobile System Design, HTTPS, Backend System Design, Solution Architecture и т.д.
Возможно кому-то пригодится.
Читать (Ru)
👍2
Forwarded from Android Good Reads (Egor Tolstoy)
This media is not supported in your browser
VIEW IN TELEGRAM
Обновилась документация по работе с изображениями в Compose
- Как загружать изображения из интернета
- Растровые изображения против векторных
- Material Icons
- Работа со свойствами Image Composable
- Custom painter objects
- Оптимизация перфоманса при работе с изображениями
- Как загружать изображения из интернета
- Растровые изображения против векторных
- Material Icons
- Работа со свойствами Image Composable
- Custom painter objects
- Оптимизация перфоманса при работе с изображениями
👍3🔥1
Forwarded from Android Good Reads (Egor Tolstoy)
JSON Hero – супер мощный визуализатор JSON в браузере
JSON Hero – сайт, который рендерит JSON файлы в удобном для чтения представлении. Например, сразу подгружает изображения и url preview, показывает дату сразу во всех форматах, проводит валидацию файла и делает многое другое.
JSON Hero – сайт, который рендерит JSON файлы в удобном для чтения представлении. Например, сразу подгружает изображения и url preview, показывает дату сразу во всех форматах, проводит валидацию файла и делает многое другое.
🔥2
Forwarded from Mobile Native ️️
Transforming Kotlin Collections – Functions with Examples
Статья с примерами трансформаций коллекций в Kotlin с помощью некоторых популярных и не очень функций. Каждый пример сопровождается понятной диаграмой 👍.
👉 Map
👉 Zipping
👉 Association
👉 Flattening
👉 String Representation
Читать (En)
Статья с примерами трансформаций коллекций в Kotlin с помощью некоторых популярных и не очень функций. Каждый пример сопровождается понятной диаграмой 👍.
👉 Map
👉 Zipping
👉 Association
👉 Flattening
👉 String Representation
Читать (En)
👍4
Forwarded from Mobile Native ️️
Многопоточность Java
Неплохая статья про многопоточку в Java, в которой тезисно собраны основные темы в структурированом виде.
👉 Основные понятия
👉 Как запустить новый поток
👉 Как остановить поток
👉 Жизненный цикл потока
👉 Приоритеты потоков
👉 Переключение потоков
👉 Daemon потоки
👉 Использование памяти
👉 Deadlock и Race condition
👉 Синхронизация потоков
👉 Monitor. Mutex. Semaphore
👉 Concurrency
👉 Атомарные классы
👉 Список ссылок
Читать (Ru)
Неплохая статья про многопоточку в Java, в которой тезисно собраны основные темы в структурированом виде.
👉 Основные понятия
👉 Как запустить новый поток
👉 Как остановить поток
👉 Жизненный цикл потока
👉 Приоритеты потоков
👉 Переключение потоков
👉 Daemon потоки
👉 Использование памяти
👉 Deadlock и Race condition
👉 Синхронизация потоков
👉 Monitor. Mutex. Semaphore
👉 Concurrency
👉 Атомарные классы
👉 Список ссылок
Читать (Ru)
👍1
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
Collapsing toolbar with parallax effect and curved motion in Jetpack Compose (12 мин)
Инструкция по реализация скролла с паралакс эффектом (nested scroll) в Jetpack Compose. Прямо с кодом и схемами движения, формулами. Всё очень четко!
#compose #animation
Инструкция по реализация скролла с паралакс эффектом (nested scroll) в Jetpack Compose. Прямо с кодом и схемами движения, формулами. Всё очень четко!
#compose #animation
👍3
Forwarded from Mobile Developer (Алексей Гладков)
Modern Android Development от Google на Android Dev Summit 2022
https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u
Закончились Keynote для Android Developer от Google и с нами поделились целым ворохом рекомендаций по лучшим практикам от создателя зеленого робота и Jetpack Compose.
Внимание! Лучшие практики от Google не всегда хорошо работают
https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u
Закончились Keynote для Android Developer от Google и с нами поделились целым ворохом рекомендаций по лучшим практикам от создателя зеленого робота и Jetpack Compose.
Внимание! Лучшие практики от Google не всегда хорошо работают
🔥3
Forwarded from Android Broadcast (Кирилл Розов)
Вышел Compose 1.3.0
👉 Переход на независимое версионирование артефактов
👉 Опубликовали BOM, который корректно соединяет разные версии Compose артефактов
👉 Рефакторинг работы модификторов под капотом, для увеличения их производительности
👉 Исправление Accessibility в Popup и Диалогах
👉 LazyHorizontalStaggeredGrid и LazyVerticalStaggeredGrid
👉 Отрисовка текста напрямую на Canvas
👉 Поддерджка Swipe to refresh с помощью Modifier.pullRefresh
👉 Поддержка snap поведения через SnapFlingBehavior
Подробнее в статье или обновлении Android Jetpack
#compose
👉 Переход на независимое версионирование артефактов
👉 Опубликовали BOM, который корректно соединяет разные версии Compose артефактов
👉 Рефакторинг работы модификторов под капотом, для увеличения их производительности
👉 Исправление Accessibility в Popup и Диалогах
👉 LazyHorizontalStaggeredGrid и LazyVerticalStaggeredGrid
👉 Отрисовка текста напрямую на Canvas
👉 Поддерджка Swipe to refresh с помощью Modifier.pullRefresh
👉 Поддержка snap поведения через SnapFlingBehavior
Подробнее в статье или обновлении Android Jetpack
#compose
👍4🔥1
Forwarded from Android Good Reads (Egor Tolstoy)
Вышло ежегодное исследование популярности команд Android разработки
В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать:
💰В каких сферах предпочитают работать Android разработчики (спойлер – топ-1 это банки)
📚Какие 10 книг чаще всего рекомендуют для прочтения
🤔Какие каналы и сообщества про Android разработку самые популярные
📃Как много андроидщиков планирует менять работу в этом году
📊Кто входит в топ Android экспертов
🤩В каких компаниях и почему разработчики хотят работать
Исследование проведено при поддержке VK. Пошарьте опрос в своем рабочем чате, мы будем очень рады ❤️
В этом году мы опросили 660 Android-разработчиков, на 40% больше, чем в прошлом! Посмотрите отчет, чтобы узнать:
💰В каких сферах предпочитают работать Android разработчики (спойлер – топ-1 это банки)
📚Какие 10 книг чаще всего рекомендуют для прочтения
🤔Какие каналы и сообщества про Android разработку самые популярные
📃Как много андроидщиков планирует менять работу в этом году
📊Кто входит в топ Android экспертов
🤩В каких компаниях и почему разработчики хотят работать
Исследование проведено при поддержке VK. Пошарьте опрос в своем рабочем чате, мы будем очень рады ❤️
Известность команд Android разработки 2022
Известность команд Android разработки 2022
Рисерч DevCrowd: Известность команд Android разработки 2022
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Как работает звук
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
👍2🔥2
Forwarded from Mobile Compose
#Featured #AndroidDevSummit #Compose
Reimagining designer-developer handoff: Introducing Relay
Одним из самых ярких анонсов Google с прошедшего Android Dev Summit однозначно стал Relay — новый UI инструмент для перевода моделей дизайна из Figma в код Jetpack Compose, а также их дальнейшей синхронизации. Подробнее о том, как работает новинка — в небольшом видеодокладе с конференции.
A также:
▫️Страница Relay на developer.android.com
▫️Страница Relay на material.io
Reimagining designer-developer handoff: Introducing Relay
Одним из самых ярких анонсов Google с прошедшего Android Dev Summit однозначно стал Relay — новый UI инструмент для перевода моделей дизайна из Figma в код Jetpack Compose, а также их дальнейшей синхронизации. Подробнее о том, как работает новинка — в небольшом видеодокладе с конференции.
A также:
▫️Страница Relay на developer.android.com
▫️Страница Relay на material.io
YouTube
Reimagining designer-developer handoff: Introducing Relay
In this lightning talk, we’ll introduce you to Relay, available now in open alpha. Relay is a new process that allows teams to create UI in Figma and generate high-fidelity Compose UI components. Relay puts structured component data at the center of the collaboration…
👍2
Forwarded from Android Broadcast (Кирилл Розов)
Сталкивались ли с TransactionTooLargeException? Например, при сохранении состояния Activity. Автор статьи разбирается в механизмах IPC и Binder, неправильная работа с которыми приводит к ошибке.
#androidos
#androidos
👍2
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
Дизайн с учетом читаемости кода
Kotlin - язык с кучей возможностей и синтаксическим сахаром. Одни и те же вещи сделать можно множеством способов. Какой правильный? Краткость - это лучший вариант?
Из своего опыта могу сказать, что читабельность важнее. Лучше сделать больше строчек и выделить методы/классы/интерфейсы, чтобы разобраться в коде было проще. Короткие конструкции языка зачастую используют сложные операторы и фичи, которые поймут не все. Даже самому со временем может быть сложно понять этот код.
Что вы думаете на этот счет? Делитесь своим мнением в комментариях
Kotlin - язык с кучей возможностей и синтаксическим сахаром. Одни и те же вещи сделать можно множеством способов. Какой правильный? Краткость - это лучший вариант?
Из своего опыта могу сказать, что читабельность важнее. Лучше сделать больше строчек и выделить методы/классы/интерфейсы, чтобы разобраться в коде было проще. Короткие конструкции языка зачастую используют сложные операторы и фичи, которые поймут не все. Даже самому со временем может быть сложно понять этот код.
Что вы думаете на этот счет? Делитесь своим мнением в комментариях
👍2🔥1
Forwarded from Why Android? 🌚
Смена языка в рантайме всегда была болью. Помню проект, где было куча Utils которые переопределяют Context, сохраняют локаль и т.д. 😬
С выходом Android 13 приложениям разрешили менять язык на отличный от системного.
И, оказывается, Google сделали backport этого апи на все версии Android.
Всего пару действий и legacy можно выпиливать.
1️⃣ Обновляемся до
2️⃣ Создаем
3️⃣ Добавляем его в AndroidManifest
4️⃣ Добавляем
5️⃣ Ну и все
У себя проверял, точно работает на API 21+
Live Demo - Документация
С выходом Android 13 приложениям разрешили менять язык на отличный от системного.
И, оказывается, Google сделали backport этого апи на все версии Android.
Всего пару действий и legacy можно выпиливать.
1️⃣ Обновляемся до
appcompat.1.6.0-rc01 (стабильной нету, следующая сразу 1.7.0-alpha01 🌚)2️⃣ Создаем
xml/locales_config.xml с вашими поддерживаемыми языками<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="en" />
<locale android:name="ru" />
<locale android:name="be" />
</locale-config>3️⃣ Добавляем его в AndroidManifest
<application
android:localeConfig="@xml/locales_config"4️⃣ Добавляем
AppLocalesMetadataHolderService, где autoStoreLocales=true означает, что сервис сам будет сохранять локаль (спойлер: просто в файл 🌚)<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
android:enabled="false"
android:exported="false">
<meta-data
android:name="autoStoreLocales"
android:value="true" />
</service>5️⃣ Ну и все
AppCompatDelegate.getApplicationLocales() - вернет текущую локаль приложенияAppCompatDelegate.setApplicationLocales() - установит нужную вам локаль (допустим в настройках приложения)У себя проверял, точно работает на API 21+
Live Demo - Документация
👍9
Forwarded from Mobile Compose
#Featured #AndroidDevSummit #Compose
Compose Modifiers deep dive
Доклад от небезызвестного Leland Richardson, в котором он предлагает глубже погрузиться в историю модификаторов Compose, а также связанных с ними проблем и ограничений. Ну и самое интересное, рассказывает об изменениях Modifier API — как о тех, на которые уже переехали в версии 1.3, так и о тех, которые добавят в 1.4.
Compose Modifiers deep dive
Доклад от небезызвестного Leland Richardson, в котором он предлагает глубже погрузиться в историю модификаторов Compose, а также связанных с ними проблем и ограничений. Ну и самое интересное, рассказывает об изменениях Modifier API — как о тех, на которые уже переехали в версии 1.3, так и о тех, которые добавят в 1.4.
YouTube
Compose Modifiers deep dive
A deep dive into the history of Modifiers and the constraints of APIs. As well as the problems they are meant to solve leading up to a major overhaul in implementation in 1.3 and the addition of several lower level, but powerful, experimental APIs that we…
👍2