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.
Transcript source: Provided by creator in RSS feed: download file
