An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.
EAS-200 (Audio)
===
[00:00:00]
Keynote Highlights and Initial Reactions
---
Leo Dion (host): Welcome to another episode, empower Apps. I'm your host, Leo Dion here live at Community Kit.
It's an exciting day. Dub dc. Also with me is Matt Mascot. Matt, thank you so much for coming on the show again in Live and in Person.
Matt Massicotte (guest): Thank you very much, Leo, for inviting me.
Leo Dion (host): So we're gonna talk about ~the, all ~the stuff that was revealed today, we probably haven't had a chance to open up Xcode, but before we do that, I'll let you go ahead and introduce yourself.
Matt Massicotte (guest): Sure. Thank you. My name is Matt and, been a long time Apple developer. ~I recently, ~I have this like hyper-specialization now working in swift concurrency, but I still pay attention to lots of other stuff that are going
on.
Leo Dion (host): Awesome. So yeah, ~what, before we get, before we go into today, ~what's your initial reaction from everything?
Matt Massicotte (guest): Okay, so I'm very interested in the technical details and I was hoping for ~some more. ~Some more technical stuff going into ~the~ the state of the Union.
Leo Dion (host): And
Matt Massicotte (guest): so I wanna like now look more at the APIs and see what kind of stuff are actually
introduced.
Leo Dion (host): Yeah, I think that's the [00:01:00] same thing here is it's, there's a lot of fascinating stuff that we'll go over today, but I also think at the same time, I really wanna get my hands dirty and try it out with Xcode and stuff.
I'll just start off talking about some of the stuff that I found fascinating just from the keynote.
In-Depth Discussion on New Features
---
Leo Dion (host): we got foundation models. What's been heavily rumored and on everybody's wishlist is we actually have LLM models to work with and. The apps in our app development, but also there's a lot of stuff in Xcode that looks cool.
That might be useful.
Matt Massicotte (guest): Yeah, it looks like it supports a very live, interactive coding system, which I think a lot of people enjoy.
Leo Dion (host): Also, you can plug into other lms. Which sounds really great. As a fan of stuff like Cursor and Claude, I'm really looking forward to playing around with that. ~We, ~the intelligent shortcuts.
So have you worked with, app intents at all? ~O~
Matt Massicotte (guest): Only a little bit. ~Not very much.~
Leo Dion (host): So that looks really interesting. We've been hearing over the last few years guys, start implementing app intents. Start implementing app intents. [00:02:00] And this feels like the first taste of this is why they've been telling us to do that for so long.
~And so I'm really interested in seeing how that works out. ~And then the other thing that we've been wanting for the last, ~whatever ~15 years is Windows in iPad. How excited are you about that?
Matt Massicotte (guest): I'm a very casual iPad user, but I know people are excited and I'm excited too for them to get ~what they're ~what they
want.
Leo Dion (host): You're an iPad movie watcher, aren't you?
Matt Massicotte (guest): watcher. ~Pretty much.~
Leo Dion (host): ~Okay. And that's okay. That's okay. We'll forgive you. But ~I'm really interested in how like sharing drag and drop that kind of like windowing is a good, very good solid step and I'm gonna install it tonight probably and try it out. But to me, like the interactions between the, the different apps, 'cause we just have the share sheet and we have drag and drop.
That to me is like the next step of, and seeing how well that works in this new paradigm that we have with OSUI,
Matt Massicotte (guest): I think that Apple's clearly experimented a lot with user interface paradigms with iPad os ~Okay. ~Over the years. And I think that's great. And it's also nice to see that after [00:03:00] all this different experimentation, they've come back to something so familiar because it's totally possible if the o, it could have gone the other way, that they hit on something very different that works well.
And maybe that came towards the Mac, for example.
Leo Dion (host): I don't know how I. I dunno how else they could possibly do it. Like that's what I'm seeing is we see this, we've seen other things, tried stage manager, all that stuff, and at the end of the day, yeah, that's what they've come back to is windowing.
We have to talk about it. I'm sorry, but what's been rumored for the last few months? The thing that's not Apple intelligence and that is a new glass design. What do you think?
Matt Massicotte (guest): I didn't get a good enough? I feel like I need to actually use
it
To make a real, to have a real opinion
Leo Dion (host): ~it. ~Yes, exactly.
Matt Massicotte (guest): ~I certainly, I, ~there was a lot of motion effects that you saw, and that's very interesting to me. Many people have been worried about readability and contrast and it looks very justified with what we saw. So I'm hoping that isn't as bad as it looked like it could be.
Leo Dion (host): Or at the very least, we have a bunch of accessibility [00:04:00] modifiers that
Matt Massicotte (guest): sure. I'm
sure that will be there.
Leo Dion (host): Are you gonna try and chime and see how it works?
Matt Massicotte (guest): Yeah, actually I'm very interested in particular how it looks in Mac Os ~I'm just, ~and how it affects MAC OS
Leo Dion (host): Yeah. Yeah, same here. So I recently, right before I left, I got a Mac Mini M four I. Like another computer because I need another Mac for my CI stuff. I think I'm gonna put, Tahoe, which is the new code name. I'm gonna put it on there and test out my apps on that and see how it works. 'cause I'm really curious.
Matt Massicotte (guest): Yeah, that makes sense.
Leo Dion (host): ~What was the other thing I was gonna mention? Oh yeah. ~So one thing I know besides concurrency that you're enthusiastic about is, text kit.
Matt Massicotte (guest): Yes.
Leo Dion (host): now we got all this new, attribute. So they have all this new attributed string stuff that's been added to Swift ~ey. ~Does that help you at all, or are you like, no, this isn't, cut it for me.
Matt Massicotte (guest): ~It is. I'm really happy they did that because I know many people need that kind of capability from a relatively simple editor, but I haven't looked into it.~
My suspicion is that it will be absolutely insufficient for editing large documents or doing sophisticated more than just having like basic, user input and changing a string.
Leo Dion (host): Okay. ~I don't think~
Matt Massicotte (guest): it'll support anything like that
Leo Dion (host): [00:05:00] Okay. ~Okay. Yeah, ~there was a bunch of new APIs that looked like they added, at least on the iOS end for maybe not text editing, but just being able to build. I know it'll be interesting to see, once we play around with it and see what we get,
Matt Massicotte (guest): and I know many people have the need for a rich text editing experience, ~and I'm very curious if those people are satisfied by what's been added.~
Leo Dion (host): Does it, is it enough for them?
Matt Massicotte (guest): Yeah, exactly.
Leo Dion (host): All right. Let's get into, unless there was something else you wanted to mention about the keynote. I just had stuff about CarPlay, which I'm a big fan of CarPlay. I love it.
Matt Massicotte (guest): Yeah, and it sounds ~like it looked, it looks ~like it got a lot of attention.
Leo Dion (host): We've been hearing a lot about CarPlay Ultra on some of the ~newer~ models. Renting vehicles. I miss CarPlay, I can tell you that. And, it was cool to see, it looked like it was the interface that they were demoing, by the way, looked exactly like the interface on our Ford, transit.
Oh, okay. So I was like, I recognize that, that looks like my, ~my, ~mini bus
Matt Massicotte (guest): ~Widgets. ~Widgets on a CarPlay. ~Sounds super~
Leo Dion (host): That sounds awesome. ~Yeah. Yeah. Yeah. ~I wanna, I definitely, it's on my bucket list to play around with CarPlay. I have a lot of good ideas. Hold assist. Looks really great.
Finally. I'm glad to
see
Matt Massicotte (guest): I missed that. [00:06:00] What is this?
Leo Dion (host): Okay, so when you're on hold, it can either detect, hold music or something, but basically it can, it will let you know when you're on hold and somebody finally picks up. There's like a new wrist flick, interaction on the watch, which I love because I don't always have two hands available to me.
Yeah, that's cool. And I am looking forward with trying out the iPhone karaoke, feature in TVOS, especially with the kiddos. So we'll see how that works out. Okay, so State of the Union. Anything you wanted to talk about the state of union or should I just go through my list?
Matt Massicotte (guest): ~I don't have anything. No. ~Go through your list. I'm sure we can pick up stuff.
Leo Dion (host): Okay. About the glass design, we have, the colors informed by the context. It's curved with the display. A lot of mentions about that. Absolutely. ~Con ~constancy, is that the word constancy? They used that word quite a bit.
Matt Massicotte (guest): ~I ~didn't notice that
Leo Dion (host): Okay. That was weird. It automatically updates with recompile. Okay. Here's a question. [00:07:00] Is this, was there something through this new glass design that they are trying to hint at possible new models of the iPhone?
~Does that ~
~make sense?~
Matt Massicotte (guest): Okay. I'm gonna wait. I wanna put that question on hold for one second. I want to call out something else that you just said, which was you have to recompile to get to pick up these changes. And ~I, that ~I, that was interesting to me because presumably the reason they're doing that is ~they're for~ they're putting this check in to make sure that you have at least built through app once they're not opting existing apps in.
So I think ~if that, ~if you have an app that you don't update, it will not receive these new UI treatment. ~Yeah.~
Leo Dion (host): Yeah. ~And that makes total ~
~sense. ~It
Matt Massicotte (guest): does.
Leo Dion (host): Has that always been the case?
Matt Massicotte (guest): That kind of thing has happened frequently.
Leo Dion (host): ~Yeah. ~That makes total sense. ~Yeah.~
Matt Massicotte (guest): it's a little bit, it reminds me ~actually ~of the initial iPad where those iPhone apps were running in like
Leo Dion (host): that
Matt Massicotte (guest): that tiny window mode.
Leo Dion (host): Yes. ~Yeah, exactly. ~
Matt Massicotte (guest): ~More severe, but I think that's the kind of thing that's going on. ~There's
Leo Dion (host): ~still probably apps like that, I'm sure. ~Absolutely. Was it Instagram? Instagram doesn't do that anymore as of a few months ago, so thank you
Matt Massicotte (guest): A Few months ago. ~Wow.~
Leo Dion (host): they just released an iPad app.
~Good. Good on them. Good on them. ~Yeah, future iPhones. What do you think? Is there [00:08:00] something about this, it's oh yeah, this will work great. Foldable iPhones, or this will be like,
Matt Massicotte (guest): that's an interesting question
Leo Dion (host): because I'm ~always ~looking out for hints of that.
Matt Massicotte (guest): I don't know. The iPad changes are very interesting because they feel like they had to take a lot of screen size considerations into account.
Leo Dion (host): ~I~
Matt Massicotte (guest): an iPad mini ~and I'm actually curious what the user interface~
Leo Dion (host): oh my gosh. Yeah. No, a mini, from my understanding is just a scale down iPad. ~It's not like they cut, they don't cut the iPad and ~it's actually scaled down
everything.
Matt Massicotte (guest): ~Every, to me, ~everything looks the
same
Leo Dion (host): Okay.
~That's a whole, I think. Okay. ~
Matt Massicotte (guest): ~I don't know. ~I didn't see anything that stuck out to me, especially in terms of the UI ~as ~hinting at New Hardware, but I could believe
it.
Leo Dion (host): ~Okay. Yeah, I. ~One of the things we talked about Peter and I on the last episode was like, are they trying to do something with this, the crease that's gonna be the inevitable problem with foldable iPhones, and is this glass design and the curve display and all this stuff, is that a way of them trying to address it in a way ~what's it called? ~Dynamic Island Wood, or, the front display on the, vision Pro? They each address certain limitations of the hardware.
Matt Massicotte (guest): Okay. This is a stretch, but imagine you have this [00:09:00] phone that has a little bit of visual distortion, a display, sorry, that has a little bit of visual distortion right in the middle.
Okay. ~With all of these, with all of these curved and ~
~reflective.~
Leo Dion (host): treatments, right? ~You could~
Matt Massicotte (guest): potentially incorporate that deficiency into the user interface to make it look ~less~ less like a mistake and more like a part,
an intentional thing.
Leo Dion (host): Would it be like a book as opposed to a single display?
~Maybe?~
Matt Massicotte (guest): Yeah, maybe like a
Leo Dion (host): book. There you go, apple. You got it, you got the idea. Now go with it. ~Yeah. ~I like that. I like that a lot. I think that's pretty good. Anything else about the design? I think we've talked about it in the earlier piece, ~but. ~Anything else you wanna cover with it? I don't have a lot until I actually try it out.
Matt Massicotte (guest): ~Want to try it. ~I'm very interested in how it looks on the Mac in particular. I like very minimalistic interfaces in general and it looked to me, from what ~we saw a lot of Xcode actually, and ~Xcode certainly seems like it adopted this new stuff and it was a much more minimal looking interface, but it's hard to get a feel for it until you try it yourself.
Leo Dion (host): So good segue, let's talk about Xcode. ~Okay. ~Did you see the thing that everybody loves about the new Xcode?
Matt Massicotte (guest): What was the thing everybody
loved? settings.
Leo Dion (host): ~settings, ~because they adopted the same settings, layout as system
settings.
Matt Massicotte (guest): [00:10:00] I did notice this.
Leo Dion (host): How do you feel about that?
Matt Massicotte (guest): Xcode has less settings than the system, so I think it could potentially work well.
What do you think about it.
Leo Dion (host): I. I don't hate system settings as much as most people, but I sympathize with folks who don't like it. Having said that, I usually can find what I'm looking for because there's a spotlight search function at the top. Yes. That'll take me where I want to go. ~There's~
~two~
Matt Massicotte (guest): separate things you don't like that people usually don't like about settings.
~One is the finding,~
Leo Dion (host): Yes. The actual setting. ~Yep. And I~
Matt Massicotte (guest): the search works well. ~And then a separate thing is that the actual implementations on this is on the right hand side~
Leo Dion (host): the toggles ~and~
Matt Massicotte (guest): They're just, they have a lot of strange behaviors. ~Yes. ~So I guess X code could bring that along too, but I bet you it doesn't.
Leo Dion (host): ~Yeah. Okay. We'll see. We'll see. ~So let's get into Xcode. Xcode has, we can now hook up into LLM models. ~They~
Matt Massicotte (guest): Huge focus on that.
Leo Dion (host): There's this new, one thing I wrote down was a new playground macro, which might make it easier to do quickly. Test code, very interesting play around and playgrounds is like specifically mentioned as a great use case to play around with alls, which I find really fascinating and I'm looking forward to trying that out.
I don't know about how fixing code, especially [00:11:00] Matt, for you fixing code that is not concurrency set up correctly if the LMS are gonna do a great job
~about ~
Matt Massicotte (guest): So when they showed this UI, it reminded me a lot of the rename feature, ~right? A very simple.~
Concept, but I have had very poor luck with this working
Leo Dion (host): correctly.
~It works 50% of the time. Yeah.~
Matt Massicotte (guest): Now that's a little different because that is intended to be a precision tool that ~either ~works 100% correctly or not at
Leo Dion (host): ~all. I believe. ~And
that's
Matt Massicotte (guest): ~why I fail sometimes. ~This is not that way. So it might not be subject to the same problems, but it certainly made me hesitate when I saw it.
Leo Dion (host): ~Yeah. What, was there anything else that you saw in EXCO that you wanted to mention? ~Not until we try it out.
Matt Massicotte (guest): Yeah. I don't know. There was such a big focus on that. ~I didn't pick up on too many other things. It's certain, ~I was interested in the UI changes. That was definitely something I wanted to check out.
Leo Dion (host): Yeah.
Matt Massicotte (guest): There was a big focus on the LLM integration. People seemed excited about
It
Leo Dion (host): Yeah. By the way, ~I before I recorded, ~I finally figured out how to get. The Mac OS 26, VM to work. It gives you an installation error in bushel if you have to install X code 26 to get the VM to work. Interesting.
~Which I don't know if it like, comes with stuff that you just don't have on your, what is the Sequoia host? Oh, that, that could be, yeah,~
Matt Massicotte (guest): that's possible. ~It's also very early. ~There's all kinds of things that I'm sure are broken or incorrect in the first betas that will.[00:12:00]
Leo Dion (host): You shouldn't put it on your primary phone.
~Yeah, but the hold assist though.~
Matt Massicotte (guest): Yeah. ~That is cool.~
Leo Dion (host): It's almost worth letting my phone crash for that.
Exploring Machine Learning and App Intents
---
Leo Dion (host): Okay, let's talk about, so machine learning, was there anything in there that you were interested in?
Matt Massicotte (guest): The impression that I got from them was that they really thought about what people are looking for out of these tools and ways to give them, really easy to integrate.
Systems into their
Leo Dion (host): code
Matt Massicotte (guest): and that whole thing there was like all, it looks like it was macro supported or something along those lines to be able to define very like they're using actual swift types that you can put in and get out again. And I think that will be very appreciated by many people.
Leo Dion (host): There's this like generative ~Yeah, ~macro that I saw, which sounds really interesting. Not only have they been emphasizing the use of app intense in our apps, but they've made it easier I feel like this year to do that as well. And it definitely feels like guys really get on the page, like start getting app intense so that your stuff is discoverable.
Matt Massicotte (guest): ~now.~
I didn't, and especially
Leo Dion (host): the big emphasis on the new [00:13:00] spotlight. So this is a macros thing, ~but we have the big emphasis in spotlight.~
Matt Massicotte (guest): I think that might have been true on the phone as well,
Leo Dion (host): right? Sorry. That is true on the phone. Yeah, you're right. But it seems yeah, like they're making it easier and they're trying to continue to emphasize the use of, app intense and generative and that kind of stuff. And shortcuts. Shortcuts too. Looks amazing what you can do on Mac Os, with app intents and shortcuts and the Mach machine learning type stuff you can do in there. So I'm excited to try that out.
Matt Massicotte (guest): Absolutely. I haven't played enough with Appin intents to have ~like ~a really good opinion on this, but if you're excited, then I'm excited about it,
Leo Dion (host): ~it. I think. ~I don't have a use case off the top of my head. I will have a use case, I'm sure once ~I've done u ~I've done app intense before and it's absolutely fascinating what you could do with it, but there's just so much potential and I think that's what I'm excited about. I. wanna skip the swift stuff because that'll be the stuff we'll really deep dive into. Sure. So we got 3D charts, which looked really cool. You can do 3D graphing, idle prefetch for better lists.
Matt Massicotte (guest): Oh yeah. ~That was, ~they really focused on that. Yeah, that was interesting.
Leo Dion (host): Specifically Mac [00:14:00] os
Matt Massicotte (guest): I think it's received a lot of criticism because I have certainly spent time working on list performance on the
Mac.
~Okay. And ~
it isn't necessarily a straightforward thing, so I think it's received a lot of criticism and that's why I,
Leo Dion (host): ~I, ~is it just not do very well, or is it hard to play around with or what, because to me, like the list challenge was always because iOS devices are,
they're just constrained on memory by far compared to Mac os. So I always thought Mac OS wasn't a big deal. Am I totally incorrect in that? No,
Matt Massicotte (guest): ~N no, you're, ~no, you're right that the Mac has access to more memory in general, but I don't think that's typically the problem.
Leo Dion (host): Okay.
Matt Massicotte (guest): And I think that in comparison to iOS, for example, which I have done the last work on, but in the Mac, there's many performance pitfalls.
~It's very easy to accidentally end up on slow paths.~
Leo Dion (host): Okay. That's good to know. ~Bunch of gaming stuff. ~I don't do gaming.
Matt Massicotte (guest): Yeah. I don't think that many people will either, ~but I hope~
Leo Dion (host): ~Are you, so would you consider this. ~Have they done less game demos now that they prerecord
this?
Matt Massicotte (guest): That's an interesting question.
~I, They~
Leo Dion (host): do, ~what is it? ~Cyberpunk, they did that and they did some other game, but it was pretty brief.
Matt Massicotte (guest): ~They have I thought in the past ~they have done [00:15:00] too much of an emphasis on demos and not enough of an emphasis on, here are the things we are building that are nice for game developers.
It's a developer conference and I like to focus on that.
Leo Dion (host): I think they felt, you know what it is. Switch two came out last week and they're like, yeah, we shouldn't try to like one up Nintendo Uhhuh. So let's keep it, let's keep it slim. But yeah, they did do a lot as far as game development was concerned.
The new gaming stuff does sound if I was a gamer or game developer, it does sound cool, what you could do. So we'll see how that goes. Vision os we have better anchoring. I'm really, we're not, we have to go to the other room if we wanna talk about that. But, yeah, vision os it definitely seems like they're still building stuff for it, so we'll see how that goes.
Alright. Let's get into
Matt Massicotte (guest): but if I'm not wrong though, there wasn't a major focus on a new version of Vision Os ~and talking about it was a mi ~it seemed like minor changes. Is that ~what you, ~your impression?
Leo Dion (host): I don't know because I haven't done any vision, Wes. Okay. ~But I, yeah. ~
~Yeah, ~
Matt Massicotte (guest): ~were a few things that were interesting, but ~it didn't feel like there's any major changes that are coming.
Leo Dion (host): Yeah. ~We'd have to kidnap someone from the other room to, to figure that out. Okay. ~
Swift 6.2 and Concurrency Enhancements
---
Leo Dion (host): So swift big changes. We see [00:16:00] continuing maturity of concurrency.
Matt Massicotte (guest): Oh yeah.
Leo Dion (host): And yeah. ~I'll let you go ahead and talk about that maybe and what. ~What's your thoughts on where Swift 6.2 is as far as concurrency is concerned?
Matt Massicotte (guest): If you go back to last year, so 6.0.
I was convinced that the team was gonna release 6.0 and at the same time, they were also going to do all the work to at the very least have correct annotations for all of Apple's own SDKs. This was my assumption.
And that did not happen.
~But simultaneously, ~6.0 was a very big release and it came with it quite a lot of bugs.
So then we have 6.1, which came afterwards, and that fixed a tremendous amount of bugs. And actually also along that way there have been a number of Excode releases. Those have also begun to iteratively include more annotations in the SDK. Very welcome stuff.
Leo Dion (host): ~6.2~
Matt Massicotte (guest): brings along some major changes, but major not in terms of the language functioning differently.
It does in a few ways, but mostly it's major changes to give you tools to be able to ease migration into this new language mode. What I haven't been able to figure out, and it [00:17:00] doesn't seem like anybody has talked about anything, is changes to annotations for ~the~ SDKs. Like one thing I looked at, for example, a library that I have had very little experience using, but a lot of experience helping people with is AV foundation. Okay. AV foundation is quite hard to use with concurrency. It's just, it's very dispatch focused and is missing a lot of annotations, for
Leo Dion (host): Okay. And as
Matt Massicotte (guest): ~far as I can tell, ~so far, there are a lot of new things in it, but I don't think there's anything related to concurrency that has changed.
Leo Dion (host): I looked at virtualization and yeah, it doesn't look like.
~They changed~
Matt Massicotte (guest): now, ~it's also, ~it's still that beta one. So there still is room for these things to
Leo Dion (host): change, ~but~
Matt Massicotte (guest): let's you know what happens. ~It~
Leo Dion (host): happens. It happens. ~Okay. ~Okay. If you
Matt Massicotte (guest): there's, there is still, I don't think there's zero hope. But I was a little bit disappointed that there wasn't more emphasis there.
~Yeah.~
Leo Dion (host): Yeah. ~Yeah.~
Matt Massicotte (guest): However, ~I will say, wait, before I, that sounds, that sounded particularly negative, but ~I will say there was an important compiler change that ~does make less, it ~deemphasizes the need for some of these annotations
Leo Dion (host): You wanna go? ~So are we talking about isolated,~
Matt Massicotte (guest): No, so specifically they changed the rules around importing objective C
code.
Leo Dion (host): Okay, go ahead. When
Matt Massicotte (guest): import objective C code.
Leo Dion (host): Yeah.
Matt Massicotte (guest): I'm all ready to do this 'cause it's part of my talk. When you import objective [00:18:00] C code, if you look at ~a, like ~a function, parameter, for example, ~okay, ~the compiler assumes ~that it's~ that it's escaping.
Leo Dion (host): Okay?
Matt Massicotte (guest): And then you can tell it in objective C Oh, actually this is a non escaping thing.
So ~that's a very, ~that's a very conservative assumption that it
makes.
Leo Dion (host): so the, okay
Matt Massicotte (guest): You follow what I'm saying? It looks at, so you
Leo Dion (host): a keyword?
Matt Massicotte (guest): ~you have to add Yeah. An objective seed. ~You have to add these annotations. 'cause objective seed doesn't need this information at all. This is only for
Leo Dion (host): ~non escaping.~
~Okay. So~
Matt Massicotte (guest): it, it assumes the worst case. ~It assumes escaping. ~And then ~you put a, ~you put this special annotation to say, actually not escaping. ~Okay.~
Leo Dion (host): Okay.
Matt Massicotte (guest): But for sendible, which is much more important and more consequential if you get it wrong. ~Up until now, the compiler made this very optimistic assumption.~
It assumes non sendible.
Leo Dion (host): Okay.
Matt Massicotte (guest): Which is, it makes it easier in some cases to use, but if it's wrong, the consequences are really terrible.
~And so they have changed that. ~So now if it can determine this is ~a complete, ~a completion handler, it will assume sendible, which will result in more warnings, but also it's way more safer.
It's a much more conservative
Leo Dion (host): ~assumption. ~Okay.
Matt Massicotte (guest): And I like this
~change.~
Leo Dion (host): ~Yeah. ~Yeah. That sounds really cool.
Matt Massicotte (guest): This will actually help with AV foundation. I was just complaining about it, but it will make things better.
Leo Dion (host): ~Okay. ~Okay. Yeah, it's really great that they've continued to [00:19:00] make objective C friendlier for Swift.
~It's mostly through~
Matt Massicotte (guest): just annotating the code with more information.
Leo Dion (host): It's not enforced, but
Matt Massicotte (guest): ~yeah. ~I don't actually think this kind of stuff, I don't think the objective c compiler makes use of this at all.
Leo Dion (host): Exactly. ~It's what is it? Generics basically.~
It's like it doesn't care, but Swift will. Yep. The one thing I want to talk about. So we finally have, what's basically, static sized
Matt Massicotte (guest): Oh, yes. ~Yes.~
Leo Dion (host): ~Now~ my understanding was this was useful in the embedded space, but it sounds like it's also gonna be pretty useful, in the server side space as well and in a few other places.
Matt Massicotte (guest): My guess would be that it's useful in any context where you're dealing with known fixed size ~like ~data.
I think it will be a performance. How much of a performance win it is, depends on the situation,
~but,~
Leo Dion (host): ~so here's a question. ~Why didn't they have this in the first place?
Matt Massicotte (guest): I don't have a good answer for that. ~I, ~my understanding is that there were some changes, like this ability to put an integer as a generic
Leo Dion (host): ~parameter. ~That is crazy. That looks
Matt Massicotte (guest): They probably had to, and I don't really know how that works exactly, but I suspect that had [00:20:00] a lot, there was a lot of type system work, and you can see this kind of trend happens a lot in Swift where they have some end goal that's quite far away. ~Yeah. ~And they make a lot of changes along the way to be able to finally implement that
Leo Dion (host): ~end goal. ~
Matt Massicotte (guest): And I think this is one of those examples
Leo Dion (host): DS sells for. Swift ui, like they had to do a lot of things to get to that point. ~To get to Swift ui.~
Matt Massicotte (guest): ui,
Leo Dion (host): ~Yeah. Yeah. And then we have what's called a span.~
Now, what is the difference? So what is the difference between span an unsafe pointer and how does this affect objective C code?
Matt Massicotte (guest): ~this is a very good question and ~I wish I had a good answer for you, but unfortunately I have been ignoring that area. ~Yeah. ~But ~you can, I think ~you can get the right idea, even just by looking at the example that was presented during the State of the Union. ~Which was~ they have, ~there are many, they're pretty complicated to use, but ~there are many existing SWIFT APIs for interacting with pointers and interacting with buffers of values.
And they're pretty unwieldy and it can be quite difficult to get
Leo Dion (host): Right. ~Very difficult.~
Matt Massicotte (guest): variations, like subtle
variations,
and I think this is just another way to provide a mechanism where the compiler and type system can understand the underlying data so that they can provide a safer API, but also it looked like a much, more concise API as well.
Leo Dion (host): One of the things about [00:21:00] SWIFT in the early days was how all of a sudden we didn't have to deal with pointers.
~And now. ~This looks like a, basically a friendlier way to do pointers, especially since now, since there's interrupt with c plus and a few other languages that use pointers. This is what it seems like it's intended
Matt Massicotte (guest): Yeah, I, now that you're saying this, I'm interested too, because there are many objective C APIs that actually use pointers as well. And I'm curious if they have incorporated the SPAN stuff or fixed size arrays into any of their own, like bridged
Leo Dion (host): ~I right.~
Matt Massicotte (guest): I predict no, ~but I would be interested to see if it~
Leo Dion (host): happens based on previous results. Yes, that's what I'm seeing. ~Anything else you want me to talk about?~
Matt Massicotte (guest): ~Actually, you know what, yes, I do wanna talk about something. Okay. So ~a number of years ago there was ~this~ this system introduced called Extension Kit. Yes, it was introduced on the Mac.
Leo Dion (host): ~We had you on. ~You talked about it.
Matt Massicotte (guest): I really?
Okay. ~That's great. That's~
Leo Dion (host): ~great. ~Yeah.
Matt Massicotte (guest): So it was introduced for the Mac and then, ~and ~maybe bits and pieces were a little bit available in iOS, but it was non-functional. Then the next year of big portions were introduced for iOS, but not the core bit. You need to actually make it work, which is very suspicious.
Yeah,
Leo Dion (host): that is really
Matt Massicotte (guest): Yeah, and I just assumed, oh, something had gone wrong ~and they pulled it last minute ~and I [00:22:00] predicted the next year it would show up, which it did not. Okay.
Leo Dion (host): Okay. ~And~
Matt Massicotte (guest): then the year after that, it also did not show up, ~but do you know what happened this year?~
Leo Dion (host): It showed
Matt Massicotte (guest): Yes, it did.
Leo Dion (host): That is awesome.
Matt Massicotte (guest): I haven't actually played with it, but it certainly looks like it's ~all ~functional.
Leo Dion (host): Okay. You'll have to come back and report that ~for~
Matt Massicotte (guest): Yeah, I'm very interested ~though.~
Leo Dion (host): Yeah. ~Anything else? ~I think it's
a lot. ~No,~
Matt Massicotte (guest): that's it. ~Yeah, it's a lot.~
Leo Dion (host): We'll be playing around with this and I will be reporting back. I'm sure we'll have some more guests on the show when I get back to Michigan. ~But yeah. I think that's about it. ~Thank you so much, Matt, for joining me for this.
Matt Massicotte (guest): ~you very much for having me. ~It was wonderful.
Leo Dion (host): Where could people find you online?
Matt Massicotte (guest): you can find me@maico.org, ~which is my last name.org.~
Leo Dion (host): And if you're looking for help with Swift 6.2 and concurrency, definitely check out his website. It's excellent source for that. Thank you so much for joining me.
If you wanna try out Mac Os. 26 and you don't wanna break your laptop. Definitely check out Bushel. It's on sale. Pro subscription. Make sure you install Xco 26 though. ~Sorry. ~But you can definitely play around with it, there. ~And trying to think what else. That's about it. ~Thank you so much for joining me for today's episode, and I will talk to you when I get back home.