macOS-First Product Development with Swift & SwiftUI

By Shohei Komatsu (shokoma) · February 2026

Draw Plus — macOS-native workspace with diagrams, requirements, and project management

Why Build for macOS?

Most productivity tools today are web-first, often wrapped in Electron for a “desktop” version. That works well for many products, but it comes with trade-offs: higher memory usage, limited offline support, and an experience that never quite feels native. For tools where you spend hours at a time — like a requirements/diagram workspace — going native makes a measurable difference in responsiveness and reliability.

With Draw Plus, I chose macOS-native development because the primary users are engineers who value offline access, fast canvas rendering, and deep OS integration (drag-and-drop, file system, Spotlight search).

Architecture Overview

The application follows a document-based architecture where each project file is a self-contained Core Data store. This has several advantages:

SwiftUI for Complex UIs

SwiftUI is excellent for declarative layout, but building a multi-pane workspace with drag-and-drop, canvas rendering, and complex selection states pushes it to its limits. Key patterns that helped:

Core Data + CloudKit Sync

Core Data handles the local persistence layer, and CloudKit provides transparent sync to iCloud. The key design decisions:

Native vs. Electron vs. Web: Trade-offs

macOS NativeElectronWeb App
PerformanceExcellentGoodVariable
OfflineFullPartialService Worker
Memory~80–150 MB~300–600 MBTab-dependent
Cross-platformmacOS onlyWin/Mac/LinuxAny browser
Development costHigh (platform-specific)MediumLow–Medium

Takeaways

Explore Further

Last updated: February 2026