skiptools / skiptools/skip

Add a tool to migrate an xcodeproj to Skip

Open
#638 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

help wanted project setup
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.