Pull to refresh
25
Karma
0
Rating

От LiveData к Flow…

Этот один человек – Developer Relations Engineer @ Google, working on Android. Я крайне сомневаюсь, что у них там нет единой линии между всеми деврелами, которой они придерживаются.

Чем обоснован переход на flow

Просто попытка не плодить сущности. Вот есть обсервабл дата холдер в виде LiveData. Сторонняя зависимость по сути из одного класса. Которая еще и в тестах требует под себя целую рулу (InstantTaskExecutorRule). И тут внезапно появляется похожая штука, которая по сути часть стандартной библиотеки Kotlin, так еще и с более обширным API.

Тратить время на целенаправленную миграцию кмк смысла нет, но потихоньку выпиливать можно.

От LiveData к Flow…

Ну и google рекомендует конвертировать flow в livedata

Уже нет.

LiveData is still our solution for Java developers, beginners, and simple situations. For the rest, a good option is moving to Kotlin Flows.

Как и зачем собирать Android приложение в docker контейнере

Почему используете gradle а не gradle wrapper? Если только для того, чтобы не качать бинарник каждый раз, то как синхронизируете версию Gradle в Docker с версией в Android проекте? Руками каждый раз?

Material You: раскладываем по полочкам обновление дизайн-системы Material

Dynamic Color — интересная вещь. Мне нравится, что с Android 13 все вендоры обязаны будут поддержать эту фичу. Но есть сомнения, что сторонние приложения в ближайшее время начнут поддерживать динамические цвета.

И не безосновательные, я крайне сомневаюсь что бренды тратящие сотни часов на разработку цветовой схемы приложения будут от нее отказываться. Тоже самое с новыми монохромными иконками, которые превращают список приложений в абсолютную монохромную кашу (гуглу здесь не привыкать, у него самого уже давно иконки все сливаются).

5 лаконичных синтаксисов Java, которых мне не хватает в Kotlin

for (float i = 0; i <= 10; i += 0.1) {
    // Do something with i
}

Отличный способ выстрелить себе в ногу на погрешностях округления. Этот пример считает до 9.900002, в то время как Kotlin версия до 10.0.


Но отсутсвие нормального for-loop в Kotlin конечно убивает.

Android Studio. Kotlin. Сохранение файла в общедоступной папке Download

У меня был такой же кейс, я его решил намного проще через StorageAccessFramework доступный вроде бы с 4.4 версии. Он даже разрешения на запись не требует и работает как обычный файлпикер в десктопах. Пользователь сам сможет выбрать папку и название файла.


https://developer.android.com/training/data-storage/shared/documents-files#create-file

Делаем мобильную версию Poplt

288 картинок с почти нечитаемым текстом на 200 МБ трафика.
Даже просто выложить видео без текста было бы лучшим решением, потому что смотреть ваши скриншоты ровно тоже самое что и смотреть видео.

Разработка приложений с Windows Subsystem for Android

Для теста запустили приложение использующее exoPlayer для отображения потокового видео – все взлетело без проблем, работает. Так что «сишные» библиотеки не страшны

Но ExoPlayer по-умолчанию не имеет никаких нативных либ, только в экстеншонах, да и те доступны под х86 тоже, так что нужно еще и abi фильтр настроить правильно для эксперимента.


После всех этих действий, у меня перестал запускаться эмулятор и пока с этим не разобрался

Потому что для виртуализации используется Hyper-V, а эмуляторы из студии один из трех вариантов. Покапайте в эту сторону, возможно достаточно будет их пересоздать чтобы SDK вдуплил что теперь нужно использовать Hyper-V. (я не знаю деталей, не использую винду)

Почему любой Android снимает видео хуже iPhone?

А есть примеры? А то пока нахожу только ограничения самой платформы (Android 9+), но не самого GP.
К тому же вендорские приложения, которые обновляются через GP, 100% их используют.

Apple представила MacBook Pro с новыми чипами M1 Pro и M1 Max

В стиме кучу игр (особенно старых) под 64-бита не пересобрали, так что их даже запустить на последних мак осях нельзя, а тут еще и м1.

Переход на Swift UI и React Native: как за 3 месяца мы запустили новое приложение, быстро набравшее популярность

А почему iOS не на ReactNative? Мотивация взять ReactNative более менее понятна, но когда вы уже выбрали его набирать отдельную команду iOS разработки, чтобы делали все тоже самое что уже сделано на кроссплатформе выглядит не очень.

Рефакторинг функций расширения в Kotlin: использование объекта-компаньона

Думаю и правда проще. Но я пошел именно этим путём, чтобы показать удобную фишку с companion object : BiometricsUtils , благодаря которой можно опустить два последних шага и не добавлять BiometricsUtilsImpl вообще, оставив значение по-умолчанию в конструкторе.

Пара подводных камней при разработке на Kotlin

Google выиграл у Oracle в суде многолетнюю тяжбу об использовании Java

Суд был про реализацию Java API, а не саму Java. Если бы проиграли, то Котлин бы не спас, т.к. он сам использует Java API.

Пара подводных камней при разработке на Kotlin

Какой всё-таки смысл переходить с Java на Котлин?

Гугл будет дальше еще сильнее пушить Котлин через свои библиотеки. Компоуз работает только с Котлином, а новые АндроидХ либы уже имеют курутины как часть стандартного апи, а не в виде дополнительных Колин экстеншонов.

«Оливье в каждой семье свой», или как мы придумали ещё одну многомодульную архитектуру

Зачем дата мапперам разделение на интерфейс и имплементацию? Вы их мокаете в тестах?

Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle

В релиз ноутах написано про compilation avoidance самих скриптов, а не про сброс кеша. Только что проверил на своем маленьком проекте. Менял minifyEnabled с false на true и собирал :app:assembleDebug. Если Котлин скрипты лежат в buildSrc, то при изменении все зависимости :app:assembleDebug выполняются заново. При использовании includeBuild все зависимости все UP-TO-DATE независимо от значения minifyEnabled как и должно быть.

Материалы митапа для андроид-инженеров: поиск проблем сборки, защита от них и работа с Gradle

У included build есть очень важное отличие от buildSrc – он не ломает Gradle cache. При любом изменении buildSrc cache слетает полностью, в то время как при использовании included build cache работает как положено.

Влияние Kotlin data-классов на вес приложения

Тоже вполне себе валидный подход.


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

Что нового в SQLite 3.35

Даже если и обновят, то можно будет использовать только на последней версии Андроида. Можно самому собрать и поставлять вместе с приложением как например здесь.

Как найти подходящую абстракцию для работы со строками в Android

С локалью все хорошо будет. Строковое значение резолвится на уровне UI через вызов asString, при смене конфигурации UI пересоздастся и вызовет опять asString.

Information

Rating
Does not participate
Registered
Activity