2025
WWDC 2025
Some quick notes from watching the keynote today:
- Awesome that they’re opening up on the on device model—before today, it felt like they would only do this in very controlled ways.
- The glass in some elements (like tab bars) looks like way too much (not enough contrast with the background elements), so I’ll bet $5 that the translucency gets turned down over the summer.
- The “selected” state for tab bar items looks awful.
- The all-clear look for icons looks over the top but cool.
- I’m excited that parts of the UI changing based on the device movement/accelerometer is back. Those seemed to go away over time since the iOS 7 days, but I think they’re great little bits of interactivity.
- I had no idea that typing indicators in group chats weren’t a thing… guess I’m not in that many group chats.
- Surprised they more deeply integrated ChatGPT with the image styles; I thought they would keep an arm’s distance from integrating more with OpenAI.
- FaceTime translation is awesome. I’m surprised they didn’t do the translation in the same voice as the speaker. Maybe that would be too creepy or require too much processing power.
- It seems like the best Liquid Glass UIs are when the text is light over a dark background. Hopefully they improve the readability across the board.
- The movement under Liquid Glass when content is playing (like video, Apple TV, etc.) makes all the buttons move and it looks distracting to me. I’m curious to see it in practice.
- Not sure how I feel about the new macOS design, especially the sidebar. Why does it look raised?
- The macOS toolbar looks a lot better with contrast between the button shapes and the toolbar’s background.
- Clipboard history on macOS! It’s always been on my to-do list to try a clipboard manager, but now I’ll just wait for Tahoe.
- Spatial widgets in visionOS are amazing. I had so many app ideas before the hardware was released that were based on physical persistence. Now it seems like this is possible!
- Wow, they really brought the macOS window traffic light widgets to iPadOS. And now the design changes on macOS makes sense (they’re consistent with each other).
- Wow, and the menu bar is on iPadOS now? Awesome.
- lol @ “We’ve expanded our vision for Swift Assist.”
- I liked the little movie at the end.
Images courtesy of Apple.
This bit from the most recent Upgrade makes me think that we only have Automator and AppleScript in macOS because the OS team didn’t want Workflow/Shortcuts (which was bought by the Siri team).
Almost certainly we would have neither in macOS if they had been interested in Workflow in 2017.
Reflecting on 100 Days of SwiftUI
Reflecting on my experience with the “100 Days of SwiftUI” course, with tips on how to make the most of it.
Woo hoo! Day 100 is “just” a final exam and I passed (with merit)! Almost hard to believe that I’ve come to the end of my #100DaysOfSwiftUI journey.

Day 99 included our last quiz and challenge: add a photo credit over the image, fill in some loading/saving methods for favorites, and add sorting to the resorts list. #100DaysOfSwiftUI

For Day 98, we implemented searching resorts, replaced the facility info with icons, added a button for the user to mark favorite resorts, and added a favorite indicator in the Resorts list. #100DaysOfSwiftUI

For Day 97 we started actually building a new project using NavigationSplitView
, NavigationLink
, and format: .list(type: .and)
(for concatenating strings). #100DaysOfSwiftUI
Day 96 and we’re looking at iPad-friendly APIs for the first time.
I’ll be honest—I had not tried running any of our previous apps in the iPad simulator, but now I see they were working fine the whole time. Pretty cool!
This screenshot looks absolutely chaotic. 👹 #100DaysOfSwiftUI

Day 95 was a full challenge day—build an app from scratch based on some requirements!

Day 94 is a review and challenge day! Graphics code can be a doozy because when you get the wrong result, it’s difficult to know what’s actually wrong in the code (or with your math). 😅 I got some help with this one. 😬 #100DaysOfSwiftUI

Day 93 was a fun walk through of using GeometryReader
, including using visualEffect()
and scrollTargetBehavior()
. #100DaysOfSwiftUI

For Day 92, we started a new project (our second to last!) and learned about how layout, alignment guides, and absolute positioning work within SwiftUI.
I really loved the explainer, starting from How layout works in SwiftUI. #100DaysOfSwiftUI

Picking #100DaysOfSwiftUI back up, and in the home stretch at Day 91! It was a challenge day with a review quiz and an open-ended prompt to fix a couple minor bugs and add a feature.

For Day 90, we made a bunch of accessibility fixes and added a view for creating new cards! #100DaysOfSwiftUI
