en
Feedback
We Love Android

We Love Android

Open in Telegram

Новости из мира Android-разработки

Show more
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, то как раз отлично подойдет.

Почему yaml – плохой формат Скорее всего, до вас долетали обрывки споров про то, насколько хорошая идея использовать yaml для различных конфигов. Все сводится к тому, что спецификация Yaml на порядок сложнее, чем JSON. Например, спека предусматривает 63 разных способа объявления multiline строк. Кроме того, она еще и значительно меняется от версии к версии. Вот несколько примеров непредсказуемого поведения YAML конфигов: *️⃣`- 22:22` в зависимости от версии парсера может быть прочитана как строка, а может – как число 1342. *️⃣Некоторые символы считываются как строки, а некоторые оказываются зарезервированы под что-то еще. Например, - *.png – невалидный сниппет, так как * зарезервирована. А - !.git будет считан, как пустая строка. *️⃣Если где-то в конфиге встретится строчка - no, она будет интерпретирована как false, а не как строка. У этого поведения есть даже свое имя – Norway problem, так как региональный код Норвегии, который часто можно встретить в таких конфигах, тоже no. Ах да, так ведет себя только самая новая версия yaml, что добавляет веселья. *️⃣Не стоит использовать ~, так как это алиас для null.

Книга «Software Engineering at Google» стала бесплатной SWE at Google – довольно популярная книга про хорошие инженерные прак
Книга «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

WebRTC in Jetpack Compose — этот проект демонстрирует использование протокола WebRTC для видеосвязи в реальном времени в Jetp
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

В Java 19 появился Project Loom - легковесные (виртуальные) потоки, некий аналог корутин из Kotlin. Автор статьи устроил эксп
В 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
+8
Вышла новая стабильная версия 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

Вот это прямо прикольно выглядит. AdbOrc - открытая тулза, чтобы связать пачку девайсов в сеть, и дать другим участникам этой сети к ним доступ. Например, баг воспроизводится только у QA на устройстве, они дают доступ к девайсу, мы заходим, чики-брики и в дамки! #adb #tool

Repost from StartAndroid
С помощью Extension SDK гугл может добавлять новые API к уже выпущенным версиям Android. На скрине пример API, которое доступ
С помощью 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, рамку нарисовали с помощью стандартной воз
Реализация поля ввода OTP кода на Jetpack Compose. За основу взяли BasicTextField, рамку нарисовали с помощью стандартной возможности декорирования текстового поля. Прочитал статью и обалдел как легко с Compose делается такое поле и обрабатывается ввод. С Custom View это было на порядок сложнее. #compose

Разбор зачем в Kotlin нужны Context Receiver на примере Jetpack Compose. Позволит ограничить где могут вызываться модификатор
Разбор зачем в Kotlin нужны Context Receiver на примере Jetpack Compose. Позволит ограничить где могут вызываться модификаторы и разгрузит автокомплит

Изморозь Наверное, вы уже видели, как на старте приложения пиццы мы замораживаем экран и на стекле можно что-нибудь нарисовать. Наш разработчик Елдос Елеубаев рассказал, как мы добились этого эффекта на 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. В общем, невероятно полезная фича о которой совсем все забыли, а напрасно. Вот тут чуть больше информации, а также демо того, как всё работает.

Вышел 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.2

Repost from Android Good Reads
Мини-курс по Rust от команды Android Сравнительно недавно в AOSP занесли Rust для разработки части компонентов операционной с
Мини-курс по Rust от команды Android Сравнительно недавно в AOSP занесли Rust для разработки части компонентов операционной системы. Чтобы разработчикам было проще заонбордиться, команда выпустила четырехдневный курс по Rust для новичков. Задачи курса – познакомить с базовым синтаксисом и концепциями языка, а заодно погрузить в Android-related специфику. Если вы еще не придумали, чем заняться на новогодних каникулах, знакомство с Rust может быть отличной идеей!

Constraint Layout in Jetpack Compose with Examples Пример использования ConstraintLayout в Jetpack Compose. И еще несколько с
Constraint Layout in Jetpack Compose with Examples Пример использования ConstraintLayout в Jetpack Compose. И еще несколько ссылок из статьи 👉 ConstraintLayout in Compose 👉 Getting Started with ConstraintLayout in Jetpack Compose Читать (En)