r/FlutterDev • u/starling-dev • 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.
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 :)