mergeconflict258-1 James: [00:00:00] All right, Frank, all we need to do now is open up the notes application. And then just at me, just say at James and then I'll, and then you'll share the, everything for this podcast will be shared all those 20 pages of notes that you took on your iPad. Frank: [00:00:21] Ah, okay. So at Jane, James: [00:00:25] just Twitter, just like Twitter. Frank: [00:00:26] Yeah. And that's going to go to every James on the planet. Uh, okay, cool. Cool. That's what I was expecting. James: [00:00:34] It goes to every James in your, in your contact list, but as we all know, I'm the only James in your life, right? Frank: [00:00:42] Uh, I'm not, they're going to confirm or deny that's the right response, right? Hi James. It's a dub dub DC episode. It's James: [00:00:51] one of those, the DC developer conference, the as like 29th edition or something like that. Uh, Frank: [00:00:59] we're up to iOS 38 and Bacco S 414. So yeah, right around, James: [00:01:07] you know, it, it upsets me that they just won't change. Watch over us to be watching us 15. Frank: [00:01:14] They should change macro S to match iOS. Like let's get over these version number things. I honestly can't. And then there's excode yep. So did ex-co 12 just come out or excode 13, just come out. James: [00:01:26] 13. 13 is out. Frank: [00:01:28] Okay, but we're on iOS 15 and we're on Mac iOS. James: [00:01:34] Ooh, Monterey. We don't know the version number. Yeah. Frank: [00:01:37] It's 12. Is it 12? It is. Yeah, I had, yeah, I went, we're all in this dub, dub DC. I want to show you my dub spirit here. I have installed all the betas. I'm just like, you know what? It's been a pandemic. The betas are going on. Uh, I have not had the guts to do it on my dev machine or my primary phone, but I've done, um, my little Mac book and one air and I did my iPad. And do you know what. They're working fine. It was, um, kind of a perfect WWDC year where the operating systems did not radically change. And it's all just incremental improvements. I believe I said that last year and I'm still enjoying it as an app developer. I love the stability that we're getting right now. James: [00:02:28] That's cool. I was talking to one of my good friends, Alex Blount at the office and by office, I mean teams. And he was like, oh, did you, did you get to do an install? Everything? And I was like, no, I'm a GA person, man. I don't even, I mean, public previews, I don't hear they're crazy. Uh, cause here's the thing is my Mac book pro I had to, when we had the, uh, the DTK, the developer tool transition thingy that I needed to try to unlock it and upgrade it. And the only way to do that was to. Put your system on the latest, big Sur preview and do stuff. And now it's on the developer views. I don't know how to get it off rank, but don't, won't matter because I will never be getting Monterey because my Mac book pro will not get the update. Frank: [00:03:13] You know, it's harder than you expect. In fact, my iPad last time got stuck into the betas and every time it would try to update, it would lock the screen. The beta was that unstable. And so it was just stuck on the beta forever pro tip out there. I'm sure you've had to deal with this, but if you're on a Mac, there is a profile that gets installed somewhere that gives you access to the betas. Find where that profile is installed. It could be a million different places and. Kill it delete it. Um, same thing goes for on your iOS device, somewhere in there. They seem to move it every year. Maybe under general, maybe under developer, there's a bunch of profiles. Find it, delete it, reboot the operating system, just a pro tip out there every year. I have to remember how to do this. James: [00:04:03] I should update the , uh, Mac book air, I think, and, and install it just for funsies. I think that would, I think, why not? It's not my main development machine. I could test things out in a David. He tweeted a photo of Monterey working with dotnet six and Don and Maui and catalysts and all that and Android emulator. So that has me positive, uh, already, I guess. Frank: [00:04:26] Yeah. Uh, not to bury the lead here, but they just went really fast through the iOS and Mac iOS updates and the beginning of the keynote of the conference. And I took that as a great sign and that not much changed, which why I was actually feeling comfortable about putting the beta versions on because that's like, you know what? It doesn't look like they changed much. I bet you it's pretty stable. And it has been, I barely even notice it. What I will say is the improvements to the iPad have been, uh, the biggest and most beneficial. But how do you want to do this? Do you want to talk about the keynote? You want to talk about the dev stuff? What are you interested in? James: [00:05:08] No, I want to talk about, no, I guess I do want to talk about one of those things. I want to talk, you know, we, we could, in the past, we've just jumped in and we've broken down the keynote line by line. The keynote was fascinating. It was two hours long and it was an hour and 40 minutes of non-developer things. Mostly. And then it was 20 minutes of developer things because there's the platforms talk later. And that's where I want to talk. Start because to me as a developer, this is what I'm very interested in, in, in, in there's three parts to it. There was a cloud build X code cloud swift, I guess, with playgrounds inside there and then new APIs. And I want to start Frank with X, X, X code cloud. I don't use X code, but X code cloud because we've lived in an IDE for a long time. That's had many, many integrations into different supply systems and publishing and all sorts of good stuff, but apple did the most Appleby thing ever. And they went the most full end to end that I've ever seen in my entire life of. Of like, uh, CII, CD pipeline pretty much Frank: [00:06:19] turns out we good at user interfaces that apple company. Yeah. Um, yeah. Uh, and in some ways I, I was not at all interested in this James, like you said, it, you got me on the CIO bandwagon. We, we, we talked the CIA. We used to do a bunch of episodes on CIA. I think I just kinda got bored with it eventually. And also get hub actions came out where we've been building. In X code on the cloud for years now. But as you say, it's the UI, like they knocked it out of the park for a kind of define, here are your steps for how to build your app. They of course have a template that will hopefully cross your fingers, work for all your stuff. Otherwise look like they had some kind of workflow builder that looked like kind of the normal workflow builders, but miraculously, because they have tastes, it wasn't a Yammel file. I think that's all your notes. It just, wasn't a Yammel file. James: [00:07:19] It's a huge XML file. That's not human readable. It's just like a storyboard. Frank: [00:07:23] Boom. That's not even a, um, that's a, I don't okay. Shots fired. That's what that is. Uh, very good. Very good. Uh, they did a good job and it makes sense. Like they have a giant, uh, cloud infrastructure. You know, they, they know how to run services. They figured it out over the years. And certainly there must be lots of developers, uh, in the X code world on that, um, iOS world who aren't taking advantage of all the CIA servers, which is kind of sad because I remember when, um, boy, I use it all the time. What's the Microsoft analytics, uh, one app insights. Not that, yeah. The cutesy one that fed into app insights app center. I had a wonderful UI for building, um, not just Xamarin apps, not just.net apps, but also, um, um, Native swift, objective C whatever you want to call them apps. Uh, they've supported that forever and I hope people were using it, but it's also good to get a good UI. Yeah. James: [00:08:33] I think what this does is it lowers the barrier of entry for a lot of developers. And we don't know the cost. We know the fees, cause it also has UI testing on simulators and it has a reporting pack and test, test flight integration also on a Mac. Frank testified on a Mac Frank: [00:08:48] who will, this is a whole different topic. This one I'm truly, truly excited for. Um, I was honestly just making fun of test flight because I was kidding. One of my apps approved for test flight and it took like four or five days. And I'm like, what is this? Like, this is a weird beta service, but at the same time they solve so many beta service problems for you. You know, they solve installation, they solve me tracking. They even give me URLs to give out to people. And this is none of that has been available for Mac, which has meant that I've had a very limited beta testing group of the Mac apps because sure. I can sign a Mac app and notarize it. And then when you double click on it, it probably won't run anyway. Like I, I just have the hardest time. Distributing Mac apps. And this is a great relief. I haven't, I feel like with apple, it's always like a little give and take, so I haven't watched the WWDC video on it yet. So I'm just hoping that it works exactly like the iOS one, because that was perfectly fine. Yeah. I, James: [00:09:54] I agree. And, and, and so the ex CLA X code cloud, the X cloud, which is, they're just like, well, X, X cloud is the Xbox cloud. So, oh, Frank: [00:10:09] Microsoft, I guess I've got it. If only we could find new words, James: [00:10:13] the X code cloud, not a tongue twister at all. It, uh, I think it looks, it looks great. And I think that a lot of these services have been available in like a visual studio ask way or in get hub or things like that, where you live. Um, it brings it closer into your, your X code IDs. I like that. And I think it'll other companies and other CICT services will just step their game up and add more extensions into where people are working and things I'd assume. Uh, it is a really nice end to end demo. I really enjoyed it overall. I think you're right. I think that there's, I think that a lot of people are still very early in their CICT process and every new developer, it's the last thing you think about. Cause you don't think about it until you're getting ready to ship an app and you're like, oh, I got all these other things. So what about this? Okay. Let me just right. Click and publish and, and because it's easy to do, I was just in, um, I have an Azure function and I have it all building and packaging. And I was like, okay, I'm ready for it to deploy. And I was like, oh, how come it's not deploying? I was like, oh, because I didn't configure the deployment part of it. So I was like, oh, I could test that. I could do stuff out. Right. Click, publish. Okay. Done. Right. And, and, you know, I should have set it up. I just wanted to get something out quick, but I do think this will probably enable more developers to, to integrate this into their pipeline if they're using X code and swift and objective C and stuff. But, you know, I'm curious on their pricing at the end of the day, you know, are they going to have a free tier? That's one of the big things I love about pretty much every CA service I've used as an independent developer get so much cloud time. Uh, and if you want more, you can pay for more things like that. But, and how far will that workflow go? Is it going to be stifled, you know, at some point or, or at some point down the road where there'll be a Yammel file. Frank, it's a good question. Frank: [00:12:03] I mean, I kind of have to start one now just to find out what the file format that they're saving too is because it would be kind of hilarious if it was serializing, TMO. Yeah. Uh, all good questions. And I don't think we're going to get an answer too soon because they said coming next year. So I think they're excited. I think they built a wonderful UI and I think they're still waiting for their server group to decide what's going to happen. There are benefits though, to having a first party build farm, you would assume that they would have the latest X code versions and the latest Macko S versions. I know I'm in a funny state right now where I I'm almost fully converted to get hub actions just because I find them very convenient emo and all, but, uh, there's like the wrong version of X code is installed and I can't compile some library because of that. It's a problem that will be fixed in a week or a month when they update the servers. And so it'd be nice to get around those little things, but truth, the truth, the truth. I'm really happy with hub actions right now. James: [00:13:10] Yeah. It's a super nice service. I like things that are close to my code. It feels really nice. Uh, internally, you know, we still use a lot of Azure dev ops at work too. Uh, that's what I was using. And again, I haven't put my code in Azure dev ops for some internal projects and you know, that are, are, are aren't open source. And for just like stuff, my team uses, you know, like little tools and little websites and things like that. Right. And, uh, that is nice because it has all of it together. It has the work item tracking. It has the code, it has the, it has the full end to end and, and that feels really nice, uh, to get it closer to the codes. I think GitHub is, is very similar, right? Because you live and breathe inside of GitHub and you can imagine that. Yeah, those tools, even in it's like the only tool for a GitHub actions right now is it is in the browser, but they're, they're natural. There could be more things who knows that brings it in. I don't know. I don't work on that team. It's a completely different division. I have no idea. Uh, Frank: [00:14:09] I guess, do you recall if, uh, not X cloud had issues integration or was it purely builds and commits and things, James: [00:14:20] you know, uh, the, the X code cloud, Frank: [00:14:23] um, yes, that James: [00:14:25] service in X code, they showed some cool demos in which you could report a bug in test flight. And then that would feed back into, into X code and show you those feedback results. But they were linking, they were linking to get hub, but then like posting message systems to slack. I don't think it. I don't know. I don't think it made an issue in GitHub, you know what I mean? But they did. They could be like, here's the line of code that what the problem was or whatever. Cause they know the code. So they're doing some smart things in there is what I'm thinking. Frank: [00:15:01] I've, I've really gone back and forth on that. And my support career of whether to have issues automatically created or not. There was definitely a nice Zen moment when I finally got rid of all the automatically created items and just cut my own lists that felt so much more just, you know, brain tolerable. It was life. Goodness kind of thing. So that's fine. I want it to all those features, but it is neat to see them embracing more parts of the development experience than just the code. Yeah. James: [00:15:33] And, and, you know, th the, the, the curious thing here did that, I think about what the service, while I enjoyed everything they showed is. How many of the developers are only creating an iOS application inside of X code and or iPad iOS or Mac Frank: [00:15:50] applications? I would say the majority, um, if I just had to guess off the top, James: [00:15:55] but what I'm saying is they're not making a website. They're not making an Android application. I mean, 99% of apps are making Frank: [00:16:03] that they're not even making an iPad app and not making a Mac app. It's mostly iPhone. Oh, James: [00:16:08] okay. Sorry. Sorry. Okay. I meant like, what I meant was how many companies or individuals are only building only an iPhone app and, or nothing. Nothing else. I mean, I mean, by, you know Frank: [00:16:20] what I mean? So, yeah. Okay. I take it back. Yes. Uh, they have their web service. Yeah. James: [00:16:25] So everyone's got a web service. So the problem with this service is that while it's probably going to be awesome for this use case. Sure. Yeah, that means you're going to then have multiple tools because you have multiple code bases and multiple right. Frank: [00:16:39] API keys go in there. Your server key goes in there now. Yeah. Well, they're going to have all those good growing pains. It will be curious to see if they make a generic, I think is what you're getting at is if you want it to run your entire premise, that is a very different deal than a single developer just, or even three developers working on an app. James: [00:16:58] Yeah. And it's like, if you can, if you can make it in X code, then it seems as though that's what they want to support and what apple officially supports an X code, because I know you can build a lot of stuff in swift, right? Frank: [00:17:11] Well, as I say, you can use iCloud. Also, iCloud is a nice, um, data storage query system. You know, it's an online database that every user of your app has access to. If they have an iCloud account, it's that little, if part that always bothers me because I'm like, I would love to rely on that service, but I know there's 10 to 20% of people out there who aren't signed into iCloud. And how does your app behave then? Uh, so I think that's why you tend to go to the general purpose, uh, parties, you know, Yeah, your Azures your Amazons, who else makes servers? James: [00:17:53] Intel, Oracle, Salesforce, all that. There's so many clouds, all the clouds out there. Frank: [00:17:59] Did you see the new maps, James? I'm sorry. I got to derail us from a developer topic because those maps are gorgeous. You know, it's, it is a developer topic because I started developing iOS apps. My very first one was a map and I use the 3d engine to render it as very excited. And there are maps are gorgeous and they're nowhere near Seattle. It's like London and New York and you know, all the fancy places around the world. Gosh, they look gorgeous. I can't wait to have those. The 3d interchanges, the road rendering the textures on the roads. That data is hard to get. It's almost as a faculty is working on an autonomous car. James: [00:18:42] They that's true. They have, uh, Very very nice looking maps. I liked that they added bicycle, uh, overlays and sidewalks and crossings. And if you go, if you're driving on a highway and there's a, there's a, a ramp on top of you, it'll show you that the depth of it, which I thought was really cool, like you're going under it. Uh, you know, the, the tricky part with the maps. Cause I, you know, I only use apple maps Frank: [00:19:09] me too. And I take that back. My car has terrible mapping software and it does James: [00:19:15] that. I can confirm that your car has the worst mapping software ever. The problem that I have with apple maps is a one to F to go hiking. It doesn't do a very good job. Google maps doesn't do it either, but it does a worst job. And. It does a very, okay. Here's all my complaints about Frank: [00:19:34] P PSA real quick. You get your thoughts together. If you want hiking maps, you want open street maps because they're the ones that actually have a collection of people's actually recorded GPS trails. And you can get apps that will overlay people's GPS trails under open street maps. And those are actually some of the best hiking maps out there. I like that. Yeah. Even just James: [00:19:54] getting to the trail head is bad, so, okay. So apple maps, we hike a lot, so that's a problem. And the other one is. Uh, the business information. Absolutely abominable, just absolutely terrible. It's the worst, uh, cause they've integrated into Yelp, but like Yelp is old and crusty now at this point and, uh, the data and it doesn't, I dunno, it's just not the same. The Google stuff is way better. And then the last thing is there's no offline maps, like for the LA like give me offline maps because I have to do it. We went on a recent trip. I talk about this in my weekly newsletter and it was the middle of a national forest and there's no cell phone reception on T-Mobile or mint mobile. And I knew this because like it's in the middle of nowhere and I know driving through the Pacific Northwest, when you drive over big mountain passes, there's usually no cell phone service unless you're on Verizon. And um, luckily I had to download Google maps and to just do the offline map caching and it saved the day because you know, apple maps come on, like give me the offline maps. It's not that, I mean, it's probably hard, but your apple just give them to me. You know what I'm saying? And I'll be happy. And that was, um, They got to get on it, but I will say the new apps look very, very nice, very pleasant in the dark. I like how they have a dark, dark night mode, which has ambient moonlighting. Frank: [00:21:11] Yeah. Yeah. That's going to look gorgeous if they do the city justice. Yeah. Hopefully they'll do that. I hope they light up the stadiums on that'd be nice. James: [00:21:21] And like, if it had like a real-time data for like, if there's a soccer match going on Frank: [00:21:27] that's that's future talk. Okay. I'm going to bring us back to app development, but in a weird way, there has been an upgrade to swift playgrounds and James. I have a new competitor. There, there apple is final. Yeah. Taking development on the iPad. Seriously. And I, I would say finally here very purposefully because it's a funny word in the apple world. Uh, we always joke that we're waiting for them to do something. And it's been clear that swift belonged with a more mature version on the iPad than swift playgrounds necessarily. So playgrounds is pretty cool. It's a text editor that gives you a preview of whatever you wrote. That's pretty useful, but it's not useful. If you actually want to build an app, you need more of a project system. You need all that stuff. Uh, I kept trying to make a simple and simple IDE, but everyone that I talked to they're like, well, I kind of want this feature and I kind of want that feature. So it's developers are demanding. We know what we want. There are certain expectations for how an app like this should behave and looks like they heard everyone and they've turned. I think it's still called swift playgrounds though, which is a little strange. Um, they've turned that into, I'm going to call it a proper, uh, app IDE. You can do it. It's James: [00:22:48] a swift playgrounds is fascinating because it's no longer swift playgrounds. It's two apps in one. That's what they did. And they, I feel like they really should have launched two apps. I understand why they did this because they did not want to launch X code for iPad. They want to oh, Frank: [00:23:04] branding, right? Marketing. Yeah. They didn't want to commit to that. So maybe they have some like promises. Wow. You've gotten good at that PM job James. James: [00:23:17] Cause he, cause that's the thing is, you know? Yeah. You, you put the words there. People are going to assume that it's the same thing. Even if you tell them that's not. They're going to say, why isn't it, this other thing? So if my storyboard editor. Yeah, exactly. So they made it. So it's only swift, obviously. Now it's still education. I mean, the, the other part is that swift playgrounds all about education, teaching people swift, and that it's great. Right. But they took it to this next level, which is it's a full app builder with app logic and the ability to compile and submit an app directly to the app store. Oh. And also, by the way, Frank, you can, you can open your projects that you created in swift playgrounds in X code on a Mac. So I don't know what apps or policies they're changing to make their logistics paralegal. Um, but they, I feel like they're about to open a whole can of worms for every single one of these applications. In Frank: [00:24:14] case my groaning wasn't coming through. Allow me to explain a little bit of my groaning here. There are a lot of things that we as IDE developers, there are a bunch of us. There are a lot of ideas. Oh yeah. Well, on the iPad, uh, we groan because we have been denied, uh, the ability to do all this stuff it's been technically possible for quite a while now. I mean, apple even has API APIs to upload binaries, to test flight. You know, it's there it's baked in, but because of policy, we are not allowed to do it. Yeah, that's about it. There, there's other weird things about signing, which apple doesn't have to deal with because they can just sign their things magically. Um, but you know, we're smart. We could have figured out the signing thing too. And, uh, so what you're saying is, is, are, is apple granting themselves an exception or are they going to change the rules to allow IDE developers like myself and others to also maybe partake in a little bit of this glory? Or what, what do you think, James? James: [00:25:20] I dunno. Cause you know, the policy always was you can't, uh, you can't run compiled code, right? Like you can, you can't, you can run interpreted code, but you can't. Frank: [00:25:33] Well, there is a technical, no, let's, let's start with, there is a technical thing, a technical limitation, and there is a policy, you James: [00:25:42] know, better than I do with this. Frank: [00:25:44] The technical limitation is that you are not allowed to run a jet. And what does that actually means? It means that you cannot execute code from memory that you wrote to that is the actual technical limitation. The policy actually has pretty much nothing to do with that. The policy is more like you are not allowed to download code off of the internet and just execute it, execute it, Willy nilly, not allowed. Um, and then the submitting to the app store is a little bit, even more site tangential to that. We all just know that no app that uses the apple API has been accepted into the app store. You use that API. They don't let you in period. And his story. So technical reasons, policy reasons, app review reasons. There's a few more lines in the user agreement that are questionable, but you can usually argue around and honestly they have other internal arguments for it, but those are the big policies that this app completely breaks lucky for them. James: [00:26:54] Yeah. It, so I did get an email from apple today about all of the changes in, um, coming to the, to their view. So I don't know if one was in there. It was very long. It was very surprising. Frank: [00:27:10] Next episode of merge conflicts will be all legalees. We're just going to read every line of the developer agreement. James: [00:27:16] I'm sure that's what exactly everybody wants to hear. Uh, yes. Uh, I did get that email. You probably got it too. Uh, if you'd probably just search for apple, um, yeah. Yeah, update. It just gave me it's called updates to the app store, review guidelines, program, license, agreements, schedules, and apple developer. And there's a lot in here. Um, I thought that the exception was in section 16, dot 2 16, 15 dot some Frank: [00:27:44] button highlight the differences. So you, you always have to know what the last agreement was to find anything. That's where I got that email, but I am just totally not finding it right now. James: [00:27:58] I'll forward it to you. Just see I've Frank: [00:27:59] got one it's exciting. I'm sure it's exciting. All right. Open your email. I will get to work on continuous version two. Everyone prepared to rebuy it. James: [00:28:09] Ah, yeah. Um, so, so anyways, I don't know what they're going to do. It's it's going to be something and I'm very, very, very, uh, into seeing what happens here because there are a lot of changes and I do think that. Perhaps, they will have to loosen things up without getting around their own, uh, you know, policy, then that's what they do. That's fine. They're like, it's time. It's been 15 years. It's time to loosen that restriction. So maybe we'll be able to do something. But anyways, I, I thought that I thought swift playgrounds was great. Well, cool. It was cool. Frank: [00:28:48] They did a great, I am totally stealing some user interface things from them, but Frank, but do James: [00:28:55] you think it's, here's the question that I CA I heard on tech meme and a few other podcasts was, but is it, is it, is it a real tool? Like, are you, are people going to build rule real apps for it? You know, or is it an app builder? Frank: [00:29:08] Oh, I know. Yeah. There, I guess there is that spectrum. No, these are real tools. This is real programming on a real device. It doesn't get any more real than this. What I think that they're, they're objecting to is that you are not suffering at a command line. And to them, I say, poopoo. Like the command line is a sin and we've been stuck with it for a long time. You should be programming in an IDE and it's an IDE, we don't know things like, does it have break points? Can it catch first chance exceptions? You know, is it a good IDE that's a whole different question, but no, that is straight swift code and the same way that continuous is straight C sharp code. Anything that you can think of, you can write in it. Maybe it doesn't come with all the libraries that you want and you're going to have to write left pad yourself. But aside from that, I think you're going to be good to go. Got it. Maybe it doesn't have the focus DK, like I'm sure apple did not ship the Facebook SDK with that. James: [00:30:10] Yeah. You know, that's going to be the, the part is, uh, can you use swift packages and other libraries when you can open those projects, index code, but there's conundrum. Frank: [00:30:20] Yep. Cause yeah, definitely the package systems open a whole new can of worms. That's another part where I've never had the guts to put it into new, get or put new, get into continuous. Um, yeah, because of basically the app store, but if they do it, you know what I'm doing James: [00:30:37] that said you can go a very, very long way with only apple API APIs. So Frank: [00:30:43] yeah. They just keep introducing more and more API APIs. Can you imagine it's kind of fun. I think we're up to like four machine learning libraries at this point, I was really watching for them to add like a fifth this year. I was like, you can do it. You can get another one in there. It's possible. James: [00:31:01] Come on, apple. You got this. Uh, all right, let's talk about really quick. We talked about swift. Frank: [00:31:06] Oh, uh, sure. Did anything change in swift concurrency? James: [00:31:11] This is a new, Frank: [00:31:12] oh yeah. Uh, James: [00:31:15] I do. How do you, okay, how do you feel about, you know, we've had the TPO, the task parallel library and async away for a long time, but I feel as though everybody just calls it concurrency, should we just be always saying concurrency or do other people call it different things? No. Frank: [00:31:32] No. It's different. Nothing to do with each other. Okay. Um, so, um, They're always solving that same problem. Right? So concurrency means you, you want to do two things at the same time. Yeah. Async in a way are more about synchronization. They're more about I'm waiting for this. Um, I need to start this thing and I need to wait until it ends. It says absolutely nothing about how many of them you're going to run at the same time. Now, there are things in the TPL called schedulers and schedule contexts and things like that. And the task system itself built on schedulers that does care about concurrency. So if you have two CPU's, it can spin up two threads and achieve concurrency. But if you only have one CPU and you spin up 10 threads, Guess what? You're not getting any concurrency. You're just getting a nice scheduler that can put things in a good order. And the reason that scheduler is important is because we're not just doing CPU work. We're often waiting on IO or waiting on that network. We're waiting on the hard drive. We're waiting on all that stuff. So synchronization is hard. We need better tools to sell synchronization. Got it. Yeah. Boom. And that's how we got a sink and await someone invented it. I heard it came from F sharp. I'm just going to take an F sharp thing there. I don't honestly remember who invented, uh, async and await, but it was a glorious invention because every programming language has copied it ever since then. And most of them implemented in roughly the same way that it was implemented in. Uh, dot net and F sharp and C sharp. The way SIF swift implemented is a bit different because they don't have a garbage collector. They can't be as Willy nilly a second time. I used that word today. Um, they actually have to pay attention a little more to ownership. Who's in control, all that stuff because they take very careful control their memory. They don't, it's a lie, but they pretend to. And so, uh, they have a solution that is way more compiler based than C-sharp. C-sharp definitely has a lot of compiler support to make it work, but it's not really that fancy of a feature beyond that little bit of a compiler trick. This one went much deeper into the language where they were able to, you know, I, I can't even describe the transformations too well because I honestly didn't understand them. I thought they worked one way and then literally. A person who works on the language. It's like, no, that's not how we did it. And I was like, oh. And he pointed me to a paper that was like really complicated. I was like, oh, but, um, it is throw a bit of magic in the compiler. It transforms your code. It's not quite as advanced as the C sharp and F sharp ones. You can't put away on any old expression. It has to be assigned to a variable at the time that you call a wait. Uh, it does have the same kind of limitations of C sharp. You have to mark the whole method as a sink, but then they take one step, a little further than dot method. And I appreciate this. They did a sink and a weight. That's great. And then they also introduced an actor model that made use an async and await really safe. It's good stuff. James: [00:34:57] Yeah. I saw that was also this they're really into this thing called guard their guard. I think you're guarding something on shift. It's been around. Got Frank: [00:35:05] it. Guard is a backwards. If it's kind of funny, the false branches at top, it's weird at the top it's so that you don't get nested code because they do a lot of Arab result checking. They don't use, um, exceptions the way we like to just throw exceptions. So they do a lot of card guard, guard guard. It's just, it's an opposite style of a bunch of nested ifs. It's a stylistic thing. Honestly, I don't like this style, I guess I thought I liked guard when it was first introduced, but the way swift code reads to me now is a little bit ugly. To be honest, I actually really liked the language. So don't take that as an insult. I'm just saying guard itself and the style I don't like. I James: [00:35:50] appreciate the other feature they got, which is multi targeting support with if deaths in this release, by the way, I thought this was actually really neat, uh, uh, in general. Cause you can do if the PA pound, if. IOS then you can raise an iOS code in there. It's a new it's hotness. Frank: [00:36:08] That's actually new. I thought they had that in the last version they've had actually had pretty good cross-platform stuff. Like you can say if I was 13, if Mac iOS 12. Yeah. Yeah, that's fine. James: [00:36:21] Um, that's what they said. They showed a lot of cool new stuff too. Like accessibility support and different, you know, D you know, swift UI improvements, all good, good stuff in general. And talking about, you know, improvements to simplified UI and the, you know, simulator and all the stuff in the previews and dynamic replacements is all a lot of stuff in there. Um, on a swift it's there. They're all in. Frank: [00:36:47] Yeah. Um, swift eyes looking good. I watched, they had like three or four videos on it. Stephanie, a nice little thing. Yeah. It's kind of funny because the majority of the videos use UI kit, but then the swift UI people come up. So it's fine. There, there's still a little bit of a mix within the company. Yeah. But I did appreciate a lot of the UI CA advancements that came out. Can we talk about iPad? I know we're at 37 minutes, but can we talk about iPad real quick? James: [00:37:15] Uh, we can talk about I've had, there was one thing I thought that you were going to get real excited for, which is the new, the new unified graphics workload, basically across Frank: [00:37:26] every device. And swift UI, James: [00:37:30] uh, is, is it a swift UI thing? I think Frank: [00:37:33] more of a swift UI thing. It's had a really good unified graphics system. It's core graphics, you know, core graphics. You love core graphics. It hasn't changed in 20 million years. That's why we love it. Um, they could do a little bit better. Maybe, maybe I just missed this. Um, but there was a little bit of difference between how core animation worked on iOS versus how core animation worked on Atkins. So maybe it's something, this one's, James: [00:37:59] this one's different. This one you need to go back and watch the platforms. Cause this was all about like games and high-end 3d rendering and multi frame rate refresh. Frank: [00:38:10] Okay. I know exactly what you're talking about now. This was metal, metal, metal. I feel like maybe this is just the first time they brought it up, but this was the obvious direction they've been going in forever. They've been promoting all the metal API APIs. They're like, if you want to write hype. Performance stuff. You should be coding against metal. And this year, for some reason, they just made the very strong point. Hey, have you noticed metal runs on all of our devices are like, yeah, apple. It's all you've talked about for the last five years. Like we get it. Stop trying to make fetch. Cool. No, it's great. I love metal and it is a unified API. I absolutely, I hated it at first, but I've done enough neural network stuff on it. I've done enough graphics stuff on it that I actually appreciate it for what it is. So nothing against metal. Can we talk about iPad yet? James: [00:39:02] Let's talk about iPad, iPad iOS. And in fact, you know, I've been thinking about, um, marketing recently and you know, when they first announced iPad iOS, everyone was like, that's just iOS for the iPad. It's the same thing. There's nothing different, but I've recently gotten a lot of questions and they're like, can you build an iPad iOS application with C sharp? And I go, oh, of course, can you build an iPad on this application was Amerind or with dynamo? I was like, Frank: [00:39:25] Absolutely marketing is killing James: [00:39:27] us because as soon as I think, I think I now need to go update the website and then make a say, because right. It's not, but it's like, now it's just a thing where it's like, it's literally a different thing, but I've had a Wes, it got a lot of updates. Um, Frank is basically a computer it's basically Macko S I mean, what are we, what's the percentage that we're at of, of singularity? Are we at 90%? 95%? Frank: [00:39:51] Oh, well, they held off, they held off, but let me, let me tell you this iPad got a main menu. Yes. I don't get him in menu. I don't, I don't know where on the singularity that is, but it's up there. It also has better multi windowing. So that's getting us a little closer to the singular. Um, and there was one more thing and I'm completely blanking on it, but, uh, they are resisting the singularity. I would say they did more work into iPad OS and it needed it. It really did need it. Then they did into Macko us this time around, but for good things, um, can, uh, can we talk about multitasking? Yeah, James: [00:40:33] let's let's do it. Frank: [00:40:34] Let's go. It's important to me because iPad, multitasking is terrible. It just is. Yeah. They've tried to do it for like five years to 20. I don't know how long they've been trying to do it, but it hasn't worked. I don't know how to do it. No one knows how to do it. It doesn't. You got to like pause and wait sometimes and you don't know, it doesn't know what it's doing. I don't notice that. Okay. It's terrible. They fixed it. They really did. I've been running it on my device for just one day now. So this is a little bit of short notice, but just in one day of use, I've noticed it. How did they fix it, James? By putting a button where there should have just been a button. Instead we had like four fingers swipes when there's a full moon from the edge, you know, you had all these like weird things you were supposed to do and you know, they added a button and when you click the button, the buttons, like what would you like to do? And you're like, wow, How do we like to put the window to the right? And you know, what happens when you tell it that goes to the James: [00:41:32] right magic? Frank: [00:41:35] No guesswork involved. It went straight to the right and then even better. You're like, but what will I put to the left? It slides the thing to the right. A little so that you can go pick the thing that's going to be on, uh, left. It's like windows. I love it. It's a lot like windows. James: [00:41:49] Can, can we not get this feature for, for Mac OS though? Because I'll tell you this one, I had to install, I have to install an app to just do simple, you know, pinning to the left and right. It's my favorite. Yeah. My favorite part of windows is taken windows and shoving it to the left and right. Why does the iPad iOS have a better windowing system? Then Macko asked at this point for snapping, because they have this app store, they have this shelf and then they also have the apps, which I love. They also put it in the apps, which are, which is cool, because imagine you're in the apps, which are, you can drag and drop one app onto another app. Instead of having to find the icon. Hashtag finally, Frank: [00:42:24] all tried. I would pick the icon up and I'm like, go in, go in. You should obviously go in. And it would never go in James that goes in. Now everyone install the beta. If you have an iPad, install the beta just for the tasks switching. It's so much better. Can James: [00:42:40] I give you one other final thing on the singularity thing is Frank: [00:42:43] this is not final. We got a long way to go on this singularity. James: [00:42:46] Everything we just talked about is also available with keyboard shortcuts. Frank: [00:42:50] Oh, it's true. They've, that's actually a place where this impacts devs a lot. They changed how keyboard shortcuts work. So let's get into that real quick. Uh, what you would, the, what you do on the iPad currently? I don't know if you ever did this, uh, in your view controller, you would register key commands. Do you ever do that? No. I pads don't have keyboards. Why would you need a key command? Exactly. Well, they're actually kind of wonderful and pro tip out there. If you ever have a hardware keyboard, you probably know this, but press and hold your command key. And a little dialogue would come up with all the shortcut keys, and this would only happen if developers registered key commands with there. It was actually anything on the UI responder chain, but you know, like view controllers where the standard place to put it. Well, that's gone. Don't do that anymore. So put a giant, if iOS, what are we up to 15, 15, if greater than or equal to iOS 15, then do it this whole different way. You know what you do, you create a main menu that has sub menus, which can have sub menus, just like on macro S and you know what happens now, when you hold the command key, James, what. The main menu comes James: [00:44:09] up. I see that lovely file and range of view. And that's a whole thing. It's, it's basically Frank: [00:44:17] grown up the iPad, all grown up. We can build real apps for this thing. We have real multitasking. We can have a menu system and the app. I'm just so proud of the little thing. It's, it's so lovely. It takes more organization because now you're going to have to, before you could just put these key commands anywhere and the UI responder would just pick them up. Now you have to be a little more diligent about what goes into your main menu and what doesn't. Um, you have to pay more attention to the enable and disabled states of things, because it won't show the disabled items. So that'll clean up the menu. Hmm. You want to, you want to make sure you do all that kind of stuff. The neat thing is if you have a Mac catalyst app and thanks to dotnet six, everyone is going to have a Mac catalyst app. Then all of these actually translate very directly to the main menu of your app. So it all, the singularity is a calling James: [00:45:16] it's a happening. And that was one theme, definitely throughout this cause they kept putting up all the devices or they would put up things in which, and you can use it on all these devices or you can use it on all these devices. And mostly it was all the devices. And in fact, the one feature that I think is the killer feature, which is a macro Wes feature is the, what is it called? Kin tink, continuous magic control, magic control. They've got a KVM. Frank: [00:45:45] They built a good KVM. I use a KVM. This looks like a KVM, which kind of frustrates me because I was kind of working on this app at one point in time, but I never finished it. So that's on me. It's really cool. There are other apps that do this, but apple, you know, they have all the system integration. They can do a really nice job of it. The idea is very simple. You have a monitor in front of you, you have an iPad or a laptop or something else, you know, move your mouse to the left side. And it bounces on over to the other computer. You can grab an icon and drag it over to your other computer. That's the magic. We had move your mouse technology. It's the dragging an icon back to the other machine across the machine. Oh my God. That was like, that was showing off. They just James: [00:46:36] shown off. They dropped it image from one application across a macro asset. Did not have that application onto an iMac into a different application. Frank: [00:46:48] It just was, it was glorious. You know, there are some tech demos when you're like, where have you been? My whole life. That's one of them. James: [00:46:56] Yeah. I I'm. Yeah, that's a cool feature because, you know, I think a lot of people have sidecar set up or they have their Mac next to them, you know, I'm at, and I think this is a really nice, nice addition, um, that they're, that they're adding here because a lot of the KVMs, in fact, my mouse has a KVM built into it. You can install the software, I've done it on a Mac and this, and you can pair it with like Bluetooth to one and another one, you can, you can put it there. It kind of works. Frank: [00:47:25] You know, and you keep saying KVM and I, I honestly demon think of that use case just as an app developer. This is changing everything because I always have my iPad to the lower left of my monitor. And it's going to be so nice to just be able to test something. And this sounds pathetic, but anyone who's an app developer knows what I'm talking about. You always have to shift a little, go do something with your finger, move back. Yeah, it's silly. Now I can just swing the mouse on over because they've improved cursor support on the iPad. Have I mentioned how great I've had iOS is hitting? So they improve precursor support too. And honestly, James, I do not have good cursor support in my apps and this is going to get me to test my cursor support in my app. So this is win-win win, win all James: [00:48:12] around. You know what they didn't show though. That was a little sad because they didn't show an iPhone there. Frank: [00:48:18] Yeah, that'd be cool. Yeah. Talk about pad versus iOS. It is becoming a little more distinct, for example, the way you open scenes and your apps. So scenes are when your app is presenting multiple user interfaces in the task manager and allows you to be a part of different, um, sessions, I guess, are the technical term for the multiple desktops thing that they're doing. Yeah. Anyway, the way that you open a scene has changed a little bit on the iPad, but in scary ways where it's not really backwards compatible or anything like that. So we all have to be a little more careful about how all that happens in our apps. And honestly, I'm a little bit nervous about it because I had just implemented my scene support and they're like, well, the way you do it, it's going to be a little bit different because users can open up new scenes of your apps and your app can request to open scenes. Now, the neat thing is there is a new scene type that you can request and it's called important. Or look at me, I forgot what it's called. It's an option out there. Shoot. What is it? Ah, darn whatever. It's look at me. Let's, let's call it the look at me option. And even if you have two apps side by side, you're seeing will pop up like a modal dialogue right between them. And this is completely different from how scenes worked in the past. In the past, every one of your scenes needed to be able to get back to the root of your application because. Each one of them basically was your application. So you may start your scene, um, deep in your app, but the user has the ability to get back to the home screen of your app with these ones that is not true anymore. When they're done with whatever little bit of content you're presenting, the idea is you're supposed to just dismiss it. You can't get back to that. And so it's this whole different mode for how scenes can run on the iPad. The cool thing is if you're like a image preview app and you open your image preview in a scene now, instead of what would we have done before we would have done a view controller before we would've pushed it up a modal one. If we were being fancy, we might've done a separate window now. You can do a separate scene. And the cool thing about that is it shows up in the task manager and they can pin it to things and it shows up in, you know, all the other little things. So it's just a new way of how multi windowing is going to work now on the iPad, singularity, James: [00:50:58] singularity. And, and I, I do think that, uh, it's a good time, you know, we're talking about developers stuff and I was, we were both on end developers and, you know, we're excited for, you know, Xamarin forms of data and Maui. And you're done at Maui itself as, as a windowing system has multiple windows and multiple things that can occur. So. Um, that's exciting cause that, that, you know, that came in because desktop support, but iPad itself gives me more of a desktop. Is this thinking about these things too? So it's kind of cool to see exactly how that all plays out with Don and Maui launch in the windowing system that is there because you're right. I, we, I talk about the backend. My day, I had a 340 by four 80 pixel device and that's all I had. I had one view and it died. It wasn't even, you know, um, And that's the things that I enjoy, the things are gonna get more complicated. Uh, you know, your app doesn't have to get as complicated if you're up. If your app is just connecting to a Bluetooth device, you know, and it is showing why is the number of displays? Yeah. You have one, you have a, yeah, you have to watch, you don't have to go crazy on it. Um, so. Frank: [00:52:05] It's up to you. You need Multisim support. You got to put that number in multiple places. Ooh. Oh, okay. So I'm sorry. So I, I started on that whole iPad ramp because I wanted to make a distinction between iPad, iOS and iOS. So all that stuff that I just said, like, um, the new way that you should present images in your app, all of that fails on an iPhone. No. So you actually, cause multi scenes are not supported on iOS period full stop. So you need two different code paths. So you are still going to have to present that view controller, but on iPad, he should present a new scene. James: [00:52:47] He has like, you know how, you know, how we want to use to create universal, uh, apps for iPad and for you, didn't, you'd have like two view controllers and you would end the view controller with iPad and you would think, well, if I'm on iPad, I'm going to create the iPad view controller. If I'm over here, I'm going to do this. We're back to those days is what you're telling me a little bit. Frank: [00:53:04] Yeah, but the benefit here is, like you said, this is actually helping with desktop integration. So this also gives you a Mac catalyst version. So, you know, in the past I've would have, I would have made all those components. And then I would have also had to write a Mac Mac version. Now I know. So, you know, I'll, I'll, I'll take, I'll take the changing API for the benefits of the platforms are getting very close to James: [00:53:29] each other. Can we talk about the most important kit that came out that at a dub DC? Is there Frank: [00:53:35] a new kit? Oh, I think I know. I know, but name it James: [00:53:41] damn kit. That's right. Shizam Frank: [00:53:44] gosh, you're killing me. You're okay. Wait, hang on. This is appropriate. Okay. I need a beer for this one. Shizam James: [00:53:53] Shizam kit enables your application to recognize audio from millions of songs, and it shows the AMS library, including, um, you can build your own custom libraries, including, uh, video podcasts and marshes. Frank: [00:54:07] Is that like the epitome of an app? Like, okay. As an app developer, first, you want some success. You want people to buy your app, then maybe second level success is a company buys. Your app is third level of success. You become an API on the platform named James: [00:54:23] after you're named after your company that isn't even call it like sound recognition kit. No, they called it shazamm kit. Frank: [00:54:29] Well, they created a new word. They're entering that into the English lexicon, I guess. James: [00:54:34] Yeah. What if I told you Frank, that Shizam kit also has an SDK for Android? Frank: [00:54:42] How nice is this based on perhaps another SDK once called the Shizam SDK that apple somehow bought what's going on here? I am. So explain the business side to me, James. That's your role James: [00:54:55] know that there is it's developer, not apple.com/ slash Android, and it totally exists. Um, you know, in their, in, in Apple's ever increasing support for Android, like FaceTime on Android via the browser. Good one. Frank: [00:55:12] Um, okay. That's awesome. How did we skip that? We have to say at least three words on it. Totally awesome. Finally, James: [00:55:21] whatever it doesn't matter, you know, here's the thing on FaceTime it's totally. No, no. Here, no Frank: [00:55:27] green share. We didn't have screen sharing before. It was a missing feature James: [00:55:31] street. Screenshare is great because you and I can, we can just hop into it. Okay. That's great. That makes sense. We're on a dev thing. We're doing the thing doing it. Yeah. Yeah. But you know, I'm at work. I'm not, I'm not using the FaceTime, but I will share play stupid. Um, Frank: [00:55:46] um, let's at least say, because we're all developers here share play. There is an API. It seems complicated. Um, good luck with that. James: [00:55:55] Yeah. I mean, those are the Disney's and the Netflix's of the world, things like that. That's on me. Um, all right. Okay, good. Okay. So send a link. I, you know, I kinda, I kinda like it. We use Google meet a lot, um, just because you can attach a link to a Google thing, here's the thing that's really gotten me going on this whole thing. And we're going to consumer mode now. Um, I kind of want to use apple email all of a sudden now because I don't use it. I just use Gmail, but they got the blocking and they got the VPN system that they don't call it VPN, but it's a multi-layer VPN system and the iCloud pluses and they got the, they got the things and the pixel blocking, and then they got the FaceTime links. That's cool. FaceTime links. Everyone thinks time. And to link, you could schedule a FaceTime. Great zoom. Frank: [00:56:38] I created zoom. I honestly love it. Yeah. I mean, it, it, you can tell, like they started designing this just as the pandemic started and it took them two years to get it out. These are all great features. Could it use them the last two years? So have nothing against them, but they're actually really fantastic. You should be happy about the iCloud plus because weren't you just complaining that you did not have enough home kit security cameras, and now you're getting more home kits, James: [00:57:02] security cameras double down on home. HomeKit so ho do and the wallet. So they double down on the wallet and you can put your ID in the wallet. You can put your car keys or house keys in the wallet. Uh, that's really cool, but yes, home kit and all of the systems in and around it are getting a big upgrade and new API APIs and, and around home kit, which is very, very exciting, uh, to me as a developer. And, uh, they're really trying to expand it because they put Siri in, uh, other devices. Like they showed an echo B, which I have in the house, which is cool. And. They're working on a unified open source, like standard to work with other smart home accessories, with all the kit and matter accessories and all these thread things and whatnot, all these things. I don't know. Uh, uh, yeah, so I don't know if the current plan that I'm on that 200, 200 gig plan will get more devices, but I might just be upgrading to iCloud applause, whatever I, well, it's the same price. I don't know, but I don't, I don't know. Frank: [00:58:06] They weren't awfully confusing about the price because they were, they were doing a sales pitch. They're like they were making it sound like a premium service. And then the right you're going to get all of this at the same price. You're like, okay, why is that different? Do I have to click a check box? Was this just a weird marketing thing that some drunk person came up with? What just happened here? Apple, which is a little funny because they're usually so good about their marketing that they, they really missed this one. I think that one must have gone through committee a few times. James: [00:58:36] Yeah. You know, and, and, and the thing with iCloud is like, when you go to the apple.com website, you can't, or I don't even know where iCloud is. You can't. Oh, there, do you have to scroll all the way to the bottom and it's under services, you know, it's there. Yeah. Frank: [00:58:47] They have icloud.com. That's a thing. James: [00:58:50] Yeah. They didn't even, they didn't even have anything about iCloud plus I don't know anything about it. All I know is I want more. Frank: [00:58:56] Devices. And I will say I did the neat thing about installing the betas is all that stuff got turned on in my email. So all the images I downloaded my email or going through some magic VPN thing. And then what was the second feature? James: [00:59:13] Well, the pixel blocking, they also have the random emails, Frank: [00:59:16] the random emails. I got that one too. That's James: [00:59:19] pretty cool. That's cool. Yeah. I saw these betas, maybe not, ah, Frank: [00:59:26] every year. What are you doing with your money? One, you can't be like using that for daily develop. James: [00:59:32] Now I'll turn it on to the M one. Oh, you know what? They also, they, they sure locked an application that I installed on my apple Frank: [00:59:38] TV. A lot of applications James: [00:59:40] this year. They did. Um, the one that I'd mentioned first, you can talk about your Sherlock is they die? There was an app that I bought. It's very, very good. It's called like cam cam kit or cam something. It shows all of your home kit. Video streams in a big grid and it's cool. You can go through and it's exactly what you want on your apple TV, because there is no home app on the apple TV, even though it is the home hub, it's stupid. Um, because on my phone I can go into the home kit app and see all the phones there, things there. Um, so I bought this app. It's five bucks. It works everywhere. It's fantastic. It's amazing. Well worth the $5, but they just built it as like, here's the app for free. And then they just built the app and like the here's the home app, uh, it was going to happen that developer had to know right. That that was going to happen. Frank: [01:00:28] Yeah, for sure. Um, and all the apps that scan text, and then image gone baked into the main photo James: [01:00:37] app. Every note app. I mean, we joke about this, but like it's on the iPad. It's oh, it's always on. It's always that game over. I mean, we use Google keep a lot, but I'm just like, I don't know. Maybe we should just use this thing cause it's like pretty good. Frank: [01:00:53] The photo search they said is getting better. I've run into it. Like it's always worked for things. If you say like beach, you know, it can find beach. But if you say anything more difficult than that, it usually kind of fails. So whatever James: [01:01:08] photos, nah, they're going to do it next year. They're queuing up to create an iCloud photos, Google photos, competitor, I, you know, what they need is the ability to share albums and do you know, do things. Yeah. It's not quite there yet. Google photos is still superior in very many ways. It's very good. But again, I'm paying Google tons of money. I'm paying Microsoft a bunch of money. I've got to pay apple a bunch of my, I got to pay everybody. I Dropbox, I refuse to pay them money. And I have like two gigs and we use then Kassar to record this thing. And like, every time we record a podcast, it's like, you're very close to, if you go into your max and you're like, all right, Dropbox, I'm not giving you money, but you know, darn it. I'm giving everybody money, Frank. I can't get away from it. You got to use them all. Yeah. Frank: [01:01:54] If you want to jump into privacy as, uh, did you like that transition during the video where he like opened a hole into the teenage mutant ninja turtles and then fell down the hole and that was the privacy area. And, uh, he put on his like dad bad voice and it was very, that was great. Okay. Let's, let's end this thing. We're at an hour, but I'm going to end on the best thing announced at dub dub DC, the drunk detector, your phone will now buzz you if it thinks you are walking. Unsteadily nice. So that should be hilarious to have turned on. James: [01:02:31] Maybe you are going to say that the upgrade to the nearby interaction API, that of now enables you to connect with accessories using you one chip and ultra wide band Frank: [01:02:42] shut the front door. Oh my James: [01:02:45] gosh. Yeah, it's a brand new thing. Yeah, I'll put it Frank: [01:02:48] in there and I'll just throw this in. I might even talk about it next week, cause I was super excited, but um, I got to do a dub dub DC labs for the very first time this time. And I got to talk to like a person and they actually had like great information on everything. I forgot where I was going with that story. I did have a point to that story. I wasn't just bragging that I got to talk to an apple engineer. Um, Nope, it's gone. What James: [01:03:14] was the workshop? What was the thing? The lab Frank: [01:03:16] while I was learning, uh, M L compute, which is a new API as of like last year. So the documentation isn't super awesome. And I just had some questions. I just could not figure out on my own I've I've crashed this process so many times there were no more error messages to read. I just needed to talk to a developer and it was great because everything that I tried, I was actually headed in the right path. It's just, you know how it is when you don't know if what you're doing is correct. You're just second guessing yourself the entire time, especially if it's a difficult problem. Like, do I work through this or am I being an idiot right now? So it was just so nice to be able to ask someone, am I being an idiot? Like, is this actually I'm supposed to do this? That was great. James: [01:04:03] Yeah, I like that. That's cool. I did one of those at Google IO where I went and talked to a human being. That was, that was quite nice. Um, you know, what I'm I'm interested in is if I go to apple.com and where's my watch gonna get, watch us eat. Frank: [01:04:19] I don't know if it is, you don't know if it is, please let me know because I'm writing a new watch or USAID app. James: [01:04:25] Um, I've got, I'm looking, hold on. I'm looking, I'm scrolling. Frank: [01:04:28] They changed the Bluetooth, how Bluetooth works on watchOS eight. So if anyone's maintaining one of those apps, the way they've actually enabled the background Bluetooth for the first time. So now your apps can update, uh, stuff on the watch face. If you have a complication, you can do that in the background now for the first time. So everyone go rewrite your Bluetooth watch app because it's complicated. So watch the video first. James: [01:04:56] Let me tell you my watch lives another year, Frank. Yes. Series three, officially supported, uh, not all features available on all devices as one would assume. Uh, let me just tell you, as I got watchOS seven very minimal do features, came to the watch and every time I upgrade, you have to unpair do a backup, do a whole thing, but it totally works. And that's really good. Um, amazing. Great. We only scratched. The surface of dub, dub DC. There's so much more in there. I there's, anyone can watch it toward the 23 minute video, this and that. I'm shot to the object capture. Frank: [01:05:34] Q I button. Oh, object capture. I'm releasing an app. No one else released an app. I'm releasing an app for that one shortcuts on James: [01:05:41] a Mac. Frank: [01:05:42] Um, yeah. W we're all programmers here. We don't really care. We have bash for that. We have scripts for that. James: [01:05:49] All right. All right. Um, what's what happened to you? I button. Frank: [01:05:54] Oh, it's just hilarious. How powerful that thing's gotten. Did you know, it supports subtitles? Oh, I did not know that UI boss. Yeah, you, I button has subtitles and you can control the alignment of all that stuff. It's kind of amazing. There is an entire 20 minute video on just the UI button and I'm like, wow, I could almost build a whole user interface inside of UI button. The neat things that have changed for it are if you've ever needed like a picker control on iOS, remember the original picker, it's kind of terrible. The thing that you spin around, well, UI button has gotten all these features, so it can be more like a dropdown menu on Mac and things. And the neat thing is if you adopt that a you're going to get a better UI because those spinner things are ridiculous. Be on Mac it'll turn into a proper dropdown menu. Matt catalyst, I should say. Yeah. So really cool advancements to UI button. I find it hilarious that there is a whole presentation on button, but at the same time, like that's perfect for developer conference. Like there should be whole talks on button. It's like the thing we use the most in our apps. Uh, so the, the biggest things they covered are how to style your buttons, the new configuration styles that have come out. Um, it's, it's really fascinating stuff. So UI button configuration, check James: [01:07:16] it out. Welcome to 2021 buttons buttons. I mean, I love the vitals, you know, I mean, that's literally, you know, everybody's first app is a button clicker app, so it's, it makes natural sense. Cause you know, the thing with the button is that a button is, so the events on a button in, on not on Frank: [01:07:39] everyone understands what a click event is or a SAP event. Yes. You're trying to do a demo. I, I was just doing a demo. I'm trying to get like we running on Maui, like the very first app, of course, it's going to be a button that increments a number that is the standard mobile demo out there. You know James: [01:07:56] what, um, doesn't make any sense for a button event. Frank: [01:08:00] Oh, what are you got touch up James: [01:08:01] inside. Frank: [01:08:03] Oh, ouch. Ouch shots fired again. Oh James: [01:08:08] yeah. In swift UI. Did they fix that? Frank: [01:08:11] Yeah. Yeah. It's called tap. No. What is it called on swift UI? Oh no, it's not called click. I'm pretty sure it's not called click. It can't be, oh gosh, you got me. Uh, oh, it might just be the default callback. That's at the end. You know, it might not even have a name, like maybe you don't use the name swift UI Therese James: [01:08:34] day. Action. Delete Frank: [01:08:37] action. That's see. That's better than clicked or kept honestly. James: [01:08:42] Action. Action. Action. Yeah, but what have you typed up outside? Frank: [01:08:49] Yeah, might want to handle that event, James. It's important. Yeah. James: [01:08:55] Is it Frank: [01:08:56] it's never important. That's why they got rid of it and changed it to action. Action. James: [01:09:01] Yeah. And that's action. They were like, we, we refuse. We were fake aside where you ever refuse to take it's an action as generic, as it says, the action to perform. When the user triggers the button, how did they trigger that trigger? Nobody knows Frank: [01:09:18] we're making fun because yeah. We've tried to design UI libraries. I have designed terrible UI libraries and it always comes down to what do you call that event on button? James: [01:09:30] Say call it well, and it's, that's also debate because there's a click and a clicked event. There's like undifferent UI stacks that click and Frank: [01:09:38] click. Oh yeah, sure. The past tense versus present tense. Here's a funny one. Button is inherited from label. That's a good James: [01:09:46] one. Oh, you know what? I looked in Don at Maui, Donna and Maui, a button also inherits from I text. Frank: [01:09:53] Oh, yeah, there are more interfaces in Maui. Everything's James: [01:09:57] an interface. It's, everything's Frank: [01:09:58] an interface. Well, okay. Yeah, everything's an interface, but you have your standard interface, like I button, but then they also have an, they don't have this one, but like I clickable, you know, they have like more refined interfaces. Now James: [01:10:10] I was making a post. I'm trying to make a code tour. I don't know if you ever heard of that. I'm trying to get Coture for Don and Maui the repo. So imagine you want to come in. You want to like contribute, it'll navigate you around and explain the repo and how things are organized. And I've been exploring it myself because it's like, I I'm like, here's a button and here's an idea bag. It's kind of big. It's, there's all these things and here's the handlers and this and that, but I'm trying to, trying to go through it and trying to understand it. Um, yeah, it's pretty cool stuff. Anyways. Um, how would you rate WWDC 2021 Frank, Frank: [01:10:44] uh, apple. You're getting a five stars. It was everything I wanted. The app worked really well. I got into my lab. They didn't change anything in the us requiring me to go rewrite my app this summer. So plus plus to that, so yeah, I'm giving them five out of five stars. James: [01:11:02] You didn't get a new Mac book pro with ports or a new M one chip though Frank: [01:11:08] hardware, but I don't expect hardware at dub dubs. And if they do hardware, it's usually not released until the fall anyway. So like, what's the point? James: [01:11:18] Here's my, um, here's my thing so far. Uh, I give, I give it not a five, not a five out of five, but I think that the keynote, because it, did Frank: [01:11:27] you see that transition where he jumped into the hole and then landed into the security area? I saw that James: [01:11:34] I saw that no points awarded. Okay. Now also, if you want to look up the binding status of X code 13 to Xamarin, you can check that out right there. I got the doc already. Yeah, it's already up. Um, so it's already up. There's not that many new APS are there some, so, uh, here's the thing is I kinda, the keynote was long. It was, it was kind of too much consumer for me. That's my it's a developer conference. Oh no. Frank: [01:12:07] It's as good as the stuff we went through three hours of Satya talking about that velocity. No, James: [01:12:15] his keynote was like 15 minutes, 20 minutes. Frank: [01:12:20] Okay. It wasn't out there very much. Either James: [01:12:23] cook was done out there, but I think that the, the beginning part, it was, it was all of the updates and that's developer related. You got to know what you're getting yourself into, but it was, I would have preferred another 15 minutes of developer content in the keynote instead of the 20 minutes. I know, I know what you're saying, but then I had to wait four hours for the platform on demand session. Just like, give that to Frank: [01:12:44] me. See, the one I'm going to complain about is the platform session. That used to be a wonderful, um, we're going to go over all the new technologies and give you little hints at it so that you know which sessions to go to next. Gotcha. For me, that was the let down this year, the keynote has always been here are the new operating systems. Here are the new features of the opt-ins that has oh, but the state of the union, that was the one for developers. The first one's for the media. Second one's for developers. And this time they dropped the ball, but, but the good news is they just released all the videos. So I've been able to sit back and just watch all the videos on my leisure. They're not all one hour long with a lot of like hemming and hawing, because every one of them has to be an hour long summertime minutes. Some are 30 minutes. It's kind of a flee. Yeah. Five stars. James: [01:13:40] Five stars. All right. Well, Frank: [01:13:43] let us know for a bad keynote. How many stars did you take off for the bad keynote? James: [01:13:48] Um, undisclosed stars. Anyways, let me know what you think of the WWDC keynote and the sessions and all the things. Uh, I mean, there's a lot of good announcements. It's it's, uh, it's, it's, you know, it's a vast contrast to build that we talked about because bill is, there's a, there's a breadth of products and Apple's building up its breadth of products, but they're still very focused. They only have one IDE, they have one programming language, you know, one, you mostly one of everything, two and one ish basically, uh, at least that they're going to put in there and then they are broadening their services, but there's still a lot of con consumer in there, which is, which is fine. But there's some things that I don't. Their product announcements. And that's also fine. I know, but there's different where I, Google lies. Oh, sits in the middle somewhere, which is also fascinating too. It's there all I love I've loved the experiences, all of them so far. Um, apple G great. You do great. I love your videos. So much emotion, so much portrait mode blurring in the background. It's all great. Frank: [01:14:48] Um, all right. For me, you're talking about the singularity. Apple is in the cert dev services thing now. So now we're getting singularity across companies. They're all kind of selling the same product. So that's getting weird. It's all happening. It's all services buy our services, buddy. James: [01:15:07] Yeah. Yeah. Money, money, you know, um, you should. I think Marco ding put out a blog post kind of a rant on apple. I'll see if I can find it. You should, you should go Frank: [01:15:19] Marco ranting about apple. Yeah, it was pretty. James: [01:15:22] Yeah. Frank: [01:15:23] Oh, I I've been listening to ATP. He's been very clear on his thoughts, but yeah, I don't agree with everything. Yeah. Interesting. I don't know. I'm interested. I'm in a good mood this year, man. I walk in the betas. I'm in a group. James: [01:15:40] I'm in agreement. I'm in, I'm in my mood is great. Frank I'm in no bad mood at all. Um, you know, but, but, but, but between Google enabling me to properly request Bluetooth on my Android device without having to do patient pop-up and, um, apple enabling me to 3d scan a bicycle and put it into my application. So it's a 3d spinning of, of a bicycle. Uh, while you have a number of floating on top of it, Or Frank: [01:16:11] important for all James: [01:16:11] apps. What if it was a flywheel? Right? So the big wheel on the front, and I can rotate that 3d fly wall that I've, I've made a 3d version of in the, in the velocity, in which you're rotating now Frank: [01:16:26] available. Thank you. Should yup. No available, or it could just be your head spinning either we can scan your head. Yeah. James: [01:16:37] You don't know the coolest part of that kid is that they can also do underneath. So cause they enable you to, to, to silicone Frank: [01:16:43] underneath them. Did you see my tweet? I scanned my shoe. Wow. Okay. Let me look. I did it. I did not do underneath though because I was being a little bit lazy and I wasn't sure any of it was going to work. And the funny thing was you had to have all the betas installed to get the whole thing to work. So I was waiting for all the progress bars to go by. I'm like, I'm going to take pictures of my shoe. Yeah. And it turned out kind of amazingly good. Wow. So that's why I'm building an app to do it because their thing is good and it needs the UI. That's cool. No one compete with me. James: [01:17:16] All right, everybody. Well, thanks for tuning into this extra strong, extra long and strong, extra long edition is late. Now. It's a Ford. It is. Um, anyways, that's going, gonna do for this week's podcast until next time. Frank: [01:17:30] I'm Frank Krueger. Thanks for listening.