00:00.63 James wo but but but bow Welcome back, everyone, to Merch Conflict, your weekly. Is my audio working correct? Is this the right microphone, Mr. Frank Kruger, my co-host? I'm James Wants and Magno. 00:09.85 Frank James about to make note, you sound wonderful. You always sound wonderful. It doesn't matter what mic you're using. And I definitely hear you tapping it and we can all enjoy you tapping your microphone during the podcast. 00:19.89 James Okay. Sometimes in Zencaster, it's just a big, like right now, it's just like a big... like ridiculous Like, do I sound okay? Do I sound, do I, so you've been talking to me for 30 minutes. 00:29.54 Frank Yeah. Yeah, I think I would have said something. 00:31.67 James Don't tell me that I sound like butt. 00:33.33 Frank i would have said something. 00:33.49 James Okay. 00:34.53 Frank Your waveform is is hitting hard. My waveform is tiny. That's how we keep it. People don't want to hear me. 00:40.73 James You don't even, you don't even have a waveform. 00:41.41 Frank They want to hear from you. 00:44.26 James I'm going to, I think I'm going to vibe code our own podcast platform this weekend. I'm pretty sure this is going to happen. 00:48.60 Frank Why haven't you vibe coded? I mean, you own every other domain. This one should just be soundbite.fm.dev.ai. 00:55.26 James Vibecast. 00:59.86 James I like that. I like that. all right. Well, welcome back, everyone, to Merge Conflict, your weekly developer podcast. I'm one of your hosts, James Martin Magno. With me, 18-time Microsoft MVP, Mr. Frank Greger. 01:09.93 James How's it going, buddy? Yeah. 01:10.53 Frank Woo, 18. I wish that was the actual number I got reset. Hey, James, I did. Hi, they let me back in. i don't know. i don't know who I know over there, but they keep letting me in. It's kind of nice. 01:23.83 Frank um Yeah, looks like I can keep some of my Azure sites up. 01:29.08 James yeah 01:29.43 Frank That's kind of the important thing these days. 01:31.64 James You've been podcasting. You've been blogging. Maybe one day you'll merge pull requests on SQLite-net. 01:35.16 Frank Yeah. Yeah. 01:39.44 James Who knows? The world may never know. aric Maybe Eric's just going to do it for you. 01:42.42 Frank It seems like, well, it seems like I break it every time I merge. So I'm actually trying to do fewer merges on it. But um yeah, anyone, I apologize if you are actually waiting for a SQLite-net update. It's just, it's it's Android's fault. 01:56.39 Frank It's Google's fault. The code's perfect. It's just they're changing Android stuff. So we have to do a release. um Not my fault. It's Google. Blame Google. 02:06.30 James I think it's that, but i think there's also a CVE that needs immediate repair. and i think i think it's already pushed out from Eric, so don't worry. so 02:12.79 Frank i believe I believe these apps run in a sandbox, James. What what is CVE in the mobile world? 02:17.43 James Well, 02:20.69 James well here's the thing, Mr. Frank Kruger, what you don't know is that SQLite-net is multi-platform and runs everywhere. Just because you only write mobile apps. 02:29.15 Frank Oh. 02:30.21 James We have done an entire podcast in which we talked about how people and yourself run SQLite-net on the server. 02:32.81 Frank Yeah. 02:38.29 Frank It's true. It's actually kind of wonderful to run it on the server. It's so much easier to deploy and do backups and all that stuff. um I even added like some functions to the API surface to make backing up even simpler. 02:50.80 Frank So like for me, it's a one-click download to get a backup of like my entire database. It's really it's really wonderful. 02:58.68 James It's pretty cool 02:59.00 Frank And restores. Restores are just as easy, too, because it's a file. What do you do when you got to restore it? You delete the old one, put the backup in there, 03:07.67 James cool..back..back undo. 03:07.87 Frank Reboot. Sometimes you don't even have to reboot. 03:10.87 James this is there Refresh. Refresh the page. It's there. um Well, interestingly enough, talking about mobile development, ah I wanted to go back to our roots a little bit here because ah I have an upcoming conference session at VS Live ah Redmond in Redmond, Washington at the Microsoft offices conference area thingy. 03:24.29 Frank Oh. 03:30.03 Frank Hmm. 03:37.27 James and I have a session on Don 03:37.40 Frank Okay. 03:41.96 Frank Oh, sweet! You're back! You're really going back to your roots. Is this... um yeah, okay. So, Mobile Maui, Windows Maui, Android Maui, what what kind of Maui's we doing? 03:54.76 James I'm talking about AI development with.NET MAUI, baby. 03:57.05 Frank Of course you are! 04:00.09 James Let me explain, let me explain, Frank Gruger, let me explain. Okay, so a lot of people, and when I give talks, I do nowadays, I used to do a lot of like intro talks, like intro to mobile backend as a service, intro to.NET MAUI, intro to Xamarin Forms, intro to SQLite databases, intro to whatever, right? 04:11.81 Frank Mm hmm. 04:19.11 James That was my bread and butter. I love teaching people the basics. And I do a lot of co-pilot sessions and vibe coding and how work has changed all this stuff. 04:25.33 Frank okay 04:27.54 James And I wanted to challenge myself. The cool part about conferences that if you submit a session and it gets accepted, you got to go do that session, 04:35.32 Frank Turns out that that is the Achilles heel of being a presenter is actually doing the presentation. Not sure that's the right metaphor, but the Odyssey is coming up. So apropos. 04:45.72 James Yeah. And the problem that I have, Frank, usually even with intro stuff is that like, I don't read the code and I don't write the code, but I do write the code. 04:54.51 Frank Oh. 04:56.76 James I don't type the code. 04:58.39 Frank Hmm. 04:58.74 James I type the prompts that write the code. 05:00.89 Frank Right. 05:00.89 James And that's been pretty firm for two years. Like 99% of what I do is prompt to code and review of said code. 05:06.58 Frank Yeah. 05:09.01 James And I know the code, I can read the code, obviously. I know what the code is doing. 05:11.48 Frank You do read it. Okay. 05:13.28 James It depends. 05:15.03 Frank yeah Okay. 05:15.37 James yeah 05:15.71 Frank Yeah. Because I was just doing a code review of some PRs, which was, let's call it 95 to 99% AI generated. But I still do the PR because I stand by, they're going to make it work one way or another. 05:26.90 James Yeah. 05:31.02 Frank The AI is going to make it work. But it might create technical debt down the road. 05:32.92 James Oh, yeah. 05:36.01 Frank And I'm constantly trying to minimize technical debt down the road. So i I'm PR reviewing. I joke. It's like I'm actually doing a lot less um logic PR reviewing and more like organizational architecture and organizational. 05:50.81 Frank That's kind of what I'm PR checking these days. 05:53.70 James That's kind of what I'm doing, especially I get a lot of PRs that are AI generated. and And people even say like, oh, I did this with this or whatever. That's cool. Then i have the AI review the AI, i review the thing. 06:00.26 Frank Mm-hmm. 06:02.26 James I think once you have an established project, as long as you're sort of following and even myself following kind of core principles of like one feature, one bug fix per PR, not huge refactoring, check your linting, don't change your stuff. 06:12.45 Frank Yeah. Yeah. Mm-hmm. 06:16.11 James It makes it just like a normal PR. 06:18.52 Frank yeah 06:18.65 James um But it does make a challenge for me as a presenter because that's not what I do all the time, a manager. um But when I want to present and do the the basics and typing the code, I can still do that. But I challenged myself to do something a little bit different for this talk, which was ah had a conversation with John Dick at the MVP Summit in March. And he was like, hey, listen, I know that you, one, still do a lot of Maui work, but still do a lot of bunch of other work. 06:46.07 James and you're really deep in the code, but have you been following what we're doing? And I go, Don, I gotta be honest with you. 06:50.64 Frank Yeah. 06:52.99 James It's like, if it's not built into the tool, then like, nah, no, not as much because I'm a big, like, if it's in the box type of guy. And he's like, cool, we're about to put a lot of it in the box. And I was like, oh, cool. So I decided that that would be the talk I wanted to give. So it's a talk about how AI development is evolving down at Maui for the team and also for you as a developer. So there's a lot of how the team is adopting AI. And I worked with David Ord now and John Dick and Gerald and the engineering team to like, get insight into they're adopting AI and the processes and a huge open source project like.NET MAUI. 07:28.98 James ah But I also wanted to kind of go deeper into three specific key pieces of technology that they have ah delivered and are kind of in the box. 07:39.40 Frank Mm-hmm. 07:40.38 James And that's what I want to cover today in three segments. And they are enabling not All of them are AI features, but they're developer productivity tools that end up being a superpower when doing agentic development. 07:57.40 Frank Yeah, yeah. um I'm actually excited. um i think I know two of the three that you want to talk about. And i got to have good conversations at the MVP summit also. 08:08.50 Frank But I'm always scared to death about what I'm allowed to talk about and what I'm not allowed to talk about. So I'm so glad that you're leading this parade because you know what's actually being released and all that kind of stuff. I love being an MVP, but one of the worst parts of it is not knowing what you can and cannot talk about. 08:23.46 Frank because It's so confusing sometimes. 08:24.02 James Yeah. 08:25.66 Frank So anyway, um I've been I've been I've been hoping to talk about this stuff, too. So I'm curious what your three topics are. I'm ready for at least two of them. 08:35.77 James The very first one is the one that every single app developer today can take advantage of, including non.NET MAUI developers, to be honest with you. If you're just an iOS and Android developer, you may also find this nifty. 08:49.82 James And it is called the.NET MAUI CLI, a command line interface. So for for many years, we have been locked into this ecosystem of Visual Studio and then the VS Code or the VS Code extension. 08:55.06 Frank Yes. 09:03.06 James And then when we needed to do certain things, we'd have to drop down into the ADB, the Android Debug Bridge sort of CLI tool to do stuff, or also the Xcode... 09:09.91 Frank o Gross. Yeah. 09:15.81 James CLI tooly thingy as well. 09:17.26 Frank Yeah. 09:18.04 James But the team has put together and they shipped. It's just a global.NET CLI tool that you can install. And it's called the.NET MAUI CLI. And it does a bunch of.NET MAUI things. 09:28.65 James So here's what it's going to do, Mr. 09:29.30 Frank yeah 09:30.57 James Frank Kruger. ah One, there's a MAUI doctor. This is probably my favorite one, which runs environmental diagnostics. It can auto-fix issues for you. So if you don't have the JDK, you don't have Xcode, it can do this all for you. 09:42.49 James It can list the devices. 09:43.03 Frank Does anyone ever have the JDK? 09:44.05 James Yep. 09:44.99 Frank I have never walked up to a machine and had the JDK. I used to think the worst part of Android development was the Android s SDK. No, it's getting the JDK onto that machine. 09:55.83 Frank um So I didn't want to interrupt you, but I love Dr. 09:56.22 James well wait well Well, here's think of it like this. 09:58.99 Frank Tools. Yeah. 10:01.26 James this one This one command fixes so much because imagine you do install.net, you install the Maui workload, and this might actually do it for you automatically. 10:06.67 Frank Mm-hmm. Mm-hmm. 10:10.71 James And you install the CLI. and then actually it would be even better, is you install the CLI, you at least need.NET, and then it ins installs a workload, but it would install everything for you. It'd set up your emulators, your JDK, your sd Android SDKs, your iOS simulators. It would just provision everything for you automatically. Set all of your environment variables. 10:32.51 James Bingo, bingo, you're good to do. I did an entire 30-minute video on like VS Code Maui setup. like No, now it's just install the CLI, Maui Doctor, YOLO, let's do it. 10:39.74 Frank Yeah. 10:43.90 Frank and Yes, yes, yes. Just keep replying. 10:45.14 James Yes. 10:45.78 Frank Yes. 10:46.52 James Yes. 10:46.84 Frank um Yeah, I noticed the tooling has gotten a bit better. Like if you try to do an Android build from the command line, it's going like, hey, buddy, we actually have a crazy target you can use that will install a bunch of stuff. um So that's been my way. But even honestly using that target, there's like an install install Android target or something like that in build. 11:07.34 Frank um But even that, it's it's honestly still kind of complicated. So I'm excited for this doctor tool. I ran the doctor tool on my computer, which, by the way, works fine. so I was like, well, this um it's kind of like when you go to the doctor and you're healthy and you're like, 11:24.25 Frank Please don't find anything because like the machine's working. If you say something's wrong, I'm going to be very upset. 11:27.71 James That's where it works. 11:31.05 Frank And so um I got warnings, but it turns out warnings because I can update my versions. I don't need to update my version. So it should not be warnings. Those should just be here's your lollipop. 11:42.81 Frank Good job. Your machine is working. By the way, you could update if you want. Shouldn't be a warning. Warnings are like, you know, you got to eat healthier. You got jog a little bit more. 11:53.83 Frank That's what a warning is. 11:54.07 James Sure. Yeah. 11:55.87 Frank Doctors should just be like, you know, if you're in the mood, the year changes, might want to update some of these things. 11:57.98 James Yeah. 12:01.46 James i i I just ran it now and I did get two warnings and I did get ah update available workload set available. 12:07.61 Frank Yeah. Shouldn't be a warning. 12:10.22 James Yeah. 12:10.33 Frank No, no. It should be like, go for a jog. 12:10.94 James But... 12:12.85 Frank That's your warning. 12:14.01 James But much green, and I do like that. 12:16.82 Frank Yeah. 12:16.84 James um So that is fine by me. ah so 12:20.54 Frank ah 12:21.88 James ah So that's really good. But let me just list off all the other stuff. So you have ah you can list your devices that are connected to devices or emulators. 12:24.84 Frank Yeah. 12:29.08 James On Android, you can... um Just do a full interactive install, set up the Android environment, SDK listing, SDK install, JDK install, emulator creation, emulator starting, emulator stopping, emulator deleting, Xcode listing, runtime listing, simulator listing, simulating starting, stopping, and deleting. 12:42.53 Frank Mm-hmm. 12:45.24 James i don't know when you delete a simulator, but could. I'll tell you why in a second. profile. There's an entire app profiling tool that captures traces with.NET trace automatically. 12:51.70 Frank Yeah. 12:56.97 James And then there's a bunch of other things that we'll talk about in a little bit into another tool that the CLI integrates into. 12:57.85 Frank Pretty cool. 13:03.22 Frank Yeah. 13:04.22 James But this does all your Android, Apple platform, device management, and app profiling, which is super duper cool. And it'll give you like a speed whatever the the speed trap thing chat chart speed trap e speed speed not speedometer yeah 13:17.09 Frank Speed trap. It's not at all what it's called, but we'll call it speed trap. 13:23.40 Frank Speedometer. No, I'm just kidding. Yeah,.NET profiling has been around for a while, and I actually have like a separate um console app I generally do when I want to, like because I just have a bunch of tests that I want to run that I want to keep profiles for. So I haven't tried out the app profiling, but I'm excited to because that's the real world stuff. um And it'd be fun to actually see if the profiling works on device. I might be asking for a little bit too much there, but that would be fun to find out if we could get that to work. 13:57.42 James Yeah. Well, so the cool part about this is that this is just a CLI that works anywhere. And then obviously the nice thing is that, you know, once you have a CLI, your agents can become aware of said CLI. 14:03.49 Frank Mm-hmm. 14:08.30 Frank Yeah. 14:08.86 James You can do CLI things, which is really nice for all intents and purposes when you're working with coding agents. 14:09.34 Frank yeah 14:13.70 James However, um I like a GUI, Mr. Frank Kruger. 14:18.52 Frank Oh, yeah. Yeah. I mean, we're here because we like GUIs. CLIs are great if you live in the 1970s or if you have a 300 baud connection to a mainframe computer. But who in 2026 would use a CLI? 14:36.43 James Oh, not me. 14:38.58 Frank ah Maybe DoorDash. 14:40.38 James e 14:40.51 Frank If you need DoorDash, I think you use a CLI. 14:43.03 James Yeah. um So um John Dick has a Windows, Mac, and Linux app. It's called Maui Sherpa, and it is your guide to development environment needs. 14:55.23 Frank Yeah. 14:59.12 James Now, here's the cool thing about the Maui Sherpa is that it's built on... the.NET MAUI CLI, but more. so It gives you a full visualization of all of your devices, simulator, um all of your SDKs, your your your JDK packages. 15:07.55 Frank Yeah. 15:19.14 James It has the MAUI doctor built into it. Actually, it co-pilot integration built into it. um It has app profiling built in, so you can actually create a new profiling session. You can point it at a platform, at a launch target, like an actual device and release or whatever it is, and profile it there, review it, capture it, do all that stuff. 15:38.62 James But he took it a step further because it obviously is a GUI to do all this stuff. And my favorite thing is that he added more. So things that really wouldn't be in a.NET MAUI CLI, but what.NET MAUIs or even just mobile developers would need. So for example, he has Xcode management. Remember Xcodes? 15:55.06 James You don't need it anymore. It's right here. 15:57.10 Frank this freaked me out. I couldn't believe you he went through all that effort because like you would think like downloading an Xcode install, easy peasy. No, because you got to be signed into Apple. 16:05.15 James Yep. 16:06.56 Frank So there's a whole like sign in chain you have to do, um which was funny. 16:07.16 James yup 16:11.78 Frank Sorry. side tension When you first ah run the GUI app, it's like, I need a place to put secrets. I'm like, well, what secrets are you recording? Mr. App, sir. Yeah. 16:21.72 James Mr. John Dick, what are you doing here? 16:22.58 Frank What are you doing? 16:23.83 James What you doing here, buddy? 16:24.82 Frank I mean, it says it's local, so I trust it. I i totally trust John. um But at the same time, like, what secrets? Well, it turns out stupid log in stuff like if you have to sign into Apple and things like that. 16:36.42 Frank Plus, there is a secret section. i have no idea what I'm supposed to put in the secret section, but whatever. that's That's for power users, obviously. 16:42.19 James Secrets. 16:42.46 Frank I'm not a power. 16:43.03 James Secrets. 16:43.26 Frank I just put my secrets. 16:43.43 James Frank, secrets. 16:44.62 Frank i I'm going to write little little love letters to the app. 16:47.69 James There you 16:48.23 Frank No, it's pretty cool that there's the Xcode management. i'm i I'm not sure. I love my Xcodes app. um 16:56.14 James Yeah, it's good. 16:57.06 Frank I might try this, though. Yeah. 16:58.71 James Well, my favorite part actually is if you go, there's installed available and you can show betas and RCs, but also there's runtimes. Click on runtimes for me. 17:07.74 Frank o Runtimes are hidden. 17:11.09 James Are you ever like, hey, my hard drive's getting filled up and you're like, hmm, how did that happen? Is it because I have iOS 18.1, 18.5, 18.6, 26.5, 15.5, 16.4, 26.2 simulators that are all to gigs each? 17:17.98 Frank oh gosh. Yes. Yes, it is. Mm-hmm. Yeah. 17:27.61 James Is that why? 17:27.70 Frank Well, James, I might need those. You know, I might wake up one night and just be like, you know what? 17:29.43 James um god you might 17:33.53 Frank I want to do some iOS 15 development. I'm just in that kind of mood. 17:37.82 James sometimes you are sometimes you are 17:38.20 Frank ah No, it's terrible. It's terrible. thank Thank goodness I bought the big hard drive on this computer, so I haven't noticed as much. But back when I had the small hard drive, oh, I noticed. 17:48.53 Frank Because each one of these stupid things is like seven gigabytes. 17:48.86 James Oh yeah. 17:52.18 Frank So, yeah, you notice after a few of them. 17:55.56 James That's a good one. like And what's interesting is if you boot up the most recent X codes, it doesn't show you the old, old, old simulators. It'll only show you like the the recent families. So I don't know what's up with that, but I'm sure X codes does that too. 18:05.66 Frank Yeah. 18:07.74 James But he took it a step further. so he did if you not just So once you need to log into this, but also if you set up a app connect thing like identity provider. 18:20.76 Frank Fang. Yeah. 18:22.61 James You can see all of your registered devices. 18:23.35 Frank Sure. 18:24.89 James You can register devices. You can see and manage your bundle IDs, certificates, provisioning profiles, do push notification testing. 18:28.61 Frank It's awesome. 18:33.14 James On Android, you can store your key stores. 18:34.03 Frank Yeah. 18:35.70 James You can manage your SDKs, your emulators, your devices. And you can put your publishing profiles inside of it. 18:39.96 Frank for instance instance 18:44.02 James um You can also manage your root certificates on your machine for some reason. 18:47.32 Frank Yeah. 18:47.90 James I don't know why and what any of them mean, but they're there. 18:50.10 Frank Look, i I don't know why it's there either, but I like clicking it. Because I'm like, why do I have so many root certificates? And maybe do I need these other ones? 19:00.98 Frank More roots, the better. That's what I always say. um 19:04.15 James I reformatted a machine once, Frank. 19:05.18 Frank yeah right 19:06.65 James And when I reformatted it, it didn't install the root certificate, the intermediate. So I have zero root certificates, i have a bunch of intermediate certificates. 19:11.45 Frank oh yeah. 19:14.49 James And it's the WWDR G series that you need. You need the G series. 19:19.96 Frank Okay, those were the crazy ones. Okay. 19:21.91 James And it's so hard to find those and install those in the machines. And if you don't have those, you can't install like self-signed certs and all this other stuff to actually get your but your profiles to work. 19:25.57 Frank Oh, yeah. 19:29.93 Frank Right. Yeah, I had to do it manually once. And honestly, I can't remember if it was a Mac or a Windows, but I had some ancient operating system. And they're just like, we don't give out ah root certificates anymore. Or they don't, you know, it wasn't getting updates or anything. But you can go on nefarious. They're not nefarious because they're just giving out public root certificates. But you can go to nefarious websites and download certificates. Yeah, this is all sounding like Windows. And like somehow actually update like the machine's root certificates. Sorry, this is a tangent that means absolutely nothing. 20:03.51 Frank But, you know, i'm I'm noticing I only have WWDR G3 and G6. Like, maybe I need G2, G4, G5. I don't know. I'm just going to install them because why not? 20:14.94 Frank More roots, the better. 20:17.50 James Maybe. Yeah, I only have three and six, so I feel safe for some reason. I don't know. But they some are expiring. 20:23.41 Frank No, the truth is the fewer roots, the better, everyone. 20:23.62 James and Yeah. I only have a few. So I thought this was super cool. And actually, it's relatively easy to set up your identity, too. It's a little bit funky UI. 20:33.94 Frank Yeah. 20:34.10 James Like, there's a settings. You got to go to your settings. You got to give it a P8 file and do all this stuff. But it's pretty easy to set up. 20:39.19 Frank I want to go back. 20:40.72 James Yeah. 20:40.89 Frank Yeah, and I want to go back to the ah provisioning profile support because that is cool. um I haven't actually signed in with my um App Store Connect or whatever it needs for that one. 20:45.84 James Oh, yeah. 20:51.48 James It's easy. 20:51.67 Frank um 20:51.86 James yeah. 20:53.37 Frank But I still use the website. I still use Apple's janky website to to do a lot of those. Yeah. I don't know what other people do, but I still use the website. So this will be really fun. I hope it's all in this app. And actually, that's probably the part of the app I'm going to use the most, to be thoroughly honest. So I'm excited to give that part a real spin. 21:14.14 James Yeah, it's super fun. So give it a try, give it a look. It's open source. So I've already made a pull request for a few tweaks that I have just on the website for easier installation, but it's pretty nice. 21:20.26 Frank Mm-hmm. 21:23.62 James um So what's cool is that, oh, go ahead. 21:24.98 Frank Oh, yeah, we should say, oh sorry. We should say um ah he has a fun distribution method that he's got. ah Sorry, on the Mac side, there's the classic zip, a.app in a zip file. 21:38.76 Frank That's how I roll. That's how I like life. 21:39.93 James Classic. 21:40.95 Frank but there's also a brew so i really appreciate um that he went through the effort so that you can brew install these puppies if you want to um i didn't go that route but i think i think that they're actually signed vaguely correctly because i didn't have to do the song and the dance um putting the app on my machine so unlike i'm gonna go with 99 of mac developers out there john actually i think signed this thing correctly 21:58.81 James Yep. Lazy. 22:05.21 James easy Yeah, he did because I've gone through it. I've signed multiple apps now. So tiny clips obviously. And i just worked with Burke, uh, Burke Holland on resize me, which is a small app that he built that I ported to Mac that allows you to set a preset size and you do control option R and it'll take the window and resize it. 22:17.38 Frank Mm-hmm. Mm-hmm. 22:26.99 James So if you're like, I want everything 19, 20 by 10 80, it'll just like, boom, do it and center it, which is really cool. Um, So I just just did that one ah and i went through the same signing process and you have to do the whole sparkle, rigmarole, the whole shenanigans. And once you have all the keys and stuff set up, it's not that hard. But you got to go through the signing process of of it to harden the runtime or whatever it is. Or maybe that's separate. i don't know what I did. just did a bunch of things. But no, it's really nice. I do appreciate that when that happens. And and he also has it on Windows and Winget, which I appreciate. And yeah, so all good stuff there. 23:06.01 James the The thing that I think is really neat is... two other things. There's actually two things and not, there's four things and not three things. But if we now focus and shift our attention to like Maui agent, agentic development, XYZ, 23:15.71 Frank Yeah. 23:27.75 James There's two things to note. One's short and sweet. We've already talked about one, which is the.NET skills repo, github.com slash.NET slash skills. There is a series, a slew of.NET MAUI skills. 23:41.85 James So things working with collection view and accessibility and design and all these other things are built into the box that you can just grab. But more importantly, if you have VS Code and you have the.NET MAUI VS Code extension, it may only be pre-release. I only roll pro release pre-release, but it may be unstable, is that there is now a custom agent for MAUI. 24:05.27 James And what's neat about this is it's very large, but there is actually like a WinForms agent, a WinUI agent, and now a Maui agent. 24:05.34 Frank Nice. Yeah. 24:17.08 James And I exclusively, when I'm doing WinUI development, use the WinUI one, and it is so good. And the Maui one, butter. 24:22.07 Frank Oh, nice. Nice. 24:24.54 James And what's great about it is that it gives it not just all the access to all the skills and the capabilities, it gives the guidance in which the team that created the thing 24:24.73 Frank Nice. 24:34.04 James like how to do it. So all that collection view stuff, all the accessibility, so all these things is really big. It's a big, big old, big old system prompt, but it's very, very nice. And you just get that. You turn it on. 24:45.72 James The superpower of this is when you combine that, with the CLI, because it now knows about the CLI, right? it Through the prompt. So it can do all these things, it can run all these stuff. 24:53.53 Frank Yeah, yeah. 24:56.44 James But the team went a little bit further, is the VS Code extension has a bunch of tools built in to like, actually, you don't have to use the CLI, ah you can just like boot a device, get the device list. But they built an MCP server, a model context protocol server, and an HTTP server on top of that, which is 25:10.14 Frank Good. 25:12.62 Frank Yeah. 25:16.98 James the Devflow MCP server for.NET MAUI. 25:19.99 Frank Dev flow. Yes. 25:21.19 James Devflow, it's a comprehensive testing, automation, and debugging toolkit for.NET MAUI. It provides an in-app, I'm reading the description, an in-app agent for visual tree inspection in element interaction. 25:33.34 James ah It includes the CLI. with 50 plus commands, a Blazor WebView CDP bridge, and an MCP server for AI agent integration. So DevFlow is a series of things. It includes the CLI, but you don't have to be using you know it. But for example, when you are using the CLI, it exposes a bunch of um DevFlow things like tree, which is like a visual tree, um a screenshot, starting the MCP server, starting the broker, which allows the agent to talk into your simulator or your device running. 26:05.61 Frank Mm-hmm. 26:10.44 James You can do element interaction. So tapping elements, filling in text, scrolling, basically playwright. um file storage access, um ah Blazor debugging tools, network monitoring and advanced um performance analysis tools, logging tools, and navigation tools, um platform information tools, ability to get preferences and setting preferences, ah doing recordings of interactions, 26:40.25 James sensor calibration, starting and stopping background jobs, setting themes to your application. 26:45.20 Frank Jeez. 26:46.81 James So you're like, like change the theme to dark and it just does it, right? 26:47.35 Frank Oh, Lord. Yeah. Yeah. yeah Mm-hmm. 26:51.67 James And it does all of this. So when you do this, you can say, let's implement this feature. And then you can say, and let's go ahead and test the functionality using the DevFlow MCP. 27:00.07 Frank Right. 27:01.39 James It will boot your application. It will walk through everything. And then it will test all the interactions, find things, take screenshots along the way, report back its status and self-fix itself in real time, which is kind of bananas. 27:17.05 Frank Fantastic, because this is what's needed. This is, I think people are, I like calling it closing the loop. So because normally you tell the ai implement this feature and it's like, I totally did. It's the most beautiful UI ever. And then you go check it out in the app and you're like, oh no this is terrible. And then you screenshot it and you try to find that file on your computer and try to drag that little screenshot into the little chat window. And you're like, no, look at this screenshot. It's terrible. And it's like, oh yeah, dude, that's terrible. So, like, you know, it's it's funny in the in the past, the the dev loop was waiting for the code to compile and then the app to run. That was the dev loop. The new dev loop is we're just testers now. So testing the app and then trying to describe to the AI what it did right and what it did wrong so it can go fix the thing. 28:06.68 Frank And this is the perfect case. um Every platform should have this. So it's it's great to see Maui embracing this new world and closing that loop so that you can just say, hey, take a look at that UI. 28:22.21 Frank Does that look good to you? And I'll be like, no, that does not look good. Maybe we should use Kimi 3.0. maybe Kimmy 3 will generate a better ui and do that kind of stuff. 28:28.85 James Maybe. 28:31.57 Frank So this is very exciting. My one little Frank, this is probably only a problem for me is I generally don't use Maui UIs. 28:42.19 Frank I generally do native UIs. And so this is making me very envious, very jealous because I want all this for my apps. 28:52.27 Frank But If you have a MAUI app, you should install this right now. You should be dev flowing. You should have all the dev flow stuff. It's kind of the classic thing of like you have to add a little bit of a nougat to your app because you run a tiny server in your app so that all this stuff can communicate with it. 29:07.72 James Yeah. Yeah. Yeah. 29:11.32 Frank and you know, there's a little bit of permissions there. Whatever. You can work around it. No big deal. um And you can just flag it all under debug. So none of this will get into your release builds or anything like that. I do want to mention that in 2010, I created Spy Touch, which did exactly all this kind of stuff. You know, I was predicting that in 15 years, AIs would be invented and we would need these kinds of tools. I was just ahead of time. 29:34.42 Frank Just have to say that. DevFlow, awesome. Great. Everyone install it because it's obviously required. In 2026, this kind of thing is required. 29:44.15 James Have to have it. Now, what's crazy, i remember Xamarin Live Player? 29:47.64 Frank Yeah, exactly. Exactly. 29:49.46 James That was the jam. 29:49.85 Frank Yeah. 29:51.19 James ah what's Here's the other closing of the loop that I didn't talk about here, but under tools in the Maui Sherpa app, there is a tool called App Inspector. 30:02.07 James Because you might be on your Mac and you're like, well, screenshots, visual tree, visualization, see my running app doing the thing. 30:02.08 Frank Yeah. 30:08.62 James How do I do that? I don't have Visual Studio 2026. you can connect with the Maui Devflow inspector, which will open up an entire UI, give you all of your tree, allow you to navigate around, do stuff, set properties, change things, hot reload, does all the things for you automatically. 30:24.45 James It's very, very nice. It'll auto reconnect and it gives you a whole starting guide. it's's It's very smooth. And this thing works. 30:30.81 Frank Yeah. Right. 30:31.15 James I've done it on Mac, Windows, iOS and Android. And and it's it's cool is that the agent, because of the agent skills and the agent custom agent that for Maui, is it knows about all the complexity. So it'll be like, oh, I see that you're running on Mac. 30:49.47 James Mac catalysts and because of that, you need to, I'm gonna check the info P list to make sure you have this property. I tried to connect, I couldn't, I'm gonna check this. On Android, it'd be like, oh, I see that I can't connect to it. You have to do an ADB reverse proxy because it's an Android emulator, not a simulator. 31:01.72 Frank Oh god. 31:03.10 James And it'll just do the ADB commands for you because the team has told it how to work. So like back in the day to do any of this stuff, you'd to run all these commands and do all this craziness, but sure enough, it's right there, which is very cool. 31:07.20 Frank Yeah. 31:15.03 Frank Worse, you had to read like six blog posts, most of which were six months out of date, and these kind of technologies move fast, so it's it's really nice that it's integrated. This is a nice combination of um skills and MCP servers, because I'm still skillless. 31:32.38 Frank Frank has no skills. 31:32.53 James Oh, 31:34.04 Frank um But what Frank has is MCP servers up the wall. I love MCP. 31:38.26 James oh yeah. 31:39.20 Frank I have tools everywhere. i got so many tools because I love tools. 31:42.55 James Tools on tools. Tools on tools, baby. 31:43.56 Frank Yeah. Tools that call tools that make tools. It's all happening. um And it's It's interesting that like you still need those tools. like Not everything can be done with skills. 31:55.28 Frank Because you see a lot of like the um the basic harnesses out there are like, do everything with skills. I'm like, no, you still kind of need to write MCP tools from time to time. 32:05.13 James Yeah. 32:05.31 Frank And this is a perfect case where like they can just have a tool called like launch app. I don't know what their tools actually are, but launch app, take screenshot, whatever. Those are the tools that you actually need. 32:15.87 Frank So very cool, very cool stuff. And it's nice to see it all nicely packaged. 32:21.56 James I should also mention that what's kind of crazy, this is like nothing to do with this, but they also integrated deeper into the.NET CLI and.NET 10. So you can just do.NET run. 32:30.31 Frank OK. 32:32.89 James And if it's a Maui project, it'll be like, oh, what do you want to run it on? 32:33.61 Frank Right. 32:36.37 James So it'll be like I want to run it on iOS. And it's like, cool. let me go look at your iOS simulators. It'll list all of your iOS simulators and say, where do you want to run it? It'll pop it up. 32:44.25 Frank Nice. 32:44.55 James So that's kind of cool. That's actually built into the.NET CLI and.NET Watch also works too. 32:49.27 Frank Yeah. 32:49.27 James So kind of cool there. 32:49.41 Frank Ah. 32:50.55 James um All these things. One last thing on.NET MAUI that just happened two days ago and that I'll call out is.NET Levin is taking a really pivotal change for.NET MAUI actually, which is um Preview 6 just released for.NET 11. 33:11.61 James This ah is the release in which the default runtime for all.NET MAUI apps is now changed. It is now officially the core CLR, the Common Language Runtime. 33:22.36 Frank Yeah. 33:22.51 James so mono Mono is officially gone. You can fall back of course, but in general, not officially gone. 33:27.21 Frank It's not officially gone. it's not the default. 33:30.29 James It's not the default. um So they've been.NET Watchworks, Trace, Counters. 33:36.76 Frank Yeah. 33:36.79 James um They're working on the native AOT integration. They got um iOS and Mac Catalyst apps that says are generally faster than Mono. Android is within 10% of startup and app size. 33:45.87 Frank Mm-hmm. 33:47.96 James So it's the the way forward basically that they're they're moving. 33:48.19 Frank Yeah. 33:53.21 Frank i I have mixed feelings because for 95% of the apps out there, this is fine. Like the core CLR is fantastic. um I believe my Mac apps are running with core CLR. 34:04.32 Frank It's a little tricky to figure out actually sometimes which runtime they're actually using. 34:07.90 James Yeah. 34:08.93 Frank um i am a tiny bit grumbly about the iOS side though, because one of my favorite features of the model runtime is getting the LLVM optimized compilation of our code. 34:23.19 Frank And the the native AOT, t the CoreJet, the RyuJet, whatever, all that stuff, good stuff, but they're not they're not insanity optimized focused the way LLVM is. And I've talked to people at Microsoft about it. They they always talk about app launch time and app size. I'm like, oh, those are wonderful, but what is your FPU throughput? Yeah. Like, how fast is the floating point code that you generate? Because that's what matters to my kinds of apps. 34:55.93 Frank And so I'm a little bit hesitant about the future. That's why i was making the distinguish that um they haven't removed the mono runtime yet, which is good. um Switching the default smart. 35:06.21 James Yeah. 35:06.94 Frank um Because, you know, pretty much all my apps, I will switch to core CLR because no big deal. But a couple of my apps are very performance sensitive. And I already get app reviews that say things like it makes my phone warm, it kills my battery. So performance still matters hugely to me. 35:25.14 Frank And so it's a little bit frustrating that um some people don't care about performance the way I do. um But ah this is this is a future I will have to tackle for a while. Thank goodness.NET 10 is LTS. um but um 35:42.01 James it can 35:42.04 Frank And they haven't removed... they Yeah, LTS means like six months in 2026. 35:46.92 James Yeah, in Maui world, yeah. yeah 35:49.62 Frank ah But the the fact is, like, as long as Xcode, as long as they're accepting x the builds that Xcode is building, whatever, it's all fine. 35:58.32 James Stuff, yeah. 36:01.43 James And you can use Maui Sherpa to manage all those X codes. 36:01.56 Frank um 36:04.63 Frank Yeah, exactly. ah So it's it's ah it's a brave move. We're all moving to core CLR. It's about time, honestly. Good. um But I am a little bit nervous about my loss of LLVM. 36:18.52 James see what happens. I'm excited. 36:19.90 Frank Yeah. 36:20.08 James I'm excited about things are progressing. You know, i think often we talk so much about AI and there's a lot of these core fundamentals, which I think is like a lot of my talk too, is that there's a lot of stuff just like built in that is available while you're coding and, and doing stuff that could just optimize your flow. 36:35.26 James Like the CLI, for example, or even this, the.NET CLI integrations and some of these other things are really great. So it's fun to take a step back and then, know, on occasion just like the core fundamental there. 36:46.65 James So a lot of that work is is happening. 36:47.65 Frank Yeah. Sure. 36:48.53 James And I'm excited to see it evolve and continue because obviously this will be the first go around where this the default. 36:48.61 Frank Yeah. 36:52.81 James It's been available to like trial and do stuff for a while, but um it'll only get better once more. If you don't make change the default, you'll never get all the feedback you need, right? 37:01.30 Frank Yeah, I think it's been around since like.NET 8. I think i don't it's it's been a while. 37:05.02 James think so. 37:06.53 Frank I feel like it's been an option for a while and it runs fine. 37:06.78 James In a while. Yeah. 37:09.89 Frank Like I have apps built on it running. yeah So I think everyone should switch to it um because, yeah, I don't think I think the poor team having to maintain two runtimes is kind of stressful for them. I think we can all do the team a favor by just switching over to the standard runtime that runs pretty much every.NET app out there now. So it's going to run fine on modern hardware. 37:35.50 James Yeah. All right. Well, that's going to do it. Mr. Frank Grug for this week's Merge Conflict. 37:37.82 Frank so system 37:39.73 James So until next time, I'm James Montemagno. 37:42.30 Frank And I'm Frank Kruger. Thanks for watching and listening. 37:45.91 James Peace.