swiftuimigrator-project-setup
SKILL.md
SwiftUI Migrator Project Setup
Overview
Use this skill at the start of a migration to prepare the app shell for SwiftUI without beginning screen conversion yet.
Core principle: establish a stable SwiftUI entry point first, then migrate startup work and screens on top of it.
When to Use
- The project does not yet have a SwiftUI
Appentry point - Tuist deployment targets still need SwiftUI-compatible updates
SplashScreen.swiftand the app shell are missingAppDelegatestill owns launch-time window setup- The launch screen and initial SwiftUI splash handoff are not yet aligned
Scope
- Update Tuist deployment targets for SwiftUI support
- Create
App.swift - Create an empty
SplashScreen.swift - Move app entry ownership away from
AppDelegate - Apply file-organization rules for migrated screens and reusable views
- Match the launch screen visually to avoid a startup jump
File Organization Rules
- Screens: Full-screen SwiftUI replacements for
UIViewControllerclasses belong inProjects/App/Sources/Screens/. - Views: Smaller reusable SwiftUI components belong in
Projects/App/Sources/Views/. - Naming: Do not use generic names like
ContentView.swift. Use descriptive names such asMainScreen.swiftandSplashScreen.swift.
Migration Tasks
1. Update Tuist for SwiftUI
- Locate all
Project.swiftfiles under theProjects/directory. - In each file, find the
deploymentTarget. - Update every module to at least
iOS 18.0. - Run
tuist generate --no-open.
2. Add the SwiftUI app shell
- Create
Projects/App/Sources/App.swiftwith aWindowGroupthat showsSplashScreen. - Create
Projects/App/Sources/Screens/SplashScreen.swift. - In
AppDelegate.swift, remove@UIApplicationMainor@mainand remove directself.windowownership. - Keep
AppDelegate.swiftitself. Do not delete it during setup.
3. Make the splash transition seamless
- Inspect the launch screen configuration in
Info.plistorLaunchScreen.storyboard. - Match the same background color and image in
SplashScreen.swift. - Keep image size and positioning aligned with the launch screen.
Shared References
- Samples:
../swiftuimigrator/guides/samples/step2-app-splash/ - Verification:
../swiftuimigrator/guides/verification-checklists.md - Troubleshooting:
../swiftuimigrator/guides/troubleshooting.md
Verification
- Run
tuist generate --no-open - Run
tuist build - Confirm there is no duplicate
@mainorUIApplicationMainconflict - Confirm the app launches through the SwiftUI shell
- Confirm there is no visible jump between the system launch screen and
SplashScreen
Exit Criteria
The project is ready for:
swiftuimigrator-data-migrationif startup logic still needs to move out of UIKitswiftuimigrator-screensif the app shell is already stable enough to start screen migration
Weekly Installs
1
Repository
2sem/swiftui-mi…or-skillFirst Seen
8 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1