You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6833eca
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: src/content/docs/blog/fully-native-android-swift-apps.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,7 +70,7 @@ On Android, however, the `SkipFuseUI` module bridges the SwiftUI API onto [Jetpa
70
70
71
71

72
72
73
-
Consult the `SkipUI` module's [documentation](/docs/modules/skip-ui/#supported-swiftui) for a listing of currently-supported SwiftUI constructs on Android. You can also examine the [ShowcaseFuse](https://github.com/skiptools/skipapp-showcase-fuse/tree/main/Sources/ShowcaseFuse) cross-platform sample app, which displays and exercises most supported SwiftUI components:
73
+
Consult the `SkipUI` module's [documentation](/docs/modules/skip-ui/#supported-swiftui) for a listing of currently-supported SwiftUI constructs on Android. You can also examine the [Showcase](https://github.com/skiptools/skipapp-showcase) cross-platform sample app, which displays and exercises most supported SwiftUI components:
@@ -157,7 +157,7 @@ Skip's unique ability to directly call both Swift and Kotlin/Java APIs separates
157
157
158
158
### Skip Showcase
159
159
160
-
As a demonstration and validation of this technology, we have published one of our sample apps, [Skip Showcase](https://github.com/skiptools/skipapp-showcase-fuse), to both the Google Play Store and Apple App Store. This fully native Swift app demonstrates parity between SwiftUI components on iOS and Android.
160
+
As a demonstration and validation of this technology, we have published one of our sample apps, [Skip Showcase](https://github.com/skiptools/skipapp-showcase), to both the Google Play Store and Apple App Store. This fully native Swift app demonstrates parity between SwiftUI components on iOS and Android.
161
161
162
162
<divalign="center">
163
163
<ahref="https://play.google.com/store/apps/details?id=org.appfair.app.Showcase"style="display: inline-block;"><imgsrc="https://appfair.org/assets/badges/google-play-store.svg"alt="Download on the Google Play Store"style="height: 60px; vertical-align: middle; object-fit: contain;"></a>
Copy file name to clipboardExpand all lines: src/content/docs/blog/official-swift-sdk-for-android.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,7 +37,7 @@ As mentioned, Skip is currently using our own preview release build of this SDK
37
37
38
38
Note that this SDK is not just theoretical, but is in active use _today_ in many Skip-powered applications. Our own Skip Showcase[^showcase] app has been running using this SDK, and provides a comprehensive sample of what is possible when you combine native Swift with Skip's SwiftUI implementation for Android.
Copy file name to clipboardExpand all lines: src/content/docs/blog/skip-block-blast.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ draft: false
10
10
11
11
Easter Eggs in software are hidden delights, small features that are orthogonal to the core purpose of the product but which spark a little surprise and joy. Before they lost their collective senses of humor and whimsey, big tech companies routinely[^easteregg] included easter eggs in their products, such as a flight simulator in a spreadsheet or a pinball game in a word processor.
12
12
13
-
Just in time for Easter, the [Skip Showcase](/docs/samples/skipapp-showcase-fuse/) app has released version 2.3.6 to both the [Apple App Store](https://apps.apple.com/us/app/skip-showcase/id6474885022) and [Google Play Store](https://play.google.com/store/apps/details?id=org.appfair.app.Showcase). This version contains a hidden gem: a completely native Swift and SwiftUI "Block Blast" style puzzle game.
13
+
Just in time for Easter, the [Skip Showcase](/docs/samples/skipapp-showcase/) app has released version 2.3.6 to both the [Apple App Store](https://apps.apple.com/us/app/skip-showcase/id6474885022) and [Google Play Store](https://play.google.com/store/apps/details?id=org.appfair.app.Showcase). This version contains a hidden gem: a completely native Swift and SwiftUI "Block Blast" style puzzle game.
<imgalt="Screenshot of Block Blast on iPhone"src="https://assets.skip.dev/posts/blockblast/skip_block_blast_iphone.png"style="height: 400px;" />
@@ -27,7 +27,7 @@ Easter eggs were historically activated via some secret gesture and sequence of
27
27
28
28
Cross-platform gaming has historically been the provenance of specialized SDKs such a Godot[^godot], Unity[^unity], or Unreal[^unreal]. However, for casual games like board or puzzle games, these full-fledged engines can be overkill: you can just build it yourself with the view and gesture primitives that SwiftUI provides.
29
29
30
-
Our implementation of the Block Blast game is done in under 1,000 lines of pure Swift: see [GamePlayground.swift](https://github.com/skiptools/skipapp-showcase-fuse/blob/main/Sources/ShowcaseFuse/GamePlayground.swift) for the whole thing. This code works out of the box on iOS, and on Android it builds with the newly-released Swift SDK for Android[^ss4a], using Skip Fuse to translate the SwiftUI into [SkipUI's](/docs/modules/skip-ui) Jetpack Compose on Android and handle all the details of packaging and running the app. Shapes, gestures, haptic feedback, high score persistence, and everything: all done in straightforward declarative SwiftUI, exactly the same on Android as it is on iOS.
30
+
Our implementation of the Block Blast game is done in under 1,000 lines of pure Swift: see [GamePlayground.swift](https://github.com/skiptools/skipapp-showcase/blob/main/Sources/ShowcaseFuse/GamePlayground.swift) for the whole thing. This code works out of the box on iOS, and on Android it builds with the newly-released Swift SDK for Android[^ss4a], using Skip Fuse to translate the SwiftUI into [SkipUI's](/docs/modules/skip-ui) Jetpack Compose on Android and handle all the details of packaging and running the app. Shapes, gestures, haptic feedback, high score persistence, and everything: all done in straightforward declarative SwiftUI, exactly the same on Android as it is on iOS.
31
31
32
32
Now, do we think that the next Grand Theft Auto ought be written in SwiftUI? Probably not. But for a large segment of casual games and game-like experiences, Xcode and SwiftUI may be all that you need. And augmenting your project with Skip will enable you to bring it to Android and [triple the market reach](/docs/) of your app!
Copy file name to clipboardExpand all lines: src/content/docs/blog/swift-6.3-android-support.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,7 +39,7 @@ This is not a small thing. It removes the single largest concern we have heard f
39
39
40
40
### Skip Fuse on the official SDK
41
41
42
-
We have already transitioned Skip's native Fuse mode to the final 6.3 SDK, and the [Skip Showcase](https://github.com/skiptools/skipapp-showcase-fuse) app built on this toolchain has been published to both the Google Play Store and the Apple App Store.
42
+
We have already transitioned Skip's native Fuse mode to the final 6.3 SDK, and the [Skip Showcase](https://github.com/skiptools/skipapp-showcase) app built on this toolchain has been published to both the Google Play Store and the Apple App Store.
43
43
44
44
<divalign="center">
45
45
<ahref="https://assets.skip.dev/screens/swift-sdk-for-android-in-action-showcase.png"target="_blank"><imgalt="Screenshot of Skip Showcase native app"src="https://assets.skip.dev/screens/swift-sdk-for-android-in-action-showcase.png"style="width: 100%; max-width: 1200px;" /></a>
Copy file name to clipboardExpand all lines: src/content/docs/docs/contributing.md
+10-12Lines changed: 10 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Skip welcomes community contributions in all forms. There are many ways to contr
12
12
13
13
## Local Skip Libraries {#local-libraries}
14
14
15
-
If you'd like to make local changes to Skip's libraries while working on an app - such as by improving [SkipUI](/docs/modules/skip-ui/) or [SkipFuseUI](/docs/modules/skip-fuse-ui/) and exercising your changes with its [ShowcaseFuse app](/docs/samples/skipapp-showcase-fuse/) - 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.
15
+
If you'd like to make local changes to Skip's libraries while working on an app - such as by improving [SkipUI](/docs/modules/skip-ui/) or [SkipFuseUI](/docs/modules/skip-fuse-ui/) and exercising your changes with its [Showcase app](/docs/samples/skipapp-showcase/) - 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.
16
16
17
17
1. Clone the [repositories](https://github.com/skiptools) you'd like to work on. We find it most convenient to make the clone directory a peer of your app directory.
18
18
@@ -62,20 +62,19 @@ Most contributions to the libraries, whether they are [Core Frameworks](/docs/mo
62
62
63
63
Some improvements to `SkipUI`, such as fixing bugs with Compose implementations, can be done in just the [`skip-ui`](https://github.com/skiptools/skip-ui) repository. But if the improvement involves additional API that is being made available or any other changes to the `SwiftUI` surface, and PRs will need to be paired with a PR against the [`skip-fuse-ui`](https://github.com/skiptools/skip-fuse-ui) repository.
64
64
65
-
In addition, when adding new features or otherwise changing behavior, it is always good to test it out in the Showcase apps, both the [`skipapp-showcase`](https://github.com/skiptools/skipapp-showcase) Skip Lite app and the equivalent [`skipapp-showcase-fuse`](https://github.com/skiptools/skipapp-showcase-fuse) app. This both serves as a way to test out your new feature, ensure that it doesn't break anything else, and provide a demonstration for other developers of how your improvement works.
65
+
In addition, when adding new features or otherwise changing behavior, it is always good to test it out in the [`skipapp-showcase`](https://github.com/skiptools/skipapp-showcase) app, which can run in either Skip Lite or Skip Fuse mode. This both serves as a way to test out your new feature, ensure that it doesn't break anything else, and provide a demonstration for other developers of how your improvement works.
66
66
67
67
So a sample workflow making a contribution would look like this:
5. Clone each of the forked repositories to a local folder
74
-
6. Create an Xcode workspace that incorporates both the `skip-ui` and `skip-fuse-ui` packages as well as the `skipapp-showcase/Darwin/Showcase.xcodeproj` and `skipapp-showcase-fuse/Darwin/ShowcaseFuse.xcodeproj` projects
75
-
7. Run each of the `ShowcaseLite App` and `ShowcaseFuse App` targets to ensure they work
76
-
8. Start implementing changes to `SkipUI`, testing them out by launching the `ShowcaseLite App` target
77
-
9. When you are happy with the changes, begin implementing the equivalent functionality in the `SkipFuseUI` module, and test those out by launching the `ShowcaseFuse App` target
78
-
10. When everything is working, push your changes to your local forks and submit 4 separate PRs to each of the upstream repositories.
4. Clone each of the forked repositories to a local folder
73
+
5. Create an Xcode workspace that incorporates both the `skip-ui` and `skip-fuse-ui` packages as well as the `skipapp-showcase/Darwin/Showcase.xcodeproj` project
74
+
6. Run both the `ShowcaseLite App` and `ShowcaseFuse App` targets to ensure they work
75
+
7. Start implementing changes to `SkipUI`, testing them out by launching the `ShowcaseLite App` target
76
+
8. When you are happy with the changes, begin implementing the equivalent functionality in the `SkipFuseUI` module, and test those out by launching the `ShowcaseFuse App` target
77
+
9. When everything is working, push your changes to your local forks and submit PRs to each of the upstream repositories.
79
78
80
79
:::note
81
80
If the PRs involve changing the API surface (including removing `@unavailable` annotations), then the CI will likely fail on everything except the `SkipUI` changes due to the fact that the other packages are only built against the most recent release tags of `SkipUI` rather than the `main` branch. That's OK: when the PRs are reviewed, they will all be reviewed together and once merged and included in a new release, the CI will become green again.
@@ -87,8 +86,7 @@ An example of a series of pull requests that demonstrates the workflow of adding
0 commit comments