We Love Android – Telegram
We Love Android
631 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Kotlin Multiplatform Broadcast (Кирилл Розов)
В Java 19 появился Project Loom - легковесные (виртуальные) потоки, некий аналог корутин из Kotlin. Автор статьи устроил эксперимент - в качестве CoroutineDispatcher он взял те, что запускают корутину на виртуальных потоках.

В рамках опыта запускается множество корутин с вызовом Thread.sleep(1000), что останавливает выполнение на 1 секунду и сравнивает работы стандарных CoroutineDispatcher с Loom.

Итог - виртуальные потоки позволят без проблем вызывать блокирующий код в неблокирюущем корутин коде вместо ограничений стандартных Dispatcher. Android такого не видать )

#coroutines
👍8🔥3😱1
WebRTC in Jetpack Compose — этот проект демонстрирует использование протокола WebRTC для видеосвязи в реальном времени в Jetpack Compose. Цель его — реализация всего UI для видеосвязи в реальном времени с помощью Jetpack Compose, выполнение связи в реальном времени в фоновом режиме с помощью Kotlin Coroutines, понимание однорангового соединения на основе WebRTC, взаимодействие с сигнальным сервером для обмена информацией о одноранговых соединениях между клиентами.

WebRTC in Jetpack Compose на GitHub: https://github.com/GetStream/webrtc-in-jetpack-compose
Платформа: Android
⭐️: 140
👍6🔥1
Forwarded from StartAndroid
Первый пост из серии How Gradle Works. Рассказывают, как запускается Gradle.

#gradle

https://blog.gradle.org/how-gradle-works-1
👍3🤔3🔥2
Forwarded from Android Live 🤖
​​Дерево зависимостей Gradle
#gradle #android

Кайфовая статья, которая по шагам рассказывает про Gradle и конкретно про дерево зависимостей. Особенно будет полезно тем, кто не чувствует себя уверенно в Gradle. 🤓

На небольшой примере описывается:
- что такое зависимости и транзитивные зависимости в Gradle?
- что такое дерево зависимостей в Gradle?
- какие есть конфигурации зависимостей в Gradle?
- а также описывает несколько способов создать дерево зависимостей в вашем проекте Gradle.
👍4🔥2🤔2
Книга «Software Engineering at Google» стала бесплатной

SWE at Google – довольно популярная книга про хорошие инженерные практики, применяемые на проектах большого масштаба. Я сам до сих пор ее так и не прочитал, но от друзей слышал много хороших рекомендаций. Вон, даже Брагилевский советует!

Так в чем новость – авторы книги решили сделать ее бесплатной, так что можете посмотреть оглавление и прочитать любую главу.
🔥3👍2🤔2
Почему yaml – плохой формат

Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.

Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.

Вот несколько примеров непредсказуемого поведения YAML конфигов:

*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например, - *.png – невалидный сниппет, так как * зарезервирована. А - !.git будет считан, как пустая строка.
*️⃣Если где-то в конфиге встретится строчка - no, она будет интерпретирована как false, а не как строка. У этого поведения есть даже свое имя – Norway problem, так как региональный код Норвегии, который часто можно встретить в таких конфигах, тоже no. Ах да, так ведет себя только самая новая версия yaml, что добавляет веселья.
*️⃣Не стоит использовать ~, так как это алиас для null.
🤔3👍2🔥2
Forwarded from Android Good Reads (Egor Tolstoy)
This media is not supported in your browser
VIEW IN TELEGRAM
Пошаговая реализация Dynamic Island на Compose

Dynamic Island из iOS – спорный с точки зрения UX, но интересный с точки зрения реализации нестандартного UI компонент. Если вы ищете, на каких примерах потренироваться с анимациями на Compose, то как раз отлично подойдет.
👍2🔥2💯2
Forwarded from Surf Mobile Team
Windows Subsystem for Android (WSA)

В 2021 году компания Microsoft выпустила новую операционную систему Windows 11. Одна из главных фич — запуск Android-приложений внутри системы безо всяких эмуляторов. Рассказываем на карточках, как это работает.

