Developing a Beautiful and Performant Block Editor in Qt C++ and QML

https://news.ycombinator.com/rss Hits: 11
Summary

Developing a Beautiful and Performant Block Editor in Qt C++ and QMLHow I developed Daino Notes block editor from scratch - a cross-platform and native-like applicationComputers are fast, but modern software - especially web apps, are so bloated that they hold their full potential back. This is why I've decided to build my own block editor from scratch using Qt C++ and QML.Native/Non-NativeWhen people refer to native apps, they typically mean applications developed using the GUI frameworks provided by the operating system. However, using native frameworks isn't always the best choice. For instance, Apple's SwiftUI is reportedly slow[1][2][3][4], and Microsoft tends to abandon each new UI framework every five years[5][6].So, it's more useful to ask: what do we expect from good native apps? We expect them to:1. Look visually appealing and consistent with the rest of the OS.2. Behave consistently.3. Perform well.I will attempt to convince you that it's possible to achieve all three of these qualities using Qt, at least to some extent. In the Qt community, we refer to our applications as 'native-like' because they can perform and look like native apps, even though they aren't built with native frameworks.*While Qt apps typically don't look or behave exactly like native apps, I'm going to argue that they can.Block EditorThe previous version of Daino Notes[7] was a simple note-taking app built using Qt Widgets. It featured a familiar three-pane design. The text editor was a basic plain text editor[8] with Markdown syntax highlighting[9]. It was simple and worked fairly well.But for a long time, I wanted something more. Daino Notes has been featured as one of the top results on Google searches for the keyword 'notes,' so many of its users are not technical. They aren't concerned with Markdown; they simply want standard formatting options and an app that just works. They want a WYSIWYG (What You See Is What You Get) experience. I wanted that, too.At the same time, I've grow...

First seen: 2025-12-29 08:59

Last seen: 2025-12-29 19:01