.NET MAUI Community Standup | Introducing maui-labs
dotnet
0:04 [music] [music]
2:33 Voila.
2:33 There we are.
2:35 I was just trying to pull up the stream here on my other screen.
2:38 Cheers.
2:39 What's in that cup?
2:40 Is it Is it past 5:00 p.m.?
2:42 Coffee.
2:42 It's coffee.
2:43 Sure.
2:44 Coffee number three.
2:45 All right.
2:45 Uh it's 2:00.
2:49 [snorts]
2:49 Uh well, it's just 9:00 p.m.
2:50 Actually, David, I need to talk to you.
2:52 What time did you schedule this?
2:54 Scheduled it for the time that I saw on the Maui website.
3:02 [laughter]
3:01 That's in probably the wrong time.
3:04 Um [snorts] because I think we're an hour LATER THAN USUAL.
3:11 [laughter]
3:11 BUT I WAS CONFUSED BECAUSE it's always a fun two weeks, I think,
3:15 where the US sets the clock and we don't in Europe at least.
3:20 So, everything is an hour earlier, which is
3:24 [snorts] fine because now I get some more overlap.
3:26 I get to talk to a bunch of more people for a little bit longer.
3:29 But then also the meetings that get scheduled kind of like on Europe
3:32 time and US time suddenly overlap because the Europe times don't move,
3:36 the US times do move, and now we have overlap for two weeks.
3:40 Then our time changes.
3:41 It's a whole big mess.
3:43 It's fun.
3:43 Fun.
3:44 Um but here we are.
3:46 So, I was just not sure if that was
3:48 why the time shifted or whatever happened, but it's fine.
3:51 It's fine.
3:52 We're here.
3:53 We're having fun.
3:54 We can We can fix We can fix it.
3:55 We'll fix it in post.
3:57 We'll fix it.
3:57 Yeah.
3:58 You can watch this whenever you want.
4:00 Um from this point on whenever we're done.
4:02 Hey everyone, it is March April.
4:05 We're actually in April.
4:06 Is it April already?
4:07 Oh my goodness.
4:08 It's April.
4:09 Thankfully not We didn't We didn't fall on April Fool's Day.
4:13 So Ah, we did not.
4:15 We also did not come up with a good joke.
4:16 We should do that for next year.
4:18 Um Did you Did you fall for any good jokes?
4:22 No, you know, I didn't even Well, to my knowledge, didn't encounter any.
4:29 So Um I There was one, but to be fair, they were a little bit early.
4:33 They did it last week in the local news here
4:35 in the local place in the Netherlands where I am.
4:37 They announced that they were going to do speed checks with drones.
4:42 Um They were going to experiment with that.
4:44 So, I was like, "Okay, you know, seems plausible,
4:46 I guess." Um but then they came out with like,
4:49 "No, it was a joke." I'm like, "Oh, man." I totally fell for that one.
4:53 Um but otherwise, they're usually so obvious.
4:55 I You just told me that you had a um uh new Elgato toy.
5:01 Yes, yeah.
5:02 Also, they also built a Stream Deck,
5:04 and they came out with a Stream Deck that has a handle on it.
5:07 So, you could use it kind of like as a slot machine.
5:09 Okay, was that a That was a joke?
5:11 I didn't actually actually look to see what the handle did.
5:15 I just immediately was like, I have no use for that.
5:20 [laughter] Well, I did fall for one.
5:20 There we go.
5:21 Yeah.
5:21 There you go.
5:22 There you go.
5:22 You just found out.
5:24 Um yeah, but lots of things happening here in Maui land,
5:28 AI land, software development land.
5:29 There's never a dull moment at the moment.
5:33 Um Have you You've been to the MVP Summit, right?
5:36 So, that was exciting.
5:37 I was at the MVP Summit last week, which for the most part is NDA.
5:42 It's, you know, invite only.
5:45 Um if you are someone who has always wondered,
5:48 what does it take to become an MVP?
5:51 Gerald, do you know?
5:52 You were an MVP, right?
5:54 I were an MVP a long, long time ago.
5:56 Here behind Clippy, there's my MVP award.
5:58 You get a nice award.
5:59 You can see it there.
6:00 I never I never Oh, you never got one?
6:03 You're that old You haven't got your awards yet?
6:05 I got I got um [snorts] I don't know.
6:08 I slid in on the Xamarin train.
6:12 So, I was a Xamarin MVP, and they granted us in.
6:16 And when we came to the MVP Summit one year,
6:20 or maybe those two years back to back, they gave us a different color badge.
6:24 So, I we had this distinction of being MVPs, but not quite MVPs.
6:30 Uh and so, I can't remember.
6:31 Somebody might might remember in the in the chat.
6:34 What what color What color badge it was.
6:35 We We had a little tribe going.
6:38 It's a little bit of a sore spot because I went I So,
6:41 fun story, I went for example MVP, but I never got it.
6:44 And then they they got rid of that program.
6:47 Uh but instead, I became Microsoft MVP.
6:49 So, there you go.
6:50 Um If you're unaware what the hell we're talking about,
6:54 Microsoft MVP is an award that you get for kind of like your contributions
6:57 to um the .NET community or the community It can be bigger like It's It's,
7:03 you know, it's Microsoft MVP,
7:04 so it has to do something with Microsoft technology in some shape or form.
7:08 Um but your contributions to the community,
7:10 so that can be helping out on forums, um organizing events,
7:15 um doing lots of blog posts, doing sessions at conferences,
7:18 being out there on social media, helping us out with products, right?
7:21 Um I definitely have nominated MVPs
7:24 for um great contributions on Microsoft projects, open source projects.
7:29 Um and then, you know,
7:31 um it's kind of like the award that you get
7:33 for the past 12 months uh for your contributions over that period.
7:37 Then someone has to nominate you.
7:38 Can be a Microsoft employee or um uh another MVP.
7:43 And then you go kind of like through the process
7:45 and um they will tell you I I think they're they're making
7:49 some changes um and it's been a while since because you
7:52 can't be a Microsoft MVP and an employee at the same time.
7:54 So, whenever I joined Microsoft now almost seven years ago,
7:57 um they stripped me of my title.
7:59 Um so, I don't know how it how it Stripped you of your title.
8:05 So, unceremoniously.
8:06 I know.
8:07 They pulled Gerald aside.
8:09 Yeah.
8:09 And they're like, "Listen, Gerald." Yeah.
8:11 That that ash you're wearing Yeah.
8:13 It's mine.
8:17 [laughter]
8:16 It Well, actually, now that you mention it,
8:19 you're one of the people who always said,
8:21 "You cannot wear that jacket." I have this MVP
8:24 jacket [laughter] that is very nice for traveling.
8:27 Um because it has a pocket here
8:29 that fits all my important documents and everything.
8:31 So, I would like to wear that whenever I travel.
8:33 And whenever I travel, I meet David, and then he's like,
8:35 "You cannot wear the jacket anymore." So, you're one of the people that I know.
8:39 I'll I'll confess.
8:40 Since we're we're on a live stream,
8:42 I'll confess why I think you shouldn't wear the jacket.
8:46 Because it looks like you were about 50 lb heavier.
8:51 [laughter] Or you were anticipating growing
8:53 Now that there's a distance, you dare to tell me this?
8:55 Okay.
8:56 Or you were anticipating growing more when you sized it.
9:00 And it just It's It's a very unflattering jacket.
9:04 It doesn't show off your muscles.
9:06 It's Oh, thank you.
9:07 Thank you.
9:07 I've been working out lately.
9:08 I'm just watching out for you, man.
9:10 Just watching out.
9:10 Getting getting ready for summer.
9:11 All right.
9:12 Um so, yeah, you pulled up the website right here, mvp.microsoft.com.
9:15 That's where you can find all the information, or you can always ask one of us.
9:19 We know what it's all about.
9:20 One of the perks You get a couple of perks.
9:23 One of the perks is that you get invited
9:25 to the campus once a year to meet with the teams,
9:29 um talk with us directly, and um
9:35 [snorts] get some NDA information.
9:36 Yeah.
9:38 Cool.
9:39 You want to go through some links?
9:40 Are we ready for that?
9:41 Let's go through some Absolutely.
9:43 Yeah, yeah, yeah.
9:44 Um Okay, so today uh we we titled this What do we call it?
9:49 Introducing Maui Labs.
9:50 So Uh we'll get to that later.
9:54 Let's not give away Let's not give away the big deal right away.
9:57 although everybody's going to go look at it now.
9:59 Um but it it requires some talking through because there's some things there,
10:03 there's some things coming uh and we'll give you the whole story.
10:06 Um Mr.
10:08 Alan Ritchie uh is trying is trying
10:10 his very best to dominate the URL [laughter] list.
10:15 Uh he sent me a whole bunch.
10:18 And essentially uh he is as you probably
10:21 know if you saw last month's uh stand-up, I think we had him he and John on.
10:26 Isn't that Is that last month?
10:27 Yep.
10:27 Yep.
10:29 [snorts] Time is a blur.
10:29 Um and they showed all the amazing things they
10:32 were able to very very rapidly generate with AI.
10:36 Um and from platforms to tools and all kinds of cool stuff and so Alan
10:43 is just continuing all the things he's
10:45 ever dreamt of doing with his shiny libraries.
10:49 Um which I like shiny because it reminds me of Firefly.
10:53 If you are a Firefly fan, uh a browncoat, you know what I mean.
10:58 Uh I think it was Kaylee is the one that always would say shiny.
11:02 Um so cool stuff here.
11:05 Uh Windows support for uh Bluetooth things.
11:09 I know that people often come to us and say I need to do Bluetooth things.
11:14 What should I use?
11:15 Why don't you have it in the box?
11:17 And the answer we don't have it in the box is Alan told us not to.
11:23 [laughter] Um no, but but the the reality it's a complex space.
11:27 Um and uh which is one of the reasons people want us to put
11:30 in the box cuz it is so complicated and they want us to Yep.
11:33 to do all the things.
11:34 Um but it's something that Alan has worked in for a very very long time.
11:38 And so we typically recommend his Bluetooth solutions for that.
11:43 Um I have not myself looked at all the things here, but let's let's take a look.
11:48 So uh a scheduling calendar component.
11:52 Calendars are typically one of the more complicated controls you could imagine.
11:58 Absolutely.
11:58 I have myself back in the day
12:00 built three or four different calendar implementations
12:04 and uh there's no better time to do it than in the age of AI.
12:10 Have you ever built one of these?
12:12 I have uh not, no.
12:14 I was just thinking I always went to component
12:17 vendors for these things because you know, complex stuff.
12:19 Mhm.
12:22 Um so usually I could find whatever I
12:24 needed in in one of the control vendors ones.
12:26 Um but yeah, that's also one of the reasons, right?
12:28 Like and that's one of the let's let's just bring AI into the mix right away.
12:33 Um that's one of the cool things that um you can do with all of this, right?
12:36 Like I love our vendors.
12:38 I hope that they will do well for themselves.
12:40 Um but this is also a time where you have
12:42 AI at your disposal and you could just say, "Eh,
12:45 I can go for a control vendor and pay a lot of money for, you know,
12:47 a lot of support." That's probably still the best value that you get.
12:51 But also I can just have an attempt at building
12:53 this own custom control that does exactly what I want,
12:56 that I have all kind of control over.
12:58 Um and do it that way.
13:00 So you know, very different times.
13:02 But I've never attempted to build one myself, no.
13:05 This looks amazing.
13:05 I saw this came by today.
13:07 Um it looks really good.
13:09 Here, I'll I'll bring this up ad hoc in the moment.
13:11 Um Michael Stoneman is Just I want to close that.
13:15 Oh, whatever.
13:16 Um uh who runs Eight Bot uh based in Chicago is an MVP.
13:22 Uh been around a long time.
13:23 You're probably familiar with his work.
13:25 And uh he has taken on the challenge of picking
13:29 one component like every week or so and being like,
13:33 "I'm just going to AI this thing and redo it." And so he did a a PDF view here.
13:40 Mhm.
13:40 Which it looks like maybe this one's a a fork and he enhanced it a bit.
13:44 Um the one that uh he did this last week at MVP Summit.
13:49 Yeah, okay.
13:49 [clears throat] So this is on me.
13:51 So uh he's like, "Hey, okay, history lesson.
13:56 So Xamarin Forms started with list view, right?
13:59 Everybody used list view.
14:01 Um some of us loved it,
14:02 some of us felt like it was the the bug magnet of the entire framework.
14:07 Um and then so we're like, "Hey,
14:11 we're going to build collection view." Uh and collection view was uh intended
14:15 to be a drop-in replacement to do everything list view did and then more, right?
14:22 Um and this was this was back when we were doing Xamarin Forms.
14:26 I don't remember which version it was that we introduced it.
14:29 Um and it's like, "Look at all the list view I'm I'm telling stories now.
14:33 Look at all the list view thing all the bugs that we can
14:36 just get rid of and not have to worry about if we if
14:39 we did an amazing job with collection view." And then of course we
14:42 introduced collection view and it uh
14:45 repeated essentially what happened with list view.
14:47 It's just a complicated control.
14:49 And so it inherited its own set of bugs in addition
14:52 to list view bugs and we couldn't quite get rid of list view.
14:56 And so what did we do?
14:59 We made collection view two.
15:00 We made collection view two.
15:02 [laughter] Um Following Microsoft naming rules.
15:07 [laughter] So here's the thing.
15:09 If you live long enough for your product to become
15:13 somewhat successful and uh you can't just go change the stuff.
15:17 You can't just go re-platforming from the ground
15:19 up every every time you want to reboot.
15:22 So you got to carry things forward.
15:24 Um and so this is the reality of a uh rather
15:27 successful framework where you you do want to bring additional new value,
15:32 but you need to bring everybody along.
15:35 Um but Mr.
15:36 Stoneman is uh would love to see a collection view three.
15:40 Um unfortunately, Michael, you didn't provide me with any like Maybe it's
15:45 on a on a on a there's one branch.
15:47 Yep.
15:48 Yep.
15:48 We need some issues.
15:49 We need some stuff to work from.
15:50 Like what is it you want to see this thing do?
15:53 And then the challenge to me was and my responsibility here is
15:57 to utilize my my tokens uh as a Microsoft employee to do this work.
16:03 Um and I will gladly do it.
16:05 But y'all you know what?
16:08 It doesn't have to be all on Michael.
16:09 Here we go.
16:10 Here we go.
16:10 Let's put this in the chat.
16:12 Everybody, what is it that you want collection view to do?
16:16 Go file issues.
16:18 Be as specific as you can because I'm going to turn my agents
16:22 on this thing and um it's going to build what you tell it to build, okay?
16:27 So there you go.
16:29 Sound good?
16:30 Sound like fun?
16:31 Oh, it's all your responsibility.
16:33 I will say um there is another one, Nalu from uh LB Rock.
16:39 Yeah, Nalu.
16:40 L n a l u.
16:43 Um LB Rock 87, there he is right there.
16:46 Uh he has a somewhat of a suite of controls.
16:50 I still need to make some videos on it.
16:52 I don't know where he keeps it.
16:53 Is it this one?
16:54 The Oh, I guess so.
16:55 Yeah, yeah, yeah.
16:56 Yeah, I guess so.
16:57 Um and I think he has a pretty performant Oh, virtual scroll.
17:00 I think that's what he calls it.
17:01 See, he can come up with new names.
17:03 Um so um and he this that's one's like he uh is someone in the community.
17:08 He doesn't work for us,
17:09 but he's been super helpful and and super collaborative with us.
17:13 Um and he has some amazing controls right here.
17:16 Um and um one of them is a virtual scroll and he has
17:20 been responsible for a lot of the performance
17:23 fixes that went into Maui directly.
17:25 Um he's been helping us with that.
17:26 And um then he's building this for himself on the side um
17:30 as a um thing that you can use out there in the community.
17:33 Um also because he's the performance person um with performance in mind, right?
17:37 So um go check that out as well.
17:40 I think this is a uh interesting comment.
17:44 So collection view three,
17:46 just a prompt that that does the thing that I want it to do.
17:49 Basically is how I read that.
17:51 And this is something that I have been saying for for a while
17:56 uh to the team and to to others is uh it in the age
18:01 where AI is so capable uh and can do the things at the platform
18:07 level that I personally wouldn't have the depth of experience to do well.
18:13 [gasps and sighs] And I you know, if you look at collection view itself,
18:15 why why are these complex controls fraught with issues?
18:20 Um it's because they're trying to do everything for everybody, right?
18:23 But if you could just use a control to do the one thing you need it to do,
18:28 then that's the scope.
18:30 That's the scope of things that you're concerned about uh
18:32 and it's all that that code needs to execute and do.
18:36 Sure, that on you would take weeks of of effort, maybe months of effort.
18:42 Um but but for you and your your army of agents,
18:45 um rather rather straightforward, right?
18:49 Then then of course there's the question of testing
18:51 and maintenance and all those sorts of things.
18:52 I don't want to oversimplify that.
18:55 But yeah, I think it's a very realistic thing um that we should
18:59 all become more comfortable with that if what you get out of the box
19:04 with Maui doesn't really meet your needs or it hits a rough edge that uh
19:09 your app really depends on and that's not going to work out for you.
19:12 A, please file an issue and let's start our agents on But B,
19:18 uh yeah, sit put your agents to work.
19:20 Be like, "Hey, either work around it, patch it." Because we have so many
19:24 wonderful extensibility points with the handler architecture,
19:28 super easy for you to uh re you know,
19:32 if if the method or the property that implements something
19:36 in .NET Maui isn't what you need it to be,
19:40 you can s- just over override it.
19:44 That's how the handler architecture works.
19:46 Yep.
19:47 Um and one of the things I will
19:49 say actually Michael Stoneman's control earlier for the PDFU.
19:53 Like that uses Android bindings bindings to Android that did not exist.
19:59 They're included in the repository.
20:01 That was rocket science even to me and I work with the stuff daily.
20:05 But now I I made this control Rive which is kind
20:10 of like the a competitor to Lottie the animations nice animations library.
20:15 And forever I wanted to make those things
20:17 but I needed to look into like the platform
20:21 bindings blah blah super complicated and I never
20:23 found the time to kind of like do it.
20:25 But now I just pointed my engine to it and it's
20:27 like figure it out make the bindings and it did it.
20:30 So if you have like a native control or thing that you
20:32 want to use you can now just say figure it out.
20:35 I gave it I think we have at around
20:38 that time also open source the objective sharpie tool or whatever.
20:42 So I gave it that I gave it that documentation but I also gave it
20:45 the Mac iOS and the Android repositories because
20:49 that's where all the bindings come from right?
20:51 So I was like hey look at this thing look at these repos
20:54 do how to do it and it did it it figured it out.
21:00 An animation library with no videos.
21:04 Gerald?
21:05 I know.
21:06 I'm I'm disappointed too.
21:08 No but it's super awesome.
21:10 Like I feel like the the things that you always wanted to do
21:18 but you didn't have maybe the depth of knowledge or the time.
21:22 Like the whole cost value equation right now is completely different.
21:27 When when you have all of this at your disposal.
21:31 So [snorts] All right.
21:33 If I if I get on that soapbox we'll never get through.
21:35 Absolutely.
21:36 I was going to say we were we're digressing a little bit.
21:38 Yeah so he's got back to Allen's stuff.
21:42 Oh that order.
21:43 He's got a contact store for accessing device contacts.
21:48 That's cool and then link query support for it.
21:51 All right.
21:52 Um shell shinier.
21:57 He really leans in on the branding.
22:00 Um build permission MSBuild permissions oh interesting.
22:04 But I tell you what MSBuild is something that is a complex
22:07 thing but super powerful if you actually know how to leverage it.
22:11 This is actually we should we should talk to him and see if we
22:13 can get this in the actual project
22:15 because this is basically single project permissions.
22:18 Instead of having to go out to info.plist and Android manifest
22:22 you just put in the permission in your CSProj I can imagine
22:27 and just like your splash screen and your icon and it will
22:30 add everything that you need for the actual permissions in the manifest.
22:36 Did you is this the first time you've seen this or have you seen this before?
22:39 This is the first time I'm seeing this.
22:40 And you just grok that right off the bat man.
22:42 You're really smart.
22:44 Oh thank you.
22:45 Thank you.
22:45 Finally someone.
22:48 Tune games.
22:48 All right tell me about this one.
22:50 This looks like uh music library pick songs by category play short clips.
22:58 Oh well he told me this is inspired by his music integration his shiny.music.
23:03 Which I think can get songs from your devices song library.
23:08 I didn't even know he told me about this but I didn't
23:10 even know there were APIs to do that but apparently there are.
23:14 And this looks like a vibe coded app around that.
23:18 What gave that away?
23:20 Maybe the gazillion emojis I don't know.
23:25 [laughter] I have one rule that I put at the top of all
23:29 of my instructions when it's creating content and that's no emojis.
23:33 Followed swiftly by no end dashes.
23:38 [laughter] [sighs] Ooh a UI automated testing for .NET Maui with DevFlow.
23:45 So this will play into some of the things
23:47 we'll we'll show off here maybe in just a minute.
23:50 I say maybe because we didn't actually coordinate a lot
23:52 of what we're going to actually show and demo.
23:55 So Gerald I hope you have plans after I'm done.
24:00 Sure.
24:02 But if you are not using Maui DevFlow you are missing out.
24:07 This will I don't know what numbers to put
24:10 on this but like it will revolutionize your agentic development workflow.
24:17 It gives powers to your CLI or your even coming
24:24 to coming soon to your VS code DevKit extension for Maui.
24:30 It'll give super powers to that as well.
24:33 All those automation things that you thought were only for test for testing like
24:38 as a separate thing totally applies to your to your agentic dev loop now.
24:46 Let's see I also wanted to call attention to of course
24:48 the wonderful work that's happening in .NET 11 previews.
24:52 Preview 2 shipped last month.
24:53 Preview 3 comes out like in 2 weeks?
24:57 Cuz I think second you typically second Tuesday of the month so
25:01 that would be in 2 weeks or a week and a half.
25:05 So look for that.
25:07 Preview 4 is going to be a big one.
25:09 That's just a teaser.
25:10 Teaser preview 4 is going to be a big one
25:12 but preview 2 is going to be be great too.
25:14 And like 70 features and changes unique to .NET 11.
25:18 That's awesome.
25:19 The volume of work happening right now in the Maui repo like
25:22 if we go look at the Maui repo which we're in there.
25:25 Look at this.
25:26 Pull requests down to 303 oh it just dropped 338.
25:31 Um for reference not very long ago it was over 600.
25:37 Yeah 620 or something I don't know.
25:39 Like like just a few short weeks ago.
25:42 Um and if we look at the actual I think I can just do this.
25:45 Let me just do this cuz it's not secret.
25:48 Um we've got a dashboard of PR stats.
25:53 Look at that.
25:54 Look at that March number.
25:56 293 issues closed typically under 100.
26:01 Typically that is just bananas.
26:05 And this one actually I don't is that is that do
26:08 you need to log in for that one because I that one's still behind a login yes.
26:11 Okay because I shared one in your teams and actually
26:14 let me put let me post it in the chat.
26:17 That one is public.
26:19 What is this peppers?
26:21 Yeah.
26:21 The agentic developer one.
26:23 Yeah there you can basically see links you sent
26:26 me that didn't make it in the Yeah I know.
26:29 This is very public.
26:31 Let me see if I can put it in the chat for the watchers here.
26:36 Yeah this is great because it does go across all repos.
26:39 That number I just showed previously was just the slash Maui.
26:43 this is exactly and this is like not all
26:46 of .NET but at least everything related to Maui.
26:49 So also the supporting ones Mac iOS Android.
26:53 I think even the sample repositories but not a lot a whole lot happens there.
26:58 Um So yeah this is you can just see
27:00 how it how it's going up and it's it's amazing.
27:03 So you can really drill into all of this.
27:06 Um Jacob here in the chat last month 670 PRs open PRs was the peak.
27:14 So we came a long way from that.
27:18 Cuz the because the chat is so small in my little little teleprompter thingy.
27:24 Oh you can't see who is you.
27:25 I I thought you were
27:26 I can I can I can read it.
27:27 It's just that it's like it's I said this comment is so interesting.
27:30 That was Shane.
27:31 Like did you did you see that?
27:34 [laughter] Anyway.
27:36 Um it's a little bit unorganized this month.
27:38 It's fine.
27:39 It's fine.
27:40 Um It's a live stream.
27:42 It's a live stream.
27:43 That's what's supposed to happen.
27:45 All right couple more things real quick.
27:47 Um Skiasharp has a new landing page.
27:50 Matthew Leibowitz going crazy with the AI.
27:54 This guy No emojis.
27:56 This has to be light and dark mode hosted off of GitHub.
28:02 Bananas.
28:03 It has a full interactive gallery.
28:07 What?
28:09 Look at this.
28:11 Oh my goodness.
28:12 That's amazing.
28:13 Um I mean it's got yeah it's got the shaders.
28:18 It's got the image decoders.
28:21 Whatever the decoder does.
28:22 Oh look at that.
28:24 Um it's got a GIF player.
28:28 [laughter] [sighs] Oh boy.
28:31 And a Lottie player.
28:32 There it is.
28:33 It's not right but there it is.
28:36 All right.
28:37 There you go.
28:38 See you just need to vibe code that up for your Rive deal.
28:42 We this one is I think powered by Skiasharp available for Maui today.
28:47 Yes it is.
28:48 Yeah.
28:49 Yeah you can use all of this stuff in Maui today.
28:51 What's a vertex mesh?
28:53 Oh look at that.
28:54 Oh look at that.
28:56 Oh wow.
28:57 Oh wow.
28:59 Should we leave you alone?
29:01 You ever have that play in your head?
29:02 I I think that's stops happening.
29:04 Like I don't TikTok but I do have like Instagram reels sometimes.
29:09 And like it seemed like for a long
29:11 time you would always just have that audio clip.
29:15 You know what I'm talking about?
29:18 Yeah I think that's just you but that's fine.
29:21 That's fine.
29:21 Did I mention this was coffee number three?
29:27 [laughter] Um .NET skills repo.
29:28 If you are I mean everybody right?
29:31 You're you're using your skills with your agents
29:34 and your MCPs and all the things right?
29:37 [snorts] Um Gerald very kindly merged some new skills that I contributed.
29:44 Are they in here?
29:45 Were are here?
29:46 Yeah, they're here.
29:47 Down in Maui land.
29:49 So, uh these are new and improved uh based on my repo Maui skills.
29:55 So, I would I would recommend these.
29:58 There is a Maui doctor in here, which uh is cool.
30:02 There's, you know, help with app life cycle.
30:05 If you are looking to uh continue with the collection view
30:08 and just continue to improve that, nice skill here for that.
30:12 One, two, or three, whichever you want.
30:13 One, two, or three.
30:14 Yeah, you have to tell it which one.
30:17 Um theming, show navigation, safe area.
30:20 So, more to come, but uh you know,
30:22 the the there's a process to get into this repo,
30:25 so the skills have to be better and have to go through evaluations
30:29 and all these sorts of things to make sure they make a meaningful difference.
30:32 As opposed to the ones in my repo where I'm just like,
30:35 "Yolo, whatever skill." You tell me, did it help?
30:40 Yep.
30:40 Um cool.
30:42 I did share this earlier.
30:44 Uh just shipped to you.
30:46 You are the first folks, people.
30:50 You are You are my premium subscribers.
30:53 You're my This has never been seen anywhere
30:56 else before ever in the history of the world.
30:59 You're the first to get it.
31:00 World premiere.
31:02 Quarter two of 2026 survey.
31:06 Definitely want to hear how are things going
31:08 for you in the past, let's go 60 days.
31:11 That's kind of the time box on this.
31:13 I do ask questions about Come on, zoom.
31:17 Oh, you can do it.
31:18 It's not zooming.
31:19 Zoom, zoom, zoom.
31:20 Dang it.
31:21 Uh I ask about your product experience uh that you're what
31:24 versions and platforms you are currently targeting and want to target.
31:28 There's some There's some Easter eggs in there.
31:31 Um what tools you're using, AI infused questions, and then uh quick wrap-up.
31:37 So, it's a sh- it's, you know,
31:38 it's not the shortest survey you've ever seen in your life,
31:41 um but all very, very valuable information
31:44 that will determine the future of Gerald's work.
31:48 Oh, I'm glad you said Gerald's work.
31:51 But my job, is it Should I Please mention
31:55 my name in there and I will do it, please.
31:57 [laughter] I did not, you know, I didn't ask,
32:00 "Who do you want to do these things?" I Maybe I should do that next time.
32:03 Who Who's your favorite Maui character?
32:06 Uh-huh.
32:07 Uh-huh.
32:08 Sounds good.
32:08 I'll do that.
32:09 Then I guess that leans into Well, I guess no,
32:11 Maui is a character in What is the What is the the tune?
32:15 Yeah.
32:16 It It's um Yeah, I think it's Moana?
32:19 Moana, yeah.
32:20 But I think the first one has a different Yeah.
32:24 There's a real-life version coming with uh The Rock, Dwayne Johnson.
32:29 I know there was a lot to do about that because he wasn't perfect.
32:31 I think it was something with the hair, which he clearly doesn't have.
32:35 Um so, I don't know.
32:36 Hair can be acquired.
32:38 Yeah, that's very true.
32:40 I da da da da So, you stopped sharing,
32:43 so I think that means uh you want me Unless you wanted
32:46 to get me set up with this new Maui Labs CLI bit.
32:50 Um We'll see.
32:53 We'll see what happens.
32:54 You tell me.
32:55 At least I can zoom, so that's fine.
32:58 Um Maui Labs, that was what we were going to introduce here on the stream.
33:02 Again, well, I want to say you're the first, but that's not really true.
33:05 Um there's still only 13 stars on this, so you can,
33:09 you know, you can be in here before 100.
33:11 Have I starred?
33:13 Um I don't know, I did.
33:14 And I wasn't the first, which annoys me because I set up this repo.
33:17 Uh but I think it was Jonathan Peppers.
33:20 He beat me to it.
33:21 So, I need to talk to him if he can maybe unstar and star again.
33:24 See, there is and then Oh, you did, sorry.
33:27 Oh, good.
33:28 Good, good.
33:29 Um Alan Ritchie now in the chat also starred, so thank you.
33:33 I see um couple hundred people watching the stream,
33:36 so I expect couple hundred extra stars right after this.
33:40 Oh, 15.
33:41 We're going up.
33:41 Yes.
33:42 Good.
33:43 So, uh Maui Labs is something that we came
33:45 up with um a little bit because of AI, but also not exclusively because of AI.
33:52 We just had a bunch of ideas um usually supported by AI um that, you know,
33:59 we didn't want to immediately put into the official Maui repo,
34:03 um but we still want to kind of like say,
34:05 "Hey, this is actually built by our team.
34:08 Um this is something that we're considering,
34:10 that we're looking into." Um And that we for some things is just we want to ship
34:15 a little bit faster um than the monthly cadence
34:19 that we have right now with Maui and service releases, et cetera, et cetera.
34:23 So, Maui Labs was born, and one of the first things that we put in there was
34:28 um what we alluded to a little bit earlier, the Maui dev flow.
34:32 So, if you've been watching last month's stream,
34:34 and I don't know, John was everywhere last month's stream,
34:37 and he did a stream on his own podcast YouTube channel with Alan um gone.net.
34:43 Um so, go find all those links,
34:46 and that's a really amazing solution that we'll try
34:49 to set it up in a little bit, maybe.
34:50 Um but you can see all of that here.
34:52 Um that's the first thing we merged that we wanted to be like, "Hey,
34:55 we need to make this a little bit more
34:57 of an official product because this is super cool,
34:59 and that will help you um as a Maui developer, someone who works with Maui,
35:04 to be more successful with AI-driven development as well.
35:08 Um so, let's dive into that in a little bit.
35:10 And then the other thing that I merged earlier this week
35:12 or last week is a Maui CLI because I don't know about you,
35:18 but um what we are seeing and what you will see
35:21 us doing is come out with a lot of more CLI tools.
35:25 Um and we put that under the official Maui CLI,
35:28 so we now have Maui doctor, for instance, um Maui other things.
35:33 Maui dev flow is now a sub command instead of its own CLI.
35:37 Um Because CLI works perfectly with um AI agents, right?
35:43 AI agents can very easily issue commands in the terminal, be like, "Hey,
35:47 Maui this, Maui that." They can very easily read
35:49 the output from those things and work with that.
35:52 Instead of like, you know, all the Maui things,
35:55 the mobile cross-development things that are typically super hard, right?
35:59 Like it has to look into a simulator,
36:01 maybe get a screenshot that eats a lot of context,
36:03 then figure out what it says on that screenshot, actually do things.
36:07 Um so, you know, our space is not the easiest
36:10 or most compatible space to um work with for the LLMs,
36:13 for the copilots, for the AI solutions.
36:16 Um so, we are trying to make that much and much easier,
36:20 um and you will find a lot of that in this repository.
36:23 So, right now merged, we'll look um into these a little bit more in-depth,
36:28 um the CLI and dev flow.
36:30 But But trigger warning, I don't know, surprise, surprised.
36:34 If we go look at the um pull request, actually Actually,
36:39 I'll look at the pull request whenever we hit 20 stars.
36:41 So.
36:43 [laughter] Oh, man, you are a professional streamer.
36:46 Oh my gosh.
36:48 Pull request reveal at 20 stars.
36:50 Now, um you can see there's a lot going on here,
36:54 um but one of the things that was opened here 19.
36:58 under the pressure.
37:00 Oh, there it is, all the way at the bottom.
37:01 19.
37:02 Add Linux support.
37:04 What?
37:06 Um so, that's one of the things I think
37:08 John talked about that on last month's stream as well.
37:11 Um This is again something that we didn't really have time for, that cost
37:17 a lot of um effort to actually do for Let's be honest,
37:22 not that big of an audience, right?
37:24 Like our biggest audience is still the platforms that we're supporting now.
37:27 Um although, you know,
37:28 there is definitely um a amount of people asking for Linux support,
37:32 as well as I don't know, I think John showed off like Blazor back end,
37:37 so you can build Maui apps based on Blazor suddenly, uh TUI, right?
37:42 Terminal UI apps.
37:43 Um I saw from Avalonia the other day,
37:46 they're going back and creating I don't know if
37:48 it was April 1 April Fools' joke or not.
37:51 Um they they said it wasn't um for like 16-bit um Windows applications,
37:56 so they're going crazy.
37:58 Um but, you know, now we can suddenly uh use all
38:01 these AI credits to come up with these Linux back ends.
38:04 And it's not just because um to provide you with a Linux
38:09 back end and you can build Linux apps with um .NET Maui now,
38:13 uh but the other thing is that allows us uh to do
38:15 it like this is to find gaps in our own product,
38:20 in Maui the product, um to make this possible, right?
38:23 Also for other partners like Avalonia, like Uno,
38:27 that want to plug into these things maybe as well.
38:29 Um and this makes it a little bit easier to experiment on that, find how we
38:33 can plug that in, um to um our product and um then do it that way.
38:44 And then we can see what we need to open
38:45 up to um open that up for other partners as well.
38:48 So, that's something that's going on here as well.
38:51 So, basically, like, you know, in the broadest sense of the word,
38:53 Maui Labs, um we can do all these crazy cool things here.
38:59 Have you played with it yet?
39:01 Uh Have I played with the Linux?
39:02 Yeah, I'm running on Linux.
39:04 You're running on Linux, but have you played with Maui Labs, with the CLI?
39:08 I think you played with dev flow, right?
39:09 That's That's one I use dev [clears throat] flow in everything.
39:13 As a matter of fact, probably the number one instruction that I give
39:17 to my agents is "Why aren't you using dev flow?
39:21 You need to be using dev flow.
39:22 You should always be using dev flow.
39:23 Add this to your memory.
39:24 Add this to your first memory.
39:26 Add this as your primary core instruction." No emojis, no m dash, use dev flow.
39:32 Use dev flow.
39:32 That is That is the goal, yes.
39:34 That's pretty much.
39:35 Um yeah, because this is like super interesting stuff, right?
39:39 Because this will allow, like I just said, like, "Hey,
39:41 the mobile space is super hard like everything
39:44 web based or whatever is just text right so
39:47 that is super easy to figure out for LLM's
39:50 for co-pilots for whatever our space with mobile
39:53 devices it's not even running on this device most
39:56 of the time so that's super hard to figure
39:58 out with Maui dev flow you can give how did you put it in your blog David?
40:04 hands and feet hands fingers eyes feet you can you can knit yeah yeah
40:15 [laughter] keep it keep it okay you can because the way
40:19 this works is it will inject an HP agent basically
40:23 inside of your app so that will only be
40:25 at debug right only for your debug builds because we don't
40:28 want to put that inside of your production builds so
40:30 we're doing that only for your debug builds and that will
40:33 allow this this solution to send you information about
40:37 the app from inside the app kind of like a Trojan
40:39 horse we should have mentioned it that I don't know
40:41 wait that that kind of like is that similar thing
40:43 viruses Trojan horses I guess so so what this does
40:48 is it can send like the visual tree right which
40:51 is super helpful whenever the LLM the LLM cannot actually
40:54 see it it will trick you into believing that it's
40:58 an actual person that sits next to you and says
41:00 like oh now I see now I know but it doesn't
41:02 actually see don't forget that and it can see
41:05 through a visual tree that you give it through screenshots
41:10 that you give it and this tool makes it very
41:12 easy to do that then of course it includes an MCP
41:15 server right so that is like a standardized protocol
41:20 for LLM's to invoke tools get all kinds of resources pre-built
41:26 with prompts whatever in this case it's mostly the tools
41:29 so MCP server plug that in and now suddenly your co-pilot
41:33 knows how to do all these things and it will
41:35 automatically pick up on all these things right here platform
41:38 drivers for iOS Android Mac Catalyst and Linux pure already
41:42 came prepared and you can do all of that and then
41:45 some network monitoring and performance profiling so um hey we
41:52 go look at the PR's go look at the PR's
41:55 no oh stars 21 okay we can look at the PR's
41:59 now good did you spin up all your bots?
42:02 comment MVU framework oh my goodness I'm okay comment
42:08 MVU so this is rebooted on top of .net 11
42:14 I think I think I took that tip and inspired
42:19 by all the things that have happened over the years
42:21 in Swift UI land with like especially the styling system
42:25 there and all the wonderful like API innovation that I
42:30 feel like Maui reactor has been doing and I'm like
42:34 and the state you know we looked at I looked
42:36 at all the state stuff because I know that common
42:38 actually had kind of some issues with that and I'm
42:40 like what would it look like in a world where
42:45 nothing is impossible what would it look like for Comet
42:50 to adopt all that stuff and so this is
42:53 the evolution of that so not perfect everything doesn't work
43:01 but I think it's actually much more feature complete than
43:03 when it was left to gather dust I don't know what
43:07 was it like four or five years ago I
43:09 don't know something like that yeah yeah so a lot
43:13 of people have been I I think it kind
43:15 of died down now but a lot of people have been
43:17 asking for this and I'm I'm very curious to kind
43:19 of like see again like you know another kind
43:23 of like upside of this together with the surveys like
43:25 hey this is here now David is trying to climb
43:29 in the charts with his 182,000 lines that he's trying
43:32 to add here you can plug this in you can
43:36 use this right now do not go to production
43:39 with it because it's not officially supported but you can kick
43:42 the tires and you can see what it does and if
43:45 you're like yeah this is this is amazing this is
43:46 exactly what you need and we see those things pop
43:49 up in our surveys who knows what might happen right?
43:53 I think the the main thing if I could pontificate
43:57 for a second where in the past we would have
44:00 to go out and find the interest find the product
44:03 market value before we could really get over the hump
44:08 or you know like the tipping point for investment
44:11 into something like there were some level of investment into something
44:15 so that we could learn enough and then we would
44:18 over you know add investment to it and by that I
44:21 mean like you know funding and people and resources etc
44:26 now we can kind of spin up just about anything
44:30 like this with minimal investment and now it's out there
44:37 it's in your hands you tell us is this worth
44:40 even having anymore is this where you actually want
44:44 to see the product go with any of these things
44:47 and so Maui labs is that place for us to say
44:50 hey we can build pretty much anything but should we?
44:55 should we?
44:57 you tell us you tell us by using it you tell us
45:00 by starring it you tell us with your feedback with your survey responses
45:06 and that is that is kind of the new feedback loop equation for how
45:10 we proceed with things it's not
45:13 a lot of upfront asking questions and investigating
45:16 and trying to get you to tell us the right incantation before we
45:19 decide it's worth building something now we can just spin up some bots build
45:25 the thing you tell us you tell us you know frankly just because
45:30 you see something show up here does not mean that we think that it
45:35 is absolutely the thing that we should be working on frankly I kind
45:38 of think Comet is like five years too late but you tell us
45:45 you tell us so one thing that caught my eye here is you
45:48 already mentioned that for the official kind
45:51 of like .net skills repository we decided
45:55 to also add that kind of like infrastructure here which is super simple
45:59 I've been working on that a little bit today so only 13 files
46:03 and most of that is I don't even know not that interesting because you
46:09 can just add this kind of like to your repository which is a little
46:12 blurb of JSON with some metadata
46:14 and suddenly your repository is now a marketplace
46:18 um and you can plug that into your co-pilot and now you can
46:21 use it to kind of like get the plugins get the skills so
46:24 again kind of like the skills
46:26 that David already mentioned like on his repository
46:29 then Jonathan had some Shane had some I had some and they were
46:33 all different versions and different what not so we were like hey these are
46:36 this is all good stuff we need to put this in one place
46:39 and one of them kind of like the official place is going to be
46:42 like .net skills but again we want to iterate a little bit over
46:45 it and go a little bit faster and we can do that here
46:48 so whenever this is merged we'll we'll talk about it so don't worry
46:53 but then you can also do kind of like hey slash it's probably somewhere
46:56 in here like hey plugin marketplace at .net Maui labs and then install
47:02 kind of like the plugins as you kind of like need them so that's
47:05 coming as well and then that kind of like works all together right
47:08 like that will have the dev flow skills that will have general Maui development
47:12 that will have all kinds of things that will help with all
47:16 of this um let's look at some CLI things there is not a whole
47:23 lot in there I think I need to actually improve this because everything
47:28 on here for the time being we're trying to figure this thing out
47:31 as we go as well is released as a preview version so it
47:35 has like the preview suffix on there and I think with this command you'll
47:41 actually need to do dash dash pre-release on here so I have this what
47:47 I found funny is that last login was weed oh yeah okay I'm
47:51 a nerd it's fine and what you can do now but I think
47:54 it won't find this and maybe I have it installed already that's the other
47:58 thing I was trying to but I think you need to do pre-release
48:04 or actually and it's already installed see so you need to do the actual
48:08 dash dash pre-release David is opening a PR for that right now
48:12 as I'm talking right here and whenever you have that you can do Maui
48:17 and then we can get all this information Maui development tools we do not
48:20 have a fancy ASCII kind of like cool graphic animation too so that's something
48:26 that Shane's going to PR while I'm talking about this but you know
48:31 we'll get there and now you can do all these kind of cool
48:33 things Maui doctor right do we remember what was it Maui it was
48:39 Maui doctor was it Maui doctor there you go started all the doctoring
48:43 in the .net space so we have that back now and you can
48:48 get this information .net SDK install .net 11 preview one I'm behind I need
48:52 preview two Maui workload not installed
48:54 for .net 11 that probably makes sense JDK
48:57 one is too old what's JDK one is that even a thing Android SDK
49:02 SDK manager the rest is all good status unhealthy right is there anything
49:06 else that Maui doctor can do this just follows kind of like all
49:10 the conventions that you are used to from .net tools right from other Maui
49:16 check yeah you're right Maui check oh that's right yes thank you Matthew see
49:20 I I'm not crazy I feel so bad so there's more coming here
49:26 I think this is kind of like our minimum set to to kind
49:29 of like get started here to get you all these things and then I
49:33 think the other thing is like hey we have some information about Maui device.
49:40 So you can get a list of devices
49:42 device list probably only for Android right now.
49:46 No devices found.
49:47 Well, there you go.
49:50 What is Maui version do?
49:51 That's interesting to Maui dev tools runtime etc.
49:55 Etc.
49:55 So we're starting with this minimum set and and I
49:57 think Maui Android is one that you can do.
50:00 So you can manage all of your Android things.
50:03 I saw a PR for the iOS stuff is there as well in there.
50:06 So you can manage all of your Android
50:08 and iOS SDKs and the emulators and the simulators etc.
50:12 Etc.
50:13 Again, so that this makes it very manageable
50:16 for llms and co-pilots to work with as well.
50:20 Now the really cool thing is the Maui devflow.
50:22 I think you've seen it a couple of times,
50:24 but let's see if we can just get it quickly up and running.
50:28 And what I can do here.
50:30 So we were talking about this and this was Oh,
50:33 so I'm writing a blog post about this.
50:34 That's what what triggered this and um
50:38 that that really indicates how spoiled we are especially David.
50:43 And I was writing a blog post that would list kind of like hey,
50:46 this is how you should set up devflow at this package reference
50:49 blah blah blah and David's like why don't you just ask co-pilot?
50:53 Why don't you just do like hey,
50:54 install devflow which is nice for us because you know,
50:58 it's no secret I think that we get unlimited
51:01 tokens and I do everything everything with co-pilot now.
51:05 But you know, that might not be the case for you.
51:06 So you can save some premium requests by maybe
51:09 doing some manual work by setting these things up, right?
51:12 So you can absolutely do that and all the we'll make sure that there's docs.
51:17 It will be here in the readme,
51:19 but you can definitely also absolutely ask co-pilot, right?
51:23 So you can just do I don't know co-pilot yolo.
51:27 I still do I'm still yolo mode.
51:28 I'm sorry.
51:30 Use at your own discretion, right?
51:32 This yolo gives you kind of like everything from everything
51:36 and it will just have all the permissions and all the things.
51:38 There is some guard rails hopefully built in.
51:41 I've never had it done anything
51:43 weird like deleting production databases or anything.
51:47 I did have it um sometimes post comments where I'm like or like hey,
51:54 I'm registered to main.
51:55 I'm like no no no.
51:56 Please don't.
51:57 That was not that was not what I wanted.
51:59 But that's fine.
52:00 So co-pilot see they have the nice ASCII art right here.
52:03 We really need some of that for this.
52:05 And what you can do then is basically just say hey in a subfolder here
52:11 create a new Maui app and have it use Maui devflow that you can find here.
52:22 I'm being a little bit um um concrete
52:27 here with where to find it because you know,
52:29 this is something that's kind of like relatively new.
52:33 It might find the version from John.
52:36 It was on his repository first.
52:38 So here I'm like hey, you know,
52:40 here's the thing and I don't have any skills right now,
52:42 but you know, you can set it up this way as well.
52:45 Actually the Maui CLI I'm not sure if I have the latest version then.
52:51 Was that merged?
52:52 Was that released?
52:53 Do I have Maui devflow in here?
52:55 Yeah, I think I did that.
52:56 What you can do here Maui devflow has a bunch of more content and what
53:01 you can do here is actually let's do .NET new Maui -n blah blah.
53:08 Go into blah blah.
53:11 It's not working.
53:13 Yeah, that's because the workloads are not there for .NET 11.
53:15 That's fine.
53:16 And what you can do then is Maui devflow update skills.
53:21 So we already had a little bit of that and what is it update skill not skills.
53:27 And it will look at the repository with like hey,
53:29 these are the skills I know from this repository that you can pull in.
53:33 So we kind of like have that marketplace already,
53:35 but we're changing that a little bit,
53:36 but you can pull them in like this right now and I think this also has
53:41 a skill that kind of like sets up devflow for you on your Maui project as well.
53:45 So you can just pull those in.
53:47 That will make it a little bit easier.
53:49 The way I did it, it will figure it out as well because that's how smart AI is,
53:53 but you can definitely do it this way as well and have the skill
53:56 and then it burns a little less tokens because it knows how to do it.
54:00 So done created devflow demo with Maui devflow integrated here
54:04 is what was set up added this thing added that thing.
54:09 And it's now building .NET 10 because the Android workload was not installed.
54:13 It figured that out automatically as well.
54:17 Once running you can use the CLI to interact with the app.
54:19 See so it sees all these things just by feeding
54:21 it the repository and all the things that are going there.
54:25 So if I go out of this before I forget let me remove
54:29 that blah blah and go into what was it Maui Oh, it's dev flow demo.
54:39 Yep, there we go and cat the devflow demo CS proj.
54:46 Then it should have brought in the devflow agent, right?
54:50 So that's right there.
54:52 That injects the agent into the application.
54:55 And then anything else in here?
54:57 I think that's about it.
54:59 And then what you want to set up is the Maui program that's CS.
55:04 And here we go.
55:05 Builder add Maui devflow agent, right?
55:07 Only for debug again I'll do it only for debug.
55:11 I'm not sure if we build anything in agent to also only do it in debug.
55:14 I would imagine so.
55:16 But you know, then you're very very sure that it doesn't end up in your release
55:19 builds because that will open up like an HTTP server that can tell you know,
55:24 some information about your application.
55:26 And interact with it because that's one of the cool things it can do.
55:28 Oh, it's actually done.
55:29 I was I was kind of like thrown off because
55:31 of this thing here that it was actually still doing something.
55:35 And what you can do now I think it might Did it what did it do for version?
55:43 Oh, it did .NET 10 Android Windows.
55:47 Okay.
55:48 Let's run this on the iOS simulator.
55:55 iPhone 17 Pro with iOS 26.
56:01 Doesn't really matter.
56:02 I'm being very specific here.
56:04 And click around in it.
56:08 Do something interesting because this is a demo.
56:14 I'm not sure if it's going to do it in time because a build
56:17 might take a little bit then because my environment is not super set up.
56:20 I'm not sure it's going to find out.
56:22 But find iPhone 17 Pro simulator is going to figure it out.
56:26 It's going to try and launch it on it.
56:28 It's already booted.
56:29 Oh, there you go.
56:29 Did I already have one?
56:31 And it's going to try and run it and build it on that thing.
56:34 And what's really cool is that this is definitely I've been vibe
56:37 coding here a little app on the side um through our cool solution
56:44 for this that's called poly pilot that can manage all of these terminal
56:47 sessions in a nice UI which is actually built with .NET Maui as well.
56:51 And then I can manage all my sessions.
56:52 So on the side I'm I've been feeding that a little bit of prompts.
56:55 What is actually really [clears throat] cool is
56:58 that my device is set up for wireless debugging.
57:03 So what I can do is to say to it hey,
57:05 deploy to my device wherever I'm in in the house.
57:08 So I'll just fire off a prompt that I'm like oh, I'm going to get some coffee.
57:15 And it go through Wi-Fi, right?
57:16 So I'll just carry my phone and then I make sure it's
57:18 kind of like unlocked and it will be like it will come
57:20 up with my new app and then I can actually use poly
57:24 pilot from my device as well to feed it a new prompt.
57:26 Deploy to my actual device.
57:28 It's I'm living in the year 3000.
57:31 It's really amazing.
57:32 So now it's actually going to install the Maui iOS workload.
57:36 So this is this is probably not going to work in the short time that we have,
57:40 but find last week's stream.
57:43 John has done a done a great job at demoing there.
57:46 There will probably be more demos on my channel as well
57:51 because this is this is really a solution that we really
57:53 want to push for which is really amazing really helpful
57:56 with the AI development and I think you already mentioned it David.
58:00 This is something that's going to be powered in the VS code extension as well.
58:06 So Do I have something open?
58:09 Actually I do.
58:12 Where we have a little bit of a test version here.
58:17 And you can see like hey, the Maui devflow MCP is set up.
58:19 This might be a little bit small.
58:20 Can I zoom this?
58:21 Does that zoom here?
58:22 And here you can see kind of like hey,
58:23 the Maui devflow MCP that I showed off a little bit earlier.
58:26 So that has all these tools for a screenshot for HTML
58:30 source because it can also work with Blazer web views, right?
58:32 Connectivity is it connected?
58:34 Yes or no.
58:35 Device information.
58:37 I think there is even there are even APIs in here
58:40 which is really cool to set properties on elements without changing code.
58:47 So that's kind of like your hot reload, but it doesn't change code.
58:49 So it's a little bit more dangerous than hot reload, but you can be like hey,
58:53 change the color of this thing for me and it will do that at runtime
58:56 inject that in your app because there's a little agent in it running in there.
59:00 And you can kind of like try out
59:01 there what things look like without restarting your session.
59:05 You will have to remember to tell co-pilot like hey,
59:08 also actually apply this in code or do that yourself,
59:11 but you know, it's stuff that you can do.
59:14 Scroll so it can interact with your app secure storage sensors.
59:18 It can do all these crazy cool things.
59:20 And then here in the .NET Maui
59:22 extension we're also building some tools that will
59:25 work with all of this AI stuff as well and more of that is coming.
59:30 And that will then work nicely together with the whole dev
59:33 flow thing so that you have this full really cool experience.
59:39 Elevated privilege.
59:40 I I launched it with Yolo.
59:42 What's going on?
59:43 [laughter] Um It's installed.
59:45 Continue.
59:45 Let's see what happens.
59:47 All right.
59:48 David, did you have any thoughts about what you saw just here?
59:50 Did you set it up?
59:52 I have uh I've been working on setting up.
59:54 So, I just rebooted my machine before we started the live stream.
59:58 And uh I kind of need to go troubleshoot my .NET install.
1:00:02 Oh, no.
1:00:03 Like it's there.
1:00:04 I think what do we have going on in the Maui Labs?
1:00:06 Do we have any pins or global JSON in there or something?
1:00:10 Uh that's a good I think there's a global JSON.
1:00:14 Do do do do do right here.
1:00:15 Maui Labs because 10 105.
1:00:20 So, I don't have that version I think is the problem.
1:00:23 Um because when I was in that when I was in that folder,
1:00:26 I was trying to install the tool and I'm like, why isn't this working?
1:00:30 Wait.
1:00:30 Wait.
1:00:30 Wait.
1:00:30 That's that's what's happening here.
1:00:32 Wait.
1:00:32 Wait.
1:00:32 Wait.
1:00:32 Wait.
1:00:33 Um .NET new Wait.
1:00:36 Let's do .NET Yeah, Matthew's been in the chat saying you
1:00:38 should not install SDKs right before you demo.
1:00:41 I did not.
1:00:42 The problem is though what will happen is that now this was targeting .NET 10.
1:00:51 .NET 10.
1:00:53 Uh and I installed .NET 11.
1:00:55 So, it will try to build my .NET 10 solution with .NET
1:00:58 11 but on .NET 11 I do not have the workloads installed yet.
1:01:02 So, what I should have done is .NET new global JSON.
1:01:06 You know, you could do that, right?
1:01:07 SDK version is the version that I have installed.
1:01:11 It will do that and now I can say to Copilot done.
1:01:15 It's installed now.
1:01:16 Try again.
1:01:17 I'm really really sure.
1:01:18 But now it will use the .NET 10 version for which
1:01:21 the workloads are installed and now everything will be happy.
1:01:23 Still no workloads.
1:01:24 All right.
1:01:25 End the stream.
1:01:25 I don't know what's happening.
1:01:30 This is awesome.
1:01:31 It's still looking at .NET 11.
1:01:32 So, it's Anyway.
1:01:36 Anyway.
1:01:37 Um this will work.
1:01:37 There are cool demos.
1:01:39 I just did not prepare this properly.
1:01:41 Um trust us.
1:01:42 It's it's working.
1:01:43 It's working.
1:01:44 Yeah.
1:01:44 But I think you know, the exciting thing is is that uh all this stuff you know,
1:01:48 we're taking uh taking an intent an intentional approach with it
1:01:53 by putting it into the .NET org in the Maui Labs repo.
1:01:58 Um TLDR um this stuff is experimental unsupported but we're using
1:02:05 many pieces of it internally all the time like dev flow.
1:02:10 Um we're using the CLI.
1:02:12 And uh and then all of our experimental stuff like the Mac OS uh Linux.
1:02:19 Yes, there is a web back end uh that has not been added yet.
1:02:23 Comments in there.
1:02:25 All the other things I don't Is there something
1:02:27 else in there that I didn't already just list?
1:02:29 Uh no plans but uh nothing
1:02:33 Like there's tons of stuff and so um Next PR review at 50 50 stars?
1:02:40 There's a lot of Pinocchios in there.
1:02:41 Should any of them become real boys?
1:02:44 I think that is the question.
1:02:46 Nice.
1:02:46 Or real children.
1:02:48 Yes.
1:02:49 Um You [snorts] let us know.
1:02:51 Survey link is in the comments.
1:02:53 It's in the URL list which I guess I could find
1:02:58 [snorts] the URL list again and put that back in the chat.
1:03:02 There.
1:03:03 One last time.
1:03:04 Please.
1:03:05 Please.
1:03:05 Please.
1:03:06 Let us know what you think.
1:03:10 We're excited.
1:03:10 I'm waiting with baited breath.
1:03:12 I'm literally watching the SurveyMonkey right now.
1:03:15 [laughter] I have an agent to monitor it
1:03:19 and tell me the moment anybody says anything interesting.
1:03:23 No.
1:03:23 I'm sorry.
1:03:23 Are you trying to be me with the stars right now?
1:03:25 Are you trying to materialize these responses right here?
1:03:30 Maybe.
1:03:31 I'm trying to learn from the best.
1:03:32 I don't I don't have a plaque.
1:03:34 Is there a is actually I can't see because
1:03:36 my teleprompter thing is so small I can't see.
1:03:39 You have like a plaque, right?
1:03:40 Your YouTube special plaque.
1:03:43 Ah.
1:03:44 That's pretty impressive.
1:03:45 I don't I don't know how much that cost you uh to get all those followers.
1:03:51 But it's absolutely insane.
1:03:52 You didn't even have to spin off like a coffee
1:03:54 channel and like diversify to get your numbers up.
1:04:00 You just had to be you.
1:04:02 You just have to be me.
1:04:02 Okay.
1:04:03 Okay.
1:04:03 It's we're we're still here.
1:04:05 This is by the way the app that I'm live coding
1:04:07 here on the side um which has to do with events.
1:04:13 I was going to say event management but it's more like [snorts] event agenda.
1:04:17 So, whenever you come to a Maui day,
1:04:18 we're planning to put this in there and I'm hoping to um
1:04:22 show that to other events as well and they will pick it up.
1:04:24 But it's actually you know, I did nothing.
1:04:27 I was just talking here.
1:04:29 Spun up the iOS simulator.
1:04:30 It's coming up with our Maui dev flow demo.
1:04:32 I don't know how impressive that app's going to be if
1:04:34 it's just going to be like the file new Maui app.
1:04:37 Um but I gave it the instruction I think
1:04:40 to do something interesting and click around in it.
1:04:42 You can see my hands here.
1:04:43 Nothing nothing else here.
1:04:46 [laughter] Uh oh, there you go.
1:04:46 There you go.
1:04:48 It's coming.
1:04:51 Yes, it's just a hello world app.
1:04:52 That's fine.
1:04:53 Is it going to actually click for us?
1:04:55 Is it going to do a dance?
1:04:56 Is it going to be amazing?
1:04:59 I'm so excited.
1:05:00 You never know what's going to happen with AI, right?
1:05:01 It's not deterministic.
1:05:02 It could could You know, I I have noticed in my experience sometimes uh
1:05:06 it spends a little more time thinking than I think is required.
1:05:10 Um and then other times it's like click click bang bang transition.
1:05:14 Take all the screenshots.
1:05:15 Boom.
1:05:16 Done.
1:05:17 Yep.
1:05:18 That's definitely my Maybe we need to give it more of a pep talk.
1:05:22 Uh [laughter] Uh now we're just waiting.
1:05:28 Something going to happen.
1:05:29 No one knows.
1:05:30 Uh you know, I was while we're waiting um I was having a a meeting right before
1:05:34 this and they were demoing some new software that uh
1:05:38 our new power app that we need to use.
1:05:41 And I was looking at this power app and the only
1:05:43 thing I could think the whole time was but can my agent [laughter]
1:05:49 Like I'm not saying I'm trying to get out of clicking
1:05:51 buttons and and pulling drop downs and all the things.
1:05:55 I am literally just thinking to myself all
1:05:57 of my workflows are now CLI based agentic.
1:06:03 Yep.
1:06:03 Do I This is This feels like so yesterday.
1:06:08 Yeah.
1:06:09 I know.
1:06:11 Um Yeah, I don't know how long this is going to take.
1:06:16 It's um AI equivalent to social anxiety.
1:06:21 That's funny.
1:06:23 Typically let me find the right port.
1:06:25 Let me check if the Maui CLI tool is installed or installed if not.
1:06:28 See, it's it's figuring out things.
1:06:30 And this is uh Maui CLI is installed.
1:06:32 Fully launched.
1:06:33 Here we go.
1:06:33 Yeah.
1:06:34 What what processor are you running this on?
1:06:36 Somebody was asking.
1:06:37 Sorry.
1:06:38 What type of CPU?
1:06:39 Oh, no.
1:06:40 This is an M1.
1:06:41 So, this is ancient, man.
1:06:44 Um this is this is an M1.
1:06:46 So, it's not super fast to begin with.
1:06:48 Um But yeah, it's it's still figuring it out
1:06:52 and I have a ton of stuff open here as well.
1:06:54 So, that doesn't probably help.
1:06:56 And you haven't applied the latest update yet.
1:06:58 Oh, man.
1:07:00 Update.
1:07:00 I can see the full visual tree.
1:07:02 See?
1:07:02 And again, I'm not doing anything.
1:07:03 Oh, taking screenshot before interactions.
1:07:06 Okay.
1:07:06 So, it's going to take a screenshot now.
1:07:09 Um you can see where it goes, right?
1:07:11 I could pull it up if I wanted to.
1:07:13 Um screenshot before.
1:07:14 Then it's hopefully going to click a button
1:07:15 or do a thing and then it's going to See?
1:07:17 It's going to find click me.
1:07:19 Maui dev flow Maui interact tap.
1:07:21 So, you can do all that Click.
1:07:23 I didn't do anything.
1:07:24 I didn't do anything.
1:07:25 My mouse was over there.
1:07:26 Um so, you can see it it figures out like, hey, what I want to do.
1:07:30 Click me.
1:07:30 And you can This is just CLI commands that you can see fly by here, right?
1:07:34 Oh, it's going to tap four more times.
1:07:35 There.
1:07:36 I didn't do anything.
1:07:37 Um and you So, you can do that manually.
1:07:39 You can wrap this in your UI tests if that's what you want, right?
1:07:42 You can use it for that, too.
1:07:44 Let's change the UI live.
1:07:45 Oh my goodness.
1:07:46 It's it's wild now.
1:07:47 It's we've we've done something.
1:07:49 Um It's making decisions on its own.
1:07:51 It's self-aware.
1:07:53 Oh, no.
1:07:54 Right here on stream.
1:07:55 Um so, I don't know.
1:07:57 I I think I said this is a demo so do something fun.
1:08:00 Um so, it's trying to work through some things here.
1:08:03 Um says five times.
1:08:05 Oh, let's set the property to value dev flow is magic.
1:08:08 Well, at least it's not you know, it states a normal.
1:08:11 That's fine.
1:08:12 Um I do have a feeling that the set
1:08:15 property is not working great at least for this setup.
1:08:18 So, maybe we need to look into that one.
1:08:21 Um but yeah, you can see this is this is just
1:08:23 amazing stuff um that you can do here and we're building this.
1:08:28 We're building And you know, sometimes it's like watching paint
1:08:30 dry but sometimes it's actually super fast and [clears throat]
1:08:34 I don't know about about you and your your lowly M1 but Sorry.
1:08:40 Um and your MVP jacket.
1:08:42 But I have [laughter] uh I I I typically have four or five tabs open.
1:08:47 And if I am I'm usually the bottleneck
1:08:50 because they're all ready to do work for me.
1:08:52 Um and so I've got all those CLIs open and on this other
1:08:56 screen over here I've got four or five simulators going.
1:09:00 And the and the This is this is the sweet thing about dev flow.
1:09:04 It will use different ports and keep track of each of those different simulators
1:09:09 so it doesn't get confused and it can be doing work on all of them.
1:09:13 So, I can have multiple apps or the same
1:09:16 app with multiple like work trees and tasks happening
1:09:20 and it will be automating and doing end-to-end testing
1:09:23 and all the things and it I'm the bottleneck.
1:09:26 I have to keep track of them to make sure that I'm
1:09:28 moving them on to the next task or something like that.
1:09:31 So, this is This is what was promised years ago.
1:09:35 My dog's freaking out now cuz FedEx just pulled up.
1:09:38 We've we've established that my Mac is just an M1.
1:09:42 My other bottleneck is disk space.
1:09:44 I got a couple of repositories and if
1:09:45 they're have to do with like Maui or whatever, they tend to grow very fast.
1:09:50 So, then you know, I'll run out of disk
1:09:52 space because it's doing things all over the place.
1:09:55 Um Yeah, it's trying to set the text, but it's not really figuring it out
1:10:01 because something's not working for some reason.
1:10:03 So, we need to look into that.
1:10:05 But yeah, you can see like this is amazing stuff.
1:10:07 This is this is what you can use.
1:10:09 And you know, if you give it the tools, if you give it the skills,
1:10:12 AI can pretty much figure things out on its own.
1:10:14 So, that's really really cool.
1:10:16 Much more to come from this repository.
1:10:19 So, make sure to star it.
1:10:22 [snorts] Yeah, what are we up to?
1:10:22 Before we close out, what's the 23 23.
1:10:25 Well, I mean, we're up from what was it?
1:10:27 12?
1:10:27 13?
1:10:28 So.
1:10:29 All right.
1:10:30 Not too bad.
1:10:31 But we need more.
1:10:32 We need more.
1:10:33 What did I do?
1:10:34 Oh, there we go.
1:10:35 What What happened?
1:10:36 Yeah, 23.
1:10:38 Uh-oh, there was an error while loading.
1:10:45 [laughter] Please reload the page.
1:10:47 I should take a screenshot of this.
1:10:48 That's hilarious.
1:10:53 All right, cool.
1:10:54 I think that is all we have for you this month.
1:10:58 Um which hopefully Was it not enough?
1:11:00 Was it not enough?
1:11:02 I don't know.
1:11:02 I I I feel this demo was kind of like, I know.
1:11:06 I know.
1:11:06 I just wanted the demo to be like, oh oh oh no, wait.
1:11:10 Oh, now it's saying let me do the big finale.
1:11:11 Oh no, wait.
1:11:12 Okay.
1:11:12 Okay.
1:11:13 Okay, we're going to end the stream right right.
1:11:14 Let me do the big finale.
1:11:15 Tap the button a bunch more times.
1:11:17 Take a screenshot and start screen recording.
1:11:20 Oh my goodness.
1:11:21 Here, clicked 15 times.
1:11:25 Here's a recap of what we did, created, queried the device info.
1:11:30 You Here Here's the device info.
1:11:32 You can You can just see that.
1:11:33 Inspect the live visual tree.
1:11:35 Uh actually, just give me the live visual tree right now in a fancy overview.
1:11:47 All driven entirely from the terminal via Maui DevTools.
1:11:50 No manual interaction with the simulator needed.
1:11:52 See?
1:11:53 Co-pilot's got my back.
1:11:55 I didn't do anything.
1:11:57 [laughter] Taking current screenshot.
1:11:58 Shouldn't need a screenshot for this.
1:12:00 It should be able to give me Oh, there we go.
1:12:03 Skill visual explainer.
1:12:04 We got a skill loaded.
1:12:08 CSS pattern, etc.
1:12:10 etc.
1:12:10 I'm going to build a Gerald narrator.
1:12:13 And it's just going to watch the the CLI
1:12:16 chat and give me the get the highlights.
1:12:19 Mhm.
1:12:20 Mhm.
1:12:21 Not that I don't That sounded bad.
1:12:23 It's not I'm not trying to replace [laughter] [gasps] Hey, that's fine.
1:12:27 You can replace me.
1:12:28 Trying to free you up for other tasks.
1:12:29 Oh, there you go.
1:12:31 There you go.
1:12:34 Oh, live visual tree.
1:12:35 I use Oh, what is it doing now?
1:12:37 Let me build a beautiful HTML page showing the live Maui visual tree.
1:12:41 Oh my goodness, what's it doing?
1:12:42 It's what Gerald does when he doesn't want to go to the next meeting.
1:12:46 Yeah.
1:12:48 [laughter] Forget the next meeting.
1:12:49 What's happening?
1:12:53 Now I want to know.
1:12:54 Now you want to know.
1:12:57 Yeah, what's what's good topics?
1:12:59 What So, people in the chat, what do you want to see for next month?
1:13:02 Because every first Thursday of the month, this time or you know,
1:13:06 maybe an hour earlier, maybe an hour later,
1:13:08 depends on where David gets his time from.
1:13:11 This is going to be the stream.
1:13:12 So, the next one's going to be in May.
1:13:13 It's going to be May.
1:13:16 Um What do you want to see?
1:13:17 More AI, less AI?
1:13:19 More Maui, less Maui?
1:13:23 Let us know.
1:13:24 Put it in the survey while you're in there.
1:13:27 All right, this is going to take too long.
1:13:29 Let's just end it.
1:13:30 Let's end it.
1:13:30 It's fine.
1:13:31 We're overtime already.
1:13:33 Good.
1:13:34 David, when are we going to see you again?
1:13:35 Actually in May because there's going to be a Maui day in May in Krakow
1:13:40 in Poland together with the update conference that's going to be there as well.
1:13:43 So, that's where I'll see David again.
1:13:47 And there are still tickets for the Maui days.
1:13:48 So, go to mauidays.net.
1:13:50 Get your tickets if you want to go to Krakow,
1:13:52 Poland and you want to meet us in person.
1:13:55 We'll be there to talk about all the things that you want us to talk about.
1:13:58 We're not that impressive in person, but it will be fun to see you.
1:14:01 Yeah, absolutely.
1:14:02 That's what we do.
1:14:03 That's why we do it.
1:14:04 That's what we're for.
1:14:05 All right, thanks so much for watching.
1:14:07 See you in Krakow, Poland or for the next Maui community standup
1:14:12 and in the meantime somewhere online on the repos starting the Maui Labs repo.
1:14:16 All right.
1:14:18 See you, David, on the next meeting.
1:14:19 All right, are you hitting the button?
1:14:20 Am I hitting the button?
1:14:21 I'm hitting the button.
1:14:22 I'm hitting the button.
1:14:23 Ciao.