A tool for creating macOS apps with Swift packages instead of Xcode projects. The end goal is to be able to create apps for all desktop platforms with a single Swift codebase.
You may also be interested in SwiftCrossUI, a UI framework with a similar goal.
❤️
Supporting Swift Bundler If you find Swift Bundler useful, please consider supporting me by becoming a sponsor. I spend most of my spare time working on open-source projects, and each sponsorship helps me focus more time on making high quality tools for the community.
📚
Documentation The documentation is hosted on GitHub pages.
📦
Installation Install the latest version of Swift Bundler with mint:
mint install stackotter/swift-bundler
If you have previously installed Swift Bundler via the installation script you must delete the /opt/swift-bundler
directory (requires sudo).
For more installation methods, see the documentation.
🚦
Getting started After installing Swift Bundler, package templates make it quick to get started. The following sections walk you through creating and running a simple 'Hello, World!' SwiftUI app.
Creating a SwiftUI app
# Create a new app from the SwiftUI template.
swift bundler create HelloWorld --template SwiftUI
cd HelloWorld
Running the app
# Build and run the app.
swift bundler run
Using Xcode as your IDE
# Creates the files necessary to get xcode to run the package as an app.
# Only needs to be run once unless you delete the `.swiftpm` directory.
swift bundler generate-xcode-support
# Open the package in Xcode
open Package.swift
Learning more
To learn more about Swift Bundler refer to the documentation.
🛠
Contributing Contributions of all kinds are very welcome! Just make sure to check out the contributing guidelines before getting started. Read through the open issues for contribution ideas.
👨💻
Apps made with Swift Bundler If you have an app made with Swift Bundler, I'd love to hear about it! Just open an issue or submit a PR to add it to the list.
- Delta Client — A 'Minecraft: Java Edition' compatible Minecraft client written from scratch in Swift