Forwarded from AppFiles - Mobile Development
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
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
#gradle
https://blog.gradle.org/how-gradle-works-1
blog.gradle.org
How Gradle Works Part 1 - Startup
This is the first blog of a series How Gradle Works, which includes the following topics:
👍3🤔3🔥2
Forwarded from Android Live 🤖
Дерево зависимостей Gradle
#gradle #android
Кайфовая статья, которая по шагам рассказывает про Gradle и конкретно про дерево зависимостей. Особенно будет полезно тем, кто не чувствует себя уверенно в Gradle. 🤓
На небольшой примере описывается:
- что такое зависимости и транзитивные зависимости в Gradle?
- что такое дерево зависимостей в Gradle?
- какие есть конфигурации зависимостей в Gradle?
- а также описывает несколько способов создать дерево зависимостей в вашем проекте Gradle.
#gradle #android
Кайфовая статья, которая по шагам рассказывает про Gradle и конкретно про дерево зависимостей. Особенно будет полезно тем, кто не чувствует себя уверенно в Gradle. 🤓
На небольшой примере описывается:
- что такое зависимости и транзитивные зависимости в Gradle?
- что такое дерево зависимостей в Gradle?
- какие есть конфигурации зависимостей в Gradle?
- а также описывает несколько способов создать дерево зависимостей в вашем проекте Gradle.
👍4🔥2🤔2
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Книга «Software Engineering at Google» стала бесплатной
SWE at Google – довольно популярная книга про хорошие инженерные практики, применяемые на проектах большого масштаба. Я сам до сих пор ее так и не прочитал, но от друзей слышал много хороших рекомендаций. Вон, даже Брагилевский советует!
Так в чем новость – авторы книги решили сделать ее бесплатной, так что можете посмотреть оглавление и прочитать любую главу.
SWE at Google – довольно популярная книга про хорошие инженерные практики, применяемые на проектах большого масштаба. Я сам до сих пор ее так и не прочитал, но от друзей слышал много хороших рекомендаций. Вон, даже Брагилевский советует!
Так в чем новость – авторы книги решили сделать ее бесплатной, так что можете посмотреть оглавление и прочитать любую главу.
🔥3👍2🤔2
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Почему yaml – плохой формат
Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.
Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.
Вот несколько примеров непредсказуемого поведения YAML конфигов:
*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например,
*️⃣Если где-то в конфиге встретится строчка
*️⃣Не стоит использовать
Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.
Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.
Вот несколько примеров непредсказуемого поведения YAML конфигов:
*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например,
- *.png – невалидный сниппет, так как * зарезервирована. А - !.git будет считан, как пустая строка.*️⃣Если где-то в конфиге встретится строчка
- no, она будет интерпретирована как false, а не как строка. У этого поведения есть даже свое имя – Norway problem, так как региональный код Норвегии, который часто можно встретить в таких конфигах, тоже no. Ах да, так ведет себя только самая новая версия yaml, что добавляет веселья.*️⃣Не стоит использовать
~, так как это алиас для null.Ruud van Asseldonk
The yaml document from hell
For a data format, yaml is extremely complicated. It aims to be a human-friendly format, but in striving for that it introduces so much complexity, that I would argue it achieves the opposite result. Yaml is full of footguns and its friendliness is deceptive.…
🤔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, то как раз отлично подойдет.
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 вне сторов
В 2021 году компания Microsoft выпустила новую операционную систему Windows 11. Одна из главных фич — запуск Android-приложений внутри системы безо всяких эмуляторов. Рассказываем на карточках, как это работает.
Полезные ссылки:
🔹 Официальная документация Microsoft
🔹 Способы установки WSA
🔹 Установка GApps
🔹 Подключение по ADB и установка сторонних APK вне сторов
👍6🤔3💩1
Forwarded from AppFiles - Mobile Development
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
1Coin на GitHub: https://github.com/1Coin-FinanceTracker/1CoinClient
Платформа: кроссплатформа
⭐️: 3
👍7🔥2👏2
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Creative Coding With Kotlin and Compose
#composecamp #Compose camp
To start learning go to https://rsvp.withgoogle.com/events/android_learning_ca
“Creative coding is a type of computer programming that aims to create something expressive instead of something functional.” – Wikipedia
Language:…
To start learning go to https://rsvp.withgoogle.com/events/android_learning_ca
“Creative coding is a type of computer programming that aims to create something expressive instead of something functional.” – Wikipedia
Language:…
👍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
Beta-версия Telegram для Android начала выполнять проверку SafetyNet перед отправкой SMS-кода авторизации. О такой находке сообщили разработчики неофициальной модификации Nekogram.
SafetyNet API от Google — это инструмент, с помощью которого авторы приложений могут выявлять неофициальные модификации в приложении и в системе, например, моды, Root-доступ и кастомные прошивки. Эта технология используется разработчиками для защиты от пиратства и повышения безопасности, блокируя приложение или некоторые его функции на ненадёжных, по их мнению, устройствах.
Некоторые пользователи считают, что введение технологии SafetyNet может указывать на то, что Telegram собирается запретить получать SMS-коды с неофициальных прошивок или что приложение перестанет работать на таких устройствах вовсе.
Декомпиляция приложения показывает, что Telegram использует SafetyNet для тестирования нового способа доставки SMS-кодов авторизации — через Firebase, сервис от Google. Старый способ отправки продолжит работать в остальных случаях, что даёт основания считать, что никаких санкций для пользователей неофициальных приложений и модов применяться, скорее всего, не будет.
Использование Firebase, вероятно, связано с высокой ценой отправки SMS-сообщений и звонков для авторизации. Доставка кодов составляет четверть расходов мессенджера.
#Android
🤔6😱3👍2
Forwarded from Mobile Development by AppTractor
На прошлой неделе писал про "закат" React Native, сейчас в AppFigures в целом исследовали популярность кроссплатформенных фреймворков.
1. Количество приложений на двух платформах - на графике. На данный момент самым популярным ненативным фреймворком является Unity.
2. Удивительно, но веб-обертки занимают два места из пяти - Cordova и Ionic поверх нее.
3. Релизы по годам - на графике.
5. Видно, что веб-приложениям все-таки пришел конец, у них самое большое падение.
6. Flutter стал мейнстримом в еще в 2021 и у него самое маленькое падение в 2022.
7. Связано ли падение React Native с Flutter? Отчасти, однако, скорее всего, большая его часть обусловлена именно общей ситуацией на рынке - упрощением нативной разработки и соответствующим отходом от кроссплатформы.
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 и составлять черные списки библиотек.
В большой команде периодически возникают проблемы с изменением версий или добавлением зависимостей. Можно случайно добавить в продакшн тестовую зависимость, или вызвать креш в рантайме из-за поднятой версии какой-то из транзитивных зависимостей. Gradle-плагин dependency-guard позволяет это контролировать.
Он генерирует файл, содержащий явный список всех транзитивных зависимостей и их версий, что дает возможность следить за изменениями на PR и составлять черные списки библиотек.
GitHub
GitHub - dropbox/dependency-guard: A Gradle plugin that guards against unintentional dependency changes.
A Gradle plugin that guards against unintentional dependency changes. - dropbox/dependency-guard
👍4
Forwarded from StartAndroid
Подробный разбор механизма "живучести" ViewModel
#android #jetpack #viewmodel
https://bowser-f.medium.com/how-viewmodel-works-under-the-hood-52a4f1ff64cf
#android #jetpack #viewmodel
https://bowser-f.medium.com/how-viewmodel-works-under-the-hood-52a4f1ff64cf
👍3😁2😱2
Forwarded from AppFiles - Mobile Development
Трендинговые репозитории GitHub за январь для языка Kotlin:
1. v2rayNG - клиент V2Ray для Android
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)GitHub
GitHub - 2dust/v2rayNG: A V2Ray client for Android, support Xray core and v2fly core
A V2Ray client for Android, support Xray core and v2fly core - 2dust/v2rayNG
🔥4😁2👍1