Menu

Contributing

Skip welcomes community contributions in all forms. There are many ways to contribute:

  • Submit pull requests to third-party Swift libraries so that they can join our Swift Everywhere initiative, with thousands of packages already compiling for Android. See the porting guide for helpful tips.
  • Contribute to SkipStack, Skip’s open source re-implementations of fundamental Swift frameworks like Foundation for Skip Lite. Each library’s README includes background information such as its current status, any important implementation strategies employed, etc. Please review the README before contributing. When you are ready to submit an update, create a standard GitHub pull request. Skip’s development team will attempt to address PRs as quickly as possible.
  • Contribute to SkipUI and SkipFuseUI to help expand and improve SwiftUI support on Android. As with other Skip modules, please review the README, and submit a standard GitHub pull request.

Remember that you are not required to contribute updates you make. But we sincerely hope that you will: your improvements to the Swift ecosystem and to Skip’s open source libraries will benefit all Swift-for-Android developers, and by extension all users of Swift-on-Android apps.

Local Skip Libraries

If you’d like to make local changes to Skip’s libraries while working on an app - or to work on SkipUI or SkipFuseUI and exercise your changes with its ShowcaseFuse app - you will want to configure Xcode to use local library versions rather than the current Skip distributions. This is easily accomplished with an Xcode Workspace.

  1. Clone the repositories you’d like to work on. We find it most convenient to make the clone directory a peer of your app directory.

     > ls
     hello-skip/ skip-ui/ skip-fuse-ui/
    
  2. Use Xcode to create a new Workspace in the same directory.
  3. Add your app’s .xcodeproj file to the Workspace.
  4. Add your local module directories to the Workspace. Adding these local packages will override the distributions specified in Package.swift, so that changes to the local packages will get used in your app build.
  5. Use the Workspace to iterate on your app and the libraries in tandem.

You are now set up to work on Skip libraries! This is a great way to fix any issues or add any missing functionality that is affecting your app, while potentially helping the entire Skip community.

Working in Android Studio

Launching your app from Android Studio will not use your Workspace’s local libraries by default. If you’d like to work in Android Studio, edit your app’s Android/settings.gradle.kts file to point Android Studio at Xcode’s build, as described in Platform Customization.

If Android Studio appears to be stuck on the official library releases rather than your local versions, use its File → Sync Project with Gradle Files command to force Android Studio to re-evaluate settings.gradle.kts.


Community Libraries

Our Swift Everywhere site tracks thousands of Swift packages that compile natively for Android. It builds on the incredible Swift Package Index, pulling each package that supports Linux and attempting to build it for Android as well. Submit your own Linux and Android-supporting packages to the Swift Package Index to automatically include them in Swift Everywhere.

Skip users can utilize transpiled packages in addition to native ones. Transpiled packages are useful both to full Skip Lite apps, and - when bridging is applied - to Skip Fuse apps that want to interface with Kotlin libraries. If you’ve created a transpiled library that you think might be useful to other Skip users, please consider opening it up to the Skip community. Contact us to have your library listed as a Skip community library.