Add a tool to migrate an xcodeproj to Skip
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 3.2k
- Forks
- 106
- Avg merge
- 6d 13h
- Merged PRs (30d)
- 1
Description
People keep asking about this, and the documentation around this https://skip.dev/docs/project-types/#existing_development basically says "start from scratch, copying over code into a fresh project created with skip init or skip create."
But I can dimly imagine a tool that could at least take a standard Xcode-generated SwiftUI xcodeproj (with no xcworkspace), convert it into an xcodeproj that depends on a SwiftPM module, moving the xcodeproj into a Darwin folder, and generate an Android directory for it.
It could perhaps run in phases. Perhaps the first phase would just SwiftPM-ify the whole thing, and then stop and let the user verify that their iOS app still works as expected. Then, maybe a second command could skip-ify one SwiftPM module, ensuring that it builds on Android.
(Some day, as part of an integration test, we could search Github for open-source pure SwiftUI apps and try to automatically migrate as many of them as we can.)
This would be a lot of work, but I think it could really open doors for Skip.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Begin with the existing-development section at skip.dev/docs/project-types/#existing_development and the skip init/skip create entry points. Define the migration phases and verify completion by preserving the iOS app while producing a SwiftPM-based project, Darwin folder, and Android directory; the issue does not identify implementation files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, ios, swift
- Domain
- build-system, mobile-dev, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100