Native all the way, until you need text

TL;DR

A seasoned macOS/iOS developer highlights persistent limitations in native frameworks for rich text and Markdown rendering. Despite familiarity with Apple SDKs, they find web-based solutions like WebKit and Electron more effective for complex text features, raising questions about native development’s viability.

A seasoned macOS/iOS developer has publicly shared that native Apple SDKs, including SwiftUI, AppKit, and TextKit, are inadequate for implementing complex rich text features such as Markdown rendering and message selection, leading to a shift toward web-based solutions like WebKit and Electron.

The developer, with nearly twenty years of experience, attempted to build a simple chat app with Markdown support using native tools. They found SwiftUI performant but limited in handling document selection and streaming, and NSTextView with TextKit 2 introduced further performance issues and visual glitches. Moving to AppKit and lower-level TextKit proved time-consuming and still lacked essential features like context menus, accessibility, and text interactions.

Switching to WebKit allowed the developer to achieve reliable performance, high-quality typography, and native-like integrations with minimal effort. They also experimented with Electron, which provided even better performance for complex text operations and rendering, including diff visualization, with less development overhead. Despite their expertise with native SDKs, the developer concluded that current native frameworks are insufficient for building feature-rich, performant long-form chat interfaces, especially those involving complex text interactions and streaming.

Why It Matters

This development underscores a broader challenge in native app development for rich text interfaces on macOS and iOS. It suggests that, despite familiarity and control, native frameworks may impose constraints that hinder modern app features, prompting developers to rely on web technologies. This shift impacts the future of native app development, especially for chat and collaborative apps that depend on complex text rendering and interaction.

MNN Portable Monitor 15.6inch FHD 1080P USB C HDMI Gaming Ultra-Slim IPS Display w/Smart Cover & Speakers,HDR Plug&Play, External Monitor for Laptop PC Phone Mac (15.6'' 1080P)

MNN Portable Monitor 15.6inch FHD 1080P USB C HDMI Gaming Ultra-Slim IPS Display w/Smart Cover & Speakers,HDR Plug&Play, External Monitor for Laptop PC Phone Mac (15.6'' 1080P)

Full HD Portable Monitor – MNN 15.6inch portable laptop monitor with 1920*1080 resolution, advanced IPS matte screen support…

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Over the past few years, native frameworks like SwiftUI and TextKit have been promoted as modern solutions for building rich interfaces on Apple platforms. However, persistent issues with performance, streaming, and feature parity have been widely reported by developers. Historically, native SDKs offered robust tools, but recent experiences indicate they may not keep pace with the demands of modern, interactive, and streaming-rich applications. This has led to increased adoption of web-based rendering engines like WebKit and cross-platform frameworks such as Electron, which offer more reliable and feature-rich environments for complex text handling.

“I still cannot make a simple thing work properly: a chat with Markdown & the ability to select a whole message. And suddenly it becomes much clearer why most new chat-heavy apps that depend on one of the most important interface patterns of this era – chat, long-form rich text, flexible typography – are web-based in one way or another.”

— the developer

“SwiftUI is fine for simple screens, preferably without too much scrolling. But you can get most of that performance from Electron or React Native almost for free with the native interoperability, while keeping a much better text & rendering model.”

— the developer

Dear Editor

Dear Editor

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 Apple’s SDKs will address these limitations or if alternative native frameworks will emerge to better support complex text rendering and streaming. The developer’s experience reflects a personal assessment, and broader industry consensus is still evolving.

MixPad Multitrack Recording Software for Sound Mixing and Music Production Free [Mac Download]

MixPad Multitrack Recording Software for Sound Mixing and Music Production Free [Mac Download]

Mix an audio, music and voice tracks

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Developers and platform providers are likely to explore hybrid approaches, combining native and web technologies. Apple may also update SDKs to improve support for complex text features. Monitoring upcoming SDK releases and community feedback will clarify the future landscape for native rich text development.

Dear Editor

Dear Editor

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 optimized for simple interfaces and may lack the performance and flexibility needed for streaming, selection, and advanced formatting in long documents or chat apps.

Does this mean native development is obsolete for chat apps?

Not necessarily, but current limitations suggest that many developers prefer web-based solutions for complex features, especially when performance and feature completeness are critical.

Will Apple improve native support for rich text in the future?

It is uncertain. While Apple regularly updates SDKs, the developer community has yet to see significant improvements addressing these specific issues for complex, streaming-rich text interfaces.

Are Electron and WebKit the only alternatives?

No, other cross-platform and hybrid frameworks exist, but Electron and WebKit are currently favored for their maturity, performance, and integration capabilities for complex text rendering.

You May Also Like

Building a CI/CD Pipeline in Under an Hour—with Free Tools

Building a CI/CD pipeline in under an hour with free tools is possible—discover how to streamline your development process effortlessly.

A History of IDEs at Google

An in-depth look at how Google evolved its integrated development environment ecosystem, from diverse choices to a unified cloud-based platform.

Spectre Programming Language

Spectre is a new low-level programming language focusing on safety, correctness, and control via type invariants and contract-based checks, now documented for developers.

Prolog Coding Horror

An analysis of frequent Prolog programming mistakes, their impact, and best practices to write correct, declarative code.