Matt Soucoup 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 with xamarin.net Azure and more, I'm at soak up and today we have a special episode for you were going Hollywood and will talk to the creators of an app built with salmon in Azure. Matt Soucoup For the Academy of Motion Pictures, Arts and Sciences, or maybe better known as the Oscars, where do they are, Cesar Rodriguez and Cesar Cordero from the Oscars? And our very own squeaky said coffee from Microsoft Mobile customer advisory team. Matt Soucoup Alright, Cesar Cardeiro. Can you give our listeners a quick one minute overview of the app? Cesar Cordero Yeah, share met. The app allows our users to browse some Academy related content such as like articles or press releases that are usually sent out through emails. Now we're able to have it embedded in our app to stay. Cesar Cordero More up to date with the Oscars and what's going on? Also we have a section where users could update their information such as phone numbers or emails, and we also have functionality for like calendars. Um, so to keep up with dates along the way throughout the year because we have. Cesar Cordero Like cycles and also we have area for RFQ's where users could go in and search for any questions that may have been answered already. Cesar Cordero We also support some streaming functionality in the app where users could watch videos that are Academy related. Matt Soucoup Ah, sweet though. So this is a super interesting app. But before we dive too deep into it, I just want to introduce everybody and get to know a little bit about your background. So Cesar Rodriguez, why did she give us like who are you and what's your development experience? Cesar Rodriguez Hi everyone, my name is Cesar Rodriguez and I'm a software developer for the Academy of Motion Pictures Arts and Sciences. I came on board as a developer on 2015 and one of my first projects was actually work on the streaming application. Back then we featured that in our platform on the web and my experiences has been. Cesar Rodriguez Working on from web forms to Web API to waiting on SQL an front end JavaScript experiences. So yeah, it's pretty much full stack and you can say and that's where I've I've been working on. Matt Soucoup Always gotta love the full stack developers. It's like you get thrown and everything and you have to be an expert in everything. Caesar Cardeiro why don't you tell us the same thing? Who are you? What's your? What's your role at the? Matt Soucoup Academy of Motion Pictures, Arts and Sciences and your a little bit of background in in development. Cesar Cordero Oh yeah, sure. So I'm Cesar cardeiro. I'm a software developer for the Academy also, um, full stack developer, but mainly I've been focusing on the the mobile efforts for the Academy so it all started maybe like five years ago where I first dabbled into the Mobile World to get to know some of the. Cesar Cordero Intricacies and different design paradigms that it offers an um, what's different from web development? Yeah, mainly a Web Dev, an back end developer, but not until a couple of years ago where um, we started getting serious about our mobile development efforts where we wanted to ship a. Cesar Cordero Feature rich production ready app that extends our our main websites. Cesar Cordero Yeah, the process has been quite a ride. Matt Soucoup Oh, it's super cool and I bet you the process has been quite a ride as well. Dig down into the app and find out a little bit more about what it does. It's this app is great and but before we get down into it I want to talk to swiecie our very own sweetie and I put you last week E because you work for Microsoft in this Microsoft folks. I always have to go last. Matt Soucoup But introduce yourself Twiki. What's your path to mobile development? Sweeky Satpathy Hi everyone, I'm sweetie. Um, I'm in the dev dev customer advisory team specifically on the mobile customer advisory team. My journey into development has been long. I studied computer science so haha, but I actually joined Microsoft through the. Sweeky Satpathy In acquisition, so I'm one of those, um, xamarin oldies. You can say, and Yep, so it's been an exciting actually. For years now, I think since our acquisition, so super fun in Microsoft and super fun helping great customers like the Oscars. Matt Soucoup I had no idea that you came over from Xamarin. You wanna be the originals. Sweeky Satpathy Yep. Matt Soucoup Alright, so Cesar Cardeiro tell me a little bit more about the app here. Um, it's it's xamarin and it, but it's also TV OS in my. Am I right there? Cesar Cordero Yep, we're also using the xamarin native for our TV OS app. Matt Soucoup What did you like most about TV OS Development? And I'll I'm going to follow that up with what did you like least about it, but tell me about the design of TV OS and I'm not talking so much about the app that you wrote, but what did you like enjoy most? But when you're developing? Matt Soucoup For TV OS. Cesar Cordero On TV OS is was, um, pretty challenging. But um. Also it was interesting. At the same time where it just has a different user experience where users will not be able to tap on their phone. They wouldn't need to use a remote to actually interact with that, so that. Cesar Cordero Piece was a little bit different, but also exciting, so more about that. The what was challenging was, um, getting to know the the focus engine of TV OS so that EVs would work a little bit differently from traditional apps where there's something in focus annum. Cesar Cordero We would try to highlight we would have to add extra functionality to highlight what is actually in focus. So we need to add some code that that maybe expands the the highlighted item, or maybe changes the background stuff like that. And there were also different controls that that I first used in this app. Cesar Cordero Such as the UI search control. I haven't used that in any of my previous apps, but this was perfect for the TV OS app. Matt Soucoup So Caesar Cardeiro, then you did know iOS development, or at least xamarin iOS development. Or familiar with it before going into TV OS in my. Am I right with that statement? Cesar Cordero Just slightly so I I knew the basic UI UI textbox controls labels but haven't really used the other controls extensively, so it was there was some different aspects to it that were tbo specific, but mainly also the controls were. Cesar Cordero Pretty similar and how it interacted with the forms. Matt Soucoup Yep, and that was my question is what did you think about doing iOS apps and then moving over the TV OS apps? It was like how big of a cognitive dissonance was that? Cesar Cordero Yeah, it wasn't much of a big difference. It was just mainly the user experience and proper way to manage the memory because in TV OS applications. Cesar Cordero And or, um, TV OS devices. It doesn't have much memory, so you would have to be really mindful of the impacts in the performance implications for those applications. Matt Soucoup Sounds like you guys really had a dig deep into a certain deal with memory on a TV OS. I've I've done a little bit of TV OS development, but yeah. Matt Soucoup Not not that watch so. Cesar Cordero Yeah, 'cause Yeah 'cause we um, we deal with like collection views and um and a lot of images in our TV OS app an we don't want to have any jitteriness in our applications. So yeah that's why we had to come up with some caching solutions for some of our. Matt Soucoup Functionality wow, now I don't want to have you hog the whole show here, but can you fill us in on what some kind of caching solutions you use or how did you go about it real quickly? Cesar Cordero Uh, yeah, sure. Um, so we have images where we we cache in memory so it releases those images once the memory gets too high so we have a caching layer where it retrieves the image from a remote server and then it also caches it. Cesar Cordero On on the physical device, if it finds that image attached image, then it uses that. If not then re grab it from the remote server. Matt Soucoup And then swiki so you all mentioned that it does some streaming an one of the things in order to do this streaming is that you're using the Brightcove player. Matt Soucoup There is no native native out of the box xamarin bindings for the Brightcove player, and I know swiki you helped out with that so. Matt Soucoup Bindings, something that nobody likes to do. At least I don't like to do. And so Phyllis and I'm a little bit about that was all involved in writing bindings for for that. Sweeky Satpathy Right, I mean, what do you mean you don't like bindings? Bindings are the best with the most fun thing to do. Oh, I love doing bindings. I hope Alex is listening to this. Sweeky Satpathy OK so um, yeah we were pulled in. 'cause, Um, Caesar Cordero he had. I think he did a first stab at trying to understand bindings and they not always the easiest when you just try sort of like the first like just for the first time. This is a slightly complex native SDK also and that's when. Sweeky Satpathy Our team sort of just stepped in to help them out with the bindings, so our first attempt, I mean our first effort was towards binding for TV OS and then we moved on to binding. Moved on to adding the bindings for iOS and Android for the mobile apps and As for the binding itself of course bindings are never fun. Sweeky Satpathy You already cited, so it was an interesting binding journey. We also see the cordero can also talk a little bit more about this, but there was also a fun journey where we started binding one library 1st and then it got switched out and we had to start binding another library. So yeah, it's been a fun journey in binding land with this project, so but you know, we gave a ton of feedback with xamarin team. Sweeky Satpathy On how the binding processes did and the good good stuff at the bad stuff. So um, yeah, I understand. Bindings are a little annoying to do, but we give feedback to our product teams all the time and we're really hoping to make this process a lot nicer. Matt Soucoup The first time I ever got a binding to work when I was first getting into xamarin development, I swear I ran around the house. Matt Soucoup Giving high fives like the various furniture pieces and everything 'cause it finally worked and it was so cool to see it work. Sweeky Satpathy Oh, 100% that's the that's that's what it's supposed to do I think I ate like a tub of ice cream or something once it started working it was the best feeling in the World Yep. Matt Soucoup Eating a tub of ice cream is a lot better than giving high fives to pieces of furniture. Matt Soucoup So you you had it down alright, so so some of the images that that's easier cardeiro mention where downloaded, so I'm guessing the those came from Azure Mr. Cordero. Am I right with that? Cesar Cordero Yep, all our images are on blob storage in Azure. Yeah, we just grab those from blob storage and then. Cesar Cordero Stating that Matt Soucoup OK, and then, uh, Cesar Rodriguez. You kind of helped out with the I guess an on premises back end and moved it over to Azure. And so I guess the the image is moving up there. I'm going to guess that that was a part of it. So can you fill our listeners and what else was all involved in getting this app to be supported? Matt Soucoup With the cloud infrastructure. Cesar Rodriguez Sure, yes, uh. It was a big lift that we did back then with with our team. Cesar Rodriguez Coming in an putting their efforts as well. Overall, we had to actually migrate on Prem SQL web applications up to Azure app services and also SQL in the cloud. We also had to create our. Cesar Rodriguez Repose up there with our pipelines to be able to run builds automatically. An also stepping away from. We used on Prem it was team experiment. I remember exactly the name of that order inclination exactly team foundation. Thank you out to get so. Cesar Rodriguez There was a lot of lift here going on an each. Each of these pieces were very important to come into play so that we can have this harmony in the cloud working. It's, you know, it's difficult, but it's definitely doable, is achievable in other words. So there was configurations to that. We also had to. Cesar Rodriguez Set up in our Azure cloud so that we can move away from using the web config directly in our projects and then use them in the cloud based on the environment. So that was very helpful. 'cause then once we began our builds in different environments that would have in adhere to those values that are related to that environment. So that's part of the the big lifts that we did. Cesar Rodriguez And then also was just understanding how to work with the server in the cloud where you can actually connect to it remotely to debug directly. That was, uh, that was a learning curve there as opposed to attaching it to the IIS locali when it's on Prem, and that's much easier to do and. Cesar Rodriguez Austal eternity, now I will weigh up developing of using mostly test driven test before we actually can create our packages and bundle them up to create a new get packages 'cause we basically have all of our projects modular and so they come together one as needed so. Cesar Rodriguez Yeah it was. It was. It was a big learning curve, but it's definitely in a much better place than we were back then and it makes it much more easier. So when we have a new hire or anyone helping us temporarily to grant them access and point them to the repo, it's so much easier for them to download the project along with the nu get packages and have them up and running. Cesar Rodriguez Um, you know, within like a half a day, including starting visual studios. So yeah, it if it were in a much better place than we were before. Matt Soucoup Very good and so you mentioned that you were using like different. Matt Soucoup Production environments versus staging environments versus development environments. Yeah, so is that all you mean all those are up in Azure? Is that correct? That is correct Yes Alright? And then how are you going about with your configuration files? What? What technique are you using to separate those out? Cesar Rodriguez Key vaults um an app config. So each environment has their own and so we just set the values from one environment to the next environment. An update them there accordingly. Matt Soucoup Oh nice, so using both Azure Key vault and Azure app config yes oh nice. Both or key vaults. An old product with Azure app configuration is relatively new, so it's yeah super cool to hear that that you're putting it to good use. Matt Soucoup Right away, and so I guess during this whole lift and shift process, Cesar Rodriguez. What was your? Matt Soucoup Most proud moment when, when you're when you're going through this. Cesar Rodriguez Most proud moments. Cesar Rodriguez I guess after we did our first deployment in production an we migrated our old system to our new system and our users were on it an it seems Seamless was my proudest moments on that because it was it was a lot of changes going through. Cesar Rodriguez And iterations and making sure that everything was in the right places and having having our QA team go go in and make sure that everything was running as smoothly and transparently as it was before. It's like, you know, one of those things that if you want to work on the engine, don't change the pedal or the brakes. You want to keep that the same it, but make the changes to the ending only and let everything else when. Cesar Rodriguez As it was before, so once that accomplishment was reached that was, that was great and done. Then we can move forward. And yeah, that was that was a proud moment. Matt Soucoup Nice, and so was the Azure Migration done before the apps came out. Cesar Rodriguez Uh, for Apple TV, I believe it was actually, I think it was, I'm sorry. Seems like without can you remind me where it landed in in that process? Cesar Cordero Yeah, we migrated and then we released the TV OS application. Cesar Rodriguez Yeah, I think we were in beta at that time without Apple TV version of it. And so it wasn't production yet. So it was in that transitional phase. Matt Soucoup OK, OK, very good and Caesar Cardeiro now as I understand it, you're not just limited to TV OS, you also have an iOS and. Matt Soucoup Android application as well my right there. Matt Soucoup Yeah, that's Right. Alright Cool an those are actually using statement forms. Yeah, yeah. Matt Soucoup OK, so here's here's the here's the big question. How much code reuse did you get going from TBOS to xamarin forms? Were you able to reuse like a lot of the business logic, and so on? Cesar Cordero Uh, yeah, we actually use a big chunk of um, per share code. Cesar Cordero So, um, we we were able to reuse a lot of our business logic and our service classes 'cause we make a lot of HTTP calls to our API's in the cloud. So most of that stuff where. Cesar Cordero Where we used and also our models where we used some of our few models were also reused, so there was um swieqi and her team we were. They helped us architect our app where it allows us to maximize the code reviews and maximize the power of. Cesar Cordero Xamarin? Matt Soucoup Very cool swiki. Yes tell all our listeners about maximizing code reuse. What did you have to do? And you know some of the best practices. Sweeky Satpathy Well, what we did specifically since we figured out that a lot of the business logic is going to be shared among not just the TV OS app and the mobile apps they're doing now, in whatever future apps that they want to extend too, so. Sweeky Satpathy The way we have the app structure right now is we have a core project which has all of those view models and services. The authentication logic that Caesar Cordero just mentioned. It all lives in this core project and that and that is how every sort of client app. So you can add whatever sort of client app you want to add to this. Sweeky Satpathy And they all have access to these, um, shared services, and, um, another cool thing that we did was anytime there was any sort of sort of shared logic or a shared functionality that was being implemented. You know, for a particular platform, and we'd notice that, oh, hey, wait, this is going to get pulled over to the other platform also. Sweeky Satpathy We started sort of moving it away to its own little shared project. We've nougat ized a bunch of these dependencies. It's it's really amazing, um, we as soon as we were assigned to like notice patterns and no pieces of logic that was going to be like passed around between the apps. We took an effort to make sure that not to do it later, but to do it right now and move it to its own service or. Sweeky Satpathy If needed, move it to its own nu. Get server like nu get package. So yeah, it's really awesome. And the Oscar's team has been great like they're always open to like these cool new ideas or trying something you know. Maybe not completely, you know seen before, but you know they they had faith in us to let us try it out. And you know, and I think she's a cordero. Do you want to talk about like how? Sweeky Satpathy You you very recently implemented a feature in TV OS and you were pretty instantly able to like, you know, reuse a ton of code and add it to the mobile app. I think that's a good example of how this architecture help them out. Cesar Cordero Oh yeah, sure we had a feature where we need to group some information into one area. So we. Cesar Cordero We first implemented it in TVOS. We added all that shared code. Cesar Cordero Into our core project. So we have our API calls that build out all our models and then um, that code gets we use dependency injection to make this all um abstracted out. We're able to make those service calls with both the mobile app and the TV OS app. Cesar Cordero An all we had to do with the mobile app because all the services were created is just, um, bind. Those models that he created on to the form and then that's. Cesar Cordero Pretty much it. Cesar Cordero It was less of a hassle than. Sweeky Satpathy Magic, I appreciate quality magic. Let's just call it. That's what it is. Xamarin forms is magic friends magic. Matt Soucoup This is why I like having swiki on the podcast magic definitely, so I was going to. Actually. She did bring up a good point. I was going to say What do you like better xamarin forms or TV OS Development? Cesar Cordero TV us is a fun project 'cause, Um, I learned a bit more in that project, but um, forms is much easier to use than, um, the native xamarin. Cesar Cordero Uh, yeah, it was just um, I previously had a background in like Silverlight applications, which uses like XAML. And, um, the MVVM pattern. Cesar Cordero So it wasn't much of a learning curve there. Cesar Cordero Xamarin forms was yeah, easy to use and. Cesar Cordero We were able to come out with the nappo rather quickly. Matt Soucoup And that's what one of the great things about forms is that it does let you get something to your users into your customers really quickly, and it looks great. It really looks looks looks spectacular. Matt Soucoup So Cesar Rodriguez, when you were building the mobile app to support it with the back end APIs, I'd imagine that you also had. Matt Soucoup Because the Web app was there first, you had APIs to support that, and when you're building a mobile app up, did you find out that you had a change or tweak any of those web APIs? The suit, the mobile app at all? Cesar Rodriguez To some degree, yes. It's kind of an interesting process. Actually, given that we started out on supporting the web first before we expand it out to working on these mobile platforms, an Cesar Ann and thank goodness with them squeaky as well, had done a fantastic job and just taking what was there. Cesar Rodriguez 1st in making it work with the current API that was there, but in the recent months we have actually updated our API and the Web is actually now following more of what we're doing in mobile apps and so. Cesar Rodriguez And working with those changes, I realized that we need to actually change out the API to have a better structure in what we're delivering back in those models to make it lighter, faster. That is an also more directly on. Cesar Rodriguez Its purpose so you know sometimes you have a model that you build up as if it's too big because you have some superfluous and values that you may use later down the road and your application. Sometimes it's better off to actually break it down to just deliver what you need in that page and then once you have it click, you can have another call back to the API to then deliver exactly what you need there and then. Cesar Rodriguez So those kinds of challenges that we faced when we were working on this is some of the things that we are actually had a changed out in the API and also given that we have different platforms and we deliver video for different different usages. We also had to update the API to make a call directly on. Cesar Rodriguez Based on the on the platform that is coming from. So for instance, if it's like coming from Apple TV, it would be different than versus the Web, which requires a different type of condition for the for the video itself, so the API was actually um updated for that matter as well to just take. Cesar Rodriguez Into consideration those nuances based on where you're coming from, who you are, and then let me get you exactly what you need on that request. Matt Soucoup OK, well it's really interesting. See circuit provider you guys an I want to ask you. One other thing is, as we're chatting before the before the episode started to be recorded. Uh, a couple of things that came up is that. Matt Soucoup I found out that you're using Reddis cache and so can you explain where listener is both what that is and what benefits that gives the app. Cesar Rodriguez Uh, yes, uh, various cache is fantastic because it's just a easy way to actually just cache values that you want to just have imminently available when, for instance, it may take longer to make a round trip call to an API and so you can deliver something back to the app without having to make that. Cesar Rodriguez Full round trip, so long as that those values that you're keeping in those keys are not stale, so providing a mechanism in between to actually refresh it is something that has to be thought through to be able to do that in between. But for the most part is an actual great feature. Microsoft has to be able to just create a key cache, cache those values, look at that value before you actually go further. Cesar Rodriguez To making the API requests for getting anything back out of your database and then use that on the app immediately. So yeah, it's a great feature. Matt Soucoup Oh wonderful, alright are you both making use of that on the Web app side too? In addition to the mobile app? Cesar Rodriguez Yes we are. Matt Soucoup Cool, so as one of the great things about these, some of these Azure backends is that they're not just applicable to. One thing is that you can if you design 'em right that you can use them across all your application infrastructure, which is which is supernate and Caesar Cordero. When I was talking with swiki yesterday and she mentioned that you all are in absolute love with. Matt Soucoup Application insights So what, what? What makes app insights so great for you? Your use cases? Cesar Cordero Maybe Rodriguez could go into more detail in the app insights, but we also use app Center for our mobile applications and TV OS applications. Cesar Cordero Um, so Sweetie was able to, um, work her magic to create those bindings for app Center for TV OS because it didn't, actually. Um, was it wasn't supported yet for TBS application, so we had to. Cesar Cordero Create our custom bindings for to get that functionality into our TV OS applications. Cesar Cordero Us, yeah, so um, now we're able to track um, what devices were installed for? Cesar Cordero Um RTVS applications, and we're also able to get some logging um, to track which features are being used and how are they using it. Cesar Cordero So it's been a big help with learning what the how the user is interacting with their applications. Matt Soucoup Alright, so we get back to the bindings. You're probably never going to appear in a podcast again after we talk about bindings all the time, but tell me a little bit about the app center bindings. I mean, that's that's one of our product's, but obviously for TV OS but. Matt Soucoup Yeah, tell me about finding too. Matt Soucoup Uh TV OS2 over the app center SDK's. Sweeky Satpathy Yeah, um so the I mean DVD S at the end of the day is just a device and the TV OS app is just is just an application, right? So um, so app center doesn't have so so sorry, app center has xamarin iOS. In Xamarin Android. You know packages that you can add as is, but. Sweeky Satpathy We were unable to get the xamarin iOS package to just work with the TV OS app. So instead what I did was I took the native iOS app which was working and I just did a quick xamarin binding around it and we made a nu get for for the Oscars to use within the TV OS app. And yes, it's been. Sweeky Satpathy Super helpful so it it it does what the regular apps and features do so tracks, crashes, tracks, analytics and you heard it from them. They love it so yeah. Matt Soucoup Is amortized it so so? Are you using objective sharpie when you when you do this, or are you going about it a different way? Sweeky Satpathy No, I did so this the the app center. Sweeky Satpathy IOS SDK the it's a cocoa pod. It's objective C. So I use objective Sharpie for this. And yeah, this was actually pretty straightforward. It wasn't a very complicated binding, just ran Sharpie, did the usual corrections you know, take away those verify tags and a little like here in like a little push here in there and we were able to get it to work. Sweeky Satpathy It was, I think, uh, yeah, I did a couple of test runs here and there and then yeah it was like think about I think it's a couple of days and we were able to give it to the Oscars team so they could use yeah? Matt Soucoup Alright, Cesar Rodriguez jumping back to app insights tell me about all about it, what you what? You're using it for and what what it helps you out with. Cesar Rodriguez OK yeah, so we use app insights in two different ways. One is using it on the server level and then and then. The other way is using it on the client level with. Cesar Rodriguez Using Java SDK's. Cesar Rodriguez Um, they're both useful for different reasons. Um, the SDK is really very easy to implement. It's just a matter of dropping that into your header file, pointing to the source file that is on the web, and then pointing to your app insights account. Cesar Rodriguez And that's pretty much it. It's straightforward and easy to use, and then, um, if you just let it ride for a good hour or so and you go into your app insights account, you're going to see a lot of details that you will not aware of that is happening on your application. So it's very granular too, so you can get. Cesar Rodriguez A lot of details, whether you know what caused up being made, where it fails, you'll get. Cesar Rodriguez Metrics and dependencies of. You know of that particular application that's running, so it's been very useful to us in debugging certain issues that may come up along the way. We're able to look into it and find out you know what. What happened during that time. What happened around at that time, and then pinpoint what the issue is to actually go ahead and. Cesar Rodriguez And fix these bugs that we find along the way. So it's it's a very. It's very instrumental an I'm I'm. I'm happy that I'm implementing it. Matt Soucoup Oh, that's awesome. So, are you writing a lot of queries then custom queries to get your information from app insights? Cesar Rodriguez Not yet. App insight is relatively new in all this to us, and so I'm still learning about it as I as I as I I'm working with our projects, so we're not quite there yet, but. Cesar Rodriguez We're looking forward to doing that and also customizing it further. Matt Soucoup OK cool I was gonna say if you were an expert in writing those queries I was gonna have you teach Maine because. Cesar Rodriguez I know what you mean. Yeah, there's a lot to seebaran do there before you can actually start doing things, yeah. Matt Soucoup Alright, so Caesar Cardeiro or Swieqi. Well, if either one of you can chime in on this, I'm going to go back to the Xamarin forms apps. Was there any reason that you had to use the? I want to? I'm not going to say the dreaded custom renderer, but did you have to use custom renderers at all when you when you're making these apps? Cesar Cordero Yeah we had TS. Cesar Cordero Custom renders on um, a little bit of our apps. So um, art graphic designers are a little bit particular in their UI's and how it should look. So, um, what we had to do was create like a a card view control. Cesar Cordero Where it subclasses the the frame control. It has all the all the shadows and borders on it. Cesar Cordero But then the The Shadows for those controls. They don't look so great natively, so we had to make some minor tweaks to that control to make it closer to um, what the UX designers designed. Sweeky Satpathy I just I was on. I was gonna add um an grid arrow. You can probably also add to this, but it was surprising for the really amazing complex UI design. We didn't have to actually make that many renderers. Sweeky Satpathy Is using the latest version of Xamarin forms in the app where I should be using a ton of the new controls that XAML Xamarin forms team has added carousels, collection views, expand or view? Do you want to add to like you know how those actually help save a ton of time in the development process? Cesar Cordero Oh yeah, so one of the. Cesar Cordero Newer controls that we're actually using is the expander control. Cesar Cordero So, um, I'm. I'm not sure if it's out of experimental yet, but um, it. It worked great for our use case, so we have an FA Q Section where users could expand and hide the the answers to those questions. So we added that to that form. Cesar Cordero I was, I was already ready to just create something custom. Cesar Cordero For um, that page, but, Um, Swiki was nice enough to um, point me the the right direction that there's already something that was created recently for that. Matt Soucoup That's great. Well, half the battle is even knowing about it before you can even use it. And especially with the way the forms team is innovating and developing, it's it's easy to not know they've done something, but they already. Matt Soucoup I already have it and made it but it yeah it might be hidden behind that experimental flag. Cesar Cordero Yeah. Cesar Cordero Yeah, so we, um, we use a couple experimental like the when the collection view is still experimental. Um, we were able to use that and play around with it an it just fit um whatever we were trying to trying to do with application. Matt Soucoup Nice and so are you using any of the other like Xamarin essentials or anything like that? Cesar Cordero Uh, Yeah where we're using some of the essential functionality like secure storage, permissions, preferences, um, and also we're we're using, um, a lot of the idioms for supporting iPad, displaying the form differently depending on what. Cesar Cordero Platform they run on Android, they they show some of their controls a little bit differently than the iOS controls, so we tried making them mesh throughout the board. Cesar Cordero So idioms, um, we use that to accomplish some of those UI intricacies. Cesar Cordero An yeah that helped us get consistency throughout our applications. Matt Soucoup That's really cool and I really we probably don't have to convince any of our listeners about it, but that's another great thing about the the whole xamarin universe is that you could, really, you're just writing your code once and it it's gonna work and provide you a lot of platform specific. Matt Soucoup Type type of things, but just you're doing it from your core. Cesar Cordero Project, and in those idioms that we were able to get granular with our UI's an just target some specific parts that didn't look right. Cesar Cordero So that was really helpful, um, to accomplish whatever the our UX designers designed for us. Matt Soucoup So I'm going to throw it up in the air right now. And Cesar Rodriguez or cordero? Is there anything else that you would like our listeners to know about the app? Cesar Rodriguez It's a great app. I gotta tell you it's so fun app. Um, it's it's just developed for streaming, but it has a lot of rich features for our users to interact with it and be able to pick up right where they left off is intuitive. See so you can you have so much to talk about it because you. Cesar Rodriguez Been working focus primarily on this, so I'll let you take the rest of it. Cesar Cordero So we started creating the Xamarin forms app as like a proof of concept and we weren't sure if Xamarin forms was the right choice. Then going on xamarin native we have in our applications we have. Cesar Cordero Not that complex of a form. Um, just some custom renders here and there and some, um, custom bindings. But then after we gone through those those hurdles, um, we were able to. We were able to create this beautiful application with Xamarin forms an it's pretty responsive and. Cesar Cordero Pretty performant, so it's been. It's been the right choice. I believe I'm going to Xamarin forms wrap. Matt Soucoup Nice, and so this is going to be a leading question, but did you? Did you guys attend any workshops to learn about cyber informs? Cesar Rodriguez Yes we did. Cesar Rodriguez Yeah, we went. Yeah we went to one of our visual studios in San Diego. Cesar Rodriguez And it was actually where I actually first met you. You were in one of those classes that we attended. Matt Soucoup Nice, nicely, pretty good. You know, instructors going on there being probably were leading it so yeah, so in in a way that I'm responsible for this app. Cesar Rodriguez Right, yeah, exactly right, yeah. Cesar Cordero That's where it all started. It was my brain. Sweeky Satpathy Transplant of a couple of months ago. What are you guys talking about? Cesar Rodriguez Now it's kind of funny how things come full circle because we had no idea that you know it was going to come to where we're at now, definitely. Matt Soucoup Yeah, I mean the app is amazing. If sure isn't squeaky with the mobile customer advisory team, you are lucky enough to both get to work on a bunch of apps and see a bunch of apps and what are your your thoughts on? Matt Soucoup On how this all came together and what the app does. Sweeky Satpathy Oh, I think I think it's an amazing app. Does like the whole team from the Oscars like from like they have a huge bunch of like there's a lot of people who are involved in this and everyone's done a great job. This app is going to be awesome. All the people who are going to use it are going to really love it. There's a ton of like infrastructure that's been set up. Sweeky Satpathy Really well, there's so much of automation. Oh my God, I think they have the best automation environment setup. I have seen. Testing is flawless, it's it's just it's so easy like like Rodriguez mentioned, they've siloed the critical components out in a really nice way. It's really easy to on board. Sweeky Satpathy It was so nice like it was really easy for me to just jump in and help and then just like jump off and, you know, look at how look at how awesome they both are. They were doing such great work. Yeah? So I'm super excited for the rest of the Academy to use the app. And yeah, so great. So great, absolutely. And I'm I'm totally responsible for all the greatness to understand. Cesar Cordero So definitely. Matt Soucoup Team effort definitely a team effort. So what I'm going to do then is we wrap up the podcasts every time. Just you know what's your favorite thing? So Cesar Rodriguez. This can be anything in the world of a book that you're reading an app library that you happen to be using. TV show movie. I mean you guys work for the Oscars, so I'm sure you're seeing the Super secret stuff. That's not going to get released till 2022 right now. Matt Soucoup What's going on? What's going on? What's your favorite? Cesar Rodriguez Thing ah, my favorite. Cesar Rodriguez Thing I think is probably listening to Soundgarden. Matt Soucoup Well, as somebody up in Seattle, I can appreciate that nice. Matt Soucoup Any any particular favorite song or album that you're that you're jamming on right now? Cesar Rodriguez It's uh up on the what is it up on the out of? Cesar Rodriguez Africa when it's called now? Cesar Rodriguez I can't remember the name of it. Cesar Rodriguez I mean I need to. I need to look this up now because I don't remember the name of the album. Matt Soucoup I was always a fan of the it's the rusty cage song. Yes it which album that was offered? Cesar Rodriguez Add more doesn't matter. Cesar Rodriguez Um, Yeah, but down on the upside is what I meant to say is the album, but I'm buying right now. Matt Soucoup Nice Alright Caesar Cordeiro what's your what's your favorite thing. Cesar Cordero Yeah, that's a tough one. Cesar Cordero Well, my recent purchase was like a stand up desk for this. Um, this kovid work from home, um? Cesar Cordero Situation so um, so I've been. I've been standing more and coding while standing up and it's been working wonders on my back. Matt Soucoup And I so I have a like a like a drafting table. I work off of and I have a tall like stool. I can sit at. But yeah, it's always nice to get up and stand and stretch the legs a little bit. That makes a big world. The difference? Matt Soucoup And. Matt Soucoup Swiki favorite thing in the world right now, what's? Sweeky Satpathy Going on so hard I've been baking like a ton of bread, so I think all I've been doing is just like carb loading, but my recent obsession is raised by Wolves on HBO. Oh my God, it's so very interesting show an I'm a big Big Ridley Scott fan so. Sweeky Satpathy Yeah, this is like hardcore sci-fi nerd content man, it's amazing. Matt Soucoup I never heard of it before, but raised by Wolves on HP all nice and I have seen your Twitter. You have all the bread that you're baking, so Carbo loading. I like that. That's my favorite thing right now. Purple loading. Matt Soucoup Nice, this has been the samurai podcast talking to the Oscars and about a great app. Thank you for listening, Ann. Will be back next time.