Speaker 1: 00:09 [inaudible]. Speaker 2: 00:13 Welcome back everyone to the Xamarin podcast, keeping you up to date with the waitlist and greatest and mobile development for Xamarin developers covering the world of xamarin.net Azure and more. I'm Matt Soucoup and I'm James Montemagno. How's it going buddy? It's going well. I'm exhausted. James exhausted. Was it a big 4th of July? So after a week you're still Kinda, well, something else happened this week. A little little conference that we were at. Oh, what's that? What happened? Well, the Xamarin developer summit happened. It's happening right now actually if you're listening to this on Friday, it's like we're at the conference recording the podcast, right? Well it's kind of over for me cause I gave my talk on Thursday. So it's was like, that's the most stressful part of it. So I feel pretty good about analysis, just mingling with everyone, with all the attendees, networking, just having a lot of fun. Speaker 2: 00:59 But yesterday we also announced the most biggest news ever in the Xamarin world. We did, or was it? I didn't because I, we had a keynote. It was myself. Uh, Maddie was there. David was there, what did we announced? I don't even know this crazy, crazy thing called hot [inaudible] hot reload. That's right for xamarinforms. That's right. For Xamarin forms now. I was petitioning the entire time that hot would have an exclamation point right after it. So it'd have to be hot or reload, but Kinda got overruled there. Actually, I'd never even mentioned it. So I probably should have. So maybe after this it will be, but I reloaded though is the greatest thing ever as far as I'm concerned. I've been using it now for, we had the internal preview of it so we could dog food it for a little bit. And um, essentially is you pull your app to a device, to the simulator, to the emulator, make changes to your XAML and they magically appear yeah. Speaker 2: 01:51 On device John Simulator, just as you would hope, right? Yeah. As you would, as you would expect. I mean, so your interdev whoop now has changed from seconds to milliseconds. Yeah. It's super duper Nice. And you're right. The thing about the XAML hot relow that's so different than, you know, there's a lot of different community. Cool, amazing packages out there. I'm like, we super love the community building all these unique things that do unique things in their own right. You know, uh, all different tools that are out there. But the, the XAML ha reload is can be part of visual studio. It's already just going to be bundled in and it works over the debug bridge. So there's no other networking, there's no code modifications that you need. There's no new get packages. You just hit debug and you're hot reloading. It's there at your hot reloading. And one of the things I really like about it is that it's resilient. I forget the term that we're using for rude, rude. It lets you do rude edits so you can type in ms types, like you type in stack layout and correctly misspell it. It's not going to bomb your apoe. Yeah. It's just gonna resiliently just keep Speaker 3: 03:00 on working and um, till you fix it t fix your, your typo in your code and away you go again. So it's, it's resilient. It doesn't bomb your app and it just keeps on working. That's a cool, cool feature. As far as I'm concerned. Yeah, it does those little squeak too. So it's going to tell you that you spelled StackLayout incorrect or rad or this resource doesn't exist and this works across your entire application. So I was working on an application, I was a refactoring the styles of my like buttons and labels, putting those in the app, resources, making modifications there. I'd hit save it automatically uploads and, and everything is working, adding new styles. So these are things that didn't even exist, uh, in it. And you're, and it's nice like you said that you just make edits, you hit save and it's there, it's there, it's hot, the top rock and it works with uh, any third party library. Speaker 3: 03:50 Any package if you're using MVVM, all your state is maintained a works on visual studio 20, 19 and visual studio 2019 for Mac format. Yeah, that's where I was to using it. And it works perfectly with the Mac and you mentioned real quickly is um, it maintained state, which is awesome. Yeah. And now it's not publicly available just yet. We announced that we have a private preview. Everyone here at Dev summit. Uh, it's getting like priority first, first dibs on it, but sign up for the private preview. We'll be rolling it out, uh, as time goes on. But it's, it's pretty spectacular. Yeah, very, very excited for it. Now I was also on stage and I got to talk about some of the really cool things that we're doing in the world of android and just kind of the native bits and pieces that we're putting together. Speaker 3: 04:34 So the first thing, there's some things that are available almost today, 16 to I think pre-vis four is out, I want to say, but there are two new features that people have been really dying for. And the first is jet pack slash android x support. So do you know about android x and jet packs? Fill me in on android x and jets packs as I do not know about those. They're kind of one in the same thing. Um, jet packs, the, the, there's also like android components and things. Uh, what Google did is they said we have all these Andrew's support libraries and we want to be able to rev on them. Eat more easily. So instead of having just 10 packages, they have like a hundred packages, all doing different things, doing different, smaller bits and pieces and they all have different version numbers and they're no longer tied to our release of android or compat libraries, things like that. Speaker 3: 05:22 So your card view is a separate package from your recycler view. Different from just very small little segments. So, um, you have all sorts of them and obviously like the team is Oregon really hard on only binding them, but billing tooling in because you can imagine with android support libraries, you might have an app that has dependencies like Facebook that hasn't migrated to android acts, new new get libraries. And how is that going to work? How do you have both your old co support libraries and your new android x libraries? Uh, uh, in it. So the team, um, the development team, we had a John Dick on, um, two a month and a half ago on the Danette community stand up talking about how the team did this. But what they end up doing is you add this sort of magical migration package and it will alert you and say, Hey, here's all the libraries you're using from the old support. Speaker 3: 06:12 Here's all the new android x ones you need to install. So it tells what guides you through the migration process. And then also if you're using dependencies, um, that require, they require older support libraries, they basically at compile time, um, forward the new android x libraries to the old versions. So for instance, if you're using a Hap, a v seven app compat for Xamarin forms, but you install the android x version, you'll have both new gets installed and it definitely says app v seven support. But when you're at runtime and you go over the watch window, it will say android ax. Like they forward all the things for you automatically. So this way for the time being, as old people migrate all their libraries and you get packages to android x, all your stuff will continue to work. Oh, that's, that's nice. So android x has nothing to do with android p or android Q. It's android like express or something like that. Speaker 3: 07:12 Android acts, yet it's a very confusing name, uh, in general. So that's out there. Okay. Other big things that happened. Um, um, we have this new mode that's available to all Xamarin developers, no matter if you're in community pro or enterprise called startup tracing. Okay. So I'm sure you're aware on Ios we do a full ahead of time compilation. Yup. Uh, well we do have like AOT on Android, it's an enterprise feature, but AOT, you know, requires a longer compilation. It also, um, can definitely increase or decrease your startup performance, things like that. But it also can create really big apps cause your AOT and all your code. And there's app size limits on android of a hundred megs. So a lot of people have used that in our enterprise tier. There's that. But, um, startup tracing is something different. It's sort of, um, it's, it's, it's, it has to do with AOT, but not at the same time. Speaker 3: 08:08 So startup tracing is a new mode, like I said, available all Xamarin developers available in 16. Dot. Two of visual studio 2019 to checkbox. You check a check box. And what the teams have done is they sort of pre profiled, uh, android applications within without Xamarin forms. And then when you compile it basically puts it into this special, you know, git hybrid ish magical mode that says, hey, I know and I've optimized all of the bits that you need to start your application running. So with this does instead of like a cold boot, it's like a hot boot, right as I'm going to put it in my mind. So normally when you boot you have to git everything. What would be someone's like this like, hey, we know all of your dependencies that you're going to need. So that means on like a file, new Xamarin forms app. Speaker 3: 08:58 Um, with all the dependencies of the support packages, the start up time, like on an android emulator that we were running went from three seconds down to 1.5. It's twice as fast with a half is fast, half as fast. So with the check box and then it only really increases the app size by a few megs and send off like 10 to 20, 30 megs with like a full AOT process. So it's super duper cool. Everyone should give startup tracing a try. To me it's a default option. I am maybe the default inside of there, um, or maybe that'll come down the road, but it's super awesome. And then the last thing kind of adds on to all those. You have libraries or optimizing your run time, then you're packaging up your application and um, yeah, Google introduced android app bundles, uh, which allows you to kind of compile your app and give it to Google and then they break your app and do a bunch of little packs, you know, self-contained packages on the fly. Speaker 3: 09:50 So if I have a device that's running X86 and you're on arm 64 and I'm on an older arm device and I'm in French and you're an English, you submit your fat package, if you will, your mega package, um, to Google and they on demand create an APK specific to a user's device. Oh yeah. So instead of you having to figure out everything, they just do it all for you. And now that's going to be supported. Individual Studio 20 1916. Dot. Three or three on the Mac. You know the version numbers is divided by two, right? For Mac. Yeah. So and that's, that's a lot of android stuff, but stuff that developers have been, um, you know, listening to developers giving feedback, I think it's cool to see like the, not only the runtime but the packaging of the applications of course go there too. Speaker 3: 10:36 Well. So that's a lot of amazing updates that have come up for android and a lot of, a lot of the inner devil loop stuff to make it a lot faster. But we also have ios 13 preview support and I'm not sure we have all these new android updates, but are any of them as cool as the dark mode support an ios 13? I Dunno, I don't think they are. No, I think or you know, signed in with apple just right. Right. So James Are you one that actually goes out and puts these voids in greatest preview bits on your machines? Uh, I used to be, uh, I usually have a a two max. I have one dedicated to Beta summers as I'm, I like, we like to call them and that means you're going to be updating to the latest catalog Catalina and the latest x code and all that stuff. Speaker 3: 11:21 If you are on latest edge you can get it. Um, you know, had the conference upcoming. So I didn't want to do anything but it's there. Yeah, I used to be when I had a real junk job as I like to think about it, I used to get paid to create apps for customers. I would have to look forward to and do that. Now I don't go there so much anymore just because one, I got rid of my machine that I put this stuff on the latest and greatest preview bits. And so I don't want to ruin my main development machine. However that mean you shouldn't try it and we have the ability to go and do it. So, um, we have a great blog posts out there, which I will link to in the show notes where our good friend pierce goes over and how to do it, actually, how to even install everything as well. Speaker 3: 12:07 So if you wanted to use dark mode and iPad o s which really is a part of ios 13, but it's different, um, go ahead and do it. It looks great. It looks a lot of fun and you know, get a headstart and make sure all your apps work for it before you, um, before it's too late, before it actually comes out to September. And it's not too bad to go through the process. You know, I think anyone, especially a, even me, I have like a, always a separate like kind of like separate machine to do it that way. Don't mess up my main environment. But even here on my surface book, I have visual studio 2017. I have 16. Dot. One 16. Dot. Two. And then I also have our internal like dog food beta. So I literally have four versions of visuals studio on this machine. Speaker 3: 12:51 Uh, which is kind of crazy. The thing with the magazine needed a o s upgrade, right? That's a little bit more, right. But what's new in the essentials worlds, James? Anything? Uh, any new operating systems? Yeah, so, so you know, obviously ios 13 is coming out. This includes iPad. Oh Wes. It also includes watch o s and t v U s new versions too. And in the world of Xamarin essentials we released one dot two, which added a bunch of new capabilities to do file sharing, email attachments and launching of file. So if you had a pdf, you can say open this pdf and it would open in the pdf viewer, which is something that people have wanted for a long time. Also include a tons of very community contributions and bug fixes and feedback, things that we've iterated on. But we heard some feedback that, hey, you know, I'm building yes and Ios app for my iPad or from my phone. Speaker 3: 13:42 But I also might have a TV app or a watch app and it'd be nice to use some of these APIs. So officially now, Xamarin essentials version one. Dot. Three Beta supports, watch us and Tbos. Nice. Now, how's it going to work for some of the API APIs that aren't there? Great question. So we call these platforms limited API platform support. So in our Wiki page we have platform support and it'll tell you if it's officially stable. Support it if it's a Beta, if it's community supported or by another company, or if it's a supported but limited API surface. And that's what it is. Your right watch. O s and t v U s they support maybe half of the half or so of the API APIs that are available in there. The biggest ones people would want to use are probably secure storage and preferences because you can use, um, group names and share preferences between your Wacho ass app and your tier, you know, um, ios application. Speaker 3: 14:43 So those are the bigger ones that are in there. But a lot of the sensors, those all work on the watch, not on the TV. Obviously there's no sensors in the TV. But, um, what will happen is if you try to use that API on a TV, it'll say platform not supported. Okay. Yep. But there was yet another platform that we supported. So this one was kind of a long time coming because, uh, the team over at Samsung has worked really, really hard, not only with the Xamarin forms team to bring ties in support to Xamarin forms on Tizen is Samsung's operating system that runs on TVs, phones and watches. But the team over at Samsung put an amazing pool requests in that we reviewed and went back and forth with and we collaborated on deeply to add Tizen support to Xamarin essentials. And that's also available inside of one dot three so now the Xamarin Xamarin essential supports Ios, android, UWP Tyson, watch a Wes and Tbos. Speaker 2: 15:41 That's amazing. So is there any talk about getting Tizen on a refrigerator? So that's what I want to do, own or create a Xamarin forms that do run on our refrigerator. I think you might, that'd be awesome. I'm not sure if it does what I need to ask the team because I want to know where the secure storage is on the refrigerator, if I can use the essentials for that. Perfect. Speaker 3: 15:56 Yeah. How do you, pretty great, great. Ah, yeah, there's a bunch of other new, so definitely you can tune in. We're live streaming the Xamarin Dev summit. So day one is overseeing, go rewatch all this glory on the Xamarin developers, a youtube, put a link in the show notes and day two is going on obviously right now. And those will be available those day one, day two but next week and the week after we'll be rolling out those videos on youtube so you can check them out there. Speaker 2: 16:26 And just one thing I want to mention about, essentially before we get too far, my good friend Brandon Minnick and I, and we're going to do a talk about salmon essentials here. However it got, I don't want to say scrap, but we just couldn't fit it in. And what was cool is they've just going through, it was gonna be all the essential that you need all these Xamarin essentials. Essentially you needed to know when 60 minutes or less than we were going to go through each one of the Xamarin essentials API APIs and there were some in there that I didn't even know existed. So it's just cool to actually go through and read about all of them just to find out which ones are there. You might be using something could use an essentials. Why reinvent the wheel, right? Yeah. So I don't have just kind of a public service announcements. Just go through, read what essentials that are out there. So I'll let James do the work for you. Why it's, why reinvent it? We went to wheel. Speaker 3: 17:10 Not me is an amazing developers, John Deg, Matthew, Dave, all those other great developers and the community members that contributed. It's not me. I just, I just, uh, I just talk about it a lot. So, oh, we did have a bunch of other great news though, um, before the Dev summit that occurred. So, uh, our good friend John Douglas had a great blog post about the new support for automatic android STK management, who likes downloading and managing SDKs. It's one of the most [inaudible], it's Speaker 2: 17:35 confusing things with android development between the SDKs and some of the emulator stuff. I mean, it's, the onboarding process is just a little bit confusing with that. So, yeah, so we do it all for you. Perfect Paulie. We already had a new Speaker 3: 17:50 android SDK manager on windows and PC and you know, that was great cause you could go in and download things. We'd give you the specified Microsoft feed. Uh, so it was things that we supported. But you're right, there's build tools, platform tools, SDK tools, emulator tools, hyper B stuff, x86 stuff. There's all sorts of stuff. So now when you go and open a project, uh, or an older project or a newer project and you don't have something installed, it will install it for you. If you go and you want to upgrade an older project, this is something happens all the time to me. I have a older github project, it's targeting, you know, seven Datto and I want to move it to nine, but maybe this machine doesn't have nine. You literally go in, select that and boom, it'll install everything for you that you possibly need and keep you up to date. Speaker 2: 18:36 Nice. So, I mean, in addition to having the automatic android SDK management to help us out, another thing that's really great as a developer is having intellisense, right? I always make a joke that if it wasn't for a Google Stack overflow and it tells us I want to be able to develop anything. And now with the latest and greatest visual studio for Mac, we have even better XAML and Telesis with it. And so what's really cool about this is that the intellisense experience now with vs Mac is driven with the same engine that does the WPF and UWP, uh, until the sense over on windows. So you're gonna get more of the same experience as you would on either platform. And so some of the neat features that we have in there now is, um, matching. So when you start typing in, and if you do something like I s l like a camel case matching is going to say, hey, stick way out for you. Speaker 2: 19:29 Or you know, like fuzzy matching. So if you fat finger something and you're trying to type stack layout, it's gonna hopefully gets it right. And it probably will gets it right for you. It's also going to do 'em better. Some light bulb suggestions. Like if you miss a namespace in port or something like that. Um, it's also gonna if you bind your bind, you put in your binding context within the XAML, you're going to be able to see your properties as well for it. So that in a lot of other things that we put in there that's gonna make your, just your, I'm going to say your development experience more delightful when you're using vs Mac, which the vs Mac is getting beginning way better by leaps and bounds I think when recently. Yeah, because last week we are, last month we talked about [inaudible] is about Speaker 3: 20:10 the new code editor. Two months ago we talked with the new code editor, this pairs with that and that's in version eight. Dot. Two which is available in preview today. Yup. Yeah. I love that stuff because I remember when, when the support, the newer support in visual studio on windows came out and when do we get it on Mac? And you said it's the full engine. It's just like a huge piece of functionality, which means now when we're revving on both that table that we, the teams are revving on both. Um, what's great about that is that, uh, there'll be able to add new features to both, right? Yeah. Now I do love Jonathan Peppers. Mr Jonathan Peppers. He loves to write deep down ridiculous low level blog posts, which I super appreciate. And he put out this one about, um, a new feature that's kind of automatically on and available in applications running, uh, 16 dot. Speaker 3: 21:01 Two, a preview of visual Studio 2019 and visual studio for Mac eight dot. Two preview. And it's all about how they've, the development team has, um, sped up the build process and at the same time created smaller decks files. Now if you don't know what Dex is, r this is the kind of, um, the, the final compilation, uh, executable that gets, that gets run, um, and your app. And it, part of that ends up using several build tools called AAPT. And now there's AAPT to, um, which under the hood basically just kind of does all the final compilation steps. And, and all the little bits and pieces that you could possibly need. And AAPT was the android asset packaging tool. So at the team does they, they investigated every single bit of what goes in a hello world, the, you know, the, the numbers that are there. Speaker 3: 21:53 And then what are the support libraries that you add on and how many job and how many dex files. And what they ended up founding is that you, um, get a bunch of different phy android and Java fields that are created. And what this often launches into is something called multi-decade thing, which is that you've had a re a big point of fields you need to multi docs. And now what they're doing is they're able to optimize the DEX count and use the latest and greatest tools, um, and go through new library generators and asset generators. And what this has done is brought it down from a default, uh, hello world application from, uh, 30,000 field accounts for hello world application down to a just about 17,000, which it may seem like a lot, but it's really knocks. You're using tons of stuff in, in, um, even on a blank application just by booting up, uh, an activity. Speaker 3: 22:51 Basically right now you have the overhead activity in any of the UI that you're putting on there, but this generates 12,000 less fields now. Um, so you can turn this on, you can give access to it, and if you want to really deep dive into it, check that out. And also, uh, do a follow up on you. There's a blog that he links to, which is about shrinking your app size. So Nelly compiling and making it fall smaller, but how to improve it even more if you're interested at all in this stuff, you have to give his blog posts or read it reads like a murder mystery file. And how they go through is like, all right, it's too big. What could be happening? All right, so let's take a look at how Google does it and android studio. So, all right, it's open source. So let's take a peek at [inaudible] dot txt file. So let's take a peek at that. It's crazy. And they figured it out and they dropped the field comp by half roughly. It's really good. Yeah. And the startup time or the, the field time, they went from three seconds down to 20 milliseconds. Yeah. That's crazy. Yeah. Ridiculous. Speaker 2: 23:46 So speaking of crazy and ridiculous, just a another public service announcement, migrate those Mac Os apps that we are currently on. Well 32 bit. You got to go to 64 bit before the, uh, apple says you have to be at 64 minutes, so do it before you need to. Um, so right now if you run it, there'll be a warning that pops up saying, hey, your app is not optimized for this version of Mac. Os means its 32 bit, make it to 64 bit and um, you'll be happy. Everybody be happy. So just PSA, it's coming. Speaker 3: 24:20 Do it. Cool. Be Happy. Yeah. Do it. Just do it. The last thing, uh, we had a great community blog post by Charlotte, uh, talking about how to support multi device resolution. So I sort of think of it, of how you would on the web handle CSS and there's different sized classes of phone versus, you know, widescreen, things like that. But she talks about how you're able to do a lot of this, um, in, in code and in, um, resource dictionaries and sort of look up some of the different screen sizes online and put a little bit of magic in there using Xamarin essentials to detect the different device sizes. And you can say, if I'm on this height, use this or use this. And what she ends up doing is I'm creating different, uh, dictionaries that get merged together. So when your app starts up, instead of just loading all of your dictionaries, she'll load a specific smaller device or general device, which is very clever. Instead of loading everything just low, the ones that are specific, um, and run a little bit of code. So very cool. Speaker 2: 25:20 I like it. Yeah, it was a really neat post. All right. So James, I can't go a podcast without mentioning my favorite, favorite subject, the cloud, the cloud and [inaudible] and [inaudible] in particular and sell just because I love saying at MSL has revved. Again, 4.2 is out, which is crazy. I think when we started it was still in two x and now it's up to four to um, as just a point release. And a, what happens there is if you're trying to log in on a silent log in and it needs a display, the UI because you don't have the um, your refresh tokens expired, there's get a little more information about why so you can handle a little bit better. So just my normal authentication authorization PSA during the podcast. Beautiful. Wow. And another thing with the cloud news, something else I wanted to talk about is, um, we've mentioned it several times before in a previous podcast is app center's creating a mobile backend as a service. Speaker 2: 26:23 Um, right now they have released both the data and the authorization authentication. Uh, they wrap up both the, when I say wrap up, they put a wrapper around Cosmos db for data and also as your B to c for the authentication. And they went build last year or year in May. They released the initial version, which was called 2.0 in new get. They released it to 2.1 they'd been fixing bugs or really responsive on Github. So give it a shot, try it out. Um, see how it works for you. Like I said, they're responsive on get hub. This is our new [inaudible] solution. app Center does a great job with their SDKs and our API APIs. So give this a shot, let us know how it works for you. It's your chance to help us design it. So yeah. Yeah. Wait a second. Greatest Quality News. 2.1 of app center. Speaker 2: 27:14 4.2 of m cell. They multiplied a bunch. Is, is it a coincidence? I don't know. I don't know. Possibly. So the other thing about, um, Azure in the cloud news is that last month we started doing a, um, Azure service in the month. So last time we did event grade, which is kind of just a little bit out there and a lot of people might not use it. So this one I wanted to talk about Azure Cosmos DB. And um, so what this is in a nutshell is it's a multi model database. So multi-model what does that mean? It means you can have multiple models, multiple models. Yes. That's very astute. It means you can run um, several different API's at it. So you have like figure one core database engine underneath and they get at it. You can be running a document DB or regular no SQL database. Speaker 2: 28:08 It can be running Mongo DB, it can be running Gremlin or you can be running Cassandra API is to get at it. So you can run your choice. A different API to get at this database engine underneath. And what's cool about this database engine is, is that it's globally distributed, meaning that you can write to one region, let's say self central us over here in the Dallas region. And then that will instantly, or pretty much as fast as speed of light, right to other regions that you have set up. So if you have something set up in the UK, it'll pretty much almost as speed of light right there or Australia or whatnot. That way if you have users spread across the world, there'll be able to get their data super quick. So that's what's really cool about that. It's also, everything is actually, there's STKs for it, but everything's based upon arrest services as well to get at these things. Speaker 2: 28:57 So Cosmos, DB, the, my guess to marketing forward is multi-model globally, globally distributed. But what that really means is choose your own API to get at it. It's no SQL. When you write somewhere, it's going to be distributed really quick so your users can read from it very quickly. It's, it's pretty neat. So there you have it. Yep. Super Cool. I've used cosmos DB a lot. It's super, super great. Uh, and the SDK for Donna developers is really easy to use. So while you say it's rest based, there's great SDKs for the different programming language and the.net SDK is very elegant, very simple to use. And actually one thing that we did with the a geo contacts app that we um, put together last year, I think around the build time was that a, we did m g o like distances, Geo calculations I guess before it is. So let's say that James is located in Seattle, I'm down here in Houston, we'd be able to instantly tell how far apart we are. The API itself has a bunch of deals, spatial recognition in there as well. So that's pretty neat. Yeah, Speaker 3: 30:01 I love it. I like also that you can like break down one of these different API's every, every month cause there are so many up there, kind of different features of Azure. I my own favorites of course, but a, you know, I think that that's really fun. Yeah, there's just, it's hard sometime to, uh, Speaker 2: 30:18 to remember all that stuff. Right. And just knowing, like I said with Xamarin essential is just knowing what's out there. You can't use it if you don't know what's up there and if it fits your bill, what you need to use. Perfect. Bam. All right buddy. It's everyone's favorite time of the Pod to picket a pod pick of the pod. So James, what do you have for me today? Ah, for me, yes, yes, yes. So easy peasy I think lasts a month. Speaker 3: 30:42 We did the pancake view, I'm pretty sure though. Yes you did. Yup. So I'm back once again with another great library by my good friend Steven. So we send called Xamarin forms, debug rainbows. Speaker 2: 30:54 That sounds awesome. Yeah. Pancake view with rainbows. I'm imagine the rainbows are like sprinkles on top of the pancake view. Speaker 3: 31:02 Pretty Great. So, okay. So you know when you're building your UI you one of the hardest things to, to understand, no matter if you're doing like android development or Ios or xamarinforms are the layers of how your app is constructed. You know, is it fail, is it center? Like how much space is this label actually taking? So what most developers do, and I'm guilty of it for the last decade, is a set of background color. Yup. You set a background color, you can see where it is. And in fact if you're on your android device, you can turn on like layer views or whatever in the debug settings and I'll show you all the layers. Um, but it's not really a cross platform and you've got to go do settings. So this package from Steven, you added in and it's one line of code, which is debug rainbows equals true. And when you set that it will, you can add it to the page level or to a top level control. Let's say your stack layout or your scroll view. It'll iterate through every single control on the page instead of different random background color for it, which is really cool. Speaker 2: 32:03 That's slick. So what's actually kind of funny is eight, you're exactly right. You just set background colors and make something change the colors. You can see how wide it is, which was a great thing that I was using with hot reload before cause it just works right away. Right? Yeah. And so on until I found out about the, uh, until this package, the debug rainbows. So anyways, yeah. Speaker 3: 32:25 So now you can use debug rainbows a with hot reload, which is what I do. And I launched my app and I'm like, what? It's a little bit weird. Wasn't doing Oh, turn on debug rainbows up. Alright now I'm done. Turn it off. No need to relaunch my application. Speaker 2: 32:37 That's awesome. Yeah, that's pretty cool. Next Day was a little pancake view and perfect. Yeah. Now what do you, what do you got for me? I got by our good friend Martin now media managers on, let me give you the story about how I came upon this. This library is my original talk here at the Dev summit was going to be about using Azure media services essentially building on, I mentioned this in the last pod building, something like a twitch twitch app, but we had to switch it up at the last minute. But what I was going to use to stream to end display everything was was this media manager and what this media manager library does is that allows to tell us to have native media file playback on device and a nice cross-platform way so you can play from um, remote http, https files or embedded right away on device. Speaker 2: 33:28 Great Way to do a media playback on device across platform wise. And it comes from Martin. It's just a great thing to go check out and we'll put it in the show notes as well. Yeah. Awesome. Well we made it yet another pod. We did it. We did it. That's awesome. This is eight or nine in a row. So myself thing, it doesn't matter. They all go so fast. A lot more to come. Indeed. Well where can people find us, Matt? Well they can find me at code mill, matt.com at Code MillMatt on Twitter code mailman on, you know, probably cool mill matt. Everywhere else. I don't Google it. Google it. You can Google James Montemagno. Mind me, you'll find me on the internet. Where can people find the podcast? People can find the podcast@xamarinpodcast.com or search Xamarin podcast on your favorite podcast place, iTunes overcast. I don't know if people who get podcasts from everywhere any anyway, and he's going into your phone right now. Type in podcasts and you'll find the podcast app. There it is. Xamarin, podcasts, it's all your friends about it. Go into your slack channel, go into your team channel, go into your discord channel, basically blast message out and SMS all of your friends. But Hey, cause you've got this podcast cause Zama just happened. There's cool announcements. Thanks everyone for listening. Until next month, I'm James, he's Matt and thanks for listening. Speaker 1: 34:49 [inaudible].