Как стать автором
Обновить
27
0

Пользователь

Производительность Android приложений Kotlin в сравнении с С++ или цена управления памятью

Спасибо за сравнение, но мне кажется оно не очень корректное в том плане, что код на Котлине изначально не производителен из-за необходимости выделать память в куче на каждой итерации. В то время как вариант на Си работает исключительно на стеке. Даже Android Studio ругается, когда мы в View.onDraw создаем объекты, а тут количество итераций еще больше.

Было бы интересно посмотреть на отличия в следующих случаях:

  1. Использовать пул объектов Complex и переиспользовать их насколько возможно.

  2. Не выделять память в куче на Котлине вообще, использовать value class Complex и упаковывать обе координаты в один long как например у класса Offset в компоузе. Только придется обновить алгоритм, чтобы использовать float.

  3. Сделать из Котлин кода Котлин Нейтив бинарник под андроид androidNativeArm64.

Проект Prossimo перепишет sudo и su на Rust

Был, но уже нет. В ходе оптимизации расходов Мозилла выкинула раст в отдельную организацию Раст фоундейшон, который теперь спонсируется разными компаниями.

Из примечательного: Гугл – платиновый спонсор, а Мозилла – всего лишь серебрянный.

https://foundation.rust-lang.org/members/

До того, как это стало стримом

Опенсорс опенсорсом, но стоит всегда указывать еще лицензию по которой он распространяется. Особенно для указанных проектов выше, у которых часть компонентов GPL.
VLCKit – LGPLv2.1.
FFmpegKit – уже нужно быть внимательней, т.к. можно так и GPL v3.0 скачать случайно. Но благо FFMpeg на мобильных устройствах поддерживает использование системных библиотек для h264/h265 вместо GPL licensed x264/x265.

Как Android-разработчику избавиться от комплекса доменной неполноценности

Взять какую‑нибудь архитектуру из семейства MVx. То, что в «Чистой архитектуре» занимает целых два слоя, domain и data, в MVx — всего лишь буква M.

MVx – это архитектурные паттерны презентационного слоя. Ничто не мешает использовать «чистую архитектуру» с ними, они всего-лишь один из слоев торта.

Платформа из красного кирпича: как настроить окружение в Kotlin Multiplatform Mobile

Есть такое. Только сейчас самый модный вариант сейчас – класть в .toml файлик.

Исследование: более 80% российских мобильных приложений содержат уязвимости высокой и наивысшей степени критичности

Сообщает РИА Новости со ссылкой на исследование российской компании по безопасности разработок мобильных приложений «Стингрей Технолоджиз».

Стингрей – платформа автоматизированного анализа защищённости мобильных приложений.

Ну да, так и было. Ссылка на новость, но полный текст исследования только по запросу.

Принципы построения многомодульных Android-приложений

модули позволяют ускорить разработку, уменьшить кол-во merge-конфликтов, снизить кол-во ошибок во всем приложении.

В последнее время многомодульность преподносится в виде решения вообще всех насущных проблем.

Мердж конфликты появляются когда несколько человек трогают одно и то же место, нет никакой разницы, будет это место в одном из сотен модулей или в одном единственном. Если экраны раскидать по пакетам как по модулям, а не городить package by type, то и конфликтов будет ровно столько же.

Как именно многомодульность уменьшает количество ошибок в приложении мне тоже не очень ясно.

И все это идет с огромной пачкой проблем по поддержанию корректности структуры модулей и поддержки Gradle конфигураций.

От 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.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность