WWDC 2020 Swift discussion thread

Figured I’d make one since nobody else did yet. There’s bound to be some Swift-language/ecosystem related things people want to discuss.

1 Like

Is "Related Projects" the best category for this thread? I'm not sure what the best alternative would be, it doesn't fit neatly into any existing categories...

I'm hoping Apple won't surprise us with any Swift-specific news, just better Swift integrations for Xcode and better Swift frameworks. Open source Combine?

I want to know if you can install Big Sur on an iPad Pro and why not if you can’t.

1 Like

Not enough RAM would be my guess, especially for testing the x86 translation functionality. iPad Pro only has 4 GB (with some of that being used for caching for the flash storage, if I recall correctly), whereas the development kit has 16 GB. You might nominally be able to run Big Sur on an iPad, but it’d likely be a terrible experience, especially with the initial betas.

1 Like

I just want Xcode on the iPad. I guess I kinda got my wish?

I think the main focus for now really is to get more iOS/iPadOS apps onto the Mac as the Mac is getting the processors of those mobile devices and not the other way around. They have even redesigned the entire UI just to make sure iOS/iPadOS apps don't look weird besides Mac apps.

Therefore I don't expect Xcode on iPad this year, but given that Xcode will soon be running on Apple Silicon, I think that's one big step towards Xcode on the iPad, so maybe next year?

Did you guys see that the Xcode 12 site is already up and mentions this (emphasis mine):

A brand new life cycle management API for apps built with SwiftUI lets you write your entire app in SwiftUI and share even more code across all Apple platforms.

Sounds very much like AppDelegate is going to be replaced by something more modern. I'm really looking forward to the State of the Union to see what exactly that means. Also, there seems to be no breaking changes to SwiftUI:

SwiftUI offers new features, improved performance, and the power to do even more, all while maintaining a stable API that makes it easy to bring your existing SwiftUI code forward into Xcode 12.

Finally, there seems to be some auto-indentation improvements with extra :heart: for guard:

Swift code is auto-formatted as you type to make common Swift code patterns look much better, including special support for the “guard” command.

That's all great news, I guess. I was hoping for a CoreData replacement, too. But I don't expect it anymore as I think it would have been mentioned on that page if we'd get it today. :slightly_frowning_face:

But as the German saying goes: Let's wait :clock11: and drink tea :tea:.

2 Likes

I want to thank everybody on the Swift team, everyone working at Apple, and the Swift community for this WWDC. We may not always agree here on the forums, but I’m glad that everyone can voice their concerns and provide feedback as they please. I don’t want to go on for too long, but I enjoy discussing Swift with each of y’all and hope we can continue to evolve the language to something that’s very enjoyable to program with for all users. (Sorry if this isn’t the right thread or if I derailed it!)

13 Likes

Just by browsing the schedule, it looks like there are some nice improvements all around:

  • An App protocol to apparently replace ApplicationDelegate. I really hope it allows for single-file graphical applications with SwiftUI. Interactivity can really help you get a feel for complex code, and even a basic GUI can be much more expressive and user-friendly than a command line.
  • I really hope Xcode 12's improved indenting means it uses swift-format. My projects are all butchered from switching between editors.
  • Lots of updates to XCTest. That's an important library for all of us - it's good to see it get some love.
  • A numerics talk! You don't see one of those very often! Surely worth checking out. I can't see who the speaker is, but I'm assuming @scanon

Doesn't look like it. The indentation preferences seem to be the same and there don't seem to be any new formatting settings. I'm assuming they just "fixed" the old engine for Swift. It seems better at least.

I believe it’s part of [SourceKit/CodeFormat] Re-work and improve the indentation implementation by nathawes · Pull Request #30187 · apple/swift · GitHub and a few other follow-up PRs.

2 Likes

That resolves list... :astonished:

3 Likes

Oh, cool. lazy SwiftUI views.

From an Swift Evolution point of view, is the Apple Silicon switch an ABI break opportunity, or does the new Mac must match the iOS/iPadOS ABI ?

I'm 90% certain that since "Apple Silicon" is just Apple's ARM chips, it's going to use the same ABI as iOS.

If they want iOS apps to run literally unmodified on "Apple Silicon" Macs, it's not an ABI break. If they have to be recompiled, it could be…but the Apple folks, of whom I am no longer one, might not choose to introduce that break, since it makes things harder to test.

2 Likes

Lazy Collection/Layout View is fabulous, it's memory efficient and fly-on-demand loading items; why not make all HStack/VStack/Grid views lazy by default. :wink:

1 Like

It matches the iOS/iPadOS ABI exactly. There is no ABI break.

Doug

12 Likes

I installed Xcode 12, which has the 5.3 swift tools and tried to add a ‘@main’ App struct in an executable swift package :package:, but I couldn’t get it to work. SPM complained that there needed to be a ‘main.swift’ file. Is this some bug in SPM? Has anyone else tried that in Xcode 12?

From the proposal:

The @main attribute will currently not be usable by Swift packages, since SwiftPM recognizes executable targets by looking for a main.swift file.

1 Like