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-207
===
[00:00:00]
What's New in Swift & SwiftUI
---
Leo Dion (host): Welcome to another episode at Empower Apps. I'm your host, Leo Dion. Today, I am joined by Cihat Gündüz. Jihad, thank you so much for coming back on the show
Cihat Gündüz (guest): Thank you for the invitation. Yeah, happy to be back
Leo Dion (host): So we got a jam-packed episode today to talk about last week's announcements. Before we get started, I'll let you go ahead and introduce yourself
Cihat Gündüz (guest): So I'm Cihat. I'm an indie developer, and I do iOS developments since 2011. So it's been 15 years already. Yeah, time passes by really fast. And ~I love Swift. ~I love WWDC is for me of course, like for everyone else in our community, it's like, Christmas. And so we just had Christmas week.
Cihat Gündüz (guest): And yeah, I've been-- I'm also the maintainer of the WWDC Notes project, and I've been doing a lot of work there recently
Leo Dion (host): ~Yes. ~Yes. And we'll put a link to WWDC notes. Definitely check it out and contribute if you can. [00:01:00] I know I've been slowly trying to get stuff in there. I wanna talk... Let's first talk about your article you posted, hmm, like two weeks, no, two months ago? Three months ago.
Cihat Gündüz (guest): I tried to post it so ~they~ could in theory react on it, but like it's very tough, so yeah.
Leo Dion (host): So you had an article out, my top five AI wishes for WWDC '26. How do you think they did?
Cihat Gündüz (guest): I think they did very well in general in terms of AI. They didn't quite do what my wish list basically was wishing for, because I wish for, like, the things that are missing if you're using already things like Cloud Code or Codex, and the, the g- the gaps and missing parts, that what my this year's wish list was for.
Cihat Gündüz (guest): But my last year's wish list was pretty much the things that were introduced now. So, I'm relatively happy about what we got in terms of AI, but it's not really filling the gaps that I was talking about
Leo Dion (host): Okay. Before we get to Xcode [00:02:00] 27, let's go through our list of different updates that we got this year. So, at the top of the list is what's new in Swift. Specifically, we're talking here Swift 6.4. I'm excited that we have some quality of life updates. One of those is the new any Apple OS, because as someone who builds for multiple platforms and multiple OSs, it was really exhausting having to mention every Apple OS, and now we have that.
Leo Dion (host): We have a way to distinguish module names or module, like, type names essentially using a double colon as opposed to a dot for just inner types, which I think is really nice. And then we have the ability, we have a diagnose attribute, which basically gives us the ability to control how to deal with like [00:03:00] warnings that we don't want to actually be warnings, I guess.
Leo Dion (host): What, what do you think of those? What are your what are your favorites for Swift 6.4?
Cihat Gündüz (guest): I love those small details that were really fixing some things that were really a bit annoying sometimes, and sometimes also just made code worse. I mean, if you have warnings sometimes you just can't remove for some some weird reasons because you have to keep compatibility with something or something like that, or rework would take too much time.
Cihat Gündüz (guest): You can really add that @diagnose and just suppress the warnings. And I mean, you're still not using the warnings en- entirely because you can still write there, like, the reason why you're suppressing them, and that, like, gives you a reminder. And because we are all working with LLMs now basically gives the LLM a reminder and explains to it exactly why it's currently suppressed, and then you can still, like, work with it.
Cihat Gündüz (guest): So, ~what I~ really like also is that tests can now basically retry if they are failing. You can, like, set something like a max number of retries. That's a [00:04:00] cool addition. And I love the
Leo Dion (host): thing I've-- I love-- so that's something I've been running into quite a lot is certain tests on CI will fail, especially if they're like timer-based because they're running in a simulator that's not very fast on the CI. So that's gonna be really helpful for me
Cihat Gündüz (guest): Yeah, exactly. ~I~ really love that. And I also like that there's a new progress manager type that I think ships in Foundation or somewhere, and that makes, like, structured progress tracking really easy. And I've been building things like that myself in every app, and now it's built into the system.
Cihat Gündüz (guest): That, I really like that
Leo Dion (host): Yes. Anything else as far as what's new in Swift this year?
Cihat Gündüz (guest): If you've been working a lot with structured concurrency you, you do have these cancellation stuff, and now there's a cancellation shield. You can say like, "This part of code, I just don't wanna cancel it, even if, like, there's a cancellation of, like, the entire big [00:05:00] thing." This piece of code should be always, like, run in entirely.
Cihat Gündüz (guest): Can be useful in some, like, database situations or a similar situation where you're dealing with something where you don't want it to, like, stop in the middle
Leo Dion (host): Yes. Yeah, I found that really interesting, and that's gonna be really useful, I think, going forward, both on the iPhone and iOS. There's like, this is a good year for Swift because I feel like we've had a lot of these big years with concurrency or if you remember far back enough generics or the way we handle throwing.
Leo Dion (host): This was a nice like cleanup year of just handling stuff that's kind of painful. Well, there is... W- we're, we're slowly getting a lot more of the non-copyable sort of close to memory type stuff, and the, like updating of pointers probably mostly for Swift embedded, I would assume. So there's been a lot of work there, but I don't think that affects as many [00:06:00] people as some of the other stuff, because this seems more focused on, on like memory management on em- embedded devices, right?
Cihat Gündüz (guest): Yeah, I mean, memory optimization and, like, controlling the ownership, I think it's called the ownership model and stuff like that. That's very important for some people out there, but not, like, for app developers in particular or, or very rarely. And I think that the cool things for us were, like, the-- I mean, that, that's also their, their entire topic they put even in their keynote for the, for the consumers is that they hear us developers, and they try to, like, do what we were wishing for, basically
Leo Dion (host): Yep. Yeah. So that covers what's new in Swift. You had some stuff about SwiftUI you wanted to talk about. You wanna go over those?
Cihat Gündüz (guest): Yeah, sure. I mean, there are again, like every year, there are some additions, some changes. And one thing they did, which I liked, is some more detailed control about toolbars. You can now control the placement a little bit more. I mean, ~their~ direction was, like, you're basically semantically [00:07:00] saying what kind of control you have, and then the system tries to figure out where to place it, and now you have a bit more control.
Cihat Gündüz (guest): Including, like, when you scroll up, you can, like, minimize the toolbar also, which is cool for, like, a clean view.
Leo Dion (host): Yep
Cihat Gündüz (guest): And then there are huge improvements to document-based apps. I've been trying to develop document-based apps. For example, my app TranslateKit is a document-based app, but I, I didn't really figure it out nicely.
Cihat Gündüz (guest): I had to do a lot of workarounds because there were some missing APIs, and now there's a lot more control to, like, create a document and stuff like that, which is really cool, and also, like, taking snapshots, so storing them
Leo Dion (host): So Bushel is a, my VM app for developers. That is a document-based app, but I'm actually starting to consider moving that off of a document-based app and just putting it all in the system. I'm still pretty, pretty certain that I'm gonna make that approach, but I should at least take a look at this new [00:08:00] document-based stuff and see if that helps.
Leo Dion (host): Especially the snapshot stuff is really interesting as well
Cihat Gündüz (guest): Yeah. Then we have more like containers, so we can do more stuff in our custom views. For example, if we wanna reorder stuff in custom views, it's really cool that we can do that with containers now. Same for swipe actions. I think those are cool
Leo Dion (host): one ~I'm, ~I'm excited to play around with a lot, 'cause I have some ideas for that
Cihat Gündüz (guest): I'm looking forward to that. And then there are some small things that were, in my opinion, just bugs, like AsyncImage now finally caches images. I don't know why it wasn't doing that from the start. Now also with at, @State, you don't have to do the underscore default value initialization for, like, honest types anymore.
Cihat Gündüz (guest): You can do it, like, in init because-
Leo Dion (host): also state is no longer a pr- wrap, property wrapper, it's a macro now. So I think that's how they get away with it, right?
Cihat Gündüz (guest): Exactly. Right. They also renamed [00:09:00] View Builder to Content Builder. I don't cur- currently remember anymore exactly what things would change, but it's, like, more a unified experience now because you c- you can use it, I think, in more places or it
SwiftData
---
Cihat Gündüz (guest): can do more. I currently don't remember. I don't know if you do
Cihat Gündüz (guest): ~there's also a specialist skill. Ah, okay. And ~there's also because Xcode now ships with skills for agents, there's also a SwiftUI specialist skill. So if you have, like, questions about or want to improve your SwiftUI code, you can just ask it, and it will, like, load Apple's officially provided guidance there
Leo Dion (host): Very cool. Yeah, I'm excited about con- the containers mostly. That's gonna make a lot of stuff a lot easier for folks. Did you want, did you wanna talk about Swift Data or did you wanna jump onto Xcode or did you wanna talk about foundation models?
Cihat Gündüz (guest): I mean, foundation models is a big topic, right?
Leo Dion (host): Maybe, like, so let's do SwiftData just 'cause we're kind of already in the SwiftUI area.
Leo Dion (host): Before we get into that, what's your opinion on SwiftData?[00:10:00]
Cihat Gündüz (guest): In general, I like that it's there. I wouldn't say that I would use it for, like, really complex apps with lots of data and lots of relationships and optionals and non-optionals and stuff like that. I would still opt for, like, other solutions. But GRDB, for example, I think that's a really good one.
Leo Dion (host): Okay
Cihat Gündüz (guest): It also, like, has SwiftUI additions and s- syncing mechanisms and stuff like that, and you can even connect it to the point-free stuff, like the composable architecture, so it's all, like, one thing that works well together.
Cihat Gündüz (guest): But I think SwiftData is still for, like, simpler apps that mostly want to just sync data across i- Apple devices and stuff like that. I use it in basically all my apps because I try to keep my model layer as small as possible, and I try to use App- Apple iCloud sync stuff, and it just comes for free with SwiftData.
Cihat Gündüz (guest): And now we can store codable types, which is new this year. You can store codable types as properties, and we'll just store it and load it [00:11:00] again. And you can now observe, and that was the biggest thing, I think, which was sometimes problematic with SwiftData, is that when you had a some, some logic or model in your app, it, it was not SwiftUI.
Cihat Gündüz (guest): It was really, like, custom logic, and you needed that data because you need to know, access some data and check, like, user configurations and stuff like that. That's now much simpler with the Result Observer API because cur- now they have bas- basically officially built in something for that. And I haven't tried it yet, but it sounds definitely something worth checking out
Leo Dion (host): ~I, ~I am strongly considering migrating Bushel to Core Data just 'cause I've had so many issues with SwiftData, and I'm not sure I wanna stay with SwiftData. I do wanna-- I guess, like, the thing about any of these SQLite wrappers is I don't necessarily wanna get that far, ~but ~but I, I've found SwiftData to be really clunky.
Leo Dion (host): And like you said, if you have complex data and complex [00:12:00] relationships, it becomes difficult to deal with
Cihat Gündüz (guest): Yeah, it really depends, I think. If you have, like, one or two models and not too many fields, I think it's fine. But yeah, if you have, like, a complex relationship... ~If, ~if you need to draw yourself like a, a UR- like a UML schema or something like that to understand your own data model layer, then probably SwiftData might be not there yet.
Cihat Gündüz (guest): But even then, I think it depends
Leo Dion (host): You think that's on purpose? Like, do you think that, like, they're like, "Oh," like, yeah, obviously you would, you wouldn't use Swift data for complex data. ~Like, what would it w- I'm just trying to think, get Apple's perspective on it. ~Like, what would they expect us to do if they didn't think we're gonna use Swift data?
Leo Dion (host): Or did you think they're like, "Yeah, you use Swift data"? You know what I mean?
Cihat Gündüz (guest): I think many people are already actually using SwiftData. I mean, like I said, I'm using SwiftData. I think the, the real question is, is Apple using SwiftData? Like, which apps are using actually SwiftData? And ~if there are none, or ~if there are none, [00:13:00] like, that are real apps that are storing actual data, like, I don't know, the new, what is that app called where you can, like, draw? Which is syncing.
Leo Dion (host): Freeform
Cihat Gündüz (guest): Freeform, exactly, yeah. That is ~re- ~a relatively new app. I'm asking myself, are they using SwiftData there? If they are, then I would be surprised to be honest, because that's, like, a complex data architecture you need there.
Cihat Gündüz (guest): And and system APIs, I don't know, core data probably and syncing.
Leo Dion (host): Yeah, see that's what I was gonna say is like, would you use Core Data in those cases because the data is complex enough as opposed to say like, I don't know, SQLite directly? Like, I would assume they don't use SQLite directly. I would assume they use Core Data
Cihat Gündüz (guest): Probably, yeah. I mean, Core Data is their layer around SQLite, so
Leo Dion (host): ~Right. ~Right. Yeah. All right, so that's Swift data. We did
Cihat Gündüz (guest): ~And interest-- One interesting, ~one [00:14:00] interesting detail about SwiftData is ~you can-- ~There is a new history observer API, so you can actually now sync basically your entire history, like, because SwiftData,
Foundation Models
---
Cihat Gündüz (guest): technically, you can store the history of your model changes, and now you can sync that as well to, like, a backend or something like that
Leo Dion (host): Is that what the purpose is for the backend? ~I've never, ~I've never understood the reasoning behind the whole history stuff. Is that what it is basically?
Cihat Gündüz (guest): I mean, it's for reverting and stuff, and also like ~for, ~for logging and debugging purposes. If you have, for example, a system that deals with money and shipments, you do wanna know how the database changed maybe over time. I don't know. That's what I assume
Leo Dion (host): Yeah, yeah. All right. So that's Swift Data. ~Let's, let's do this. ~Let's get into AI. So AI apparently, artificial intelligence has been a thing. I don't know if you've noticed. And Apple is finally, finally here. Before we begin, did you... Have you played around with foundation [00:15:00] models at all, or App Intents or any of that stuff?
Cihat Gündüz (guest): And not too much with app intents, but I have played around with foundation models when they first came out to just see what they can do. And then I found out they have a limit of ~four- ~4,000 tokens, and then all the ideas I had back then were basically destroyed by that.
Leo Dion (host): Yeah. Yeah, ~I can, ~I can imagine. So ~what, ~what do you think of the advancements this year? So I mean, we've got big stuff like private cloud compute now, and obviously we have bigger models. So it seems like a lot. Am I incorrect in saying that, or are we still missing something?
Cihat Gündüz (guest): No, absolutely. I think it's quite, quite, like unexpected from my perspective all the things they have done, because what I did not expect is them to basically introduce a framework or like increase the framework into being a complete harness system. Because you can now build something like Claude Code or Codex just yourself [00:16:00] just inside your app, and all the building blocks for that are now there.
Cihat Gündüz (guest): You can even use third-party models. You can use your own models. Everything was improved to get you there that you can build your own like harness agent system into your apps that can actually do things, not just chat with you, which I really like
Leo Dion (host): Yeah, agreed. So you wanna, you wanna talk about, so you got system language model, which I assume is like the protocol you would implement for if you wanna do like Claude or Codex, is that correct?
Cihat Gündüz (guest): language model. There's a new protocol called language model that basically gives... Yeah, right. That gives everyone to the opportunity to, like, conform to it, and then you can use it inside foundation models. And I actually, Google and Anthropic have already released theirs, I believe. So they are
Leo Dion (host): And they're just Swift packages, right?
Cihat Gündüz (guest): Yeah, yeah. ~It's like a, just a... ~It's like an API for them to conform to, like a completions API [00:17:00] pretty much
Leo Dion (host): Yes. Yep. And then so we also got some improvements to just foundation model as it is. So I- do they, do they improve all the models or is there like a new advanced model that's only on newer devices?
Cihat Gündüz (guest): Both. Like they have improved the last year's model. They have, like continued training it and improving it. They also said in one of the group labs that they have also focused on reducing the false positives for when it basically tries says like it's like a guardrail, safety guardrail, and you c- and it can't answer because there were some too early like, guardrail incidents.
Cihat Gündüz (guest): And they said they improved that a lot, and I, I assume they have also generally improved the... What they said is they improved the tool calling capabilities and also that it basically follows your instructions better in the old model. And they also have like a new, a stronger model that only works on like,
Leo Dion (host): yep, I got the [00:18:00] list here.
Cihat Gündüz (guest): Right. But
Leo Dion (host): the standard on-device model works on the iPhone 15 Pro and newer, and then iPad M1 or newer, Mac 1- M1 or newer, and the Apple Vision Pro M2. The advanced on-device models work basically on anything with 12 gigs of RAM and higher, and that would be iPhone Air, iPhone 17 Pro, iPhone 17 Pro Max and then the iPad M4, Mac M3 and later, and then the Apple Vision Pro M5
Cihat Gündüz (guest): Right. But they only said that they are like capable of doing things like better voice for Siri and stuff like that. In the sessions, ~they, ~they didn't mention any differences between system language models. They didn't say like, on some devices it's better than on others. So I'm not really sure if those more capable devices are actually using a more capable model or if they just have like more vision, vision features.
Leo Dion (host): ~Okay. ~[00:19:00] Okay. What does, you have here new PCC model. Oh, is that, that's private cloud compute.
Cihat Gündüz (guest): Exactly
Leo Dion (host): Yep, and then they increased token count, new token counting context size. And then what is dy- can you explain what dynamic profiles is?
Cihat Gündüz (guest): Do you know what a view is in SwiftUI?
Leo Dion (host): Yes
Cihat Gündüz (guest): pretty much where, what a dynamic profile is. It's like a, it's like a protocol that inside of it you can, like, define, like, switch cases, and then you can define other views that are there for, like, that are building blocks that build your entire view. And the building blocks are things like instructions, tool calls, or yeah, skills and things like that.
Cihat Gündüz (guest): And in other words, basically what Apple introduced is a declarative framework like SwiftUI for defining AI sessions,
Leo Dion (host): Got it. That makes
Cihat Gündüz (guest): really interesting
Leo Dion (host): Yes. Yeah, that [00:20:00] is, You have here built-in barcode reader and OCR tool. I thought we already had that in Vision, I thought. Is it just, it's a tool now? They implement it as a tool for foundation mo- Okay, that makes sense. So that way it's, it can be integrated in foundation models.
Cihat Gündüz (guest): Inside your session, you don't have to like... I mean, b- there was a question in one of the group labs where they asked where someone asked: When should I use Vision, and when should I use basically the tool call inside a foundation model session? And the thing is, if you can use Vision because your thing that you're trying to recognize is something you know upfront during development, just use that.
Cihat Gündüz (guest): But if it's something the user might say in a se- chat session, now the, there's a tool for that,
Leo Dion (host): Right. That makes total sense. I didn't ask you this, but I probably should have asked you at the beginning of the episode. Have you installed any of the OSs anywhere?
Cihat Gündüz (guest): I have installed the betas on my main phones, not the test phones, but the main phones. And on ~one test-- on my, ~my secondary [00:21:00] Mac, I installed the Vision. ~I be- ~I can't install the macOS latest version because that will be too risky. But on my phone, I don't really care. So yeah, I installed it
Leo Dion (host): How is it?
Cihat Gündüz (guest): It's pretty stable. I only had bugs inside iMessage, where sometimes the keyboard was not disappearing and stuff like that
Leo Dion (host): ~I'm on the, ~I'm on the release build and I have bugs in iMessage, so that's
Cihat Gündüz (guest): But, but, but you don't have bugs ~at, ~at the level of you can't type anymore or send anymore, I assume? Fair enough
Leo Dion (host): ~That's, ~that's what always happens is when the betas come out and I'm like, "Yeah, it's kind of already broken in a few ways, so what, how much worse can it get?" Is it better? Like, is the Siri better? ~Have you, have you gotten pa- ~So I installed it on ~m- ~one of my extra iPhones. I have an iPhone 14 Pro, and it's been indexing since I installed it on Friday.
Leo Dion (host): So we, what kind of phone do you have?
Cihat Gündüz (guest): I have the [00:22:00] latest iPhone 17 Pro Max,
Leo Dion (host): Oh, good. Okay.
Cihat Gündüz (guest): ~l- ~let me check real quick if it's finished index. Yeah, it's still indexing. It's been a few days now
Leo Dion (host): Yeah. And I've also heard... So, so I did it on my iPhone 14 Pro. ~I put it ~I put the Mac beta on my MacBook Air. I haven't noticed issues. I've heard that there's issues at least indexing on the Mac. So one of the things you, you talked about here, and I should probably mention, is, like, it sounds like they're doing a big update to Spotlight.
Leo Dion (host): So that's part of really the reason I assume we're getting all this indexing. But I've heard that indexing can fill up the hard drive. So we'll see if that's the case. ~I'm gonna put it, ~I'm gonna put it on one of my, I have three Mac minis. I'm probably gonna put it on the M4 Mac Mini too, just so that way I can build.
Leo Dion (host): And well, we can get into it. But foundation models are, We have this new evaluation framework, which I am excited to try out. I [00:23:00] kind of... I don't know if you follow me on social media, but it had a bit of a, a... I had to wrestle with it, 'cause apparently I was like, "I'm trying to run it. It doesn't work."
Leo Dion (host): And then I find out, oh, like, it doesn't run in simulator, it runs on the Mac, and the Mac needs to be macOS 27. So that's kind of why I installed macOS 27 beta on my, my Air. And yeah, okay, now I figured out how it works, and I, I wish I'd known. I don't know, maybe it's my fault 'cause I didn't read the top.
Leo Dion (host): But also, I just kind of assume if you're running a test, it runs in the simulator, but that's not the case with these. So, yeah, ~you wanna ta- ~do you wanna talk about the evaluations framework, or should I talk about it?
Cihat Gündüz (guest): So you can talk about it. I can just comment.
Leo Dion (host): But basically, it's a very friendly way to test a pr- like a prompt essentially, and everything else that comes with running something through AI and being able to test whether you're getting the [00:24:00] results you expect more or less. And it's-- I watched the video and they have like the there's like the, I, I forgot what it...
Leo Dion (host): Oh, quantitative and qualitative, right? That you can test on. So yeah, I think I am excited to play around with that 'cause I have foundational model ideas I wanna go through and I want to, to test my prompts and things like that, and this is gonna be a great way for me to be able to do that
Cihat Gündüz (guest): Right. I mean, with dynamic profiles what we didn't really went into is they also made it possible and easy that you have one session, one chat basically, ~with an A- ~with an agent where you can change the agent's behavior mid-session. You can like, you can try even, even there, there are even APIs for truncating the history and like making it smaller, removing tool calls, and changing also the available ~to- ~tools and stuff like that.
Cihat Gündüz (guest): I mean, I work a lot with Claude Code and stuff, and usually ~you start a session yeah, ~you start a session, you have [00:25:00] like one system prompt at the start, and then you have your history, and all you can do is compact. That's all there is for like, the transcript management. You can't really say like, "Okay, now remove just the tool calls," or, "Remove just the last two messages," or, "Summarize just them."
Leo Dion (host): So ~you can, you can mi- ~you can edit the context midstream with dynamic profiles. ~That's a, ~that's awesome
Cihat Gündüz (guest): It's really, really cool. I think dynamic profiles are a huge thing that we still need to figure out how it works because it's... It feels a bit like switching from UIKit to SwiftUI, where you need to, like, think differently because you have to now think declaratively and no longer like the old way.
Cihat Gündüz (guest): And I'm also sure that there is going to be some edge cases that are hard to like, tell the system. But in general, it's really, really cool, and it's a nice way to use the limited session token limits that we have with the built-in system models, and also with, like, local models, which are a bit slower usually, even if you install like, I don't know, Qwen or something like that on your Mac.[00:26:00]
Cihat Gündüz (guest): You can do that with foundation models which are stronger models, but still they... You don't want to wait a lot with within your... Or you don't want your users to wait a lot when you, when they want to do some action. So you wanna keep the session length small and stuff like that. And you can do all of that. Qwen, yeah. Yeah. The, the Qwen model's from Alibaba, I think
Leo Dion (host): Oh, okay. We'll put a link to that in the show notes.
Cihat Gündüz (guest): They're like open source models. ~Even, ~even Apple mentioned them explicitly in their group labs, I think. So
Leo Dion (host): That makes sense.
Cihat Gündüz (guest): yeah
Leo Dion (host): Do, do, do,
Cihat Gündüz (guest): The evaluations framework was built exactly for, for that kind of thing where you can, like, switch even mid-session and things can change a lot, and the evaluations framework is going to be super, super helpful on deciding which model you wanna use for which kind of task.
Cihat Gündüz (guest): And I really like it
Leo Dion (host): Have you played around with it much?
Cihat Gündüz (guest): In general, I mean, it's Monday after one week after [00:27:00] WWDC, and I've been watching a lot of sessions. I've been working also on a new design on the WWDC Notes project, and also the World Cup started. I don't know if that's something people are caring about that are listening here, but yeah, that's why it's been a bit tough to try everything out.
Cihat Gündüz (guest): But I saw, I saw that there they have two things that I really like. One is that you can provide some sample data because usually when you want to evaluate some prompts and stuff like that, you have like expected samples of what you put in and what you get out. For example, for my translation app, I've been doing that, trying to figure out if it translates well into some languages.
Cihat Gündüz (guest): And the cool thing is you can now provide some sample data, and it will synthesize a lot of more data, a lot of more examples, so, it can test way better, and that's something that they have built in, which I really like. And the other thing they-- that's built in is a model judge model. So basically, you can provide something like another prompt that is a judge and that judges on the output of your prompts because each output ~can, can, ~[00:28:00] can be different, right?
Cihat Gündüz (guest): ~You cannot, ~you cannot deterministically determine if the output is exactly as you expect because it could change the wording or something or things like that. And you can define a judge model or a judge prompt with some they call it different dimensions where you can say like, "Okay, this output, is it relevant to, to my thing, and is it useful, and is it..."
Cihat Gündüz (guest): And you can define your dimensions yourself, and then the judge will basically help you see if it passes ~your, ~your test or not
Leo Dion (host): And then you can also define like
Xcode 27
---
Leo Dion (host): temperature, right? Which basically means how random it is. Is that correct?
Cihat Gündüz (guest): Yes, you can temp-- define temperature on models as well. I assume only models that support it, but yeah, I'm not sure if all models support temperature. For example, do system language model does System 1 support temperature? I'm not sure about that. I mean, the modifier is available in dynamic profiles. So ~it's like, it's like a SwiftUI, ~it's like a SwiftUI view modifier. You just define .temperature, and similarly you have the .historyTransform, which basically transforms your [00:29:00] history, and then you can do whatever you want with the history that comes in there
Leo Dion (host): ~Yeah, that's true. That's true. ~Yeah, there's a lot of fun stuff to play with here. I'm excited for it. Oh, I do mention that they're open sourcing foundation models. Is that, is that correct?
Cihat Gündüz (guest): They said something like that. I didn't quite get what they mean because when I look up what is already open source, I mean, we're early in the beta phase, but, like, not everything I think is already open source. What they specifically said is that foundation model utilities will be completely open source, and utilities are like a set of tools, set of skills that you can use.
Cihat Gündüz (guest): For example, if you wanna compact your trans- transcript history, they are going to provide a way to do that. So you can... If you just need a default compaction mechanism, you can just reuse that. And a cool thing of that is they can, like, iterate fast because the AI space is moving real fast, and that's their, their solution to that, is open sourcing as much as possible.
Cihat Gündüz (guest): I don't know if the entire old phone foundation models is going to be open source, but I think I even heard something like that. So [00:30:00] yeah, we'll see
Leo Dion (host): We'll see. Stay tuned. You had here there, so there was that agentic app experiences talk that they did. What, like, what kind of apps are you thinking about when it comes to agentic? I assume by agentic app experience we're talking you can, like, chat with the bot to do something. Is that correct?
Leo Dion (host): Or is there more to an agentic app experience?
Cihat Gündüz (guest): I think long-term, there's a long-term myst- story for that and a, a short-term. The short-term one is probably not all apps are going to have that simply because of the context limitations of these on-device models. But I think the long-term story here, and ~that's, ~that's my feeling I get watching all those sessions and seeing the APIs they did introduce and comparing ~the ~that with the APIs they did not introduce, is I have a feeling their strategy is they want apps to all become more agentic.
Cihat Gündüz (guest): And I mean ~a- ~agentic, the, ~the difference between, I mean, the main ~difference between agentic chats and AI and just chatbots like [00:31:00] ChatGPT is the agents can actually do something for you. It's like, ~are, ~are they just giving you answers or are they doing something for you? And I feel like their dream is that in the future, all apps can basically have some agents built in that are optimized and specialized to your app's needs.
Cihat Gündüz (guest): For example, if you wanna order pizza or something like that, that app is going to have a specialized agent that can somehow like, figure out your taste ~and figure out ~and maybe store that in your app and know which like well, but maybe even you have some guests and they can maybe connect to, or you can like type in, "Okay today my nephew is there," or something like that.
Cihat Gündüz (guest): And then it can like remember that and then can just suggest to order this or that based on the, I don't know, things like that. So every app basically gets some kind of AI capabilities, and the UI interface is probably not going to be directly a chat. It's going to be more like a
Leo Dion (host): that's what [00:32:00] I had figured. Yeah, where it was like it uses an agent underneath the hood to ~pr- ~do a prompt, but the user doesn't realize essentially that there's a prompt there
Cihat Gündüz (guest): Or doesn't have to realize. Yeah. I
Leo Dion (host): ~Right. ~Right. Exactly.
Cihat Gündüz (guest): you decide as a developer if you wanna communicate that or not
Leo Dion (host): ~Have you, is there some, b- ~okay, obviously your translate kit, which people should check out, that's not necessarily like an ng-etic app experience, but what other apps do you have that you might consider having, adding that feature?
Cihat Gündüz (guest): To be honest, I'm trying to focus more on consumer apps from here on because the developer apps I've been doing like TranslateKit they have been Sherlocked pretty much by Apple each time. This is the second time now because what they also shipped is localization in Xcode, and I checked it out in detail.
Cihat Gündüz (guest): It's pretty good. ~It's not, ~it's really not that bad. So if you are starting fresh you can use TranslateKit, which uses AI as well and which is spell tested and stuff like supports more languages right now. But the long-term story I think is that you [00:33:00] can actually totally use what they have built in, and it's really good.
Cihat Gündüz (guest): ~It's re-- if you, if you use a good model, ~it's really good. So, I recommend just checking that out if you wanna localize your apps in Xcode. And then if you need more, you can still look for alternatives
Leo Dion (host): So I was gonna ask if you were Sherlocked when it comes to TranslateKit
Cihat Gündüz (guest): Not 100%, but like for the use case, I think, yeah, pretty much
Leo Dion (host): ~I, ~I was gonna ask 'cause yeah, we have a lot of advancements when it comes to localization in the app. And yeah, we can start getting into TextKit or excuse me, TextKit, Xcode. We can start getting into Xcode if you want to. I started using Xcode 27. I have not noticed a lot. I still open Cloud Code to do most of my work.
Leo Dion (host): I think the biggest thing I've noticed is Device Hub, which we can get into in a bit. But, like, I haven't noticed a l- I have not noticed and I have not taken advantage a lot of the Ingenic stuff in Xcode just 'cause I'm so used to using Cloud Code and it does what I want it to do. [00:34:00] And, like, to me, Xcode is just building and running more or less, and a few little text edits here and there.
Leo Dion (host): W- yeah, what's been your experience?
Cihat Gündüz (guest): ~I, ~I can't really say experience in Xcode 27 because ~I ha- ~I just opened it and then e-entered a f-few things, mostly translation stuff to see if the localization works. ~But the, ~but the really interesting thing is I have a feeling that Xcode is now an alternative to Cloud Code pretty much because ~you can, ~it can now do sub-agents, it can now run even ch- command line terminal commands.
Cihat Gündüz (guest): So if I had like, I don't know, rules how to like check my PRs with JH2 on the command line and stuff like that, it can now do that. You have to still allow it and stuff like that. So they still go the more safe route like any agent, like Cloud Code also was doing the safe route at the start.
Leo Dion (host): Great
Cihat Gündüz (guest): but they have all the things built in now, so if you wanna use Xcode, you totally can, I think
Leo Dion (host): I had issues with it, and ~I was going through, ~I was going through GPT to do it, [00:35:00] and I- it was giving me errors, and I was just... I gave up. And I tried to hook it up to Claude. I had tried to hook it up to my Claude Ac-account code account, and that didn't work. So I was just like, "Well, at least I tried."
Leo Dion (host): And then this was last week, so I don't know at the time we release this episode what the status will be, but ~I did I did end up using Fable to the model that was shut down over the weekend. ~I did end up using Fable 5 from Claude Code to build a quick app using the new container stuff, and it did a really good job.
Leo Dion (host): So it, ~so it was able-- Fable was a... Fable ~was able. Fable was able to read the new documentation and understand the new API even though, like, all that stuff is brand new, and built a draggable list or reorder, I should say reorderable list with swip-swipe actions, et cetera. So, you know, I don't know, Apple.
Leo Dion (host): Like, for someone like me, ~it's hard, ~it's hard to wanna use Xcode, and, like, I used to be... I don't know what your journey is, but I used to use Cursor, and now I, like, other than some stuff where I [00:36:00] need a dev container I pretty much do everything in Claude Code. And even when I use a dev container and I need to do stuff, I just use Visual Studio Code and the Claude Code extension there.
Leo Dion (host): So it's gonna be hard for me to wanna move to Xcode to do my development. How
Cihat Gündüz (guest): mean move back? You mean move back to Xcode?
Leo Dion (host): ~I never, I never moved to, to Xcode, so no, it's not moved back. ~I never... I've always been...
Cihat Gündüz (guest): you were using Xcode back when there was no LLMs, right?
Leo Dion (host): Yeah, like whatever. That was like 100 years ago. Yes. ~Yes, ~I did use Xcode, but,
Cihat Gündüz (guest): Yeah
Leo Dion (host): ~you know, when we were all cavemen and living in our...~
Leo Dion (host): You know, that was a long time ago. yeah you know, my journey is ChatGPT, Cursor, Claude Code, and like I've pretty much been all in on Claude Code right now. I do wanna get into Codex. People have said co- good things about Codex. We'll see. But yeah. So anyway, like have you... W- do you, like do you, do you use any of the Ingenic stuff in Xcode, and are you excited about any of the new stuff?[00:37:00]
Cihat Gündüz (guest): I'm excited about the new stuff, but I have not used the stuff from Xcode 26 because it was just not capable of like ... It was not even close. And it was like the, the way we were working was in Xcode, and then we were happy about code completion and stuff. And then the entire shift happened last year where, like, we started using LLMs to do the coding, and we're just like, I don't know, QA reviewers and plan writers and specifiers and testers and s- so many different roles that we still have, and designers and stuff like that.
Cihat Gündüz (guest): But we're no longer really doing the co- at least for me. Like, some people might still be doing that, but I'm not really doing any coding anymore. I'm just reviewing code and specifying maybe some guidelines. And I'm also f- all in into Claude Code, and all I really care about is how can I write the next improvements to my loops that spin out reviewers that do QA review and UI review and all, all these kinds of things.
Cihat Gündüz (guest): And this was not possible in Xcode before, but now it seems like it is. [00:38:00] So, I think it's worth giving it a try if you like the,
Leo Dion (host): I gave it a try and it didn't work
Cihat Gündüz (guest): in 27. Yeah. But okay, but you cannot log in, and it's
AI Costs & the "AI Apocalypse"
---
Cihat Gündüz (guest): like beta one bug, so maybe you should give it a try in beta six or something like that.
Leo Dion (host): I do I am, I wouldn't say I'm excited, but I'm interested in Device Hub, really interesting new interface. I do think I'm happy that we're, like, away from the simulator stuff because I do think it was a bit outdated. It's not perfect, but I, I, I am, I'm all on board with that. And also gives me idea- UI ideas for Bushel, so that's good too.
Leo Dion (host): But... And there is some AI stuff hooked up to simulator to do stuff, which by the way I, last week I was doing some watch, Apple Watch, iPhone stuff, and I was able to, like, have Claude write me a way to, like, make sure my watch connectivity messages are sending and stuff, [00:39:00] and it did all that on simulator.
Leo Dion (host): So, like, I don't know. Like, again, Apple, like, it's a little, it's a little bit late, but I think it... I do, I do wonder too if we're, we're looking at maybe Apple dipping its toes into finally updating UI tests to be less object- objective C, C-ish, if you know what I
Cihat Gündüz (guest): ~improving, ~improving UI test has been one of my five AI wishes in my article that ~I we, we, ~we talked about earlier. And the way I imagine actually in future AI tests UI tests to work is pretty much being something more of a human description of what I expect. Like for example, if I wanna test a specific workflow, I don't wanna specify, okay, open this and then press the button with the label next.
Cihat Gündüz (guest): I wanna say something like g- go through the onboarding and start the first app experience or something like that.
Leo Dion (host): What prevents you from doing that now?
Cihat Gündüz (guest): I can do
Leo Dion (host): And what I mean by that what, what I guess I would mean is it's [00:40:00] kind of possible in, in a very indirect way to do that, I guess,
Cihat Gündüz (guest): Yeah. I mean, the, the thing what's not possible is making it a test that you can rerun like confidently and that is supported by some testing system. That's, I think, not possible right now because, because UI tests are very label specific or identifier specific, and I want the ~LLM ~LLM to be included in the decision-making of what to press, for example.
Cihat Gündüz (guest): Because if I wanna continue to the next screen, it can be called next, it can be a right arrow, it can be, The, the wording shouldn't really matter because that's also the perspective of a, of a real user. A real user you just, just wants to continue to the next screen, and any way that makes this possible should be, like, easy for the, for the test to figure out.
Cihat Gündüz (guest): And I don't wanna have to adjust my test all the time. I want my test to be written once, and then if I really wanna adjust it, if it's is only when I actually change my workflow. If I, for example, add a new screen in between, okay, that's when I want to change my t- tests. [00:41:00] But if I just change the label, the wording or the language or something like that, I don't want the test to fail, and that's been like yeah.
Cihat Gündüz (guest): And that's not possible in a way that I, I can rerun this
Leo Dion (host): ~What does y- I don't know how much you're into web development. How, what, ~what does the web ~wor- ~world do about that right now? Because I'm sure they have decent UI tests that can do all sorts of crazy stuff with HTML and JavaScript, and they're gonna be ahead on the AI side, so I'm curious what they do now for that kind of stuff
Cihat Gündüz (guest): I mean, you can, even on iOS, you can write your own, like, text file that just describes your tests, and then you can tell Claude each time, "Run this test file as like a behavior-driven thing."
Leo Dion (host): got... I mean, I bet the web world is ahead of us on that. Like, I bet they have some sort of ngetic way you can say, "Hey, click on this button on this webpage. Do this." I mean, ~have you, ~have you played around with like, what is it? The Chrome plugins with Claude? Uh
Cihat Gündüz (guest): ~I, I, I'm, I've been using a lot of different things. ~I think the Chrome plugin is mostly for giving Claude access to your browser and being able to navigate and take [00:42:00] screenshots and stuff, right?
Leo Dion (host): Yeah. Yeah, ~yeah.~
Cihat Gündüz (guest): that, but I use a tool called BrowserUse, which I find works more reliably for my cases
Leo Dion (host): I'll try that. Inside baseball, I use Riverside, right, for this recording, and when I want to download clips it's a pain in the butt because you have to, like, export. You have to click on each thing and export, and click on and export, and click on... 'Cause I do social media clips, and so I ended up having Claude do it with the Chrome extension.
Leo Dion (host): Well, to use a browser use.
Cihat Gündüz (guest): Yeah, I'm using BrowserUS. I'm not sure if it can record videos, but like it, it can do a lot of stuff. I mean, I've been using Playwright before that, but Playwright was taking much more tokens, and BrowserUS seems to be more efficient with that
Leo Dion (host): Oh, the tokens. Yes. You know, ~how, ~how are you doing on time? Are you good?
Cihat Gündüz (guest): Yeah, I'm good
Leo Dion (host): ~Okay. Y- I guess I do want to get we're gonna... ~In my next episode, I'll be talking with Joe about AI. He's done a lot of stuff with AI, and I'm kind of just curious, where do you think we're headed with this stuff?
Leo Dion (host): 'Cause y- [00:43:00] you're talking about tokens. Like, which, which AI apocalypse are we gonna go towards? The one where you know, Terminator or just I- my bill for Claude Code goes up fivefold because they went public. Like, which apocalypse do you think we're heading towards?
Cihat Gündüz (guest): I hope none of both because I can't imagine something like Terminator because we are trying to-- Or the, the people who are really building these big AI tools, they are trying to build things they either can make a lot of money with or, like, actually solve problems that we have. I don't see any incentive for anyone to build something that is going to be dangerous.
Cihat Gündüz (guest): I hope it's not going to be, uh
Leo Dion (host): I mean, not purposeful, but obviously if it's misaligned, I think that's more of the scenario, right? Where it's like, "Hey, build paper-" You know, the paperclip story, right? Where it's like, or build more data centers and sorry we're starving a certain portion of, you know, we build a set- data center on top of a population and we don't care if people die kind of thing.
Leo Dion (host): You know what I mean?
Cihat Gündüz (guest): Yes, everything is possible, but I mean, [00:44:00] even the, the very fact that we cannot use Claude Fable anymore just a few days later has-- it, it's not like there are politics in there, but it has also to do with like, alignment and like safety rules and things like that. I mean, Claude-- Anthropic themselves built a lot of guardrails in there and I think they're trying to go the right route, and I hope it's not going to go that route.
Cihat Gündüz (guest): But I see a lot of opportunity, and I also feel like that's one of the news that came in from WWDC this year, is that local models matter. It's not all going to be cloud. It's not all going to be... Like, you don't always need that. You can do a lot of stuff with local models and with now systems supporting installing your third-party ones, and there are a lot of third-party ones that are pretty good, actually.
Cihat Gündüz (guest): And Qwen, which I mentioned already, Qwen 3.6, for example, is really not that bad. And some people are actually saying they replaced their Claude code workflows with that. I don't think I could do that because I'm using Opus a lot and I'm using Max 20 to its max. I'm like really maxing it out. [00:45:00] And but I think like people who are used to Sonnet can find some local solutions
Leo Dion (host): Yeah, yeah. ~I, ~I wanna... I'm not convinced about local models, which isn't to say I'm not open to it, but kind of give the case of why you think there's gonna be a big future for local models
Cihat Gündüz (guest): Because they go, I mean, the web models have been improving without becoming way bigger by just better alignment, better training and stuff like that. I, I just believe in that five years from now, local models will be at the level of the web models that, that are right now. They might not have as much world knowledge, but they will be f- be very able in following instructions and stuff like...
Cihat Gündüz (guest): These things, I think you can align them very well because that's not directly related to how much training data or how many parameters there are. It's more related to like alignment and training. And it-- I mean, Fable, I'm, I'm pretty sure Fable is... Claude Fable the few days that I could use it [00:46:00] felt like it's, it's built in it has like built-in behavior that, that does more checking, more reviews, more tests, more checks before it actually answers, "I'm done."
Cihat Gündüz (guest): And that is what I had to tell like the, the previous models the previous generation with the Opus and stuff. I had to tell it to do that. It didn't do it automatically, but Fable did it automatically. So it already knows that these kinds of workflows re- like give... at the end of the day bring better results.
Cihat Gündüz (guest): And local models are also going to learn that and be will be able to automatically do the right things. And yeah. That's at least my hope, and that's why I think local models will not be completely off the list for like, long-term story.
Cihat Gündüz (guest): What do you think actually about these this, the AI question you asked, the big AI question? Is it which direction are we going?
Leo Dion (host): Just based on what I've read, like, when it comes to history and things like that, we always kind of think that technologies will just keep getting better and better. [00:47:00] I think there'll be a ceiling, whether that's technological or financial, to where it's not worth getting these so intelligent that they can, you know, be smarter than humans.
Leo Dion (host): I think we are in a bubble. I think that a lot of what we're paying for right now is VC-funded, and I think that as soon as some of these companies go public, I think we're gonna see, unfortunately, increases in prices. And I also think that's part of the reason why AI will kind of hit, not so much a ceiling, but kind of like a big slowdown because it just won't be financially worthwhile to bui- keep building data centers.
Leo Dion (host): The s- the return on investment is not gonna be there. And I also think one of the problems with the whole apocalypse discussion is it detracts from the more reasonable immediate effects of AI, whether that's mental health or economic. So I think we should be spending more time talking about that than worrying [00:48:00] about a Terminator scenario.
Leo Dion (host): So I guess that's, that's pretty much where I stand right now as of today.
Cihat Gündüz (guest): Okay. Yeah, fair enough. I mean, we will see. Nobody knows,
iPhone Fold
---
Cihat Gündüz (guest): right?
Leo Dion (host): Yeah. Right. I do... So if you want to hear more about our thoughts on AI check out the next episode with Joe, 'cause we'll have a lot to talk about there. Was there anything else you wanted to mention about Xcode?
Cihat Gündüz (guest): Xcode ships with built-in skills and there are some like SwiftUI I've already mentioned. There's also What's New specifically for SwiftUI, and there are skills for modernization, one for UIKit, so you can modernize your UIKit apps, and one for tests, so you can basically move from XCTest to Swift Testing really easily.
Cihat Gündüz (guest): And there's also one for device interaction, so when if-- even if you're not using... I mean, that's what Xcode is using, and that's ~where, ~where Device Hub also comes in because simulators still don't have a way to directly interact with them from Apple at least, but Device Hub seems to have. And there is a skill [00:49:00] that you can, of course, also use in Cloud Code or anywhere else that will tell it basically how to interact with the, with different devices, take screenshots, and inspect the UI ~hierarchy, ~hierarchy and stuff like that
Leo Dion (host): Is this, are these available to us to use within Cloud Code or we have to use them in Xcode?
Cihat Gündüz (guest): You can totally use them. They even built a tool it's called XIRUN Agent Skills or something like that, where you can export them. So it's like intended to be used somewhere else too
Leo Dion (host): That's awesome. I have to check that out after this, this recording. That's fantastic. What el- there's one thing I wanna talk about but I wanna let you have anything else you wanna talk about before we talk about the other thing. You had a few things under others as far as like design and, and things.
Leo Dion (host): Did you wanna briefly mention any of those?
Cihat Gündüz (guest): Well, we talked about Claude Code and stuff like that. What I find is what's what those tools are really not very good at yet is any-anything that is not code, like UI and UX, like, how the navigation should go and stuff like [00:50:00] that, and also naming things, sometimes it doesn't get right. And what I found is that actually the WWDC talks there were several d- design talks ~this year, ~this year.
Cihat Gündüz (guest): One about brand identity with SwiftUI, one about naming things, one about general design principles, and one even specifically for designers about how to do UI prototyping with SwiftUI Previews. And ~I have, ~I have a feeling that it's worth just basically telling ... If you're using Claude Code, you could just tell Claude to read the transcript of each of these sessions and build a skill off of that, and then you c- it could use
Leo Dion (host): No, don't tell people that. They have to watch the whole video. ~What are you... ~Don't
Cihat Gündüz (guest): No, ~they should, ~they should watch the video, but Claude should watch the video as well.
Leo Dion (host): Okay.
Cihat Gündüz (guest): my point.
Leo Dion (host): Watch the video as well. Yeah, no, ~I, I, ~I actually agree with you 100%. Yeah, those were really good talks, especially I did the ... I wanna do brand identity, and I did the UI prototypes and stuff like that.
Leo Dion (host): So yeah, I really wanna ... You know, you're [00:51:00] talking about Device Hub. I really wanna deep dive into Device Hub and see
Cihat Gündüz (guest): Okay, let's go
Leo Dion (host): can ... No, no, no, I mean, like, I wanna deep dive after the recording and figure out
Cihat Gündüz (guest): Ah, okay,
Leo Dion (host): I could do stuff command line with it because I've already gotten decent at ~Sim- ~SimCTL, so now I'm like, "Okay, now how do I do it with Device Hub?"
Leo Dion (host): So yeah. The la- I have one more thing I wanna talk about. Did you wanna talk about the other stuff too, or should I just ask my last question?
Cihat Gündüz (guest): You can ask your last question. ~Let's, ~let's go away with that
Leo Dion (host): Okay. So, What's the likelihood that we're gonna have a iPhone Fold based on what you've seen with Device Hub?
Cihat Gündüz (guest): 120% or something like that.
Leo Dion (host): Yeah.
Cihat Gündüz (guest): ~It's pretty much confirmed, right? ~It's officially confirmed
Leo Dion (host): so I, okay, I haven't tried this, but iPhone mirroring, you can like resize the iPhone in iPhone mirroring, is that correct?
Cihat Gündüz (guest): Okay, I haven't tested iPhone mirroring, but in the simulator, if you have a simulator open, you can resize that. And by the way~ for everyone, ~for everyone listening from the EU, we [00:52:00] didn't have access to iPhone mirroring so far, but through Device Hub, we do. We can now mirror our iPhones into Device Hub
Leo Dion (host): Yeah. Okay. That's how you get away with it. And then but yeah, like, they're definitely... They have something going on now where you can~ they're, ~they're basically saying, "Hey, you can resize stuff to any size." Almost have, like, windowing in the iPhone similar to the iPad. Is that what I'm hearing? Okay
Cihat Gündüz (guest): And ~in, ~in the sessions, they explicitly showed the exact size, or pretty much the size of a potential rumored iPhone Fold, which is, like, just a wider iPhone. And people have figured out that there are now already built-in APIs ~that's, ~that talk about multiple windows and multiple screens on iPhone.
Cihat Gündüz (guest): So there will be an iPhone that supports multiple screens, and which one can that be?
Leo Dion (host): Yeah. ~Yeah, ~right. Are you gonna get one?
Cihat Gündüz (guest): I think I will get one for my wife because I need it for [00:53:00] testing and my wife needs a new phone, so that's how I get away with it. And that way I can test a bit and play around a bit with it to understand, like, the new stuff that is going to be, because there will be new paradigms there and it's going to feel different.
Cihat Gündüz (guest): Some apps you have to just test it and get a feeling for it to know how to write good UI and UX. Exactly the thing that AI cannot do for us. And yeah, that's what I need to get a feeling for. And so I need one at my home, but I ha- I'm really very happy with my 17 Pro Max and I need the best cameras and my wife doesn't care, so it's perfect
Leo Dion (host): ~So I have two questions for you. Well, I, I might get a... I'm sort of itching to get a new phone now because of the advanced features, but we'll see. ~So I have two questions for you. Your wife doesn't mind having a brand-new phone that might be a little bit shall we say, in beta? Like, I don't know, my wife would be like, "I don't want anything that's too fancy," and like, "I don't know how this works."
Leo Dion (host): You know what I mean? Like, does she
Cihat Gündüz (guest): I'm, yeah. Not really. I, I think she's more concerned about bugs, real bugs. For example, what I see as a bug is if [00:54:00] the battery life isn't that great, that will be a problem, which is why I didn't buy her an iPhone Air. But it turns out it's not that bad actually, but I thought it would be bad. But I don't really see the battery problem with a two- with a Fold because it has both sides for the battery.
Cihat Gündüz (guest): And so it's just going to be, like,
Leo Dion (host): That's gonna be a benefit, ~not a, ~not a bug, I think for with a lot of people
Cihat Gündüz (guest): And she really likes that it's, like, overall is going to be smaller, and she loves those flip phones from, from the past where when we were, like kids. And she's looking forward to it actually, so, I think it's going to be cool. And maybe some apps will not be optimized for it.
Cihat Gündüz (guest): That's something she has to deal with. I'm pretty sure she will get mad at some of them.
Leo Dion (host): yeah, a lot of apps will not be optimized. Like w- we finally, what? Got a Instagram app last year, so ~what did, ~what did that take? Like 15 years? So yeah,
Cihat Gündüz (guest): Yeah.
Leo Dion (host): don't
Cihat Gündüz (guest): ~but I assume is there's-- ~But I assume there's going to be something like a compatibility mode where you will have just one app on the left side and one on the right side, and that way you just have a shorter phone, basically. And that's why I [00:55:00] think it will work
Leo Dion (host): I, like I'm try- I'm tr- trying to think about this more. ~Is this gonna be like a ~is this gonna be like a... It's gonna fold like a book, right? Not like a flip phone. Are we talking like, are, are apps gonna have... The, the, the Apple thing I think they're gonna do is they're gonna say, "There's a crease. Deal with it."
Leo Dion (host): You have to design your UI around the crease, I would assume. And so you, you don't think so. I would... 'Cause if your app has multiple windows with multiples, for multiple screens, I, I, it sounds very much like
Cihat Gündüz (guest): No, no, it's not multiple
Leo Dion (host): Nintendo DS
Cihat Gündüz (guest): ~I think that it's a lower, it's a lower level API. ~The two screens thing is a lower le- level API, so you can, like, do lower level stuff. But for apps, I think it's just one screen that is just larger. It's like a small iPad, basically
Leo Dion (host): You think so?
Cihat Gündüz (guest): Yeah, I mean, if, if there was something, I'm pretty sure they had to already give us the API for it, and they didn't.
Cihat Gündüz (guest): There was no mention of, like, split [00:56:00] your-- make your app splittable or something. There was no API like that, so I'm pretty sure it's just going to be a larger phone with, like, a small iPad size. Because that's what they said. They, they said, "Make your app adaptable to different screen sizes." They didn't say, "Make your app splittable to multiple windows."
Leo Dion (host): Yeah. ~It just, ~it just feels very Apple-y to be like, "Yep, this is a limitation we have to deal with." You have your dynamic island ~or, ~or like v- video of your eyeballs on the screen, like the Vision Pro, and just be like, "We're just gonna deal with it, the technology limitation with a decent design idea, I guess."
Leo Dion (host): So, but yeah, you make a lot more sense. If there's no API for even a talk about it, then they
Cihat Gündüz (guest): Yeah, they can't introduce it
Leo Dion (host): Anything else you wanna talk about before we close out?
Cihat Gündüz (guest): I do wanna mention that WWDC Notes is getting a new design, and that the ~n- ~new design is actually fire, like, basically driven by a new open source tool that I've been developing for a couple of multiple months, and [00:57:00] I'm ~a- ~actually about to release it today. So by the time this episode comes out, it's hopefully released.
Cihat Gündüz (guest): Its name is SiteKit, and you can check it out. It's open source. It's ~an AA- an- ~an AI first static site generator written in Swift. So, you can build any website, any blog. ~My, ~my website is built with it. My app landing page is built with it, and the WWDC Notes documentation website will also be built with it.
Cihat Gündüz (guest): And yeah, check it out and give me some feedback if you like it or not. And happy about any feedback
Leo Dion (host): Awesome. That is a fantastic idea. Thank you so much Cihat, for coming on the show. It's really great to talk to you. Definitely check out WWDC Notes and your website flynn.dev. Where are you on the socials?
Cihat Gündüz (guest): I'm always @@Jeehut, J-J-E-E, Hut like Pizza Hut, on Mastodon, Blue Sky, and also on Twitter
Leo Dion (host): And you can find me on Mastodon at leogdion@c.im [00:58:00] and @leogdion everywhere else. My company is BrightDigit, so check out brightdigit.com. ~I will be speaking with Joe. ~The next episode will be with Joe Fasevich, so definitely check that out. We'll be deep diving more into AI and our thoughts on that and AI assisted development.
Leo Dion (host): Again, I have availability for any if you ha- need help with career or automation or AI assisted development, I'll put a link to my calendar. I am available this summer for that so check that out. And then is there anything else? That's it. Oh, like and subscribe. Definitely in your-- If you're using Overcast or Apple Podcast or YouTube please post a review and like and subscribe.
Leo Dion (host): Thank you so much for joining us for this episode, and I look forward to talking to you later. Bye everybody.
[00:59:00]