00:08 [Inaudible]. 00:11 Welcome back everyone to the Xamarin podcast, keeping you up to date with the latest and greatest and mobile development for Xamarin developers covering the world. Xamarin.Net Azure and Mar. I'm Matt Soucoup. And I'm James Monson Magno. How's it going buddy? Oh, it's going well, James. It felt like Seattle this morning. Seattle in the fall with all that rain. It was pretty intense the last few days I decided to stay at home, whether the storm AKA just a little sprinkle. But did you get the big thunder and lightning storms the other day? Yeah, it was amazing. I thought, well, we weren't supposed to get any of that lightening out here on the West store in the Pacific Northwest. But it's, it's rare. It usually does not happen. I'm not gonna lie. So we opened up the blinds, we took it all in one night. Our neighbors across the street lost power. We did not. So that was good. 00:59 But yeah, it was, it was awesome. It was fun to see. Reminded me of being back on the, I mean the Midwest, you know, where we get lightning storms all the time. So it was quite nice. Yeah, it was really interesting. The when I first heard the thunder, I'm like, is that an airplane going overhead or is that actually a thunder? Yeah, it was super cool though. Yeah. Super duper good. Well enough about the weather because we've got some conferences coming up, Matt. Yeah, we do. It's one of my favorite conferences. It's a totally virtual conference. Dot net con coming up and September the 23rd through 25th. So James, I know you're doing a session, I'm doing a session and there is actually a lot of Xamarin goodness going on during that conference. Yeah, it was really good. I mean we have like five Xamarin, maybe six Xamarin sessions. 01:44 There's a bunch of community sessions and day one, keynote, a bunch of Xamarin stuff in there, which is going to be awesome. Yeah, and it's also the launch of Donnette core three, like that's like one of the big ones. We've already announced that, right? We announced that at build or whatever, that that's when it's, when it's coming out and it's happening, it's all happening on the 23rd. Yep. And what I love about that comp is that it both like 24 hours a day. So worldwide audience, no matter what time zone you're in, there's going to be some goodness for you going on. Yeah, it's a crazy logistical, I have no idea how they do it, but they totally do it. It will be streamed live on, on mixer, on Twitch, on YouTube is on channel nine on all the places you can imagine. 02:26 And the schedule is up. Go to.net [inaudible] dot net D O T N E T C O N F. Dot net. Kinda jingles a little bit. Yeah, it does. Also if you're in Redmond, if you happen to just be in Redmond, Washington or in Washington, you have to live in Redmond. I don't live in Rodman. M I N D U we, I Inu. Yes, that's how you talk James. We are doing a.net comp viewing party. And also additional bonus sessions from product teams. And cloud advocates which is really cool. We'll put a to the meetup there. We did this last year at the Seattle react or now we're doing and the Redmond reactors. We can get more people from campus, but actually virtual events are happening all over the globe for dotcom. So it's not just in remedy but you'll have all sorts of viewing parties and things on the Danette comp website. 03:14 So definitely check that out. That's one of the great things about the virtual conferences that you have a lot of real time viewing events going on and like you said, we're doing a really cool event. It's actually right across the walkway from me right now with a lot of real time product groups coming in to talk order some pizza, watch some sessions, have a lot of fun. Yeah, it should be super, super good. Now we have not only conferences but we have some new releases and just today on day of recording a Apple drops, some new everything. Really. Did you watch the Apple event? I didn't. That was stuck in meetings all morning. So fill me in. What, what could have happened today in September with Apple? Well, you got some new phones, some new watches, some new TV stuff, some new subscription services, a bunch of new ways to give Apple some more money. 03:58 But for developers, it also means that iOS 13 is basically done. I don't actually know if they dropped a GMC, a gold master. We call it a GMC, if you will, of X code and the final bindings. But it was pretty exciting. I think Apple has some really great announcements. They have cameras with two or their phones with two cameras or with three cameras. You can have all the cameras, all the companion cameras. Did they change the name of the phones? Is it like iPhone Perot now I phone 11 and iPhone 11 pro. Nice. Yeah, so they got rid of the X. So we no longer have to think about it in which definitely means it's iPhone two must've been 10. I mean it was 10, I guess, but I found L a is there. So, yeah, some really exciting stuff. And additionally last week Google dropped Android 10 general availability. 04:49 And with both of these big announcements, of course we have these ready for Xamarin developers in fact in 16 dot. Three of visual studio on windows or 18 or eight. Dot. Three on visual studio for Mac. And you'll have Android a 10 support. You can set your target framework version. Now to version 10. It's no longer Q or anything like that. I did talk to the team and they said that that mostly everything is final inside of there. There's a few E neumes that they're binding instead of integers, which would be today. So if you eat enums that's are changing, that will come in 16 dot. Four and eight dot. Four. But besides that, you're pretty much ready to go. And I also got confirmation. This is like really hot off the presses. A good, good day to schedule this podcast recording. The iOS 13 bindings which had been in preview for awhile are essentially untouched from the last seed, but they're going to be doing drops in the current eight dot. 05:44 Two 16. Dot to service release to get those in there. So if you want to start taking advantage of those without have to installing them separately, which you can always do because they're open source. Those should be available soon and we'll have blog posts to them and if those blogs are out there'll be in the show notes cause Matt does an awesome job with the show notes. But that's exciting. Nice. Yeah, I love me some show notes. So yeah, check it out and no one else has. It's super exciting. James Xamarin forms for too hot off the presses. Yeah I have all my new gets wanted update just last week and what's in it all my favorite pages. Cool shell. I do, I do a lot of office hours and I get asked a lot of questions like is shell right for my application? And obviously it's, it's always, it depends, but a lot of times that it depends, always turns out to be. 06:34 Yeah, it does make a lot of sense to go with shell. And so what, what's new in shell is the life cycle events that we have in there now. So now you can pick up on whether it's something starting or not. So that's cool. And there's a lot of community PRS as always in the, in a four dot two such as switched color. We can now change the switch color to something else, some Tizen enhancements as well. And I'm collection view was originally slated a be a released in for that too. But the team was listening to a lot of our, the community's feedback and during the collection view challenge that we had several weeks ago, a lot of the feedback centered around we really wanted a lot of pull to refresh and header and footer templates. So at the team that says, all right, we're going to get that in there before we release it to GA. 07:25 We're going to get that in there, make sure everything that the community wants is N and golden. So it's still underneath experimental, but we're working on it. So there's polar requests in there for right now and it's going to be great. I collection view that's gonna make you forget all about the list view. I've been using it for awhile and my apps love it. You'll love it to give it a shot. Yeah. Very cool. I'm really excited because I worked with the team a little bit on this. I'm B, I'm recently talking specifically about pool, the refresh on the collection view. It's very, very tricky. So what they did, I need to validate if they added, pull the refresh directly to the collection view. Because there's another PR which I'm so happy has finally happened is they have a new control that you can use called a refresh view that you can add to any view specifically like scroll views and, and things like that. 08:21 It's not for every view, but for all intensive purposes it's there. I worked with the team a little bit just on, on Shane. He was implementing it on my existing plugin, the pull to refresh view that I had done many moons ago that I am sick and tired of updating in general. And there is a UWP implementation too, which is really cool, which I'm very excited about because I did not have that. So that super duper Neato. And that's that's a big win I think just in general for people that want to add that to like a web viewer, a scroll viewer or to collection view, right. You can just add that right on top of it and boom, you're good to go. So I was reading about this, so just to make sure I have it understood is like when you pull down to refresh it, you can now display like an image instead of just like the little spinner. 09:08 That's what, that's what we're talking about here. So yeah, I think how they did it is they, they have the native pull to refresh indicators that are there. So think of it right now, list view has a pull the refresh built in, but let's say you want to add that to a scroll view or you want to add that to a web view or you want to add that to a collection view. If they kept it on a per controlled basis, they'd have to implement it over and over again and try to keep the API's consistent. So what they said is, Oh, just wrap any control in a scroll view or a, sorry, a refresh view. And then you can implement events such as, you know, refresh has been triggered to things like that. So it's pretty nifty. In general when you want to add, you know, refreshing to stuff. 10:00 So instead of setting a bunch of items onto your a collection view and mixing it up, if you don't want pull the refresh, don't add anything else, just wrap it in a refresher. You when in doubt, wrap it in a refresh view and you can do things such as, yeah, add refresh colors. And then what you could do is inside of it you could do some binding because your refresher, you might have a an image that says loading and then you might have a collection view in it. So what's nice is that you could hide or show the collection view based on if it's refreshing or not completely. So there's a lot of opportunities there to do some really nice. Love it. Love it, love it. Yeah. And there's more, there's more coming, sir. Because like always when four dot two comes out, that means four dot three is right around the corner. 10:47 Now we normally don't talk about new new pre-releases and things like that, but I wanted to mention this because there's two things with this that are happening. There's a lot of these new features around collection view being added, but also there's a brand new finally rebooted from scratch carousel view map that's totally happening. Which is very exciting. It's very similar to a collection view except for you can flip through the carousel items inside of it that go left to right little indicators, things like that. And there was an old package that did this, but they wanted to use the latest and greatest and they said, let's really rethink this take a lot of time. I know that people really want in, there's a lot of third party packages, but we're gonna get there eventually and that's out there and there's a brand new challenge that dropped with this package as well. So that challenge I think started on Wednesday or Thursday this week. And what it does is it says, Hey, go use the carousel view. It's under a feature flag. Go take one of your existing ones or replace a plugin or you know, try it out where it makes sense in your app. 11:54 And every single individual that sends a poor request sharing some screenshots of their app and their experience get Samarin stickers and we pick 10 at random to receive a Xamarin monkey as well. So very, very cool. So you can be part of that challenge. And so it's not a contest that everybody gets something. That's the challenge. It's just have fun and try out a new feature and give us your feedback. Finally, the carousel view, I love it. That is, it's something, okay, there's two things I love about it. One, it's, it's here, it's going to be great. I'm going to have to find a place in my app to use it and to the challenges, right? You could get to go view the PRS that people are putting in and see how everybody's implementing it and you get it. Just a ton of ideas on what other people are doing. 12:41 And it's just the inspiration that you see other people doing with it. And it's community, right? Xamarin has a great community out there. It's super nice. And it's also nice to see this happen in the wild, to be honest with you. And there's some really nice sort of screenshots and features that you can do. And I'm just, you know, I'm always talking to David whenever I talked to David, I'm just like more controls, more controls, more controls. That's all I ever say. So they're calming. They're coming. They're on their way. So this other thing James, so that was, I was reading about it in the pouring Seattle rain, it's called boots. Right? And when I, when I read the name, I've been on thinking the logo for this should be a pair of rain boots. And it was, and it actually was. And so what boots is this thing is, is really, it's really pretty cool is that it lets you, if you're using a continuous integration, a lot of times that at least with Azure dev ops or the apps that are you might be a little bit could find to what is actually loaded up onto dev ops or on an app centers with a mano or Xamarin. 13:42 So you're limited to what version essentially that you can run there. And so what boots does, it lets you run, download and run any version of mano or Xamarin that you want. And that's what the team uses internally to do that with their CII integration. And so our good friend peppers wrote a blog on it and how to use it. And it's pretty amazing. And, and speaking about my office hours, AKA ms office dash hours, I was just speaking with the group of people who needed this. And it's something that I'm going to get back in touch with them today and tell them all about. And so this blog that peppers wrote goes through and how to, well, he introduces it and he goes through and how to do it with the ammo on dev ops and also over on app center and how to use it. So it's pretty cool that you can use any version of mano, any version of Xamarin and put those into your sci pipeline. Yeah, it's really nice, especially during this season of updates that you need to install some things. And I use this in all of my Azure dev ops projects. I use it on my handsome informs and items like that, which 14:52 Is really cool. And the biggest part is, especially on Mac, on windows, it'll take a little bit longer to install it, cause their vis Xs and things like that. But if you're building an iOS and Android app, your mouse was build it on a Mac because iOS are gonna have to build on a Mac anyways. It smells, just do it there. And what's cool is when these new features come out, such as startup tracing, you know, you don't have to wait for like we've already updated, but you don't have to wait, like you said, for the CIA systems to update apps under super fast. But I want to try out stuff now or I want to be experimental. You know, I think it's the other part too is I want to experiment a little bit. So what's great about this blog is that he also highlights where to find links to all the drops, which is very nice. I really, really like that. Just be like, Oh, I'm gonna update this and boom, good to go. So that's really nice. And yeah, definitely give it a look. I'm a big fan of the boots and you can use it with any ECI system, any, it doesn't matter. It's just command line. So you can use it with Travis or, or like app center or dev ops or anything 15:54 Really just usually about anything. So that's, it's neat. I didn't know about it until I read the blog post and it's it's definitely worth checking out. James, have you been using SAML hot reload? Is it every day in my life? Every day of my life. Every day of your, every everyday since it came out. The thing I love about it is I haven't been able to get the same to crash. I, it just runs it ha doesn't crash for me, which the team has done a great job with it. Right? And even better now it's out of private preview. It's in public preview with the latest versions of video visual studio. You just have to go up, open up visual studio over on the Mac. It's underneath your preferences. On a windows side. It's underneath. I don't use windows very often, but it's underneath the, I think the Xamarin option setting. 16:40 You'll have to correct me if I'm wrong, James, but I'm just enabled tools up Yana tools, options there, right? Yep. And you enable it. Make sure you're running performs four dot two, which was just released and you're good to go and run your app search changes. Some XAML hit save, boom, it works. And it's like we mentioned before in the last episode, or maybe the episode before, it's resilient where you can fat fingers some on property names or just mess up your XAML and it doesn't crash. It just keeps on working and it's a great way to quickly test out some changes in your app, see the UI change and it just keeps on going. So it's, it's really cool. Test it out. Still in preview. I just did a series of videos. Hot reload was played a big part in it. It's having fun. It's cool. Yeah, it's, it's, it's pretty great, especially when I'm demoing the product or just using the product day to day. It's just, Oh boom, it's good to go. Sometimes I'm just working on code and 17:41 I'm going to recompile and do that code, but whenever I'm in there I just need to make a tweak here and there. Boom. And it also helps me architect my code a little bit more because I want to this feature. So if I am a little bit lazy and I'm doing things on the right way, you know, architected in a way so it reloads nicely or it doesn't clear out my data when something loads. So it is pretty nice in general. I don't works with everything, any additional MVVM framework, but it's super, super cool. But now talking about other challenges, Matt, we just finished the Android performance and app size challenged. And w last month on the pod we talked about all the great, great stuff that's happening inside of the world of Android for Xamarin. Developers are just tons of stuff happening. And John Douglas launched this Android performance and app size challenge around not only startup tracing, which we talked about, but also how to optimize your Android builds, how to improve the startup time, and also how to shrink your app size with the D eight an R H shrinkers, which I think is super duper cool. 18:50 And he links to all the great blog posts that are in here that he did. And I think about, let me look here. 46 people have 46 people submitted. Pull requests or sorry, just open issues. And it's really nice because people ran it against sample apps against their real apps. And what they did is they said, let's look at bill performance with no Bannon OBJ file. So that's fresh. Let's look at incremental changes. Start up and download size with app bundles and things like that. So what's nice is that it walks you through how to optimize it. So if you're, if you're just like wanting to look at how to optimize your own app, it's a great GitHub repo that walks you through every little bit and process of it. And there's little feature flags that you can turn on and off and, and totally it's like mind boggling, just the things that you can do. 19:45 So it's super, super cool. So definitely give it a look because what's nice is that sometimes things went up, sometimes things went down and you get to kind of compare and contrast. But almost all the time we saw some really great improvements just in general. So it was really nice. Not everyone, every apps a little bit different. But that really helps the team, that feedback to make sure that they're building and haven't regressed at all. So give that a look. That's pretty cool. Everybody loves himself. Some Android who doesn't? I know you love it, James. Yeah. Yup. Everybody. So you know what, let me ask you this, James, are you a fan of dark mode? Do you use dark mode like in your IDs or 20:26 No. No, 20:26 Neither do I really. I'm not a fan of dark mode at all. So I'm going to alienate all of our listeners by saying that. But if you happen to be a fan of dark mode, you can now make your iOS apps support it, which is really cool, right? Cause why not give your users a choice? We're all about choice here. So we have David went out and a blog post 20:48 On how to enable dark mode on iOS apps and it's really cool. I mean, it's not as difficult as you would think it would be. Essentially all there is is just a couple steps you go through and make sure you enabled dark mode on the simulator and then you can actually upload or create different assets for dark mode for iOS. And what's also neat is that for app wide you can actually specify a different title and background color for when a user goes in and enables dark mode on their device as well. Because forms will want to just make forms, makes life easy for everybody. And we just want to reduce the amount of code people have to write. There's actually a proposal out there on how to do dark mode through Xamarin forms. So it's not a feature yet, it's a proposal. I'll put it in a show notes and where you can actually go out, comment on the proposal so you can actually influence on how the team's going to implement this. So that's awesome. And if that wasn't enough and that same post David goes through and how you can implement dark form dark mode today in Xamarin forms. And that's actually a really neat way where you're doing it with styles and you're doing it with dynamic and static resources. It's well worth the checkout. This was one of those techniques when you see it as like, Oh yeah, that's, that's a perfect way to do it, so awesome posts, we'll link to it. It's definitely something you should check out. David does a great job of explaining everything. 22:16 Yeah, I need to update. Handsome informs now with dark mode and in fact you know Android 10 it's going to have dark mode and there's different triggers that you need to do so this would work the same for that or actually what you could do ideally is have a setting screen that says always use this specific mode which would be like system default or use lighter dark mode and then that's probably how most apps I bet are going to do it because I like that there is dark mode. Sometimes. For instance, when I'm in bed reading news, I would want that to be dark and not too bright. Whereas most of the time I do on a light theme, it's just easier to read. So it would be nice to have it pragmatic. Like you can now implement all these features since it's sort of forced into the operating system, sort of forcing developers to integrate this feature. 23:06 So you now have some flexibilities, take a little bit of time and put it in. So maybe this Friday when this podcast drops all, do some dark mode in the Hanselman forms. That's what I'm saying. Dark moan Hanselman form supporting dark mode. You heard it here first. Yeah, I guess so. Got it. I mean, and to be honest with resources, it's not that hard, so right. Yeah, it's pretty cool. And David goes all through and how to, how to implement it. So the last blog I wrote because it was a pull request to my handsome informs app that I've been streaming live on Twitch every Friday building out. And I got this great feedback from one of the viewers that said, Hey, you know, I was working this app, like, you know, why don't you use a compiled bindings? And I go on and what are you talking about? 23:50 He's like, Oh, just do this thing called X data type. And I was like, I don't know what you're talking about. And I looked at the docs and we've had compiled bindings built into Xamarin forms for like ever. And if people don't know when you're doing a data binding by default Xamarin forms or any MVVM framework, we'll have to use reflection to look that up. And that can be a little bit time consuming if you have a mass amount of bindings inside of your XAML or code behind. And I looked at the documentation and then they not only documented how to do compile bindings, but they also had performance analysis of before and after of how long it took to look up bindings. And it was a huge improvement. So the PR that the individual did added, compile the bindings to every single thing in the entire app. 24:41 So someone did it for me, which I thought was lovely in general, but I had started, they finished it and I thought, wow, this is so cool. And what's cool about compiled bindings is that in no way does that performance boost, but it also gives you compile time checks. So if you, for instance, you might do a X data type equals login view model and that login view model has a username and password and if you misspell username and password later on in a binding, the error will say that, Hey, this property doesn't exist so you're not going to get into the situation where you release a and debug your app, but nothing shows up because you know what, like it's compiled in and it gets that performance boost in that runtime check. So I did a blog on this that in read the docs are way more detailed documentation on it too. 25:30 But there's been a lot of good comments, a lot of people interested in it. So I'm super excited that, you know, that's why we have this blog because sometimes we've got to talk about these new features when they're out there. I was, I always forget about them. There's three great things about that. One, compile bindings, right? How you just went through how awesome they were. But to Craig Dunn and his team do a great job at documentation and we don't talk about the documentation enough. And Xamarin I think has one of the best documentation efforts at Microsoft and three the community, right. They went community went through and finished all your work for you James. I'll ask them. Is that right? Pretty good. Pretty good. No one else is awesome. James. Now you mentioned, you mentioned before that hot reload is kind of forcing you to write your code a little bit better so you can just get hot reload working [inaudible] how do you feel about dependent dependency injection? Ah, funny that you mentioned that. I've been here and there on dependency injection, but I do love the dependency injection of asp.net and some of the new generic co stuff that they've been doing. And I blogged about that in the past. Right? So we've, we've trans, we transition into the cloud right now just to let our listeners know where I'm, where I'm going here. 26:44 And so one thing that Azure functions had that they didn't have before is that we now can do dependency injection with Azure functions. It works a lot like what asp.net does, where you have like a startup class and you can do initialize everything there and it just goes into the constructor of the actual Azure function, which is really cool. I'll link to a YouTube video where my good friend sessile Philip goes through and talks about with one of the product team members on how this was implemented and then how to implement it. So it's actually a really interesting video. It's only maybe 20 minutes long, but it's definitely worth a watch. Very cool. Yeah, that's it. Give that a look because I hacked some crazy weird dependency injection thing recently to my Azure functions for HTTP client factory. So I'll definitely give a look here because I'm pretty sure I have a new better way to do it. 27:40 So that's cool. Yeah. And why not use, let somebody else invent the wheel for you, right? Yeah, that's, that's when it comes down to, yeah. So another show I wanted to mention is the, what we're calling the cloud native show. And so cloud data is one of those terms, right? That you never, you kind of know what it means, but you never really know what it means, right? And so cloud hip to me, kind of, it's like when your app is physically are decoupled from the physical infrastructure, which means Docker kind of, at least in my book and though what we have is a show where our, another good friend of the podcast, Shane Boyer goes through and starts interviewing people about cloud native. And a show that I'm going to link to is when he goes out and talks to God Hunter about why. 28:31 Dot net core makes a great language for building cloud native apps. And so it's just really interesting to listen to Scott Hunter about it. It's, it's a new world in.net. We've, we've talked about this all the time. It's a great time to be a.net developer. And there's not really anything that you cannot do with.net right now from building mobile apps to building cloud native apps. Dot is everywhere. And continuing on the theme of Azure on a theme of cloud native, it's now time for the Azure service on the month. And I don't know, NA Clough sure. Service of the month. That is the first time I heard the jingle and it's gonna stick. It's going to be in my head all day long. The what I want to talk about here is the Azure container registry. And I got introduced to this last, we, we, we as a Microsoft do this tour around is called the ignite tour. 29:31 And we put a bunch of demos together and these demos are end to end samples where you do like, let's say a web app and how the web app communicates to eventually a application with the backend. And so I was working on a app mobile app that had to communicate to a web backend and that web backend was deployed by Azure container registry. And I'm the person who put together Anthony Chu who Anthony wrote some of the I know James you did a signal our service, a demo with a, with what Anthony wrote. But so w that introduced me to ACR Azure container registry. And what allows you to do is that allows you to store multiple, let's say Docker container images for really any type of deployment up in one spot. And what then you can do is that you can deploy that image of let's say to app services, which is our version of let's say a website. 30:35 And that's essentially what it is. You're going to play that Docker image to app serves and you really have just like a central repository for it. You don't need to have Docker installed locally. You can say Azure CLI to build it all for you up in a cloud. And James, I know you love the gooey. You can also do it through a gooey up in the Azure portal and it's there. So it's a container registry, containers, main Docker, cloud native all up in the cloud. It's a way to contain or store multiple container images for you. So it's pretty neat. Containers being the weight of run. Let's just say you're web code, check it out. We'll put it into the very corner to the show notes. All those Dockers and the swarms and the pods and the clusters and the NetEase and all the things all over my head. 31:21 But I do, I have deployed some stuff. Indeck and Tanner container registry, there's also container instance, all sorts of crazy container things of taking those crazy little microservices and shoving them over there and all your infrastructure. It's, it's pretty neat once you get into that world. So once you get into it, it makes life a lot easier because you're not worried about having to at least drink a lot, especially during development. You're not worried about having to recreate a development environment by downloading all the various services and making sure they can cross communicate. Let me just download a container that already has it all set up and just use that. You're not going to mess up your computer at all. Very cool. Nice. Ah, well that brings us to everyone's favorite part of the pod pick of the pod, which got back to the pod. 32:03 What do I have to pick up? Odd, new jingles all over the place. So what I have today, James, is I've been working a lot with the bank search API, so I'm gonna keep it in the cloud. And so with the Bing search API APIs are, is that they're a part of the Microsoft cognitive services suite all up, but they do a ton of different things. I mean they're not just like part of like vision surveys or anything like that is that they obviously give you search capabilities, but so much more. So let me talk a bit at least about like entity search. So James, if I was going 32:40 To search for, let's say Seattle, what being entity search would do and to bring me back a bunch of hits about Seattle, but it would also say like space needle. It would highlight that for me and give me the ability to see a photo of it from, I think I'll probably brings it back from Wikipedia comments or somewhere. And also gives me like a Wikipedia page to find more info about it. It also does be able to find like if you say coffee near me and returns coffee shops that happen to be near you. So it's actually this really, it's like being able to implement Bing but through your app. And also as like new search entity search, as I mentioned, there's a image search on there. So it's, there's a whole suite of search API's. They're very friendly with mobile applications and it's something to take a peak at. 33:34 I found that they're not well known but they, they should be because I'm thinking of use cases for them is actually pretty easy to do. So that's what I wanted to mention. The big search API. This very cool. I like that. I do like those crazy search APS cause sometimes you just need to search stuff. Ah, well I picked something a little bit different. I did a video not too long ago with one of the amazing MVPs on fast lane. Are you familiar with fast lane at all? I know Amex my life on iOS a little bit easier when I'm doing deployments. So fill me on unrest. So fast lane, not only for the deployments but for just day to day sort of IOC stuff. Especially when you get into big deployments that are a little bit, Hmm, complicated. Let's say when you have to worry about provisioning profiles and automation and deploying to the app store. 34:33 There are a lot of systems like app center and ado and other, you know, CIS systems that can do a lot of those things for you. But often you need to write custom solutions. You might want to write your own code signing or you might want to automatically generate screenshots or do different beta deployments. Things like this. And when you want to do those on iOS and Android, it gets a little tricky. And that's where Fastlane comes in. Fastlane has been around for a long, long time start on iOS, but it's part of Google now and they built that. I think they bought the fascinating tools. It's all open source, things like that. But what's nice is it has a very simple kind of command line interface, scripting language. So you can say, you know, capture my screen shots, build my app, upload to the app store and then send a Slack message, things like that. 35:22 There's a bunch of different things built into it that you may want to take a look at. Take a look at the video. It's like 15 minutes kind of going down. But if you've ever had problems with automatic cone signing or trying to publish things manually or building custom scripts, fascinating old super duper help with that in general, there's a whole ecosystem around it to these actions and plugins for it. But definitely give it a look. It's, it's quite good, especially in these more complicated scenarios per se. So definitely take a look at fast lane. I think that anything that would help with just as simple as iOS provisioning, it would be helpful. Perfect. Yeah, it, it's nice. I used it recently too. I use it maybe a year or two ago because I wanted a way of automatically purging old beta subscribers to test flight. 36:14 Okay. So think of it like this. This is what, this is a scenario that I had to do. So test flight, you can back in the day you could only register so many people at a time. Now they have kind of open testing or whatever. I still think there's certain levels so we only could have so many people at a given time or maybe you just want to delete people by default. You'd have to go into the portal, into the Apple portal and delete everybody manually, which is a big not fun task. So I wrote a fast lane script that would query the iTunes, like inquiry, iTunes, grab all of the existing registers to a specific group and say, Hey, if you're, or have been inactive or have an installed a build for over 90 days or I've never installed a bill to remove. So it was all scripted in like 40 lines of code is really cool. 37:06 Well that's pretty neat. I mean for the time that it took you to script it, you probably could have removed like two users manually, so totally worth your time. Exactly. So yeah, I agree. Yeah. So. All right. That's it. That's it. We did it. We did it. September. Done. Done. Well, now you can go out and buy all the Apple goodness that they announced. Yeah, go get it. We'll work. Can people find you on the internet map? They can find me at Twitter code mail. Met my blog code mail. Matt, get hub code male. Matt, just do a bang at code mill. Fly me. Yeah, you can find me at James Matson magnet everywhere. The Twitter is the get hubs, the emails, the Twitch. If you want to watch the Twitch stream and you can do slash James wants a Magna. You can Google or Bing me or being new with the Google or Google me with the bang, whatever you want to do a James onto mine and you'll find all the good stuff. 37:56 Matt, thank you so much. And of course the podcast to find out Xamarin podcast. Can't forget that.com. Yeah. [inaudible] dot com and I think there's a new, we got to up, we're going to update the site soon too. So we're gonna have a new fancy player on there. We're going to get the new theme on there. It's going to be hot. We're going to do that the next few days. And also the show has transcriptions. I need to show you how to do that so I don't have to do it manually every time, as the show has transcriptions now. So when you go into one of them, you'll be able to download a transcription. So if you want to read along and they're automated, they're automagic. So don't be mad if they're not 100% correct. But for a, anyone with accessibility can follow along and need that accessibility feature. We're all about adding as much accessibility to any of the property, so whether it's closed captionings or transcriptions, we want to be here for everybody. That's so awesome. You know, that's, that's, that's great news. Yeah. All right, buddy. All right, I'll talk to you later. All right, thanks James. See you later. Bye. 38:54 [Inaudible] 39:02 [Inaudible] [inaudible].