We Love Android
Open in Telegram
655
Subscribers
No data24 hours
+17 days
+2430 days
Posts Archive
Repost from Android Good Reads
Пошаговая реализация Dynamic Island на Compose
Dynamic Island из iOS – спорный с точки зрения UX, но интересный с точки зрения реализации нестандартного UI компонент. Если вы ищете, на каких примерах потренироваться с анимациями на Compose, то как раз отлично подойдет.
Repost from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Почему yaml – плохой формат
Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов.
Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии.
Вот несколько примеров непредсказуемого поведения YAML конфигов:
*️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342.
*️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например,
- *.png – невалидный сниппет, так как * зарезервирована. А - !.git будет считан, как пустая строка.
*️⃣Если где-то в конфиге встретится строчка - no, она будет интерпретирована как false, а не как строка. У этого поведения есть даже свое имя – Norway problem, так как региональный код Норвегии, который часто можно встретить в таких конфигах, тоже no. Ах да, так ведет себя только самая новая версия yaml, что добавляет веселья.
*️⃣Не стоит использовать ~, так как это алиас для null.Repost from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Книга «Software Engineering at Google» стала бесплатной
SWE at Google – довольно популярная книга про хорошие инженерные практики, применяемые на проектах большого масштаба. Я сам до сих пор ее так и не прочитал, но от друзей слышал много хороших рекомендаций. Вон, даже Брагилевский советует!
Так в чем новость – авторы книги решили сделать ее бесплатной, так что можете посмотреть оглавление и прочитать любую главу.
Repost from Android Live 🤖
Дерево зависимостей Gradle
#gradle #android
Кайфовая статья, которая по шагам рассказывает про Gradle и конкретно про дерево зависимостей. Особенно будет полезно тем, кто не чувствует себя уверенно в Gradle. 🤓
На небольшой примере описывается:
- что такое зависимости и транзитивные зависимости в Gradle?
- что такое дерево зависимостей в Gradle?
- какие есть конфигурации зависимостей в Gradle?
- а также описывает несколько способов создать дерево зависимостей в вашем проекте Gradle.
Repost from StartAndroid
Первый пост из серии How Gradle Works. Рассказывают, как запускается Gradle.
#gradle
https://blog.gradle.org/how-gradle-works-1
Repost 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
Repost from Kotlin Multiplatform Broadcast
В Java 19 появился Project Loom - легковесные (виртуальные) потоки, некий аналог корутин из Kotlin. Автор статьи устроил эксперимент - в качестве CoroutineDispatcher он взял те, что запускают корутину на виртуальных потоках.
В рамках опыта запускается множество корутин с вызовом Thread.sleep(1000), что останавливает выполнение на 1 секунду и сравнивает работы стандарных CoroutineDispatcher с Loom.
Итог - виртуальные потоки позволят без проблем вызывать блокирующий код в неблокирюущем корутин коде вместо ограничений стандартных Dispatcher. Android такого не видать )
#coroutines
Repost from Android Broadcast
Вышла новая стабильная версия Android Studio Electric Eel (2022.1.1) 1/2
Jetpack Compose
🔥 Автоматическое обновление Compose превью*
👉 Поддержка кастомных Preview аннотаций для нескольких устройств
👉 В Layout Inspector подсвечиваются проблемные UI элементы
XML UI
👉 Подсветка проблем дизайна на разных типах устройств
Сборка и зависимости
🚀 Увеличена скорость синхронизации с параллельным импортом проектов
👉 В Build Analyzer теперь показывается сколько данных загружает Gradle во время сборки
👉 Ассистент обновления проекта теперь выдает
отчет с тем какие шаги были применены
👉 Интеграция Google Play SDK Index - инструмент, которые предоставляет информацию о разных SDK, интегрируемые в приложения
🛠 Исправлена работа Baseline Profile для App Bundle
Инспекции
👉 Новый интерфейс Logcat включен по умолчанию
👉 App Quality Insights - интеграция Firebase Crashlytics с Android Studio
#androidstudio
Repost from Разработка ждёт балета
Вот это прямо прикольно выглядит. AdbOrc - открытая тулза, чтобы связать пачку девайсов в сеть, и дать другим участникам этой сети к ним доступ. Например, баг воспроизводится только у QA на устройстве, они дают доступ к девайсу, мы заходим, чики-брики и в дамки!
#adb #tool
Repost from StartAndroid
С помощью Extension SDK гугл может добавлять новые API к уже выпущенным версиям Android.
На скрине пример API, которое доступно, начиная с API Level 33. Но с помощью Extension оно может быть использовано и в API level 30 (R)
#android #sdk
https://android-developers.googleblog.com/2023/01/extending-android-sdk.html
Repost from Android Broadcast
Реализация поля ввода OTP кода на Jetpack Compose. За основу взяли BasicTextField, рамку нарисовали с помощью стандартной возможности декорирования текстового поля. Прочитал статью и обалдел как легко с Compose делается такое поле и обрабатывается ввод. С Custom View это было на порядок сложнее.
#compose
Repost from Kotlin Multiplatform Broadcast
Разбор зачем в Kotlin нужны Context Receiver на примере Jetpack Compose. Позволит ограничить где могут вызываться модификаторы и разгрузит автокомплит
Repost from Рубанов про мобилу
Изморозь
Наверное, вы уже видели, как на старте приложения пиццы мы замораживаем экран и на стекле можно что-нибудь нарисовать. Наш разработчик Елдос Елеубаев рассказал, как мы добились этого эффекта на Android.
Изморозь на пицце: делаем новогоднюю анимацию в Android-приложении
Repost from Android Live 🤖
Intellij Scratch File
#разработка #android
Далеко не все знают об этой крутейшей фиче Android Studio.
Частенько бывают кейсы, когда необходимо быстро проверить, как работает кусок вновь написанного кода. Если этот код не связан с UI-логикой, то приходится или подключать debug, или же добавлять логгирование на те состояния, которые вы ходите проверить.
Ещё более хардкорный и неудобный способ, которым мало кто пользуется — это открыть параллельно ещё одну среду разработки, где в консоли быстро верифицировать написанную функцию.
Но есть ещё один способ, гораздо более удобный — это использовать Intellij’s Scratch File. По сути, это небольшая live-IDE внутри Android Studio, которая будет выполнять написанный вами код по мере его добавления.
Чтобы добавить новый scratch-файл, надо нажать ⇧ ⌘ N (на macOS) или Ctrl+Alt+Shift+Insert на Windows. А ещё есть поддержка нескольких языков плюс к основному: HTML, Java, JavaScript, SQL, YAML.
В общем, невероятно полезная фича о которой совсем все забыли, а напрасно. Вот тут чуть больше информации, а также демо того, как всё работает.
Repost from Kotlin Multiplatform Broadcast
Вышел Kotlin 1.8.0
👉 Отключение оптимизаций кода при компиляции. Предназначено для лучшего дебага кода
👉 Полностью удален старый бэкенд компилятора
👉 Поддержка аннотации @Builder из Lombok
👉 Поддержка XCode 14.1
👉 Улучшение интеропа с Obj-С и Swift
👉 В KMM заменили схему расположения сырцов в Android, но она отключена по умолчанию
👉 IR бэкенд JS компилятора теперь стабилен
👉 Улучшена скорость работы kotlin-reflect
👉 Kotlin теперь поддерживает только JVM target 1.8. Стандартных библиотек под 1.6 и 1.7 не публиковалось. Теперь только один артефакт -
kotlin-stdlib
👉 Обновление документации
🔨 Gradle (подробности)
👉 Поддержка Gradle 7.2 и 7.3.
👉 Миграция опций компилятора на Gradle Lazy Property для соотвествия современным требованиям плагинов
👉 Все подключенные стандартные библиотеки Kotlin теперь по умолчанию будут совпадать с версией подключенного Kotlin плагина
👉 Возможность отключить fallback стратегию в Kotlin компиляторе
Поддерживается в Android Studio Electric Eel (221), Flamingo (222) и IntelliJ IDEA 2021.3, 2022.1, 2022.2Repost from Android Good Reads
Мини-курс по Rust от команды Android
Сравнительно недавно в AOSP занесли Rust для разработки части компонентов операционной системы. Чтобы разработчикам было проще заонбордиться, команда выпустила четырехдневный курс по Rust для новичков. Задачи курса – познакомить с базовым синтаксисом и концепциями языка, а заодно погрузить в Android-related специфику.
Если вы еще не придумали, чем заняться на новогодних каникулах, знакомство с Rust может быть отличной идеей!
Repost from Mobile Native ️️
Constraint Layout in Jetpack Compose with Examples
Пример использования ConstraintLayout в Jetpack Compose.
И еще несколько ссылок из статьи
👉 ConstraintLayout in Compose
👉 Getting Started with ConstraintLayout in Jetpack Compose
Читать (En)
