Streamlining Apple Ecosystem Automation: Our Vision
We’ve been contemplating automation in the Apple ecosystem for some time, and I’d like to share our emerging vision. Several developments have inspired our thinking:
-
Dagger: Docker’s creator is building a CI engine that makes automation portable across CI systems. They made containers portable; what if we could bring similar capabilities to the Apple ecosystem?
-
Fastlane: While powerful, we’ve noticed developers are reluctant to write Ruby. Since Fastlane’s introduction, underlying tools have become more capable, the ecosystem for building CLI packages has diversified (Tuist contributing to this), and numerous packages now interact with ecosystem APIs like App Store Connect.
-
Virtualization Advances: macOS environments have become more accessible with Virtualization.framework and the open-sourcing of Lume. This opens opportunities to align automation execution between local and remote environments, simplifying debugging.
-
CLI-First Experiences: Fly.io’s CLI exemplifies seamless interaction between local and remote environments. Commands like
fly deploy
build your app remotely while feeling local—creating magical developer experiences.
Our appetite for innovation in this space continues to grow. While the exact implementation within Tuist remains undecided, we’re exploring several exciting possibilities:
-
tuist xcodebuild --vm xcode-16
: Virtualizing execution locally, similar to Docker. While images are heavier, the real value emerges when we extend to… -
tuist xcodebuild --vm remote:xcode-16
: Providing instant remote environments where compilation starts almost immediately, creating that seamless Fly.io-like experience. -
tuist workflow run release --vm remote:xcode-16
: Running custom Swift scripts optimized for performance. We can leverage our expertise in Swift DSLs and Swift-first experiences.
Once these capabilities are in place, we could trigger workflows from Git forge events (new PRs, commits). This creates a comprehensive remote automation tool that integrates local and remote environments, enables consistent workflow execution across both, and provides a CLI-first interface:
tuist workflow logs --pr 1234 --tail
Imagine watching workflow logs in your terminal as if everything were running locally!
This infrastructure for provisioning disposable macOS environments also enables UI-based experiences like “click or comment to release or build a preview.” Picture triggering a release from your phone—that’s the vision we’re building toward.
Tuist was designed as an innovation space, and we’re committed to addressing developers’ evolving needs with fresh approaches.