TL;DR

A seasoned macOS/iOS developer reports that native SDKs like SwiftUI and TextKit struggle with complex text tasks such as Markdown rendering and selection. As a result, many turn to web-based solutions like WebKit and Electron, which offer better performance and features. This shift highlights limitations in native frameworks for modern app needs.

A seasoned macOS/iOS developer has revealed that native frameworks such as SwiftUI, AppKit, and TextKit are insufficient for implementing complex features like rich text selection and streaming in a Markdown-based chat application, leading many developers to rely on web technologies instead.

The developer attempted to build a simple Markdown chat app using only native tools, including SwiftUI, NSTextView, and TextKit 2, but faced significant performance and functionality challenges. SwiftUI proved limited for complex text selection, while NSTextView and TextKit 2 struggled with streaming text and maintaining performance, especially with modern features like real-time updates and rich interactions.

Switching to WebKit for rendering Markdown provided a more stable and performant solution, with better typography, text selection, and integration capabilities. The developer noted that web-based solutions like Electron or React Native offer near-instant performance gains and feature completeness, which native frameworks currently lack for these use cases.

Why It Matters

This development underscores a critical challenge for native app developers: despite the maturity and performance of native frameworks, they often fall short for complex, modern text interactions in long-form content or chat applications. As a result, many are resorting to web-based technologies, which can deliver richer features and better performance with less effort, potentially influencing future app development strategies.

Amazon

Markdown rich text editor for Mac

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Over the past decade, native SDKs like SwiftUI and TextKit have been promoted as the best tools for building performant, integrated macOS and iOS apps. However, as apps evolve to include more sophisticated text features—streaming, selection, rich formatting—these frameworks reveal significant limitations. Historically, developers faced similar issues with early versions of UI frameworks, but recent updates have not fully addressed the needs for complex text handling in real-time applications like chat or collaborative editing.

“I still cannot make a simple thing work properly: a chat with Markdown & the ability to select a whole message.”

— Anonymous developer

“WebKit and Electron are just better for this kind of work right now.”

— Developer on Hacker News

Amazon

WebKit-based Markdown viewer

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It remains unclear whether future updates to SwiftUI, TextKit, or other native frameworks will sufficiently address these limitations, or if the industry will continue to favor web-based solutions for complex text rendering and interaction needs.

Amazon

Electron chat app development tools

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Developers are likely to further adopt web technologies like WebKit, Electron, or React Native for complex text applications. Native SDKs may see targeted improvements, but their effectiveness for long-term, feature-rich chat or editing apps remains uncertain. Monitoring updates from Apple and community solutions will be key.

Amazon

iOS native text rendering SDKs

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

Why are native frameworks failing for complex text rendering?

Native frameworks like SwiftUI and TextKit are primarily designed for simple UI components and basic text interactions. They lack the robustness and flexibility needed for streaming, advanced selection, and rich formatting in real-time applications.

Can native SDKs improve to support these features?

It is uncertain. Apple has made improvements, but many developers believe native frameworks still lag behind web-based solutions in handling complex, performance-critical text interactions.

Why do many developers choose web-based solutions now?

Web technologies like WebKit, Electron, and React Native offer better performance, richer feature sets, and easier cross-platform compatibility for complex text rendering and interactions, making them attractive alternatives.

Does this mean native development is obsolete?

Not necessarily. Native development remains ideal for performance-critical, simple UI components, but for complex, feature-rich text applications, many are turning to web-based solutions until native frameworks catch up.

You May Also Like

Building for the joy of building

Johanna Larsson shares her journey and current passion project, emphasizing the importance of joy in software development and personal creation.

Show HN: Codiff, a local diff review tool

Codiff, a new native desktop app for reviewing Git changes locally, is now available for macOS. It offers fast, minimal diff viewing with inline comments and LLM walkthroughs.

TIL that 32 bit time will run out in 2038, while 64 bit time will run out approximately 292 billion years from now

The 32-bit Unix time will overflow on January 19, 2038, causing potential system failures; 64-bit systems are also approaching their limits, but much later.

A Few Words on DS4

Exploring the rise of DwarfStar 4 (DS4), its technical features, significance for local inference, and future prospects in AI development.