Dave (00:09) Hey! Daniel (00:15) Dave, I wanna take you to a podcast. Nice to see you. Dave (00:19) Wanna take you to a podcast. Yay. Good to see you too, dude. Daniel (00:24) Welcome. Long time no see. How's it going? Dave (00:27) Yeah, yeah really well. It's spring here in New Zealand, the sun is shining, the birds are singing and it feels like my world around me is coming back to life. So it's quite lovely. Yeah. Daniel (00:30) to hear. that's so awesome. I love that. I love that. Yeah. I have unpacked the do not get depressed lamp, which is standing next to me, which is why I'm very bright right now. But it's amazing at making me not sad. And also apparently my new hometown has entered storm surge season, which is not something that I knew was a thing. But apparently that is just the thing where if there's like the tide is coming in while... Dave (00:47) ⁓ yes, because you're at the other end of the hemispheres. Yes. Daniel (01:06) like a strong wind is also blowing the water in, like just parts of the city near the harbor just like it's slightly submerged and everyone is Dave (01:06) Mm-hmm. Daniel (01:12) that's just how it is. But then also the other day there was like city-wide alarms, like sirens sounding in the night. And I was like, is this it? Is this how it ends? But then it was apparently like a ⁓ false city-wide alarm that was only supposed to trigger in like some coastal region or something. Dave (01:13) Er... Right. no! ⁓ Was that another thing that locals were kind of like, ⁓ Or was everybody a bit like, the hook? Daniel (01:39) Well, the alarm was a bit like everyone was, I think. Dave (01:43) We have a fire service here. The way it works in lot of places in New Zealand is your fire station, fire team are largely a volunteer-based service. And what happens is we, in our place, we've got Daniel (01:46) But yeah. Mm-hmm. Dave (02:10) It sounds like a World War II style sort of siren, right? It's like one of those proper, like, ooh, things. And that's the call out. Like, they don't page them, SMS them, or whatever, yeah? And so, you know, when we first moved here from the UK, that scared the absolute bejesus out of me the first time. Like, what on earth, you know? Daniel (02:13) yeah, yeah, yeah. Yeah. yeah, no, they have that in rural parts of ⁓ Bavaria at least. They have that exact same system basically. have the volunteer firefighters and then you have to... Dave (02:38) Mmm. Yeah, Yes. No, that's we it's not everywhere that has it, but where we moved to a couple of years back, we also have it here. So I don't know. ⁓ I'm kind of used to it. And obviously, I kind of think, ⁓ I hope everything's OK and they're going to help people. Daniel (02:45) And that is exactly the kind of siren that was like turning on. Dave (03:11) But no, anyway, that's a little side of being here. Daniel (03:17) So yes, so like I'm just like happy for every tiny bit of sun right now. Because I got pretty wet today. Dave (03:21) Well You need to, need to. Daniel (03:25) That's also very different because people say that, it's way more rain in this part of the country, but it turns out that when it rains in my old hometown, it really rains. When it rains, it pours. There's actual droplets of water falling from the sky. Whereas here, when it rains, it just has this weird mist hanging in the air all the time. So you don't get incredibly soaked. I don't know, some climate thing. Dave (03:37) Yeah. Yeah. it because you're nearer to the sea? Daniel (03:54) I guess the wind, the climate. I'm not a meteorologist. Dave (03:54) Yeah. Yeah. No, ⁓ me either. But I do know what you mean, though. We get it here in Britain. Again, I think it must be due to being nearer to the sea. Yeah, but same sort of deal. Although yesterday, at least, something absolutely huge blew in. And we had hail, big rain, and then sun, because that's what it does. Daniel (04:04) So. Ha ha ha. Dave (04:27) Yeah, four seasons in one day is the phrase that gets uttered a lot and yeah we definitely see that. Daniel (04:28) Nice. Yeah, I can imagine. That must be fun though. Like to see like, yeah, the spring is coming through, but it's like a hard fought battle. Dave (04:40) Kind of. Yes, it's one of those things as well. I needed to go out and outside into my garden and sort some things and I was looking at it great, okay, it's unleashed. I'm not going out there right now. I thought, ⁓ maybe I'll have a cup of tea and we'll see if it moves off because that's typical. And yeah, sure enough, half hour later, was like sunlight, singing again. You know, right, cool. That's worked out. But yeah, that's why everybody in New Zealand tends to wear hoodies and layers, because you can go from that to then being too warm in the space of like an hour. Daniel (05:27) Yeah, yeah. yeah, that is something that I have to do this week, which is, my God, we're turning into old men. But anyway, like this is something I need to do this week, which is like resorting my ⁓ biking apparel to have like the layered stuff and the waterproof stuff and everything. Because it's not summer anymore, suddenly, which is kind of sad, but well. Dave (05:40) Mm-hmm. Anyways, anyways, this is not the hemispherical comparison of weather podcasts. This is waiting for review. Daniel (05:51) Hahaha No, this is waiting for review. I ⁓ basically just returned from London town, which was really fun. yeah, can just, let me just tell you about it. Like I was, I applied or I submitted a talk to the server side Swift conference. I told you this last week and Dave (06:04) London Excellent. Daniel (06:21) They accepted and I held my talk about the basically the history of telemetry deck and base and especially like how, like what, what is it that I learned in having a Swift on the server, service running for five ish year years. And, ⁓ yeah, it went, it went fantastic. Like I was incredibly, I had, I had so much. Dave (06:40) Mm-hmm. for men. Daniel (06:49) And like how like impersonator syndrome? Well, how do you call it? Not imposter syndrome, not impersonator syndrome. That's the one. ⁓ because I felt like I'm going up there and like telling all these experts, like the people who write the vapor framework itself, the people who invented the hummingbird framework itself, like the people who work on like Swift itself, like there was like, there was a huge bunch of Apple people there. ⁓ Dave (06:51) anxiety okay yeah imposter syndrome Mm-hmm. Daniel (07:18) and just telling them, so if you write a function, then sometimes you have to write the word async next to it and then it works. Like that's how I felt, you know? Like everyone in the audience would just be like, duh, who invited this dummy? Dave (07:31) Yep. Yeah, yeah, yeah, we know. Daniel (07:38) But instead, like so many people were like ⁓ really happy with it with the talk. Apparently I hit a good balance between things that beginners should know and things that I learned later on. ⁓ I've also been told that it was very entertaining and ⁓ that it was very ADHD friendly, which is fantastic to hear. ⁓ Yeah, there's going to be a recording apparently soon. Like the first recordings have already started trickling out. So maybe I'll get Dave (07:58) Ha ha ha ha! that's fantastic. Daniel (08:07) mine uploaded to YouTube soon-ish, so as soon as I get it I'll put it into the show notes for either this episode or the next depending on if this is already out by the time it gets recorded. Dave (08:16) Yep, yep. That's great. I look forward to seeing that, because I was going to ask you, you knew I was going to ask you this for a recording, because I always ask you that about these things. Daniel (08:21) Yes. Yeah. Yes, exactly. I was immediately, and you asked if you always do this because this is a recurring podcast. listeners don't know this yet, but I'm about to introduce this podcast. Like you don't know, like what podcast has my podcasting software like started to play right now? Like I'm a tiny bit insecure. Like what is it? Which one is, which podcast is that? is welcome waiting to, it is waiting for review. Dave (08:52) easy for you to say. Daniel (08:54) It is Waiting for Review, a show about the majestic indie developer lifestyle. Join your scintillating hosts to hear about a tiny slice of their thrilling lives. I'm Daniel, a tiny fox who lives in a burrow under a tree. And I'm here with Dave, who is a finalist for the Uncle of the Year award. Join us while Waiting for Review. Dave (09:14) Say! That's right. I've become an uncle. Yeah, no, that's all good. We're intro'd. I feel at ease. You know how I get if we don't intro. But no, I became an uncle and found this out about an hour before we started recording. So shout out to my brother James back in the UK and his wife Amy, who has just welcomed their son Ethan into the world. Daniel (09:18) Almost forgot the intro there. Dave (09:44) But yeah, that's quite cool. I'm quite settled and happy here in New Zealand and don't really think about going back to the UK much, but this has definitely been a morning where I've been like, ⁓ yeah, it'd be nice if I could just teleport and see them all. I'm sure something will happen at some point, but no. But anyway, back to the show. Yeah, thank you. Daniel (10:04) Yeah, I get that. Congratulations. Congratulations. Yes. So this conference was exactly what I needed. Not only that I presented, which is what was really nice, but also like the very way how I discovered that this conference exists was because I posted on Mestadon, I think. ⁓ I wish there was a conference sort of like the old Django cons, but for Swift on the server because there's only Like conferences for iOS developers these days. And I'm a server developer who writes Swift. I wish there was people who I could be friends with. and then a friend of the show, Michaela Karen writes and tells me like, why don't you go to server side Swift? And I'm like, what is that Google, Google, Google. And yeah, I really wanted to go there. ⁓ it was amazing around 150 people, which is a perfect size for this sort of conference. ⁓ and it was located. Dave (11:02) Yeah. Daniel (11:03) in the Royal Science Museum or National Science Museum, I want to say, in Kensington, London. And so was like a really impressive building. We had the whole aviation wing. And that includes a huge IMAX theater where the talks were being held. So there's like photos of myself with next to a screen that is about like 10 times my height, which looks really impressive. Or I look very tiny. That could also be the case. Dave (11:26) Mm-hmm. Daniel (11:30) And then also like all the time in between the talks, which was a lot actually, because it was good for mingling and exchanging ideas and stuff was like underneath all these kind of old-ish and new-ish airplanes, which was really cool. And yeah, and I met so many people in real life that I really wanted to meet in real life at some point. For example, I finally met Michaela Karen in person, actually. She was there at the conference. I met. Dave (11:37) Good night. That's great. Daniel (11:57) Matt Masicotti, who like, which is, which was like every time I talked to him online, it's like so fruitful and fantastic. And finally, it was really nice meeting him in person. ⁓ I also met like friend of the show, Joe H who, who wrote in a few times already, actually. So yes, he says hi. So if you're listening to this Joe, hi, hi back. and I, I, I, I met at least two other listeners of this very show. Dave (12:06) Yeah, he's awesome. cool. Yes. Awesome. Daniel (12:27) So that's fantastic. Dave (12:27) Wow, wow, that's really cool. And obviously shout out to anybody who's listening who was at the conference with Daniel. That's really cool. I'm a little bit jealous. Twice in one day I'm like, ⁓ could get back to the UK. ⁓ No, I'm not doing server-side Swift, so that probably wouldn't be. Daniel (12:45) It was really fun. Dave (12:56) as deeply meaningful for me as it was for you. Daniel (13:00) Yeah, yeah, I guess that is the thing. I learned a lot too, not only about individual technologies that are available that I didn't know about. For example, just very recently, Swift directly and also all the server-based Swift frameworks started to support open telemetry, which is a way of tracing calls and layered structured debug information. And so that is something that I'm really interested in. explore more, like, but also just about like, where is the community? Like, for example, they used to, there was like, when I was starting, like writing Vapor like five-ish years ago, like there used to be this discord channel and I went there and I don't know, so like, I think not a lot was going on there back then. And I kinda didn't really, I kind of bounced off a little bit. And so I just never went there again. Dave (13:30) Yeah. Daniel (13:55) And now I'm like, okay, fine. I guess I will open Discord again every now and then. ⁓ but I like, because I'm opening Discord more often again anyway, I'm also more often in our own Discord again. Dave (14:10) ⁓ that's cool. I bounce in and out of Discord and I know we shout it out on the show and it's always lovely to see people arrive in the one that we have linked for indie devs. But I must say Discord's interface doesn't always agree with me and I sort of end up a bit like, ⁓ if I've not got a conversation, I'm not going back. Yeah. ⁓ Daniel (14:35) Yeah, it's hard. Dave (14:37) Yeah, and there's just too many things as well. by the time you've got Slack, Discord, and all the other social media apps and stuff as well, it's a lot to check. But I think when you've got a conference going on or anything that brings people together though, those spaces are really useful for then, you know, obviously catching people after the fact and even, I guess, arranging for meals and things like that when you're in town as well. don't know if that was an aspect of this conference but yeah. Daniel (15:09) yeah, like we were basically fed, fed and kept happy and pampered and everything. Dave (15:15) Beautiful. ⁓ Daniel (15:17) Yeah. Fantastic conference. I feel so much, so energized from the whole thing, just like, because it was just nice. Like that is something that I missed and I didn't know I missed. And of course, ⁓ I tried to be as safe as possible COVID wise. Of course there's some risk, ⁓ I like, for me at least it was worth it. Dave (15:38) That's it. mean, yeah, no, I can appreciate that. And yeah, I feel somewhat the same these days, to be honest. It's like, yeah, there's not no risk, but you can kind of thread the needle on it. that's always good to do these things. So, nah, awesome, mate. That sounds like a really good trip. And I wish there was... Daniel (15:39) Yeah, I missed this and it's nice. Dave (16:01) I wish there was one for me. It would end up having to be so hyper specific though. There'd be like me and maybe one other person there. ⁓ Daniel (16:08) Well, then you can just like create that conference and then everybody has to come to Wellington so you don't have travel expenses or anything. It's perfect. Dave (16:13) with I mean, maybe, maybe, I don't know. I'd have to find an excuse to get you here as well. So maybe I need to think about what this conference would be. Daniel (16:25) Yeah, it needs to be something where I can, I can expand it at the companies come with the company credit card. Dave (16:31) Calling it now, DaveConf2027. I think I'm going to need a better name for it. Yeah. Daniel (16:36) you wait, you never heard of Davecon? Davecon, Davecon, like they have Defcon in Nevada and they have Davecon. Dave (16:44) Oh, I could version it. That'd be like Def Con 1, Dave Con 2, Dave Con 3. Daniel (16:52) my God, we're at Davecon 4. Dave (16:54) No. We'll see. We'll see. I don't think I've got it me to run a conference, if I'm honest. It's a lot of work. Daniel (16:55) Yeah. ⁓ It is, it is a lot of work, yeah. But still, like this one was fun. I enjoyed it a lot. Even my laptop survived, which I wasn't sure, because it's it's kinda like, I dunno, like I used to have like basically every Mac laptop that I owned, I owned it for at least six years and this one is at five, so it should be fine. And I've been treating it reasonably gently. Like I've been using it a lot, of course, and I've been traveling a lot with it, but like it's... Ooh, it is falling apart a little bit. So like it's been, yeah, it's been like every time I close it, want to be like, good girl. You've been, you've been very brave. but, yeah, like apparently like end of year or start next year, the M5 pros will be released. Maybe I've just looked it up earlier. So, ⁓ Dave (17:36) Well, new laptop ahoy maybe sometime soon. Yeah. Daniel (18:00) ⁓ like maybe I'll keep an eye open. Let's see. Dave (18:02) Yeah, I can't look at any new technology because I got my iPhone, my iPhone 17 Pro. Daniel (18:11) Ooh, what a what a huge ⁓ stochastic island. No, not a stochastic island. It is the iconic plateau. Such an iconic plateau. listen, as he's just holding his huge iconic plateau into the camera. Dave (18:17) What's it called? That's right, yes. Dang. Yeah, no, I love it, to be honest with you. I ended up with the silver model, largely because New Zealand stock was all over the place. Literally, I had it ordered click and collect from the store that's most local to me. And they somehow stuffed everything up. And in the end, I was like, where is it supposed to be here today? I even went down, they hadn't got a clue what had gone on and just told me to wait for the text message. And I'm like, right, okay, but you don't know when it's going to be in. ⁓ Long story short, that was a Friday. The next day was Saturday. I was getting so annoyed, like, hey, my new phone should be here. Come on. I ended up ringing up their sales support. Thankfully there was a Daniel (19:14) Yeah. Dave (19:19) a nice person who was on on a Saturday willing to speak to slightly aggravated customers like me. And what he did was he split the order because the case wasn't in stock in the other store that's in the city here. So we've got, I've got two stores in reasonable driving distance, but he split the order and I was able to go in and pick up the iPhone from in the city. And then on my way back, pick up the case. And everything was good. that. Go on. Daniel (19:47) fantastic. So this is a iPhone 17 Pro, but not Max, I assume. Dave (19:56) That's right, yeah, because I can't deal with having a phone that big. I like the size of the smaller Pro. I would appreciate the screen size of the Max, but yeah, I've almost got a fear, Daniel. If I had one and loved it, then I'm kind of tied to always getting the Max. And yeah, yeah. Daniel (20:20) Yeah, that's what happened to me. Dave (20:23) And I've already had that journey from the regular phone to the pro. So I can't do it to myself again with the Max. no, this one is suiting me well. The camera's insane. I think I sent you some videos of the Zoom. ⁓ Daniel (20:41) Mm You did and you zoomed in a lot. Dave (20:43) Yeah, I went up to a lookout that looks out of here over Wellington Harbour and across the Hot Valley and it ⁓ Daniel (20:54) Which I recognized actually, that was really scary because like remember when I had my flight simulator phase, when you almost lost me to the flight simulator, same as your previous course, ⁓ I used to like regularly basically fly around that Wellington Harbor because the airport is also just around the corner. It was like, wait, wait, this looks familiar somehow like that. Because I know just... Dave (20:58) Mmm. Yes. Yes, I was worried. Daniel (21:21) ish whereabouts your house is and was like, yeah, this should be maybe this towards the city. So yeah, that was eerie, but also fun. Dave (21:24) Yeah, yeah. well. One day you're going to have to have that eerie familiarity in person. like I said, DaveCon 2027. ⁓ If I keep joking about it, I'm going to have to end up organizing a conference. I can't, shouldn't do this. No. Daniel (21:42) Yeah, with that name. And it needs to be like a combination of nerd stuff and like electronic music and visualizations, of course. Dave (21:54) Yep. It will have to be. I think that name's a working title. But yeah, we'll see. ⁓ But no, speaking of new iPhones and the end of things, though, we're now, what, a few weeks into having had iOS 26, Mac OS 26 outside of beta. ⁓ How are you finding it? How's that been going for you? Daniel (22:21) Ooh, harsh to be honest. basically I have two areas in which I try to evaluate this. Like how is the new user interface and how does it actually just work? And on both of these fronts, I'm kind of disappointed. Like the new user interface, at the beginning of course it was kind of cool. Like, yeah, everything's cool. And like, look at this button and whenever I... Dave (22:25) Ooh. Mm-hmm. Daniel (22:49) I moved something underneath it, you get this incredibly cool effect. Like I want to listen to like a 10 hour series on how exactly they implemented the shaders for that in a, a performance manner. Like this is so cool. That being said though, like so many things are suddenly needlessly stored into a sub menu, like Apple music, Apple health. Dave (23:14) Yes. ⁓ Daniel (23:15) Like, yeah, I want to switch between the two things that I use all the time. And suddenly it's like three taps more because the top bar is kind of hidden behind a, like another button. And I'm like, this, like, this is getting on my nerves. And also the, the, like the liquid glass UI as it is right now, like as many people predicted, it is actually not very glanceable. Like, it is harder to read the screen. And of course I. Dave (23:39) Mm-hmm. Yes. Daniel (23:42) I don't have the best eyesight, but still it doesn't feel clean and cool and nice and well-designed. It feels kind of chaotic. And of course, with many of these new design systems, we had that with iOS 7 as well, when everything became very flat. Usually Apple will back off and also find its way after a few releases. But right now, I am... Dave (23:54) Yeah. Daniel (24:10) I'm happier with this than I was with the flat design of iOS 7. ⁓ It feels not very cool. The other thing is just like all my devices are incredibly laggy these days. Like I thought this was a beta thing or something, but ⁓ my iPhone, which is last year's model 16 Pro Max, so it's not an old phone, is like, is barely able to get through a day on a battery charge suddenly. And also like everything lags. Like my typing on the keyboard is horrible. ⁓ Just launching apps is like two seconds of lag somehow. I'm so confused. Like what is happening? Dave (24:39) Well. Do you remember you were saying about performance shaders before? I mean, the battery life will probably be down to a bit of that. But I don't know. mean, that speaks to perhaps something other than the shaders and the effects that are going on in some ways. Yeah. Daniel (24:52) Maybe. Yeah, that's what I was thinking. Even if the graphics cores are used a bit more, this more feels like a CPU issue. Also, I was in London and wanted to take pictures of things because things were very pretty. And every now and then, you open the camera either through the camera button or just by swiping on the screen. And it just takes multiple seconds for the camera to be available. Dave (25:12) Yeah. Daniel (25:31) which was always a problem with iOS, feel like. Like I'm always wondering, like, why does it take two seconds? But now it's like five to seven seconds, which doesn't feel like lot, but if there's like an interesting airplane flying by or, I don't know, like a cool situation that we really want to capture and then it's gone, it feels frustrating. Dave (25:47) Yeah, it is frustrating. I mean, I want to share some of my grievances with you, but I also don't want to be completely down on all of it because it's not all bad. But I think, unfortunately, yeah, my list of negatives about why you need pros that I've had like the gloss is nice. Yeah, some of the effects are cool. some of them are very subtle, like, you know, the little Daniel (25:53) Uh-huh. Dave (26:12) sort of liquidy blob of toggle switches and things like that. And it's like, you know, you can't, you don't always catch it cause it's literally under your thumb, but then you lift your thumb and your finger up and you sort of get to see the end of it. yeah, but. Daniel (26:16) yeah. Also, when the animations are fluid, they look very cool actually. When notifications come in, example, they look very... Dave (26:33) Yeah. Yep. And I really don't hate that. I think some of that gloss is like, yeah, OK, we've actually got a bit of whimsy going on in the OS again. And I like that. That's why anybody watching on the YouTube will have seen, although I got the silver phone, I ended up with a very, very loud orange case because I like the look of the orange phone being so loud and fun, but yeah. Daniel (27:09) Alarm. Dave (27:10) Mm-hmm. Daniel (27:11) Let's say orange alarm color, you know. Dave (27:13) yes. It's an orange alert, not a red alert. Stop it. No. What was I going to say? My list of grievances. So Dave's list of grievances. Strap in. There's a few. Pretty much everything you've mentioned to a large degree. ⁓ yeah, stuff being buried down inside of Daniel (27:17) Right. Davecon, Davecon 3. Right. Dave (27:40) ⁓ a menu level effectively. I feel like they've kind of killed the whole purpose of a tab bar and an app. And it's like, you know, the, the, the idea of the tab bar, ⁓ way back when was like, you would have different modalities of your, your content and they would be within an easy tap to get to. That's now not the case. They've kind you know, everything comes up into the sort of tab. bubble or whatever we're going to call it now and icons move and yeah, I and I'm just like, this feels broken. Like it doesn't feel natural and even even a couple of weeks in, I'm still finding like, ⁓ Apple music isn't behaving as it used to and I had a very specific pattern of, Daniel (28:10) The... the tubble. Dave (28:34) quite often I'd be after something I've listened to recently or added recently to my library and I would go to my library and play that new song again. And now I'm like another couple of clicks away and I seem to keep forgetting where I'm supposed to go. And some of that is just because I've got really ingrained muscle memory, right? But normally what I find with the muscle memory stuff is that that sort of dissipates after a week or so and I'm there. And that hasn't happened yet. And I don't think it's going to happen for a while. So it's frustrating. So that was that's probably number one actually for me has been like, yeah, I feel like I'm having to relearn how to navigate Apple Music. And that's annoying. I use it a lot. But and then that applies to almost every other app that's gone in. hard with this sort of design. ⁓ Slack updated the other day and they've kind of got some similar things going on and I don't know what's... Again, they've probably not changed that much in the way Slack works, but somehow I'm finding again, like, it just keeps tripping me up. And that's annoying. It's like... ⁓ Some change isn't bad, but like that constantly feeling like you've got to sort of work against what is going on in front of you is dragging. So I really hope they find a way of sort of dialing it back a little bit. But I'm not sure how with some of the tab bar stuff, that's very, ⁓ they've gone hard out on really sort of having that because search now appears at the bottom. There's this whole sort of like, know, multimodality of what the tab bar does. so yeah, that's been annoying now. Daniel (30:21) I feel like it can be good. think there is a vision at the end of this tunnel where if we would be able to see the final vision, I assume based on a magically good theory plus just some more polishing, I think it could be kind good. Everything is like the search bar is suddenly way more important and stuff like that. Dave (30:27) Mm. Daniel (30:45) I think it's just like, because Apple is kind of forced to release an OS every year at the same time, this time, like they bit off a bit too much. ⁓ like management bit off a bit too much and the developers couldn't finish chewing it. So it needed a bit longer. So I'm kind of putting my hope in 26.1. Dave (31:05) And I'm seeing some of that actually from a dev perspective at the moment in that. if you've got your app is working on 26.0, there are then some bits that, like if your app is compiled on that SDK, there are some bits that are not working at the moment in terms of. ⁓ If you've got a dark mode app, sometimes you end up with navbar buttons or the tab bar itself still styled in light mode. And I've seen this with a few apps where then it does that. I go through a couple of the tabs and something resets in the colors in the navigation layer or whatever. And it goes back to how it should be. And then I go back to the first tab or whatever and write, OK, it's now. light mode again but everything else is dark mode like the tab bars light or the nav bars light that is incredibly frustrating and ⁓ i had a bit of this with my own app govj and we can talk to where this has led me maybe in a little bit ⁓ but i compiled against the latest xcode and the sdk ran everything and this is my own fault perhaps i'm not testing with the betas this year Daniel (32:01) you Dave (32:23) But I discovered again, like my navbar buttons were showing lights when they shouldn't do. They were, this is the style now, they were by default inset inside of a circle, which broke a fair bit of my UI. Because I don't want it to look like that. My little X is now looking tiny and I'd already styled this right and how can you just leave my design the heck alone? So. Daniel (32:38) Mm-hmm. Dave (32:50) Those have been some of my initial frustrations with all of this. It's like, the other one was that I was using a bottom bar to hold some buttons, not a tab bar, but holding buttons at the bottom of my UI. And something broke in that my buttons weren't always tappable. But this worked before. I've not done anything awful here. But now, for whatever reason, this is not working on the latest OS. ⁓ So I've had to do a couple of things to fix that, make the targets and the buttons bigger and stuff. So it feels like this is still a work in progress. And I'm a little bit surprised that some of this has gone out the door in the state it's in, in some ways. I know it's a, you know, a point-oh release, but it's also... release for the flagship new phones and everything else. I don't know, from a dev perspective, it's frustrating because I know some of these things are broken. And then when you compile against the latest beta, they're not. And it's like, well, all right, but I want my software to just work as it's intended as I've intended. I don't want to be fighting against which version of the SDK am I on or which version of the OS are people on beyond reason, right? Daniel (34:13) Yeah, yeah, of course. And as always, of course, like we're not complaining, like we're not criticizing the wonderful developers who programmed these things, but more like project management and like the higher ups, like who actually have the power to, would have the power to change this. Dave (34:20) No. No. absolutely. Whenever and a thing. 100%. Whenever anything goes out the door and there's these sort of edges, like it's very rarely down to just the developers that that's gone out like that. I mean, obviously sometimes we make mistakes as developers, right? But what I often see though is that that's something that has then gone out and has been through a level of QA, a level of, ⁓ you know, product owners checking through and testing it as well ⁓ through to Daniel (34:36) you Dave (34:58) like you say, there's then other pressures to go just, need to ship it. This needs to go and putting people under time pressure as well. When you crunch your team, you're going to get things fall off. So no, any ⁓ gripes, grievances, whatever I've got, they're definitely not directed at the developers. It's more like Apple in general. So don't know, it's easy to complain. And I'm sure that like, there's going to be some bits of this where in a year's time, it's going to be like, I'm glad they did that because this now makes sense. Or, I've got used to that and this is kind of cool. So I'm trying to stay open-minded, but my dev frustration is mounting, Daniel, for my own app, if I'm honest. So. Daniel (35:49) Yeah, yeah, I can see that. It seems like a systemic issue at this point. Dave (35:50) Yeah. Yeah. Daniel (35:54) well, so yeah, ⁓ the cool features that I told you about that I really liked, I still like them. I love the new way the lock screen looks like with the huge clock and the ⁓ way that it resizes to just slightly hide a tiny bit underneath the subject of the pictures, which is lovely. And I love the cross-fading autoplay feature in Apple Music. So I think those are still my two favorite features. Dave (36:23) Yeah, I love that. I really love that. Yeah, no, every time I catch the automatic mixing that's in there and it gets it right, it's just like that whole sort of like, you know, the DJ's got the drop kind of moment. Daniel (36:41) And then every like, very rarely, like today when it was working, like some, like two songs that really, really, really didn't fit together, like I had it on shuffle. It was so hilarious. it would have been jarring even if like the songs would just like play next to each other. But the way they were all remixed into each other, like I forgot what songs they were, it was just hilarious. Dave (36:46) the Yeah. Yes. And you know, I'm not, never with that. I'm never like, you should work better. I'm like, no, that's funny. Like I quite like those moments when it does that. No, it's ⁓ something else to shout out. There's been a few tweaks to the default camera app. And I definitely have gotten used to those very quickly. Like they've been sort of small, relatively small tweaks, I think, compared to other things. that I really enjoy just using the default camera app and that's cool. I've got it wired up to the button and it's there and it's something I use a lot and yeah that's been nice. ⁓ So I'm glad they didn't change that in a way that causes me friction I think is the vibe there and then all the additional bits are kind of like it does that now okay. ⁓ And obviously with my new phone, I've ⁓ got the dual mode or whatever it is they're calling it where you can record the front camera and back camera into the same video. And that's kind of fun. Yeah, I kind of intend to use that for some of the Instagram stuff that I post. Daniel (38:02) Nice. Ooh, someone has a new phone. Mm-hmm. Dave (38:29) I mean, you could do that on the older phones as well with different applications. But this, I gather, is special to the new phones in that it's optimized to really pull the two streams together so you don't completely thrash the battery. So that's kind of cool. Because when I've used those sort of applications in the past, the phone turns into a mini heater in your hand after a little while. Daniel (38:46) Mm-hmm. Dave (38:58) Yeah. Daniel (38:59) Yeah, also, so you need a phone with a vapor. The vapor chamber. Dave (39:03) Probably. That's uh... No. Oh. Daniel (39:05) Yeah. But nice. Awesome. I had, oh yeah, I touched a iPhone Air as well at the conference. Like somebody I was talking to, was it Dave Weber? No, but oh yeah, Dave Weber. Shout out to Dave. I also met him. It was really nice meeting him. But like someone, I was like, they were, they were, they were pulling out their Air. I was like, excuse me, this is dumb, but can I touch your phone? And I touched it. It was nice. Right. Dave (39:13) Yes. You held it, right? You didn't just put a finger on it and go, ooh, I've touched the... Daniel (39:33) No, no, no. I held it in my hand. It felt really good. When we were griping about user interface, you were saying something earlier about like, oh yeah, this might lead into a thing that you want to tell me. Would you gripe some more about user interfaces? Or not even? maybe you don't want to gripe. Dave (39:44) ⁓ Okay, so I'm not gonna, well, it's. It's not a full gripe, it's a Dave going on another Homer Simpson style mad ⁓ experimental journey of something, right? You know, like I've got a crazy idea and ⁓ damn it Marge, I'm just gonna do it. Daniel (40:05) Yes, like every four to six weeks, like you go on a, like you just, you're just like, I should do this and change everything about how I do that. Okay. So what is it? Where are we going this time? Dave (40:16) Yep. All right. ⁓ And by the time the next show comes out, I'll have found out and something will be a bit different again. So maybe this will be a bit jarring for listeners because it's Dave's random journeys. But OK. So after my frustration with Apple's stuff kind of changing the UI of my app, I hit a couple of other points and I was like, do you know what? ⁓ I'm so annoyed at having to fight Apple a little bit to keep the UI of the app the way that I want it to be. And I think in my case, it's slightly different to some other apps, right? If you've got ⁓ an app that goes hard out on Apple's default styling, you you've you've ran things on what they're prescribing and everything is HIG friendly and all of that, ⁓ then updating to the latest makes sense because it's going to look and feel at home. And that's great. But with the app I've got, I've got an interface for launching videos for using to mix in real time. And it's like using a DJ mixer or ⁓ a software. ⁓ if you've ever used VSTs with audio software, virtual instruments, it's a dashboard, right? It's a dashboard with some controls and dials and lets you do things in real time, maybe with all of that. So at that point, and the way I've got it styled is it's typically a dark background, unless you're on one of the few light themes I've put in the app. ⁓ It's typically a dark background with a light accent that's designed for using, you know, in dark environments like nightclubs and stages and things that are often dark where you are back there. Yeah, dark rooms with things that go bleep and lights and projections everywhere. Now, so to that end, my users don't want anything to get in the way. I don't want anything to get in the way of them. And so I feel like I've got this kind of relationship with Daniel (42:08) in dark rooms. Dave (42:26) with Apple's APIs in general, where I'm having to sort of go, no, I want it this style. I'm going to override this. Don't do that. It's got to look like this specifically. And I kind of made my peace with that. And it's not been so bad with SwiftUI in general when I did the big SwiftUI update ages ago. ⁓ But with this one, it sort of felt a bit like, god, OK. I've got to. guard myself against this. Anyway, I went back to feeling like, ⁓ I wish I could just use something that's cross-platform that just does what it's supposed to do and gets out of my way, right? That is just, that's my UI and that's it. But if you remember, earlier in the year when I kind of explored this and I started trying to use things like Qt, I started using Kotlin Multiplatform and Compose Multiplatform. ⁓ none of those things sparked joy, Daniel, unfortunately. and Kotlin's okay, but yeah, I just didn't really get there with Compose. It's, it's fine, but just, and some of the same story again, right? Because everything gets themed through, through its themes. ⁓ Daniel (43:30) Mm-hmm. Dave (43:48) But, and the one thing that scared me off was that it was looking like if I went down that real hard out cross-platform route, I would have to use C++ all the time. And I don't like C++. I've been coding in Swift now for far too long to sort of feel like I'm backwards. ⁓ And C++ isn't backwards, right? It's very good at what it does. But I love all of the stuff that Swift gives. Daniel (44:05) yeah. Dave (44:16) us as developers. Type safety, I like the concurrency stuff that Apple has brought in. I'm finding that it's very much shooting the way my brain thinks. So the crazy idea that I landed on, and some of this was after seeing what you were up to at server-side Swift as well, because I was like, hang on a second, yeah, you can run Swift on Linux and all these other things. I think What I've landed on is, can I keep the brain of my app in Swift so I'm in my happy place with most of the code? But can I wrap and call into some of these ⁓ cross-platform GUI libraries to create a UI, to use it as a canvas for my control interface, as it were? And so I depart from using SwiftUI for everything. And I box it off so that yeah, okay, the main bit of my app and the bit that I want to locked in is against something else. And I have a lot more control over it. So that's the journey I may be on. I'm at the very beginning bit of, OK, if I'm going to do that, I need to wrap some of these libraries and make bridging layers and call them from Swift. ⁓ And then obviously, they work in their own ways. So I'm going to have to do some stuff to figure out with that. ⁓ But if I can get a test UI working. If I can find a way of working with the stuff that sort of doesn't feel bad, then this could be a route. Daniel (45:56) So questions about basically where this voyage is going. What's your vision for the end goal? now you've reached all the things. So now you have the core written in Swift with the visualizations and everything. And then you have a cross-platform UI that probably looks very dark-mode-y. And then it runs on Linux and Android and iOS. Is that how that looks like? Dave (46:04) Mm-hmm. Eventually. Yeah, eventually. The initial look would be iOS with me starting to then be able to test it on Linux and start bringing other things in. Because I certainly don't want to port everything immediately into cross-platform technologies. So the initial starting point is, can I get anything UI-wise that I'm happy with through this route? Sorry. Daniel (46:52) And have your previous excursions into the land of cross-platform? Because my big question was always, can your shader code even run cross-platform? So I assume that is something that you've already double-checked. Dave (47:07) Yes. Well, yes, so there'll be a couple of parts to this. So one is the UI layer that will be using ⁓ insert technology here. I've got a couple that I'm testing out at the moment. I'm going to talk about them if I have success. It's not really worth going into the weeds there. But they will sit on top of a rendering backend that will talk to the GPU. Daniel (47:28) Mm-hmm. Dave (47:39) And the initial insertion for this, if you like, is to give it ⁓ a view from ⁓ UIKit or SwiftUI that prevents it from an accelerated layer, like a metal layer. And that will be given to a backend that the new UI system talks to and displays stuff through. And there are few backends that I could choose. The one I'm exploring at the moment is called BGFX and it apparently will ⁓ effectively it compiles down to where it ends up running the shaders on metal when you're on iOS or macOS. Which is good. And on Linux you've then got OpenGL or Vulkan, the same for Windows. copy paste for Android. So it handles that. And then the shader language it uses is you can run shaders in GLSL. And the shaders I've got, Daniel, are in metal, so I'd need to port them. But they're not that involved, really. ⁓ Like porting, that's a. Daniel (48:54) Yeah. Dave (48:57) a chat GPT request and a little bit of tweaking there. They're not hundreds of lines of shader code. So, ⁓ yeah, that doesn't feel too bad. Like if I have to bring everything over to that. ⁓ But it's the start. ⁓ I'm going to spend probably a couple of weeks on this and see if I can get to a hello world with some widgets on the screen and see if it feels worth it. ⁓ Daniel (49:13) All right, cool. Dave (49:26) because the long range of this is get it working on iOS and then I've got a layer that I can start hacking out the other guts of decoding frames from video, et cetera, on Android, on Linux. And then if it all comes off, I've not had to leave my Swift bubble too far to achieve it. Daniel (49:50) OK, follow up questions. ⁓ On the one hand, since you're basically like a big GPU accelerated view with some UI on top, have you considered using a game engine such as Unity or Game Maker? Dave (49:52) Mm-hmm. Mm-hmm. I have. They come with other edges that I'm not happy with. I would leave my Swift bubble for a start, and I would end up having to code in whatever language they use internally in the game engine. And I will probably dislike that. I am very heavily wedded to Swift, it turns out. So that's one edge. The other edge is that they also change things. And Daniel (50:12) Mm-hmm. Dave (50:32) You need to keep up on that stack and that side of the technology. And I will hit the same frustrations inside. Like I'll be playing. It's learn a new language, learn a new environment, keep up with that new environment. What I'm looking for with things like the C++ GUI libraries that I'm looking at is stuff that is ancient, that doesn't change, that is just like, this is how it works, right? And has a really robust history going back at least to the 10 years or so that I can just be like, set it and forget it. I've got my wrappers around it. My app is styling and calling through it. It's done. Yep. Daniel (51:12) And the other question, if you are already rewriting so much yourself, why not build your own UI layer in Swift? Then you have the complete control of how things look and feel, and you can write everything in Swift. You might even use Swift UI just with only custom views or something. Dave (51:30) Yeah, because then I don't get the nice added effect of the cross-platform window being open. ⁓ Daniel (51:39) Okay, so you need a cross like a like you need one of those libraries also just have. Dave (51:45) Yeah, yeah, because if everything's really just customized SwiftUI, then I'm still only in iOS and Mac OS land. And that's largely, yeah. Daniel (51:53) All right. Okay. Then forget Swift. Forget Swift UI. Like draw if you, like, why have you considered drawing your own UI? Like you're drawing things on screen anyway. Dave (51:59) But then say, yeah, but I want to use the library to handle the drawing for me and then work with that, Because at that point as well, I'd be well talking to either raw metal or trying to talk to one of these back ends anyway. And if there's already things that do that that I can just call into, then I should save myself that work, really. The hope is that I can use the bridging layer through Swift and then essentially have my own widgets defined in Swift that I'm calling for the UI. Daniel (52:35) Right. And I assume that for like store, store kit stuff, you just like use the native, native stuff anyway, because like you could have. Dave (52:45) Yeah, exactly. I'll have some sort of callback mechanism or something that pings out and then triggers stuff from the host ⁓ UI kit base or Swift UI base at the top. Yeah. And the same for if it was Android or anything else, you'd have to call up a layer and trigger it, So yeah. Daniel (52:57) What? Interesting. be interested. So I am supportive, but at the same time, I'm not 100 % sure what's the difference between this and the last time you tried out the cross-platform library. So I'm just looking on and seeing. Dave (53:18) Not, Yeah, we will see. We will see. The big question here is how much Swift can I, how much C++ can I avoid having to write? Can I achieve most of this through a simple bridging layer and keep everything at arm's length and then write my app in Swift? As soon as it descends into having to manage some sort of like bridging C library, C++ library. that ends up holding state or complexity, then I'm out of here. I'm straight back into iOS only land. Yeah. Daniel (53:48) I mean, like, from what I learned at the conference, like, Swift has like so much interoperability with C these days. Should be possible to marry the two somehow. Dave (53:58) Yes. Yeah, it's looking pretty promising. I think the biggest question I've got right now is, I think something in such a way that it actually looks like it's still an app, rather than just looking like some sort of desktop thing wedged into an iPhone-sized window? But. ⁓ Daniel (54:19) That is kind of charming in its own right. Dave (54:24) It is, but it's not what I want. So no. ⁓ Daniel (54:27) Let me make it looks like next step or something. Dave (54:29) Yeah, but I must say, Daniel, actually, there is sort of prior art out there in other applications. So I look at music apps like Koala. There's a music app called ⁓ Loopy Pro. And both of those are still using OpenGL. ⁓ And they're using their own UI systems that they have built on top of that. ⁓ And what that gives them is that, I mean, certainly for Koala, Koala is Android as well. And it gives them that flexibility. ⁓ So there is something there. in terms of like, that's how a lot of these apps, at least for music, sort of tend to work. So it's work. ⁓ I won't have to go too far before I will know if it's going to be worth it for me or not. And if it's not worth it, I will back out. I will go down a heavily customized SwiftUI route and just get on with life. So we'll find out in a couple of weeks. Daniel (55:43) I mean, you say get on with life, but like, this is not about like the most efficient road towards a financially profitable application or anything. This is just, this is you having fun trying all these things and finding a way that works for you, right? I mean, and that is okay. That is absolutely okay. Dave (55:57) At the moment, yeah. At the moment, yeah. Yes. But you know, the dream is to eventually be able to support more than just iOS and kind of expand in that way with what I do for a variety of reasons, not least of which there's people that want to use my app that don't have iPhones or iPads. So I want to be able to be there for them in that sense as well. But there's other things. Like I had the idea of doing a pro version of the app a couple of years ago. ⁓ If I go back to doing that, which I would like to do, I've got a bit of a rebuild to do anyway. So now is the time where I'm like, OK, if I can figure out this, then I end up kind of creating my palette of UI that I can then apply to that project as well. Daniel (56:42) Mm-hmm. Dave (56:53) ⁓ and if I don't do this, then I'll be doing much the same thing anyway. So there's like, I'm looking at that and like, I've got some of this effort coming up if I want to go there. so this is a bit of a side, side step to say, is it the all in on Apple play to make that work? Or is it the sideways thing? And then that makes that work. And then it gives me these other, potentials after the fact. because I'm certainly not going to then go, right, OK, now I'm going to go hard out on bringing it to Linux before I've even shipped my pro version of my app on iPad. ⁓ That's not the right way around. But it's more like, that's up and running. I now know these other doors could be opened. I've then got some other side quests to go on later on. So yeah. I know what you're doing and I know you're looking on with a level of curiosity, amusement and skepticism. Daniel (57:48) not skepticism, or maybe skepticism, but like, ⁓ I'm coming to realize that you're just like having a lot of fun, like figuring these things out. And I, I, I like it. But at the same time, I'm, I'm feeling like, maybe deep down in your heart, like, Dave (58:00) Yes. Mm-hmm. Daniel (58:12) Reaching that end goal with the pro version that has all these features is not your most like your number one priority, but more like having fun along the way. Dave (58:22) Having fun along the way is a big part of it, but also then feeling like I've got the level of, that was fun and now it's a problem solved, not that was fun and now I've got to keep an eye on it for the next however long all the time, just in case Apple changes that one little thing that shoves my UI out, which is how it's feeling at the moment. You know, I want to have fun. Solve problems, keep moving. ⁓ Daniel (58:51) Nice. right. Oh yeah, I was gonna have, I have like a 10 second nerd snipe for you. Hang on, I'm gonna post this into the, I'm gonna paste this into the show notes. Have you heard of Strudel slash what's it called, Tidal Cycles? Because I saw this the other day and I immediately thought of you. It is a, Dave (58:57) no, I don't need any more nerds, some nerds, I'm sniping myself. No. Daniel (59:14) a language which you can use to live code music, like specifically like electronic music. And so like, I sent you a link and this opens immediately like a four to the floor beat that has like, what is it called? A 909 by. Dave (59:20) that's fun. Yes. Yeah. Yeah, yeah, I see it. Daniel (59:33) like a 909 synthesizer by Korg. Is it Korg? I don't know. And just like going for the floor, bam, bam, bam, bam. And so I think that's really cool. I am not musical enough for this, but because you are kind of adjacent to that scene, I thought like I should probably show you this. And this is like just a coding window in a browser and you can just like code and then play the music that the code generates immediately, which is kind of cool. Dave (59:37) ⁓ Yeah, that's fun. Mm-hmm. Yeah, that's great. I'll have a play with that later. Yeah, I'll link that up for people. That is going to be a massive distraction. thank you. Daniel (1:00:08) You Dave (1:00:09) But then... Anyway, this has definitely been the Dave Nerd Snipes himself show, I think, for the last 15 minutes. Daniel (1:00:09) Here's another thing. Strudel, by the way, is the German word for vortex, and I think that's the logo of this website. But it also is a ⁓ sweet bakery item. yeah. That is formed like a vortex. Dave (1:00:27) ⁓ I did not know that. I knew that. Yeah. Yeah, that's what I thought it was for. it will make sense. Cool. Daniel (1:00:40) like a spiral. Dave (1:00:41) Apple's food all. Daniel (1:00:43) Yeah, because it's rolled up. Dave (1:00:45) Yeah. Well, dude, I am not going to go on anymore about my rabbit holes and nerd sniping of myself because I need to get the rest of my day started. And you can. Daniel (1:00:55) but I hope next time, I hope next time you will go on though, like, because I'll be. Dave (1:01:01) Well, it'll either be, it's all gone horribly wrong, ⁓ I regret everything, I'm back to customizing SwiftUI and just dealing with the edges, ⁓ or it'll be, I'm currently customizing this weird stack and dealing with those edges. So we'll find out. Daniel (1:01:18) Right, like when we meet again, I hope with you on the other side and you have like a working solution and I'm having really fun. Yeah, before I the outro, just a little housekeeping, like I am going to be spending the next weeks, plural in fact, riding a bike up and down mountains on an island in the Mediterranean. Dave (1:01:30) Mm-hmm. Bye. Daniel (1:01:40) So don't blame us if we are a bit less ⁓ regular on the recording, I will bring my microphone. So let's see what we can do. Dave (1:01:46) We'll be right. ⁓ it'd be quite fun if I can record with you on the side of a mountain somewhere. That would be, that would be amusing. Daniel (1:01:56) like some Spanish music in the background. Yeah, it's gonna be a work-cation. All right, everyone. Thank you so much for listening. Please rate us on iTunes and YouTube. Send us emails at contact at waitingforreview.com and join our Discord. Link is in the show notes and yes, it includes 100 % more Daniel these days. Dave, where can people find you on the internet? Dave (1:02:00) write stuff. I'll burst off taking a look at my Instagram. The account there is lightbeamapps. How about yourself, Daniel? Daniel (1:02:24) ⁓ yeah, I'm on Macedon Daniel at social.telemetrydeck.com. find me there for pictures of me in a hoodie looking hacker-like that I just posted while waiting for you in the room. Dave (1:02:35) Brilliant. Maybe I'll have to, I've got my hoodie and this room's been a bit dark today so maybe I take another shot. Daniel (1:02:41) Do it, do it. We're going to put them next to each other. We're going to be like super ultra cool hackers. Dave (1:02:49) I shall have to go but take care Daniel and I will speak to you probably not necessarily soon but as soon as we can. Yes. Take care. Daniel (1:02:59) soon ish alright, it's been a blast bye ⁓