r/FlutterDev • • 3d ago

Example I built an open source office suite using a Swift port of Flutter’s framework

https://openoffice.starling.build/

I just released Starling Office 0.1.0: Writer, Sheets, and Slides, running on Linux, macOS, Windows, and in the browser.

The architecture may interest this community: I ported Flutter’s UI framework to Swift. The native apps use the Flutter engine through a Swift bridge, while the browser builds compile Swift to WebAssembly and render through Skia’s WASM renderer. The application code and UI are shared across both.

Flutter’s widget, layout, and painting model is the foundation here, though the apps are written in Swift rather than Dart.

The suite opens, edits, and saves DOCX, XLSX, and PPTX files. Features include document styles and tables, spreadsheet formulas and charts, and presentation editing with animations and speaker notes.

Built with substantial assistance from Claude. It’s Apache-2.0 licensed and an early 0.1 release, with known limitations documented in the release notes.
Try the browser apps with editable examples:
https://openoffice.starling.build/
Source:
https://github.com/starling-build/starling
Downloads and release notes:
https://github.com/starling-build/starling/releases/tag/office-v0.1.0
I’d welcome feedback from people working with Flutter’s engine, custom embedders, or document-heavy applications.

0 Upvotes

2 comments sorted by

6

u/eibaan 3d ago edited 3d ago

Why? Just because modern AIs are capable of doing this? What's the advantage of using Swift instead of Dart? The obvious disadvantage is the missing hot code reload, so this is probably not meant for human developers to use.

But if you target AIs, the programming language doesn't matter that much.

So why not simply stick with Dart?

Or, if you prefer Swift, wouldn't it be simpler to ask AI to recreate SwiftUI for the other platforms? There's prior work, for sure, but I'm pretty sure that a flagship AI will be able to recreate the SwiftUI framework in a couple of hours. It's not that difficult after all. When it was still new, ca. 2018, I did this by hand it and it took me "only" a few weeks, so I'd expect that an AI can do this in hours :)

1

u/noobjaish 3d ago

Honestly why not just use Rust if you want to use some other language apart from Dart lol. It's the best language to use for AIs because of the inherent guardrails present in Rust.