We Love Android – Telegram
We Love Android
630 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Почему 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
Трендинговые репозитории GitHub за январь для языка Kotlin:

1. v2rayNG - клиент V2Ray для Android (+717)
2. ViMusic - стриминг музыки с YouTube Music (+709)
3. Now In Android - лучшие практики Android-разработки в новостном приложении Google (+671)
4. Tachiyomi - открытый ридер манга для Android (+539)
5. ChatGPT Android - чат с ИИ с использованием Stream Chat SDK для Compose (+442)
6. Сloudstream - стриминг и скачивание кино, сериалов и аниме (+410)
7. Seal -скачивание видео/аудио с YouTube (+385)
8. bv - приложение Android TV для Bilibili (+340)
9. Saikou - клиент Anilist с аниме и манга (+302)
10. BiliRoaming - клиент Bilibili с фишками и перками (+300)
11. Maestro - автоматизация тестирования UI (+258)
12. Matsuri - V2Ray/proxy toolchain для Android (+251)
13. Android Developer Roadmap - план развития Android-разработчика (+241)
14. Сompose JB - Compose Multiplatform от JetBrains (+232)
15. Balloon - всплывающие подсказки (+188)
16. Unciv - открытая «Цивилизация» (+186)
17. Ivy Wallet - приложение для управления деньгами с открытым исходным кодом (+163)
18. Anki Android - карточки для запоминания и повторения (+143)
19. Uhabits - открытое приложение для формирования привычек (+139)
20. Komga - медиасервер для комиксов и манга (+139)
21. Fenix - Firefox для Android (+116)
22. Sunflower - лучшие практики Android-разработки в приложении о растениях (+113)
23. Ktlint - линтер для Kotlin (+64)
24. TV bro - браузер, оптимизированный для ТВ (+55)
25. Purpur - сервер для Minecraft (+46)
🔥4😁2👍1
Forwarded from Записки разработчицы (Anna Zharkova)
Аркадий Иванов опубликовал твит о выпуске первой релизной версии своего Decompose - библиотеки для общего UI под KMM:
https://github.com/arkivanov/Decompose/releases/tag/1.0.0
Основные фичи:

Возможность переиспользовать и тестировать компоненты (RIBs-like)
Разделение UI и не-UI кода
Возможность подключать платформоспецифический UI
Собственный DI
Мультиплатформенность
Поддержка сохранения состояния (Android/JVM/Apple)
Используется Compose Android/JVM/iOS/macOS/Web

И еще type-safe мультиплатформенная навигация в KMM
👍1🔥1😱1
Forwarded from Mobile AppSec World (Yury Shabalin)
Атаки на клиентов с использованием WebView

Вообще статья называется "A View Into Web(View) Attacks in Android" и открывая ее, я ожидал увидеть информацию об атаках на WebView в приложениях и прочие интересные штуки, но оказалось это немного про другое.

В статье расписано, как некоторые зловреды использовали WebView, чтобы обмануть пользователя и украсть данные от банковских аккаунтов.

Все достаточно просто, пользователь загружает зловредное приложение и при его открытии внутри WebView загружается легитимный банковский сайт, но со зловредным JS-кодом, который отправляет данные пользователя на сервер злоумышленника. Подход очень простой и имеет ряд существенных преимуществ, не нужно самому имитировать интерфейс приложения, не нужны дополнительные разрешения у системы спрашивать.

Вообще, достаточно интересное чтиво, с примерами реальных зловредов и разбора их кода. Самое то почитать в пятницу 😄

#android #WebView #fishing
🔥4🤔3👍2
Несущиеся слоны: опыт Square в улучшении системы сборки для Android

Это не техническое глубокое погружение. Наоборот, это высокоуровневый обзор того, что мы сделали, почему мы это сделали, что мы получили в результате усилий и почему мы считаем, что наш подход можно обобщить.

• Покажите мне данные
• Путешествие начинается
• Шардинг CI: особое примечание
• Серебряные пули
• Постепенные улучшения, накопление выгоды
buildSrc мертв. Да здравствует build-logic!
Будьте ленивыми
Удалите скрипты
Устраните межпроектную конфигурацию
Тестируйте свою сборку
Используйте кэш конфигурации
• Путешествие продолжается
• Шаблоны решений: серебряные пули и постепенная выгода

Статья: https://apptractor.ru/sqgrdl
Платформа: Android
👍4🔥2😱1
Forwarded from Android Broadcast (Кирилл Розов)
На этой неделе стартанула новая серия MADSkills по модификаторам Compose

📺 Fundamentals of Compose Layouts and Modifiers - MAD Skills (12 мин)
📺 The Jetpack Compose Beginner Crash Course for 2023 (50 мин)
📺 Now In Android #76 (3 мин)
📺 Новости мобильной разработки от Android Broadcast (18 мин)

В комментариях делитесь видео по разработке, которые понравились вам и будут полезны другим

#подборкавидео
👍2🔥1🤔1