- Home
- Skills
- Tddworks
- Claude Skills
- Ios App Scaffold
ios-app-scaffold_skill
- HTML
22
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill tddworks/claude-skills --skill ios-app-scaffold- SKILL.md4.7 KB
Overview
This skill scaffolds a new iOS app using Tuist, Swift 6, and a layered architecture (Domain, Infrastructure, App). It creates a ready-to-generate Xcode workspace, Swift package entries, xcconfig-based build settings, and example files to jumpstart development. Use it to enforce clean separation of concerns and accelerate project setup.
How this skill works
The scaffold script generates a Tuist Project.swift, Tuist.swift, and a Sources/ tree organized into Domain, Infrastructure, and App layers, plus Tests. It seeds example models, protocols annotated for @Mockable, SwiftData repository stubs, SwiftUI app entry points, and xcconfig files for signing and version management. After running the script you run tuist generate and open the workspace to start implementing features.
When to use it
- Creating a brand new iOS app project with Tuist
- Setting up a layered/clean architecture (Domain, Infrastructure, App)
- Bootstrapping Swift 6 projects with SwiftData and SwiftUI examples
- Initializing consistent build settings and versioning via xcconfig and Project.swift
- When you want testable repository protocols with @Mockable support
Best practices
- Replace and rename example files immediately (Example.swift, ExampleRepository.swift) to match your domain
- Keep Domain layer business logic dependency-free and testable
- Declare repository protocols in Domain and implement persistence in Infrastructure only
- Manage app versions and build numbers in Project.swift, reference them in Info.plist via build settings
- Add external Swift packages in Project.swift and wire them into target dependencies
- Use xcconfig files (shared/debug/release) for signing, bundle id, and deployment target to keep configurations reproducible
Example use cases
- Scaffold a new consumer app called MyApp with bundle and team IDs and immediately run tuist generate
- Create a prototype where Domain models contain business rules and the Infrastructure layer uses SwiftData for persistence
- Set up CI that bumps MARKETING_VERSION and CURRENT_PROJECT_VERSION in Project.swift before building
- Start a test-driven workflow using @Mockable repository protocols and DomainTests
- Standardize new internal projects with uniform xcconfig signing and deployment targets
FAQ
Yes. Run the scaffold script to create the project, then use tuist generate to produce the workspace. Tuist must be installed and available on your PATH.
Where do I change the bundle id and team id?
Pass --bundle-id and --team-id to the scaffold script or edit Sources/App/Resources/XCConfig/shared.xcconfig to set PRODUCT_BUNDLE_IDENTIFIER and DEVELOPMENT_TEAM.
How do I add third-party packages?
Add package declarations to the packages array in Project.swift, then include the package product in the target dependencies section for the relevant target.