Полезные ссылки:

🔹 Официальная документация Microsoft

🔹 Способы установки WSA

🔹 Установка GApps

🔹 Подключение по ADB и установка сторонних APK вне сторов
👍6🤔3💩1
1Coin - финансовый менеджер, написанный на Kotlin Multiplatform (Android и MacOS, в разработке iOS). Из интересного внутри - UI на Compose Multiplatform, навигация Odyssey, KViewModel для общей ViewModel, Ktor для сетевых запросов, Koin для DI, LeakCanary для анализа утечек памяти и Detekt для статического анализа кода.

1Coin на GitHub: https://github.com/1Coin-FinanceTracker/1CoinClient
Платформа: кроссплатформа
⭐️: 3
👍7🔥2👏2
👩‍💻 От геометрических фигур до произведений искусства: Антон Архипов, Developer Advocate в команде Kotlin, использует Compose и Kotlin для креативной разработки.

🎬 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Forwarded from Telegram Info (Sominemo)
Проверка SafetyNet в Android-приложении

Beta-версия Telegram для Android начала выполнять проверку SafetyNet перед отправкой SMS-кода авторизации. О такой находке сообщили разработчики неофициальной модификации Nekogram.

SafetyNet API от Google — это инструмент, с помощью которого авторы приложений могут выявлять неофициальные модификации в приложении и в системе, например, моды, Root-доступ и кастомные прошивки. Эта технология используется разработчиками для защиты от пиратства и повышения безопасности, блокируя приложение или некоторые его функции на ненадёжных, по их мнению, устройствах.

Некоторые пользователи считают, что введение технологии SafetyNet может указывать на то, что Telegram собирается запретить получать SMS-коды с неофициальных прошивок или что приложение перестанет работать на таких устройствах вовсе.

Декомпиляция приложения показывает, что Telegram использует SafetyNet для тестирования нового способа доставки SMS-кодов авторизации — через Firebase, сервис от Google. Старый способ отправки продолжит работать в остальных случаях, что даёт основания считать, что никаких санкций для пользователей неофициальных приложений и модов применяться, скорее всего, не будет.

Использование Firebase, вероятно, связано с высокой ценой отправки SMS-сообщений и звонков для авторизации. Доставка кодов составляет четверть расходов мессенджера.

#Android
🤔6😱3👍2
На прошлой неделе писал про "закат" React Native, сейчас в AppFigures в целом исследовали популярность кроссплатформенных фреймворков.

1. Количество приложений на двух платформах - на графике. На данный момент самым популярным ненативным фреймворком является Unity.

2. Удивительно, но веб-обертки занимают два места из пяти - Cordova и Ionic поверх нее.

3. Релизы по годам - на графике.

5. Видно, что веб-приложениям все-таки пришел конец, у них самое большое падение.

6. Flutter стал мейнстримом в еще в 2021 и у него самое маленькое падение в 2022.

7. Связано ли падение React Native с Flutter? Отчасти, однако, скорее всего, большая его часть обусловлена именно общей ситуацией на рынке - упрощением нативной разработки и соответствующим отходом от кроссплатформы.
👍3🔥2🤔2
Forwarded from Android Good Reads (Egor Tolstoy)
dependency-guard – плагин для контроля зависимостей

В большой команде периодически возникают проблемы с изменением версий или добавлением зависимостей. Можно случайно добавить в продакшн тестовую зависимость, или вызвать креш в рантайме из-за поднятой версии какой-то из транзитивных зависимостей. Gradle-плагин dependency-guard позволяет это контролировать.

Он генерирует файл, содержащий явный список всех транзитивных зависимостей и их версий, что дает возможность следить за изменениями на PR и составлять черные списки библиотек.
👍4
Forwarded from StartAndroid
Подробный разбор механизма "живучести" ViewModel

#android #jetpack #viewmodel

https://bowser-f.medium.com/how-viewmodel-works-under-the-hood-52a4f1ff64cf
👍3😁2😱2