Connect with us

Новости

Разработка мобильных приложений: новости и статьи — 02.07

Опубликовано

/

     
     

Instabug оценил возможности AI‑ассистентов (включая GitHub Copilot, Cursor, Claude Code и SmartResolve) автоматически устранять сбои в мобильных приложениях на iOS и Android. Тесты проводились на реальных крашах, а ассистенты видели всю кодовую базу и стек‑трейсы. Критерии оценки включали корректность (40 %), схожесть с человеческими исправлениями (30 %), ясность, глубину и релевантность, что позволило получить общий показатель точности. Результаты показали, что на iOS лидирует SmartResolve с точностью 66.8%, в то время как на Android Cursor оказался лучшим с 73.9%, а SmartResolve и Copilot были близко. Однако общая производительность на Android оказалась выше, чем на iOS, за счёт более ровного распределения оценок. При этом схожесть с решениями разработчиков была заметно ниже, что подчёркивает необходимость ревью человеком. Итог: AI‑ассистенты ускоряют первые шаги по устранению крашей, но для сложных случаев, соответствия архитектуре и поддерживаемости кода критически важен контроль разработчиков.

Разработка

Кроссплатформа

iOS

Airbnb написал про свой опыт улучшения производительности SwiftUI. В целом, они абстрагировались от алгоритм сравнения на основе рефлексии и написали свое решение на основе Equatable. Макрос @Equatable генерирует реализацию Equatable, которая сравнивает все сохраненные свойства экземпляра представления, исключая свойства с обертками свойств SwiftUI, такими как @State и @Environment, которые запускают обновления представления через другие механизмы. Свойства, которые не являются Equatable и не влияют на отрисовку тела представления, можно пометить с помощью @SkipEquatable, чтобы исключить их из сгенерированной реализации. Это позволяет продолжать использовать обработчики действий на основе замыканий из библиотеки однонаправленного потока данных, не влияя на процесс диффинга SwiftUI.

Android

Исследуя проблемы с медленной сборкой Kotlin/Native, автор статьи погружается в мир Klib-файлов, IR (Intermediate Representation) и двух ключевых стадий компиляции: сборки IR и финального линкования. Оказывается, .klib содержит сериализованный IR-код, а не нативный бинарный, и только при сборке итогового фреймворка происходит полноценная компиляция в машинный код. Это объясняет, почему задача linkReleaseFrameworkIosArm64 может занимать до 18 минут — линковка просто не кэшируется и всегда запускается заново. В статье также раскрываются нюансы кроссплатформенных библиотек, влияние статических и динамических фреймворков, и то, почему в мобильной разработке предпочтительнее использовать статические библиотеки. Хотя линковка остаётся узким местом в сборке, понимание архитектуры K/N и устройства Klib-файлов даёт разработчику контроль над процессом и помогает принять обоснованные решения при оптимизации сборки.

← Предыдущий выпуск

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: