Archive for June 13, 2025

Friday, June 13, 2025

WWDC 2025 Links

General:

What’s New:

Release Notes:

Key Sessions:

Previously:

Xcode 26 Announced

WWDC 2025: Platforms State of the Union:

Discover the newest advancements on Apple platforms.

Apple:

Xcode 26 is packed with intelligence features and experiences to help developers make their ideas a reality.

Developers can connect large language models directly into their coding experience to write code, tests, and documentation; iterate on a design; fix errors; and more. Xcode has built-in support for ChatGPT, and developers can use API keys from other providers, or run local models on their Mac with Apple silicon, to choose the model that best suits their needs. Developers can start using ChatGPT in Xcode without needing to create an account, and subscribers can connect their accounts to access more requests.

Coding Tools help developers stay in the flow and be more productive in their tasks. Accessible from anywhere in a developer’s code, Coding Tools provide suggested actions like generating a preview or a playground, or fixing an issue, and can also handle specific prompts for other tasks right inline.

WWDC 2025: What’s new in Xcode 26:

Discover the latest productivity and performance advancements in Xcode 26. Learn how to leverage large language models in your development workflow. Explore editing and debugging enhancements, improved performance and testing tools, and Swift Build - the open-source build system engine used by Xcode.

Xcode 26 release notes:

Xcode 26 beta requires a Mac running macOS Sequoia 15.4 or later.

[…]

Compilation caching has been introduced as an opt-in feature, which speeds-up iterative build/test cycles for Swift and C-family languages. The compilation caching feature caches the results of compilations that were produced for a set of source files inputs and, when it detects that the same set of source files are getting re-compiled, it speeds-up the build by providing the prior compilation results directly from the cache. The workflows that will benefit the most from compilation caching are when switching between branches (which ends up re-compiling the same source files again) or when doing clean builds.

[…]

The #bundle macro allows referring to the resource bundle associated with the current Xcode target. You can pass this to any Foundation API expecting a Bundle, such as when looking up images or localized strings.

[…]

The SwiftUI [Instruments] template has been updated with a next-generation SwiftUI instrument. The new instrument captures the duration of all of the updates SwiftUI performs, making it easy to identify long updates that may be negatively impacting app performance. It also tracks the causes of each update, allowing you to understand why view bodies are running, using the new Cause & Effect Graph.

[…]

Xcode can now generate type-safe Swift symbols for manually-managed strings in String Catalogs. For example, a string in Localizable.xcstrings with key “Landmarks” and value “%(count)lld landmarks” can be accessed via LocalizedStringResource.landmarks(count: 42). You can enable this via the build setting “Generate String Catalog Symbols”.

[…]

Concurrent mutation of nonatomic properties in Objective-C will now sometimes produce more actionable crashes. Synthesized setters will briefly store the sentinel value 0x400000000000bad0 (0xbad0 on 32-bit watchOS) which may be read by another thread accessing the property unsafely. A crash on this sentinel value indicates a thread safety issue with the property it came from.

[…]

Predictive Code Completion in Xcode now supports progressively accepting completions in smaller segments by holding the ^ key.

[…]

An annotation displaying the #if condition is displayed at the end of a line starting with #endif.

[…]

Starting from Xcode 26, Swift explicit modules will be the default mode for building all Swift targets.

• • •

Benjamin Mayo:

What Apple says: We’ve expanded our vision for Swift Assist

What Apple means: we screwed up we had to start over

Saagar Jha:

rip all those AI tools that try to hook into Xcode

Isaiah Carew:

GPT in Xcode with assistants??!! That was one of my hoped-for things!!!

Colin Cornaby:

The ChatGPT integration in Xcode is ok. I guess. Visual Studio has a very similar feature and I haven’t found it helpful for anything once the complexity increases. It’s nifty for summarizing complex code that spans several classes - especially if you need to trace a certain path.

More broadly - I know that the market wants Apple to go after AI. But someone needs to still ship a basic functioning platform and maybe that should really be Apple’s focus and leave the AI to others.

Steve Troughton-Smith:

Xcode’s integration with ChatGPT (and other models) this year is incredible, and surprisingly deep. It can pass your project files along, deeplink to specific lines and classes, and scrub back through a change history to see what it’s doing. Syntax errors/deprecation warnings in code will prompt you to pass the reins to ChatGPT in the sidebar to help you fix them up. You can also @-reference specific classes or files in your prompt to have their context included.

Max Seelemann:

Been trying Xcode 26's new Coding Assistant for production the past two days. Here’s a few observations…

It’s a good start. But this is it. Cursor’s Chats are much more capable, including regex searches and command line access. Hence, Xcode can’t commit.

Also Coding Assistant lacks the ability to get context. I know context in Cursor is not well done, but it makes prompting so much easier.

Also dunno what version of ChatGPT Apple is using, it’s horrible. It deletes code instead of fixing. And makes broken changes.

It’s great that we can plug into Claude. But anything beyond trivial requests quickly runs into throttling (“too many tokens per minute“). Never had this with Claude, so it must be fixable.

Thomas Ricouard:

People are asking me if I’ll go back to Xcode from Cursor. I’m back in it a bit, because it’s easier to work with the new stuff in there for now, but not really. Cursor + Claude Code is just so much better than anything else.

• • •

Felix Schwarz:

Looks like you can only use Xcode’s AI features when installing Tahoe on the internal SSD of your Apple silicon Mac.

Gui Rambo:

PSA: even though Apple Intelligence is not currently supported in virtual machines, third-party LLMs in Xcode work just fine if you set them up with an API key.

Craig Hockenberry:

Don’t waste 5 hours trying to build apps with Xcode 26 in a VM.

It just doesn’t work.

• • •

Pedro:

See the biggest improvement in xcode 26: your incremental builds should hopefully be more reliable, and this lays the ground for remote caching down the line

Rob Napier:

I seriously think this is the first time in years and years that I could upgrade Xcode and not delete derived data and have it work.

• • •

Isaiah Carew:

Xcode looks silly in liquid glass. The design is distinctly non-pro.

Khaos Tian:

Wow Xcode 26… I’m not sure I can handle that UI 😩 Somehow it just feels so distracting with all the floating elements….

Jesse Squires:

Wow. They really ruined Xcode Settings with v26.

This is unusable.

Everything is a million clicks away now.

Marcin Krzyzanowski:

Don’t follow Apple lead and do not, I beg you, do not make Settings like this.

Marcin Krzyzanowski:

yes, feels and works as broken as system settings

Sean Heber:

Why does the new Xcode settings panel look like System Settings? This is a step backward - it was System Settings that needed the redesign!

Casey Liss:

Oh I do not like this at all

Saagar Jha:

huh

• • •

Colin Cornaby:

Oh no - the improved user icons got paired with a really bad Xcode icon :(

Michael Flarup:

I am sorry, Xcode.

Benjamin Mayo:

Apple’s motivation for this is somewhat addressed in the WWDC icon design session. They recommend to avoid ‘complex illustration styles’ and remove finer details, preferring larger symbolic layers that let the glass material effects provide the sophistication.

• • •

Jesse Squires:

Nice improvement in Xcode 26.

Show’s the #if that matches the #endif

Rosyna Keller:

Does anyone know how to get the full names back for open editors in Xcode 26? These series of the same icon are useless to me…

Ian:

I’m sorely missing the old way with editor tabs. All the keyboard shortcuts are missing (“⌥+click a file” to open in another pane, “⌥+⇧+click” to choose where to open the file). And editor grid mode seems to be totally missing? 💔

Gui Rambo:

Is there a way to have Xcode 26 not close the project on Command+W when I close the last opened tab? I keep accidentally closing projects because sometimes I just want to close all tabs 😅

Previously:

Swift Marketing and Speed

Mishal Shah (Reddit):

Over the past few months, the website workgroup has been redesigning Swift.org. On behalf of the website workgroup, I’m pleased to announce that we have merged the initial changes.

Our goal with the site redesign has been to make Swift.org more approachable for newcomers to Swift, highlight the language’s technical strengths, and make it easy to get started. That led to a focus on the website’s appearance, improving the user experience, and emphasizing important features such as Swift’s multiplatform support.

jawbroken:

it’s unfortunate that the analytics script causing cmd-click to not open links in a new tab hasn’t been fixed in the redesign, something that has been an issue for at least 7 years. better luck next redesign, i guess

Swift.org:

Swift is the powerful, flexible, multiplatform programming language.

Fast. Expressive. Safe.

[…]

Swift is the only language that scales from embedded devices and kernels to apps and cloud infrastructure.

Nevin:

I’ve been using Swift and contributing to Swift Evolution for a decade, it is by far my favorite and most used programming language, and I am a huge fan.

Nonetheless, when I read those lines, my immediate reaction is “Wait, the, and the only? Are they saying that no other language does those things?”

Even if true, statements like that make me question the reliability of the narrator, and they come across as somewhat disparaging of other languages rather than just building up this one.

Overall, I like the new homepage, but some of the wording is a bit much, and I think it’s unnecessary. There’s no need to pretend it’s something it’s not. I felt the same way about some of the benchmarks used to tout Swift’s performance when it was first introduced.

Frank A. Krueger:

Swift String parsing is embarrassingly slow. I just converted code from String indices/SubStrings to Data indices/SubSequences (assuming UTF8, meh) and performance was 100x faster. Went from 8 minutes to parse an 80 MB file to 5 seconds.

(Also 5 seconds is stupidly slow. Even Python can parse the same file, with the same algorithm, in about 1 second.)

My experience is that Swift can be very fast. But, especially with strings and bridging, you have to be careful and measure because sometimes there are unexpected sources of slowness. Likewise, code using Data can really fly, but it can also get incredibly bogged down in safety checks if you don’t annotate your code such that Swift can statically prove exclusive access.

There were some important new String optimizations announced at WWDC.

David Smith:

Bridging non-ASCII NSMutableStrings from ObjC will be slower at the point of bridging, but the String produced as a result will be much faster.

One particular case this tradeoff can end up not paying off in is if you then bridge the resulting String back to ObjC. If you’re in that situation the recommendation is to not double-bridge strings if you can avoid it.

Previously:

Generated Transcripts in Pocket Casts

Pocket Casts:

With version 7.85, we’ve introduced Generated Transcripts, a powerful new feature that makes engaging with your favorite podcasts easier than ever. Available on both Android and iOS for our Plus and Patron members, this feature allows you to follow along with podcast conversations.

Podcasts are full of incredible insights, but sometimes you want to revisit a key moment without scrubbing through the entire episode. With Generated Transcripts, you can now read along, search for specific phrases, and quickly find key discussions—even if a show doesn’t have their own transcripts.

As with Apple’s offering, this happens on the server, so it doesn’t work with your own uploads. In fact, it’s only available for a subset of popular podcasts.

Steven Aquino:

Despite Marco Arment being a longtime friend, I switched from using his Overcast as my preferred podcast player to using the stock Apple Podcasts app on my iPhone and iMac. I did so largely because of the immense accessibility transcripts provide me; Apple announced support for transcripts a little over a year ago, which is when I made the decision to change over.

It looks like there were some APIs announced at WWDC that will make it possible for future versions of Overcast and other apps to generate transcripts on-device.

Kyle Howells:

I was watching the new speech transcription APIs video and looking at the example code. It doesn’t feel like an Apple API. They’ve always been very straightforward simple easy to use APIs for powerful features.

Now with all the Swift async sequences and the new 4 part API they have you have to setup and create helper objects you just need to “know” that’s how you create it 5 steps earlier than you’d think you need it.

The APIs are going the same way.

Adam Engst:

Notes does not perform identically across platforms, with the Mac version producing notably better results than the iPhone version. If you care about transcription accuracy, let a Notes recording on the iPhone sync to an Apple silicon Mac and transcribe it there.

[…]

Audio Hijack and MacWhisper support about 100 languages because they use Whisper. Notes, on the other hand, is currently limited to English.

[…]

Audio Hijack is more accurate than Notes, and transcription comes on top of numerous other audio recording capabilities. However, it doesn’t provide line breaks, and if accuracy is important to you, MacWhisper is a better choice.

Previously: