I am currently finalizing my Swift Student Challenge submission, and Metal shaders are an essential part of my app. However, during submission, I noticed a note explaining: "Note: Xcode app playgrounds are run in Simulator", which is not possible for my app, as it also requires the camera of a physical device to function. So, I am currently transferring my app from Xcode into Swift Playgrounds, which I presume will run on physical devices.
However, I noticed that Swift Playgrounds do not yet support Metal shaders directly, so I am now pre-compiling my shaders to load them at runtime instead. Note that all the code below was run either in the terminal or in Xcode.
I have already compiled my Metal shaders with:
xcrun -sdk iphoneos metal -o Shaders.ir -c Shaders.metal
xcrun -sdk iphoneos metallib Shaders.ir -o Shaders.metallib
Which seems to have run without any problems.
When I run:
let shaderPath = Bundle.main.path(forResource: "Shaders", ofType: "metallib")
let shaderURL = URL(fileURLWithPath: shaderPath!)
let shaderData = try! Data(contentsOf: shaderURL)
do {
let device = MTLCreateSystemDefaultDevice()!
let library = try shaderData.withUnsafeBytes { bytes -> MTLLibrary? in
let dispatchData = DispatchData(bytes: bytes)
return try device.makeLibrary(data: dispatchData as __DispatchData)
}
print(library!.functionNames)
} catch {
print(error.localizedDescription)
}
My Metal shader functions are printed correctly in the console. However, based on my research, it seems like a MTLLibrary cannot be converted into a SwiftUI ShaderLibrary.
That is why I am now looking at these two initializers:
ShaderLibrary(url: URL)
ShaderLibrary(data: Data)
Which state: Creates a new Metal shader library from the contents of url/data, which must be the contents of precompiled Metal library. Functions compiled from the returned library will only be cached as long as the returned library exists., which I believe should work for my use case.
However, the problem arises when I run this code:
let shaderPath = Bundle.main.path(forResource: "Shaders", ofType: "metallib")
let shaderURL = URL(fileURLWithPath: shaderPath!)
let library = ShaderLibrary(url: shaderURL)
My app consistently seems to crash on the ShaderLibrary initialization, rendering the app unusable. Why does ShaderLibrary(url: shaderURL) cause a crash, even though my .metallib file is valid? Are there additional requirements for loading a ShaderLibrary that I may have missed?
Swift Student Challenge
RSS for tagAsk questions and connect with other challenge applicants.
Posts under Swift Student Challenge tag
93 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I'm trying to add Assets.xcassets to a .swiftpm project, but I'm getting the warning:
⚠️ Ignoring duplicate build file in build source build phase
(Just to know, that is about developing in XCODE, in Swift Playgrounds does not appear it, even in this second being harder to setting up)
The problem is that there are no “Build Phases” in XCODE to remove duplicate files manually.
I've already tried adding the path of Assets.xcassets in the resources property of Package.swift, like:
.executableTarget(
name: "AppModule",
path: ".",
resources: [
.process("Assets.xcassets")
]
)
Even so, the warning persists. Does anyone know how to solve this? Is there any way to remove duplicate references or force a cleanup of the Swift Package Manager cache to fix it?
I appreciate any tips! 🙏🚀
Topic:
Developer Tools & Services
SubTopic:
Swift Playground
Tags:
Swift Student Challenge
Swift
Swift Playground
Xcode
Hello everyone,
I’m currently developing a Playground App for the Swift Student Challenge, and its core functionality relies heavily on Shortcuts Automation, App Shortcuts, and interactions with the Focus Mode status (e.g., reading Focus Status or execute Focus Filter).
Before finalizing my submission, I’d like to clarify whether these features will function as expected during the review process. Specifically:
Shortcuts Automation: My app uses custom shortcuts to trigger actions within the Playground. Will reviewers be able to test these shortcuts seamlessly, or do I need to provide explicit instructions for enabling/setting them up?
App Shortcuts: The app integrates system-level App Shortcuts (via App Intents). Are these supported in the test environment, and will reviewers see them during testing?
Focus Status Interaction: The app dynamically responds to changes in the device’s Focus Mode (e.g., adjusting UI and function based on FocusStatus). Does the evaluation environment allow access to Focus Status data, and are there restrictions on simulating Focus Mode changes?
I want to ensure these features are testable and don’t lead to unexpected issues during review. Any insights or advice from past participants, mentors, or Apple experts would be greatly appreciated!
Thank you in advance for your guidance!
Topic:
Community
SubTopic:
Swift Student Challenge
Tags:
Swift Student Challenge
Shortcuts
App Intents
Focus
Hello,
I am developing an app for the Swift Student challenge; however, I keep encountering an error when using ClassifyImageRequest from the Vision framework in Xcode:
VTEST: error: perform(_:): inside 'for await result in resultStream' error: internalError("Error Domain=NSOSStatusErrorDomain Code=-1 \"Failed to create espresso context.\" UserInfo={NSLocalizedDescription=Failed to create espresso context.}")
It works perfectly when testing it on a physical device, and I saw on another thread that ClassifyImageRequest doesn't work on simulators. Will this cause problems with my submission to the challenge?
Thanks
Topic:
Machine Learning & AI
SubTopic:
General
Tags:
Swift Student Challenge
Swift
Swift Playground
Vision
I am currently preparing my submission for the Swift Student Challenge, and my app playground is quite comprehensive. Based on my estimations, it may take approximately 4 to 5.5 minutes for the reviewers to fully experience the interactive elements of my app. Every component is integral to the overall experience, and I would prefer not to remove any content, as each part not only contributes to the overall interactivity but also effectively demonstrates my abilities across different technical and creative domains.
However, I noticed the guideline on https://developer.apple.com/swift-student-challenge/eligibility stating that the interactive scene should be “experienced within three minutes.” While this does not appear to be a main requirement, my app playground significantly exceeds this timeframe.
Could you kindly clarify whether exceeding the three-minute guideline could result in my submission being rejected, or if it might negatively impact the evaluation process? I would greatly appreciate any insights you can provide.
Thank you for your time and consideration. I look forward to your response.
Topic:
Community
SubTopic:
Swift Student Challenge
Tags:
Swift Student Challenge
Swift Playground
Swans Quest
Playground Support
I am currently filling out the Swift Student Challenge form, and I have two questions that I hope to get clarified:
One of the options asks, “Did you use open source software, other than Swift?” I would like to know what is meant by “open source software” in this context. Does it refer to IDEs (like Xcode) or programming languages and frameworks (such as Python, ARKit)? Are Apple frameworks (e.g., SwiftUI, ARKit, etc.) and certain third-party tools (such as Xcode, Blender, etc.) considered “open source software”?
I would like to provide a demo video to ensure that the reviewers can use the app properly and experience all of its features in the shortest amount of time. For certain reasons, I do not plan to play the video directly in the App Playground. Instead, I intend to include a link in the “Comments” section at the end of the form, which will redirect to a webpage (requiring an internet connection) containing the demo video. Will the reviewers be able to view the link and access the video as intended?
I would greatly appreciate any responses to these questions!
Topic:
Community
SubTopic:
Swift Student Challenge
Tags:
Swift Student Challenge
Swift
Swift Playground
Swans Quest
For the SSDC submission, the app playground must run on Swift Playgrounds 4.5+ or Xcode 16+.
Key questions:
In Swift Playgrounds, is the app tested on iPadOS or macOS?
In Xcode 16+, is the playground tested using Mac Catalyst, an iPad simulator, or an iPhone simulator? The submission form only mentions a simulator but doesn’t specify which one.
Can I build an app primarily for iPhone (portrait mode), or is it better to focus on iPad (landscape mode) if that’s the expected testing environment in all cases?
Topic:
Community
SubTopic:
Swift Student Challenge
Tags:
Swift Student Challenge
Swift
Swift Playground
Can we use ai tools like chat gpt or claude if major part of the code is written by us?
Hello!!in the terms of swift challenge say that is required to be enroledl to the apple developer program paid or free version (to join to developer programs you need to be under 18 years old).How over 18 years old can join to swift challenge if he can't make apple developer account.
Hi there, I intend to submit an app playground for the Swift Student Challenge this year. I am currently using the Swift Playgrounds app to develop a playground. Now I understand that when submitting I can choose the option of having my app playground to be tested on Swift Playgrounds on either iPadOS or macOS. But I would also like to know on which screen size is my app going to be tested.
Let's say I want my app playground to run on macOS, now is there a way to also select the MacBook model, like 14-inch or 16-inch? This would give the participants a better idea of where the app playground will be tested.
Hi, I’m a 2 time Swift Student Challenge Winner (2021 and 2022). I was under 18 when I won the challenges, but I recently turned 18 and want to redeem my free Apple Developer Program Membership benefits. However, I had problems with my Apple Developer Account, so I contacted Apple Developer Support and they told me that there was something wrong with my Apple Account and they didn't know anything bout Swift Student Challenge Apple Developer Program Memberships.
When I try to click the “enroll” button on the Apple Developer Website all it says is "Your enrollment in the Apple Developer Program could not be completed at this time.” I emailed swiftstudentchallenge[at]apple.com but didn't get a reply back either. I was wondering if anyone could direct me to someone who I could contact to resolve this issue.
This message show when I click submit.
Sorry, we could not complete your request.
An unknown error has occurred and your submission could not be completed.
Please go back and try again. If you continue to have issues, contact us.
Back
This message show when I click submit.
Sorry, we could not complete your request. An unknown error has occurred and your submission could not be completed. Please go back and try again. If you continue to have issues, contact us. Back
Hello! I have asked this question in previous years, but I want to make sure I can be safe as each challenge could be different.
Are applicants for the Swift Student Challenge allowed to use the features and technologies involved with Metal/MetalKit? Last year, the answer was yes. I have seen a few people here and there use it with Swift and won.
I would like to know if we can use it for the 2025 challenge for this year as well.
Thanks! :)
Topic:
Developer Tools & Services
SubTopic:
Swift Playground
Tags:
Swift Student Challenge
Metal
MetalKit
Hello folks,
I'd like to report a bug in Swift Playground to Apple official dev team, it's in "Learn to Code 2" - "Seeking Seven Gems".
The puzzle map can't be loaded, please check the following screenshot,
My system environment:
MacOS 15.3
Swift 6.0.3 (swift-driver version: 1.115.1 Apple Swift version 6.0.3 (swiftlang-6.0.3.1.10 clang-1600.0.30.1))
Swift Playground 4.6.2
Xcode 16.2
Hardware: MacBook Pro/M2 Pro/32G
Topic:
Developer Tools & Services
SubTopic:
Swift Playground
Tags:
Developer Tools
Swift Student Challenge
Swift
As of June 28, 2023, South Korea has standardized its age-counting system to align with international norms, meaning that the traditional "Korean age" system is no longer used in official contexts.
According to the SSC eligibility criteria, I found that participants from South Korea must be at least 14 years old. I'm confused whether if the eligibility criteria has applied this. (I'm 13 in global, which means that I could join the SSC if I was born in the US)
With the recent change in age calculation, this requirement refers to my international age.. I am wondering if I still have to wait one more year..
Please be free to give more information if you know..
I'm unable to rename my Swift Playground or add/change the app icon when I imported a package dependency after upgraded my Swift Playgrounds App to the newest version. Every time I tried to do that, the whole project will be destroyed and showed error message below.
I wonder if anyone have same experience with me or someone can tell me the solution, it terrifies me and I'm worried that I'll be unable to submit my project on time because of that.
I intend to participate in the Swift Student Challenge. A link is provided within my application that directs users to an Internet HTML web page.
Link(destination: URL(string: "https://url.com")!) {
Label("Developer Website - .....com", systemImage: "arrow.right")
.shadow(color: Color.white ,radius: 50)
}
This URL corresponds to my personal web page. Although it is not directly related to the experience interaction within the application, I have decided to include it as it serves as a logo and demonstrates my proficiency in HTML. However, the challenge’s rules stipulate that the evaluation environment is not permitted to connect to the Internet. Consequently, I am concerned that my work may be rejected due to its perceived incompleteness or errors. So should I keep it? Thanks!
Topic:
Community
SubTopic:
Swift Student Challenge
Tags:
Swift Student Challenge
Swift Playground
Swans Quest
SwiftUI
I'm working on my Swift Student Challenge submission and developing a Vision framework-based image classifier. I want to ensure I'm following best practices for training data and follow to guidelines for what images I use to train my image classifier.
What types of images can I use for training my model?
Are there specific image databases or resources recommended by Apple that are safe to use for Swift Student Challenge submissions?
Currently considering images used from wikipedia, and my own images
I'm working on my submission for the Swift Student Challenge and I have some questions regarding the use of existing code.
Can I use code provided by Apple in their official resources? For example, Apple recently shared a video on custom shaders (https://developer.apple.com/videos/play/wwdc2024/10151), and I’d like to implement a ripple effect using a Metal shader similar to the one demonstrated. Would this be allowed?
Am I allowed to use solutions found on developer forums like Stack Overflow, as long as I properly document and reference them in my code? Or does all the code need to be fully original?
I’d appreciate any clarification on these points. Thanks in advance!