← На главную

SwiftUI проигрывает Electron в работе с длинным текстом

17.05.2026 11:49 · hackernews

Бывший разработчик macOS почти в два десятка лет столкнулся с парадоксом: создание простого чата с поддержкой Markdown в нативной экосистеме Apple оказалось невозможным. Попытки реализовать редактор через SwiftUI натолкнулись на фундаментальные ограничения — в дизайне системы просто нельзя выбрать целый документ, скомпонованный из примитивов SwiftUI. Переход в NSTextView с TextKit 2 лишь ухудшил ситуацию, лишив команды всех наработок по тестированию и производительности в среде SwiftUI, а потоковая отправка текста вызвала резкие скачки нагрузки на CPU. Двигаясь дальше вниз до чистого TextKit 2, автор заметил, что стриминг остаётся ужасным, а любые современные механизмы взаимодействия ломаются, требуя ручного управления растущими блоками текста. Оставшись один на один с AppKit, разработчик понял, что достичь даже базового паритета с функциями macOS — контекстного меню, словаря, выделения и доступности — займёт месяцы. Выходом казался WebKit, но в самый критический момент автор осознал главное: проще создать Electron-проект. Он оказался намного быстрее и удобнее чистых нативных решений. В Electron текстовые операции и рендеринг Markdown работают из коробки, а типографика даже лучше, чем у реализации на TextKit 2. Поддержка нативных интеграций macOS тут же появляется, позволяя легко отображать сложные git-диффы. Стало очевидно, почему новые чат-приложения пишутся на веб-стеках: SwiftUI хорош только для простых экранов без скроллинга, а для долгого текста нативные SDK Apple превращаются из преимущества в серьёзную помеху.

Читать оригинал →