WWDC 2024
Even though I'm in a limbo state without a day job, between the kid not having school and international travel, I didn't spend much time on following WWDC 2024. Nevertheless, I followed my Mastodon timeline, watched some sessions, listened to some podcasts, and took some notes.
User features I love
You can now mirror your iPhone screen directly on your Mac
You can even interact with it. And notifications and sound on your phone will come to your Mac. This is going to be my favorite feature.
You can now pause Apple Watch rings
I have attempted closed ring streaks in the past, twice. Both of them ended with one day of unclosed ring, then followed by not caring about the rings any more. Apple has finally learned that the ability to pause your streak can actually get people move more, not to mention the days when you have injures or other health issues and it's actually unhealthy trying to meet your original goals.
Sessions I watched
Bring your app to Siri
If your app is in one of their support domlistSeperatorphoto app,listSeperatorse functionalities to Siri via Assistant Schemas. There will be ~100 actions and 12 domains (only 2 domains available now, and the rest coming later). I don't have such an app, so it doesn't seem relevant to me. This approach is such a brute force way of making Siri appears to be smarter. It works great if your app is a supported domain.
Bring your app’s core features to users with App Intents
This is mostly refresher session for what App Intents are. Luckily, I have been keeping up to date with App Intents in Mango Baby and my users do love the features that brought by the framework. The iOS 18's new Control Center controls are also based on App Intents, and I will need to support them.
Design App Intents for system experiences
- If you touch App Intents at all, which you should, this is a must watch session. It's also only 10 minutes long.
- "Anything your app does should be an App Intent."
- "In iOS 18, opening your app is now a common behavior to show people that the intent has made a change in the app."
What's new in App Intents
- New APIs to index app entities.
- Make entities transferable. Also see WWDC 22 Meet Transferable session.
- Special useful IntentFile.
- Entities can now have a URLRepresentation.
- New parameter type: UnionValue.
Bring your Live Activity to Apple Watch
- Existing iOS 18's Live Activity will appear on watchOS 11's smart stack.
- Alerting live activity update shows on the watch.
- You can customize the Live Activity for Apple Watch.
- If you also have a watch app, you can choose to launch the watch app when tapping the Live Activity.
- Local over-budget updates may not be processed immediately, but latest info will be shown when raising wrist.
- Start, End, and alerting updates are prioritized for Apple Watch.
- Adjust your view for Always On Display using
isLuminanceRedueced
Environment value.
Design Live Activities for Apple Watch
- watchOS 11 introduces suggested widgets on the smart stack.
- Widgets open automatically when raising wrist. (Question: what's the smart stack behavior on watch faces like Modular?)
- Widgets are interactive. Live Activity without a watch app expands to a full view when tapped.
- Widget should only show significant states based progress, action, and importance.
- Controls are best for live activities that need to be played, paused or resumed.
- Watch the WWDC 23 session Design Widgets for the Smart Stack on Apple Watch for additional design guidelines.
- Recommend using standard margins and text styles.
What's new in App Store Connect
- Submit featuring nominations for the editorial team to consider. Types include new content, app enhancements, and new apps.
- Callout: "There’s more to your app than the software people interact with. There are the values you live by and the story of how you create your app. These could be related to promoting inclusivity or accessibility. For callouts such as these, we have the Helpful Details input."
- New TestFlight invitation experience.
- Ability to set criteria, like OS version, for public invitations.
- Use custom product pages with deep links to highlight different features. Best for social channels, marketing campaigns, or Apple Search Ads.
- New promote your app feature to generate marketing assets for social media sharing.
What's new in SF Symbols 6
- New animation presets.
- Custom symbol components need to be re-exported and imported to make Magic Replace work.
- New feature in the SF Symbols app to annotate custom symbols for the new animations.
Meet the Translation API
- Simple translation overlay with system UI.
- Flexible translation API.
- On-device ML models need to be downloaded, but shared with all apps, including Apple's Translate app.
- If possible, use
nil
source language for auto detection. - Use batch translation for translating multiple strings.
- Check LanguageAvailability for supported languages. Note that the list isn't huge.
- Use real device when developing.
- Batch translation should use the same source language. Use multiple batch requests to translation different languages. (Question: but often times I don't know the source language so in the end I have to use a single request to translate one string.)
- New SF Symbol for translate.
Demystify SwiftUI containers
- New APIs to build custom containers.
- New API
ForEach(subviewOf:)
iterates through resolved subviews. - What's a subview? There are declared subviews and resolved subviews.
- Resolved subviews can be backed up by a
ForEach
producing a collection of resolved subviews, or aGroup
. - EmptyView resolves to zero subviews. Conditional
if
resolves to subviews conditionally. - New API
Group(subviewsOf:)
gives the collection, thus count, of the resolved subviews. - New API
ForEach(sectionOf:)
iterates through each section for sections support. - New "Container values" of resolved views can be accessed by their direct container, to support container-specific customization options, just like
.listSeperator
.
Podcasts
- ATP's WWDC 2024 recap episode.
- ATP's Interview with Holly Borla & Ben Cohen.
- Sharp Tech's WWDC 2024 (free) episode.
- Under the Radar's Interview with Serenity Caldwell & Kristin Oro.
- AppStories' Interviews with ADA and Swift Student Challenge Distinguished Winners.
Other news
- A new Apple Developer Documentation home page was launched.
Other links
- Gui Rambo's tip on developing Control Center controls.
- Michael Tsai's Catalyst (Not) at WWDC 24.
- Louie Mantia's great tips on Dark Mode App Icons.
- Ryan Lintott's tip on using a non-symbol image for control widgets.
My action items
These are my immediate action items in preparation for my September launch.
- Support Control Center controls for all my apps.
- Adopt the zoom API in Mango Baby.
- App Intent: support get, create, edit, delete, and open each log.
- Make app intent entities indexed by spotlight, and make them transferable.
- Check out the new App Intent API in detail.
- Live Activity: check out what is Live Activity alerting update.
- Customize Mango Baby's Live Activity on Apple Watch.
- Submit App Store Featuring nominations.
- Use the new translation API in Mango 5Star, with UI inspired by the Meet the Translation API session.
- Accelerate the development of the Mango Baby watch app, and support the double tap gesture.
- Update Siri icon the Mango Baby.