.NET MAUI Community Standup | Introducing maui-labs

.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.

Study with Looplines Download Captions Watch on YouTube