--[ repository ]------------------------------------------------------------
URL : https://github.com/imattas/ipa-template
Language : Swift
Status : active
Stars : 0
Updated : 2026-06-11
Learn, create, and build apps for Apple devices using templates and docs.
────────────────────────────────────────────────────────────────────────────────
--[ ipa-template — Apple Platform App Templates ]--
A collection of production-ready scaffolding for every major Apple-platform
toolchain. Each template is a full, opinionated skeleton — architecture,
networking layer, storage, navigation, tests, docs, and CI wiring — not a
"hello world." Pick the one that matches your target, copy it, and start
building a real app on top of it.
Every template shares the same conventions so moving between them is easy:
- Modern concurrency — Swift 6 language mode, async/await, actors, and
@MainActor isolation where appropriate.
- `@Observable` view models (iOS 17 / macOS 14+) with an inline note on the
pre-iOS-17 ObservableObject / @Published fallback.
- A stubbed async networking layer — APIClient + Endpoint with a typed
error enum and a worked async fetch example, behind a protocol so it's
mockable.
- Wired-up tests — at least two stubbed unit tests per template so the test
target exists from day one.
- Per-template `docs/` — ARCHITECTURE.md, SETUP.md, and (where relevant)
CONTRIBUTING.md.
--[ Templates ]--
Template Language Platform Pattern
CI
Swift-UIKit Swift iOS / iPadOS MVVM + DI
!build
Swift-SwiftUI Swift iOS / iPadOS / macOS MVVM +
NavigationStack ro... !build
ObjectiveC-UIKit Objective-C iOS / iPadOS MVC
!build
ObjectiveCpp-Mixed Objective-C++ / C++ iOS Pimpl bridge
(C++ core) !build
Metal Swift + Metal iOS Renderer
(MTKViewDelegate) !build
visionOS-RealityKit Swift + RealityKit visionOS MVVM +
dual-scene !build
watchOS-SwiftUI Swift + WatchKit watchOS MVVM
!build
macOS-AppKit Swift + AppKit macOS MVVM
!build
C-Library C (C11) cross-platform Static library
!build
CPlusPlus-Framework C++ (C++17) cross-platform Framework /
library !build
│ ✅ All 10 templates currently build green on macos-latest. They're built
│ by a single matrix workflow
│ (.github/workflows/build.yml
https://github.com/imattas/ipa-template/blob/main/.github/workflows/build.yml)
with **one
│ independent job per template**, so a failure in one never blocks the others.
│ The shared badge above reflects that workflow's latest run on main. See
│ docs/CI.md https://github.com/imattas/ipa-template/blob/main/docs/CI.md for
how the per-template jobs and logs work.
--[ 📚 Learn it — the "Build Your Own App" course ]--
New to the repo? The tutorials course
https://github.com/imattas/ipa-template/blob/main/docs/tutorials/ walks you from
cloning a template to shipping a finished app on the App Store, in 15 hands-on
modules grounded in this repo's real code. Start at the
course index
https://github.com/imattas/ipa-template/blob/main/docs/tutorials/README.md, or
jump in:
- Module 01 — Getting Started https://github.com/imattas/ipa-template/blob/main/
docs/tutorials/01-getting-started.md
- Module 03 — Building Your First Feature https://github.com/imattas/ipa-templat
e/blob/main/docs/tutorials/03-your-first-feature.md
- Module 04 — The Networking Layer https://github.com/imattas/ipa-template/blob/
main/docs/tutorials/04-the-networking-layer.md
- Module 12 — Platform Deep Dives https://github.com/imattas/ipa-template/blob/m
ain/docs/tutorials/12-platform-deep-dives.md
- Module 15 — Capstone: Build a Complete App https://github.com/imattas/ipa-temp
late/blob/main/docs/tutorials/15-capstone-project.md
--[ Quick start ]--
-- sh --
# 1. Clone
git clone https://github.com/imattas/ipa-template.git
cd ipa-template
# 2. Pick a template and copy it out as the seed of your new app
cp -R templates/Swift-SwiftUI ~/Developer/MyNewApp
cd ~/Developer/MyNewApp
# 3. Open in Xcode (create a new App project and drag in the source groups,
# or add the sources to an SPM/Xcode target — see the template's docs/SETUP.md)
open -a Xcode .
The C / C++ templates build and test from the command line directly:
-- sh --
cd templates/C-Library && make test
cd templates/CPlusPlus-Framework && make test # or: cmake -B build && ctest --test-dir build
--[ Repository layout ]--
ipa-template/
├── templates/ One directory per template (the scaffolds)
├── docs/ Cross-cutting docs
│ ├── TEMPLATES.md Overview of every template + when to use each
│ ├── COMPARISON.md Swift vs ObjC vs SwiftUI tradeoffs
│ ├── CI.md How the GitHub Actions pipeline works
│ └── tutorials/ "Build Your Own App" course (15 modules)
├── scripts/
│ └── ci-build.sh Per-template build dispatcher (used by CI + locally)
├── .github/workflows/
│ └── build.yml Matrix CI: one job per template
├── .gitignore
├── .editorconfig
└── README.md
--[ Deep dive ]--
- Build an app step by step → docs/tutorials/
https://github.com/imattas/ipa-template/blob/main/docs/tutorials/ (the course)
- Which template should I use? → docs/TEMPLATES.md
https://github.com/imattas/ipa-template/blob/main/docs/TEMPLATES.md
- Swift vs Objective-C vs SwiftUI tradeoffs → docs/COMPARISON.md
https://github.com/imattas/ipa-template/blob/main/docs/COMPARISON.md
- How CI compiles each template → docs/CI.md
https://github.com/imattas/ipa-template/blob/main/docs/CI.md
Each template also carries its own README.md and docs/ describing its
architecture, setup, and contribution guidelines.
--[ License ]--
Released under the MIT License
https://github.com/imattas/ipa-template/blob/main/LICENSE. Use these templates
freely as the
starting point for your own apps, commercial or otherwise.