00:00:10 Matt Welcome back. Everyone to the Xamarin podcast, keeping you up to date with the latest and greatest in mobile development for examine developers covering the world, the xamarin.net, Azure and more. But today we're talking about. 00:00:31 Matt An app built with Xamarin that lets you administer your Microsoft 365 subscription. 00:00:37 Matt My name is Matt. Soak up and I'm joined today by a 100% Microsoft team, Rohit Sanjana and squeaky alright. 00:00:46 Matt Rohit, can you tell us a little bit more about yourself and the M365 admin app? 00:00:53 Rohit Thanks Matt, hope you are doing great and staying safe. 00:00:57 Rohit I just want to thank you and really appreciate for doing this podcast on Microsoft Thesis. 00:01:02 Rohit Try admin mobile app. 00:01:04 Rohit And thanks for having us here. 00:01:06 Rohit So my name is rich Vos to I have an engineering background. 00:01:10 Rohit I joined Microsoft about 10 years back. 00:01:14 Rohit I have worked on various application is starting my career with what we called Office Communicator. 00:01:20 Rohit We did its first version of web. 00:01:22 Rohit Then I moved to build some comp shared components. 00:01:25 Rohit Or office. 00:01:25 Rohit Perhaps I had also worked on machine learning problems, especially in computer vision. 00:01:30 Rohit Uh, so kind of diverse experience working on different Microsoft Tech for last one year. I along with my team owns the Charter for Microsoft 365 admin mobile app which is available on both Android and iOS platform. 00:01:47 Rohit So so coming to this app, this has been built for admins to manage them. 00:01:53 Rohit Emphasis by subscription from wherever they are. 00:01:56 Rohit Uh, any user and with an admin role to Microsoft 365 or Office 365 business subscription will be able to use this app. Our goal is to empower the admins to be productive. 00:02:12 Rohit And happy through mobile experience. 00:02:14 Rohit So if you are an admin who is usually on the go, then this app is for you. 00:02:20 Rohit So they're quite an interesting features in the app. 00:02:25 Rohit Like getting service health notification for your organization tenant, creating support tickets, resetting the password of user which is like one of the most used feature. 00:02:37 Rohit Assigning and assigning and managing the licenses, user and group management and many more. 00:02:45 Rohit And if someone is responsible for managing more than one online organization, a user can sign in to multiple orcs and quickly switch between them and manage all those. 00:02:57 Rohit So yeah, yeah. 00:02:58 Rohit At all about I can briefly explain about this app. 00:03:04 Matt Yeah, the app is super cool. I actually have an M 365 subscription. Personally, it's a it's a business M 365 subscription and it's you know when I first download the app I was like what can I actually do Mobileye on the go for for the subscription and there's actually a ton and you and you hit on those. 00:03:22 Matt Three points is that? 00:03:25 Matt Resetting a user password is something like somebody gets locked out. 00:03:28 Matt They're going to need to get back in right away and you do it on the fly. 00:03:33 Matt They contact you and you can and you can do it. 00:03:34 Matt Or if you need to. 00:03:35 Matt If somebody gets. 00:03:36 Matt Locked out, it can do it that way. 00:03:37 Matt Or, you know, billing questions and stuff of that nature. 00:03:40 Matt It's really. 00:03:41 Matt It's neat and it's totally useful and. 00:03:44 Matt On the fly, and it's a it's a good looking app. 00:03:46 Matt It works great and so deep dive a little bit deeper into how how everybody how y'all. 00:03:52 Matt Tilted, but I want to talk to us in Jennifer's to come. You have an interesting story in that you are brand new to Xamarin, when, when when when we were upgrading the app. So Sanjana, can you tell us a little bit about yourself and the background? 00:04:10 Sanjana Sure, the thank you. 00:04:12 Sanjana So I joined Microsoft Year back and I've been working with the admin mobile team for the past six months. 00:04:20 Sanjana My experience with Xamarin so far has been quite delightful, I would say. 00:04:27 Sanjana So one good thing about Xamarin is the shallow learning curve. 00:04:31 Sanjana So I remember when I had joined the missing six months back, I spent a few days going over the dogs and our code base and the very same week I I was there. 00:04:41 Sanjana I think holding creating you only for app so it was so good to see things. 00:04:46 Sanjana Working well. 00:04:48 Sanjana And the fact I really love about Xamarin? 00:04:51 Sanjana Is how well it can be. 00:04:52 Sanjana Used for the. 00:04:54 Sanjana You know cross. 00:04:55 Sanjana Platform development while providing the native user experience for all the platforms with it's you know, platform specific. 00:05:03 Sanjana Elements so also the single application logic and signal technology stack of Xamarin C. Sharpand.net framework makes it easier for app development with better usability and maintenance. 00:05:18 Sanjana So since since I have joined I. 00:05:20 Sanjana Have worked on a few features 2. 00:05:22 Sanjana Of them have. 00:05:23 Sanjana Been quite big and challenging so where I work with a lot of you know different controls and components or like. 00:05:33 Sanjana So the slide gesture long threads, so the Webview carousel view and that. 00:05:40 Sanjana Ages so it has been a really great experience so far with a. 00:05:44 Sanjana Lot of learning, I would say. 00:05:46 Matt It's really cool and I always like to hear what's the story of people who are just getting into Xamarin and. 00:05:51 Matt What they think about it? 00:05:52 Matt But Swieqi, you've been doing Xamarin for quite a while and you actually have a pretty cool story about this app. We're talking before this app originally was from 2012 was like the very first Xamarin app. 00:06:06 Matt That Microsoft put out, but then it you know if 2012 had needed a little upgrade when we when we brought it up in 2019-2020, 2021 era so squeaky, you've been involved with in helping upgrade it so you can. 00:06:19 Matt Tell us a little bit about that story. 00:06:21 Sweeky Yep for sure. 00:06:23 Sweeky So like you said, the original code base for this app was pretty old and and one of the first things that we helped our help. 00:06:32 Sweeky The team with was actually upgrading these admin forms packages from. 00:06:37 Sweeky Uh, I want to say Simon forms one or two, just, you know, upgrading it all up to the the latest that Xamarin forms well. Right now, it's five, but we helped them initially with getting up to Simon forms 3/4 so. 00:06:52 Sweeky That was a really interesting process. 00:06:55 Sweeky Upgrades are always a tricky thing to do, so that's kind of where our team initially stepped in to help them out with. 00:07:03 Sweeky You know, getting the Xamarin stuff up the stuff, and I think that's actually a process that's still ongoing, just it just speaks to you, know, the. 00:07:12 Sweeky The value of you know developing with Xamarin. 00:07:14 Sweeky Even though this app is so old, they're able to iterate, upgrade and bring in all these amazing new features. 00:07:20 Sweeky And yeah, it was. 00:07:23 Sweeky Pretty like excellent because not as part of the upgrade process. 00:07:26 Sweeky We were also able to get them into the latest and greatest development tooling like Azure Dev OPS and stuff. 00:07:32 Sweeky So yeah, it's it's actually been really, really awesome. 00:07:36 Sweeky Supporting this team and they're just doing amazing work. 00:07:39 Matt So let's talk a little bit. 00:07:40 Matt About the the work that you're doing. 00:07:42 Matt So the thing that. 00:07:43 Matt I always find the most interesting, but I always talk about it over and over again. Is authentication and obviously it's M365, which means Azure Active Directory and Rohit. So tell us a little bit about how you're doing. 00:08:00 Matt Yeah, so I'm guessing it's the Microsoft Authentication library or M cell. 00:08:04 Matt So how did you guys do it? 00:08:06 Matt What do you think? 00:08:06 Matt What do you think was that hard? 00:08:07 Matt Was it easy? 00:08:08 Matt Give us a story. 00:08:10 Rohit Yeah, so when we say when we picked up this app again at that point of time it was using very old custom libraries for authentication and the first thing that we did was like to move to latest authentication stack that we have from Microsoft and that is. 00:08:25 Rohit I'm sorry. 00:08:27 Rohit Microsoft Authentication library. 00:08:30 Rohit And that's where all the fun started. 00:08:32 Rohit We actually the the code that was written in the first place. 00:08:35 Rohit That was quite hard coupling was there. 00:08:38 Rohit It was platform dependent and once we used this new get package we could all bring it to the same codebase. 00:08:46 Rohit Common code. 00:08:47 Rohit Base and shared library and and with that our authentication rates authentication success rate has actually spiked. 00:08:55 Rohit And right now we are at 98 to 99% and and that thanks to mcell.net team, they have been fixing all our fix. 00:09:04 Rohit All our bugs that we have reported. 00:09:06 Rohit We actively to attract those issues in the in the production. 00:09:11 Rohit And and along. 00:09:12 Rohit With that, what we have also done is we have actually integrated the. 00:09:15 Rohit Once we had done that authentication work with them sell, we also integrated with. 00:09:19 Rohit Microsoft Intune SDK, where we can. 00:09:22 Rohit We can provide all those. 00:09:24 Rohit Uhm, administrative capabilities where additional security can be provided to the admins where they can in. 00:09:32 Rohit For security guidelines for their organization like they have to encrypt the data. 00:09:36 Rohit Because given that this is an admin app, it could be like it is very. 00:09:41 Rohit It has to be. 00:09:41 Rohit Secure and we need admins can take that decision like how much they want to. 00:09:46 Rohit So how what are policies that they want to enforce so that they are confident with this app on the mobile apps? 00:09:54 Rohit Or mobile devices? 00:09:55 Rohit And so lot of Mam policies we support like encrypting data, enforcing pin. 00:10:00 Rohit Uh, we can also have where like we can block the screenshots, OP. 00:10:06 Rohit We can stop the copy to the clipboard, so all those things could have been possible because. 00:10:11 Rohit Of once we move to Msal library, which was not, we were able to do before with custom authentication stack on which we were. 00:10:20 Matt I did notice one thing when I did sign into the app is I do have the Microsoft Authenticator app installed as well is I actually didn't have to sign in. 00:10:28 Matt I didn't actually enter my password, it's automatically flipped over to the Authenticator app and then flip back and I was signed in, and so that's actually something that M cell can do for you, right? 00:10:38 Matt You can do that integration. 00:10:40 Matt Is that am I? 00:10:41 Matt Right there, Yep. 00:10:42 Rohit That is one thing which SSO is provided, so you have already signed in into a broker app. 00:10:46 Rohit That is could be authenticator or a company portal and the same. 00:10:49 Rohit Same session, it can pick up from there. 00:10:51 Rohit It will just get the refresh token for those from the broker and get another access token for this app so you don't really need to worry around that and that's where the whole beauty is. 00:11:03 Matt Yeah, that's really cool, and that's something that's relatively new with and so I think within the last year or so and you mentioned that the msal.net team. They are amazing every now and then. 00:11:15 Matt I will bug them too and they are so great we should actually have them on the show as well. 00:11:20 Matt So cool so. 00:11:22 Matt Well, Sanjana, I do believe that you're also working a little bit with accessibility with the app, so can you tell us a little bit about that? 00:11:31 Sanjana Yeah, that's right match. 00:11:33 Sanjana So recently I've been working on this interesting thing. 00:11:37 Sanjana We called access ability so we had to improve accessibility for some of our customers with different needs and experiences. 00:11:45 Sanjana And using the native API provided by Xamarin flexibility. 00:11:50 Sanjana It became so much quicker for us. 00:11:53 Sanjana So like we we have Android accessibility and then I use accessibility, so are these. 00:12:01 Sanjana The native features which are provided by Xamarin makes it really easy for us to achieve that so. 00:12:10 Sweeky If I may interject, I'd also like to add that the salmon farms team has been very, very supportive, and you know, helping us out with you know, fixing the accessibility story for. 00:12:22 Sweeky For the team and Shane and especially Rachel, start out to Rachel. 00:12:28 Sweeky She's putting out a blog post about, you know, have a blog post series of how to make more accessible apps with Xamarin. 00:12:36 Sweeky I just wanted to sort of like ask Sanjana like I know you've been like we've been in these discussions. 00:12:43 Sweeky Do you want to just actually share the the bit of the journey on how you started and you know how easy or how difficult like the the issues that you faced and how we were able to sort of overcome it for the accessibility story. 00:12:58 Sanjana Source wiki, so I think a few of the challenges that we faced over with. 00:13:06 Sanjana The difference? 00:13:08 Sanjana All the difference in iOS and Android platforms we had to, you know, make both the things work. 00:13:15 Sanjana So there were there are few APIs which the Xamarin team had provided us like the set controlled by the set focus. 00:13:24 Sanjana So all these things which we bought from. 00:13:27 Sanjana And them had been really useful for us and also recently added something called as make announcement. 00:13:33 Sanjana So usually while activating a particular component or you know, say selecting a list item, we face problems like it wasn't dynamic enough. 00:13:44 Sanjana We had it wasn't announcing whether you know the. 00:13:47 Sanjana The item has been activated, so we use. 00:13:50 Sanjana We made use of uh and videos of a method called make announcement which was pretty useful for us. 00:13:59 Sanjana Setting yes as you mentioned, Shane and Rachel had been really helpful. 00:14:04 Sanjana So we we had set up weekly sync ups with them and they provided a lot of insights and help with accessibility, yes. 00:14:16 Rohit Yeah plus one to Sanjana. 00:14:17 Rohit And really I think they have helped us a lot. 00:14:20 Rohit I will. 00:14:21 Rohit Anyone listening to this podcast. 00:14:23 Rohit I will suggest him to go over their kit help page and look at the alley tools that they have created and lot of issues that get resolved just going over. 00:14:31 Rohit Those codebase code pieces, so really. 00:14:34 Rohit That is a very. 00:14:35 Rohit Good reference point for anyone do going. 00:14:37 Rohit To work on the accessibility. 00:14:40 Matt And accessibility is such an important topic because whether you realize it or not, many people have have needs when, when, when the other day I was looking online for Adam map and with just color coded like each state in in in the US with varying rates of vaccinations. And it was various. 00:15:00 Matt Shades of red and I couldn't make out whether the difference between the lowest and the and the second lowest in the third lowest, and so that's an accessibility issue and. 00:15:12 Matt And so it's it's such an important thing and it comes in various ways that you don't even think about. 00:15:17 Matt So making your app useful and usable for everybody in your audience is so important, and it's something that we need to take into account from the very beginning of of creating the application alright. 00:15:32 Matt Talking about then the functionality of Xamarin forms Rohit, which version of forms? 00:15:37 Matt Or are you all using with the app? 00:15:39 Rohit So right now we are on 4.8 and trying. 00:15:42 Rohit To move to. 00:15:42 Rohit 5.0. 00:15:44 Rohit We do use Xamarin essentials. 00:15:46 Rohit Uh, and right now we are getting blocked because of couple of issues because since our app was not supporting forms app, compact activity and that we have recently solved that problem with help of Xamarin team with squeaky help at all and that was the 1st. 00:16:07 Rohit Goal posts for us. The next one is to move to 5.0. We are running into some issues with that, but hopefully that should. 00:16:13 Rohit Be resolved very soon. 00:16:14 Matt Alright, and so another thing that I notice with the app is that it does send a lot of notifications, which as you would imagine for administrative app. 00:16:21 Matt We have to and I'm going to go out on a limb and guess say you're using Azure notification hubs. 00:16:27 Matt Rohit, am I right there? 00:16:29 Rohit Yeah, we love as a push notification how we use it for delivering the notifications. 00:16:35 Rohit Actually we have a back end service which app connects to four. 00:16:39 Rohit First we get the push notification registration done. 00:16:42 Rohit From that, the service is responsible for that. 00:16:46 Rohit Maintaining the PNS handle for that. 00:16:48 Rohit User and the same service. 00:16:49 Rohit The back end service listens to. 00:16:51 Rohit We have Azure queue and message bursts where our partner teams right there events just for example service COM team that keep track of various keep track of health of various services for that tenant and and whenever there there's any downtime. 00:17:08 Rohit Oh no, any of the services facing. 00:17:10 Rohit They write an event. 00:17:11 Rohit To other queue. 00:17:12 Rohit Which has details of the impact to that tenant and we process that request and broadcast to Azure push Notification Hub and that takes responsibility of delivering to. 00:17:21 Rohit To to the, to the to the end user. 00:17:25 Rohit For example like I will just give like in one of the recent Azure AD outage that happened. 00:17:30 Rohit We were able to notify our users with all the latest updates and whenever like when when the services would be going to restore. 00:17:37 Rohit So that was a lot of help for the end user to know like. 00:17:42 Rohit Going on similarly, we partner with comma Steam as well, which post events are related to billing or subscription expiry that we notify the user and help them to take required action and and take the right decisions. 00:17:58 Rohit So we we try to help the users. 00:18:02 Rohit To stay up to date with all the all the. 00:18:08 Rohit New new updates and new. 00:18:12 Rohit So what all is happening in their tenant? 00:18:15 Rohit So that is a really nice way of being connected to the users, so we also have a way of sending notification to particular set of users like like if they are facing any known issue and we have a work around for them to help. 00:18:31 Rohit So we figure out. 00:18:32 Rohit Like who all are facing that and we? 00:18:34 Rohit Have a capability to. 00:18:35 Rohit Notify the users with suggestions so that they can go and self help themselves so. 00:18:39 Rohit Like if any known issue they are hitting and we. 00:18:41 Rohit Can suggest them some work around. 00:18:44 Rohit Yeah, we do that, so overall notification is the creaky scenario for admin app where we want users to be duly informed and up to date with all the information that we can have. 00:18:56 Matt And then receiving the notifications on the app itself? 00:19:01 Matt And did you find any issues then experience hooking into the native functionalities that which libraries were you using? 00:19:07 Matt And so, like obviously a notification comes in with Android, there's actually specific Android Y things that you have to do. 00:19:14 Matt So how was that implementing that? 00:19:16 Matt Between Android and iOS. 00:19:18 Rohit Yeah, there was some bit of application code. 00:19:21 Rohit Was there a platform specific code and that we were able to manage it very very well and we could show different type of notifications over there we have like. 00:19:32 Rohit We received notification and we can process a bit. 00:19:35 Rohit We get few cycles in Android and we try to get details for those notifications further. 00:19:41 Rohit So all those things were quite smooth and I think Xamarin team actually squeaky has helped us a lot in building those components for. 00:19:50 Rohit So yeah, I think notification overall using this platform as you push hub and as well as the Xamarin APIs. 00:20:00 Rohit This makes life very simple for us. 00:20:03 Sweeky Yeah, I was just. 00:20:04 Sweeky Going to. 00:20:05 Sweeky You just stole the exact thought out of my mind. 00:20:08 Sweeky I was just going to ask like how did you find the documentation? 00:20:13 Sweeky You know other content, samples, etc around trying to implement these first party SDK is provided by Azure into your. 00:20:20 Sweeky So like maybe you or Sandra can both speak to, you know the support and how easy it was to sort of you know. 00:20:27 Sweeky Just look at the code and no, sorry, look at the samples and look at the documentation and sort. 00:20:31 Sweeky Of implement that into your app. 00:20:33 Rohit Yeah, I guess there were couple of videos that we watched and after that we were all like able to code it directly. 00:20:38 Rohit So documentation. 00:20:39 Rohit Wise it is great. 00:20:41 Rohit And even few sample few training videos are there and those will actually give us full glimpse. 00:20:47 Rohit Like what we need to do. 00:20:48 Rohit You can understand like how tags work, how you can do the registration or what. 00:20:52 Rohit What all are different type of ways of sending a notification? 00:20:56 Rohit How you can go and build expandable notifications, different type of notifications that we can show to the user in that poll? 00:21:03 Rohit So all those things are I think I believe the the the one thing that. 00:21:07 Rohit One thing that is stand out for Xamarin team is that documentation and the support that we get it is it could be more notifications. 00:21:14 Rohit It could be for say even recently we were doing this biometric opt. 00:21:19 Rohit That also then just we went over the documentation and we were able to. 00:21:24 Rohit Get it working very soon so. 00:21:26 Rohit So I I think that is one very very cool thing about assembly. 00:21:34 Sweeky That's so awesome to hear. 00:21:35 Sweeky I'm a documentation junkie, so it always makes me happy. 00:21:38 Sweeky I wanted to ask Sanjana. 00:21:40 Sweeky We've had a couple of conversations just about, you know, by using salmon essentials or just using a particular Xamarin forms API. 00:21:47 Sweeky I was just curious, do you want to share like how as a as a person who's fairly new to the salmon land? 00:21:55 Sweeky And to mobile, and also I guess. 00:21:57 Sweeky How how was it for you as a new person just coming in, having to implement something? 00:22:01 Sweeky Suppose, examine essentials. 00:22:03 Sweeky How did you find you know? Finding the documentation or finding you know the videos or finding the 62nd? You know video clip that they were not in our post support. You know, for example, what was your sort of, you know, coming into this brand new? 00:22:16 Sweeky Trying to implement something. 00:22:17 Sweeky How do you find our documentation and support? 00:22:20 Sanjana Yeah yes Mickey so. 00:22:22 Sanjana So I think the documentation has been really great. 00:22:25 Sanjana It it has helped me a lot so far. 00:22:28 Sanjana So on on the Xamarin essentials I was specifically using the behaviors a library there for. 00:22:36 Sanjana Opening the browser links in in the web view to a browser instead of the in app or install. 00:22:44 Sanjana Opening it enough, it is supposed to be directed to. 00:22:47 Sanjana Browser, so that was pertaining to this behavior library that Xamarin Essentials provides. 00:22:54 Sanjana So this is what I I was particularly using there when I was working on the message center feature and the the sample apps which are there in the documentation the videos. 00:23:07 Sanjana Which are there? 00:23:09 Sanjana In in all the grammar in document documentations have been really. 00:23:12 Sanjana Helpful for me so. 00:23:14 Sanjana Far so yes, I I have. 00:23:17 Sanjana It's been it's been quite a smooth journey, quite smooth learning curve I would say. 00:23:22 Sanjana For me, with respect to Germany. 00:23:25 Matt That's really interesting that the videos have helped a lot, because that's not something that traditionally you find in documentation, at least on the Microsoft side. 00:23:33 Matt And just knowing that it might, it inspires me to say, oh, we maybe we do need more videos, just not on the Xamarin side. 00:23:40 Matt But over like even on Azure. 00:23:41 Matt To put that in and you're seeing it a little bit more. 00:23:44 Matt But maybe we should have that in everything, since it is proving to be helpful. 00:23:48 Matt So I'd be interested in knowing what our listeners also think about that and squeaky. 00:23:53 Matt You do say you're a documentation junkie, So what do you think? 00:23:57 Matt Just words? 00:23:57 Matt Or do you want videos too? 00:23:59 Sweeky Oh I'm a tick tock learner Matt. I'm a Tik T.O.K learner. I'm all about those 22nd videos to tell me what. 00:24:05 Sweeky To do so. 00:24:06 Sweeky I will speak on behalf of the current generation. 00:24:09 Sweeky Yes, please, more videos. 00:24:12 Matt OK, so a tic TAC learner I'm not sure how. Yeah, I don't even know what tick Tock is so alright, but yeah, I'll I will tell people that we need 22nd videos for documentation and we'll see what we can come. 00:24:23 Matt Up with 00:24:23 Sanjana I would just like to add one thing here. 00:24:25 Sanjana I think Vicki is our go to person. 00:24:28 Sanjana You know whenever we have some issues with Xamarin or, you know we are able to find documentation she's she has the entire repo I think. 00:24:37 Sanjana So yes. 00:24:38 Sanjana Wiki has been really helpful. 00:24:41 Sanjana To us throughout. 00:24:42 Matt So sweet, one thing that's wiki is always super passionate about is test. 00:24:48 Matt Sting and so does the app. 00:24:50 Matt Have any testing squeaky? 00:24:52 Matt Have you enforced testing on this app yet? 00:24:55 Sweeky Uh, I guess before we probably give it over to Rohit, yes, so remember I just in the beginning of the conversation where we were talking about the upgrade process of the old code based. 00:25:07 Sweeky You know, bringing them up to the new to everything. 00:25:11 Sweeky Knew it did involve, apart from just upgrading all the nu get packages and dependencies, we did actually bump up a lot the supporting tooling so we did add a good DevOps story. 00:25:22 Sweeky And yes, I did actually help them with some initial UI tests and they do. 00:25:26 Sweeky If I may say, have a really robust testing student makes me really happy. 00:25:31 Sweeky And yeah, go ahead. 00:25:32 Sweeky Do you want to just like give some more, you know information on? 00:25:35 Sweeky So how that's implemented and how that's been helping? 00:25:37 Rohit Your team, yeah, we do use UI automation for for Xamarin from the Xamarin forms and one one thing that after we have got a good coverage on UI automation, what we are doing next is like we are building a lot of unit tests now. 00:25:55 Rohit So actually, as you know that there's lot of legacy code in the in the. 00:26:00 Rohit App and it is always tricky that we have to like whenever we make a change in those we have to identify anything is going to break or not. 00:26:07 Rohit So I think that is the that is the next step that we are taking, and we have actually created a framework for Utah and code coverage and Suki had helped us here. 00:26:17 Rohit Help us a lot there and we are ensuring that. 00:26:20 Rohit Now the what all new code that we are adding that we are getting a proper. 00:26:24 Rohit Average and as well as like we are trying to get rid of the debt. 00:26:27 Rohit We have of the legacy code. 00:26:29 Rohit So it's a UI automation plus unit test, so overall we are seeing like how we can have a test event development for our app and that will make things much more simpler for any changes that. 00:26:40 Rohit We do in going over in that. 00:26:42 Matt Nice and the testing is so important and it's always I don't know. 00:26:47 Matt I've never written a unit tests in my life I. 00:26:48 Matt Always like to. 00:26:49 Matt Say it's may or may not be. 00:26:50 Sweeky I think at this point. 00:26:51 Sweeky Every time we have this conversation, Matt every single time like I yeah like Matt, are you writing tests? 00:26:55 Matt Every time. 00:26:58 Sweeky No I am. 00:26:59 Sweeky Not OK, I don't know if I want to be. 00:27:01 Sweeky Friends with you anymore match. 00:27:03 Matt I know, I know what a unit test is. 00:27:06 Matt All right, so Rohit. 00:27:08 Matt One thing that I should have touched on. 00:27:10 Matt Before, but we. 00:27:11 Matt Didn't during the authentication section was Microsoft Graph. 00:27:16 Matt So this I'm sure is super important to the app, so if you could tell our listeners what exactly graph is and what you're using it for in the app, I'm I'm always interested. 00:27:28 Matt Graph is super powerful. 00:27:29 Matt It's like the most powerful thing ever. 00:27:31 Matt So yeah. 00:27:32 Matt What is graph and where are you using it for? 00:27:34 Rohit Yeah, graph is something which we are used day and day out so everything all the all the information that we get is from graph. 00:27:42 Rohit It could it be the user list, could it be? 00:27:44 Rohit Uh groups, so all those data is actually stored. 00:27:48 Rohit In graph and. 00:27:49 Rohit Graph is all the knowledge base that. 00:27:51 Rohit Microsoft has. 00:27:53 Rohit So we can use those graph APIs and. 00:27:56 Rohit Graficas are kind of interface to the Ms graph and a lot of data that we can get over there. 00:28:03 Rohit It could be related to groups, it could be related to even say, resources that that tenant has and we. 00:28:14 Rohit We we just like and that is not just one thing we do connect to many other services as part of administration like exchange service. 00:28:23 Rohit Com say we do connect to commerce. 00:28:25 Rohit Guys and how we have architected the app is like we're out all these calls through common admin back end API so so our business logic is mostly present in the back end and in a way they wear the mobile and the web portal that we have can share those code. 00:28:44 Rohit Can share that business logic and this seems lot of cost for us with less development and maintenance. 00:28:50 Rohit And that's where like all the we get all this knowledge base. 00:28:57 Rohit Around how the big bookings are going. 00:28:59 Rohit Calendar related details. 00:29:01 Rohit Anything related to threats that are going to threads that are pertaining to that tenant. 00:29:07 Rohit Uh, kind of anything related to Intune management also. 00:29:12 Rohit Goes through graph so. 00:29:13 Rohit It provides a ton of things. 00:29:15 Rohit Uh, it's really really useful. 00:29:18 Rohit Uh, it has users. 00:29:20 Rohit It has devices, people, meetings, message all the information that Microsoft has is present in graph and one can go and retrieve those information for their tenant. 00:29:30 Matt And if you've never seen graph we, there's even a website out there we can run like test graph queries against your tenant and it's amazing. 00:29:38 Matt You can see like what people, what documents people have been using lately, like popular documents. 00:29:43 Matt Obviously they have to be public documents, but I mean there's so much information you can reach. 00:29:49 Matt Grieve from a graph. 00:29:51 Matt It's it's such a. 00:29:54 Matt It's an amazing product, so yeah, it's definitely something that check out. 00:29:57 Matt And obviously it's only limited to your tenant. You can't go, you know, just log into somebody else's tenant and see what the other people have been using. 00:30:04 Matt But yeah, super cool. 00:30:06 Matt So one thing I always like to talk about is what? 00:30:09 Matt You're most proud of. 00:30:10 Matt With the app so Sanjana can you tell us when what you're most proud of working on with this app? 00:30:14 Matt You know what makes you feel great at the end? 00:30:17 Matt Of the day the 1st. 00:30:19 Sanjana Of all the positive feedback. 00:30:20 Sanjana So from the customers, their delightful experience, that experience is that they have. 00:30:26 Sanjana Yeah, I think. 00:30:28 Sanjana Getting to know those and you know, making the customers happy is something which I I really work towards. 00:30:37 Sanjana So whenever I'm developing a feature or I'm working on anything I I think from a customer perspective. 00:30:44 Sanjana So if I am the customer, how how will the experience be for me? 00:30:47 Sanjana And that's what I work towards. 00:30:49 Sanjana And yes, the the development, I think, uh. 00:30:53 Sanjana And all the UI that I UI unevenly back end everything that we developed all the features so it's it's really good to see it. 00:31:03 Sanjana You know working well and then. 00:31:04 Sanjana Going live so that gives. 00:31:07 Sanjana You that trust and that the happy feeling. 00:31:12 Matt It's always great to see that people appreciate the app and are using the app and are having an empowering experience with it, and so that's that's super great. 00:31:22 Matt And that's always something to feel really proud of. 00:31:24 Matt And this is a great app and it is. 00:31:25 Matt You can make you super productive. 00:31:27 Matt With it so Rohit same question over to you, what do you feel most proud about? 00:31:31 Rohit Yeah, if you ask me what I'm really. 00:31:33 Rohit Proud of. 00:31:34 Rohit Of yeah I will I will. 00:31:36 Rohit Just extend on what's Angela has said that we are really customer focused. 00:31:40 Rohit We love to talk to customers and I'm really proud that we listen to them and we actually we have a trend where in like in every Sprint. 00:31:51 Rohit For every month we pick up at least one item that is coming from customer feedback. 00:31:55 Rohit We as a team actually read each and every review user post, either through app stores or in app feedback, and we do respond each and every feedback. 00:32:05 Rohit Actually we have one person in the team every week who goes over all the feedback and then we meet as a team once in a week and kind of like where they present their findings and then we take action. 00:32:15 Rohit Plan out of. 00:32:15 Rohit That so this this also keeps us us as a team motivated where each and every engineer knows that. 00:32:22 Rohit What are the customer pain points and. 00:32:25 Rohit How their how their fixes are going to help them, and that is actually a purpose. 00:32:29 Rohit And a joy. 00:32:30 Rohit In fixing those feedbacks. 00:32:32 Rohit We do feel proud when we hear from customers that their pain point is at risk and how much we are responding to their queries and that makes them happy and in turn that makes us happy. 00:32:44 Rohit So you can find this like if you see how it reflects a customer. 00:32:50 Rohit Opposition reflects in your app rating. 00:32:51 Rohit Actually a year back out, Apparating was actually nosediving. 00:32:56 Rohit We were like kind of 3.5 on iOS and maybe 4/4 on Android, but now we have much more into listening to the customers sticking to the fundamentals fixing those crashes. 00:33:07 Rohit Uh, yeah, miss our rating has gone up now and kind of like we have like on Android. We are right now at 4.6 and on iOS we are reaching 4 point. 00:33:17 Rohit Four so this. 00:33:18 Rohit Is all due to customer obsession and team finding the pride in doing that amazing work. 00:33:23 Matt I love that that you look at the reviews all the time and you read them all the time and then you take action on it. 00:33:28 Matt And this is something that our listeners probably get sick of me saying, but at Microsoft we actually. 00:33:34 Matt We really do. 00:33:35 Matt Take customer feedback very seriously, and when you do leave it, you are talking to. 00:33:41 Matt The people who. 00:33:42 Matt Create the product. 00:33:43 Matt And yeah, and that's so great that that you're doing it and it's it's paying results when you see the apparating go up, so squeaky. 00:33:51 Matt I'm going to ask this question, but in a little bit of a different format. 00:33:56 Matt What did you like most? 00:33:58 Matt Working on the project, what? 00:34:00 Matt What was your favorite part actually working on this project? 00:34:02 Sweeky Oh come, I like. 00:34:04 Sweeky I actually love this team. 00:34:06 Sweeky It's it's one of I think our one of our best partnerships are supporting this app number one because of the team and you've already heard it. 00:34:14 Sweeky They're very passionate about the app and it's just. 00:34:17 Sweeky Awesome to see them work and strive towards making a better experience for their customers. 00:34:23 Sweeky And I also appreciate the fact that this app is amazing in the sense that it it's a great cross section of Xamarin being used with a bunch of first party Azure services and just seeing them. 00:34:37 Sweeky All work so well together. Seeing the SDK's or work well with you know the salmon APIs and. 00:34:45 Sweeky Making it easy for this team to come, you know, to accomplish their mission of, you know, delivering the best customer experience that they can. 00:34:52 Sweeky It's if I may say, a beautiful love story between Xamarin and 1st party support. 00:34:58 Sweeky So it's I. 00:35:00 Sweeky I take pride that we are able to empower this team. 00:35:05 Sweeky To you know, deliver the best version of the app. 00:35:08 Sweeky And like I said, it's an awesome bunch of team. 00:35:11 Sweeky They have amazingly smart folks in there who are working very, very hard to, you know, deliver this great experience and. 00:35:17 Sweeky Yep, I'm just. 00:35:18 Sweeky It's it's all learning for us and hopefully we are, you know, continuing to provide them with the support to, you know, keep going in this amazing journey. 00:35:27 Matt This is the first time I ever heard an app described as a beautiful love story. 00:35:31 Sweeky Hey man, I can do this. 00:35:31 Matt Which it is. 00:35:33 Sweeky OK I can, I'm great at, you know, finding these hidden you know there are ways to describe. 00:35:38 Sweeky Things so yes, it is a beautiful love story. 00:35:41 Sweeky Yes it is. 00:35:42 Matt Alright, and so as we always do, we like to end the podcast on the pick of the pod and so this can be whatever you want. 00:35:50 Matt Doesn't necessarily have to be a software library, it could be a TV show. 00:35:53 Matt Could be a. 00:35:54 Matt Some music that you're listening to whatever you want, and so the pick of the pod, and I'll go first. 00:35:59 Matt And so I just discovered this TV show. 00:36:02 Matt It's from the BBC and it's called the detectorists. 00:36:06 Matt And it's awesome. 00:36:07 Matt It stars Mackenzie Crook amongst other other folks and Mackenzie. 00:36:11 Matt You may remember him as I Garth from the UK version of the office, so it's a comedy. 00:36:17 Matt But it's also a little bit of a drama. 00:36:19 Matt It's all feel good, and it's like each season is only like 6 episodes. 00:36:23 Matt And what this is is that they are metal. 00:36:26 Matt Detector, if that's like the like, they go around metal detecting, but it's more about you know their lives going on. 00:36:33 Matt So the metal detecting is just like. 00:36:35 Matt Gay it's a vehicle for the story and it's so good. I mean, the problem is that there's only three seasons and it's only like 6 episodes per season and they're only like 1/2 hour long. 00:36:45 Matt So you want to binge the whole thing at a time, but it's so good that you don't want to do it all at the same time. 00:36:50 Matt But I would definitely recommend that check. 00:36:52 Matt Check it out. 00:36:53 Matt It's on Amazon Prime. 00:36:55 Matt Streaming, at least here in the states I. 00:36:57 Matt I believe they're probably on elsewhere. 00:36:59 Matt I don't know for a fact, but yeah, it's called the detectorists, because if you call them as a ongoing joke 'cause they become them metal detectors, that's the thing. 00:37:07 Matt If you. 00:37:08 Matt Cuz they're called the detectorists. 00:37:10 Matt Anyways, super cool. 00:37:12 Matt Check it out and so squeaky. 00:37:14 Matt What's your pick of the pod? 00:37:16 Sweeky My God, I was going to answer till I just realized what do I just draw like the short straw. 00:37:22 Sweeky Why is it that every time I'm on, you're watching some Bizarro TV show Matt like last time it was? 00:37:28 Sweeky It was one of those people who are doing woodworking or building weird. 00:37:31 Sweeky I I anyways. 00:37:34 Matt 'cause I'm bizarre. 00:37:35 Matt Oh, that's why. 00:37:36 Sweeky Yeah, I feel like I need to email. 00:37:36 Matt 'cause I'm not out writing unit test. 00:37:38 Sweeky That's why yeah, see this is the course you get stuck with. 00:37:41 Sweeky Bizarro TV shows my God I'm going to send you a list of things to watch, but I'm going to go against my usual. 00:37:47 Sweeky And I'm going to share a book that I've been reading. 00:37:51 Sweeky Well, it's a book series. 00:37:52 Sweeky It's an epic saga, so I'm a huge Brandon Sanderson fan, and I have just finished reading the most recent book that came out as part of the Stormlight Archive. 00:38:04 Sweeky So this is epic fantasy and it's. 00:38:07 Sweeky For rhythm of war. 00:38:09 Sweeky And it is an excellent, excellent book and 100%, you know, recommended and also just realizing we're going to get an international crowd with this. 00:38:19 Sweeky And I'm going to show off that I'm a proud Indian. 00:38:21 Sweeky I have been watching IPL so that's the Indian Premier League. 00:38:25 Sweeky It's a cricket. 00:38:27 Sweeky You know event. 00:38:29 Sweeky That happens every year and I am 100% rooting for Mumbai Indians as I always do, so that's my. 00:38:35 Sweeky Pick of the part. 00:38:36 Matt That's awesome. 00:38:37 Matt And I do want to talk about the fantasy the fantasy series, because that's actually something I would be interested in two, but we won't get into it because we have to ask Rohit, what is your pick of the pod? 00:38:48 Rohit So yeah, just similar to what's Vicky mentioned, I think everyone here in our country is watching IPL as of now, but apart from that one thing that comes to my mind is like I will. 00:38:58 Rohit I will spend this week. 00:39:00 Rohit I'm spending actually some this week on going over Xamarin Community Toolkit, so that was something while watching. 00:39:08 Rohit One of the standups last week, I discovered and that they were really cool things. 00:39:13 Rohit That I found. 00:39:14 Rohit Custom tab view means that is something which we are thinking to build in our app. 00:39:19 Rohit Uh, how weak and? 00:39:21 Rohit Lazy load it. 00:39:22 Rohit That was really like amazing thing us there was another another feature that I'm going to try out. 00:39:27 Rohit His search that was like kind where we are, we are triggering that search when that user stops typing and exactly the same problem we were at discussing last last night. 00:39:37 Rohit Not where we wanted to build it ourselves, but given that now we have that in this Community toolkit, probably we'll borrow it from there and borrow, steal, or adopt. 00:39:48 Rohit So we'll get it, and that's really amazing. 00:39:51 Rohit Similarly, I saw that pop ups like we are using currently RG plugins for popups, but. 00:39:58 Rohit We'll certainly explore those toolkit for those amazing pop-ups, so kind of lot of gems that I found in that tool kit. 00:40:06 Rohit So that is something which I'm really going to spend. 00:40:08 Rohit My week so. 00:40:09 Rohit Maybe not very interesting, but yeah it will. 00:40:12 Rohit Be like fun. 00:40:13 Matt No, that community to look at. 00:40:14 Matt Super interesting it. 00:40:16 Matt Amazing and yeah, before anybody tries to go and build anything themselves, check out that toolkit. 00:40:21 Matt They're always iterating. 00:40:22 Matt They keep on going with it. 00:40:23 Matt And yeah, it's so good and. 00:40:27 Matt We should do is we? 00:40:28 Matt Should have them on Gerald and Brandon and I'm this. 00:40:31 Matt Well it's the whole community. 00:40:33 Matt Doing it would mean to be. 00:40:33 Matt A huge episode, but yeah, it's. 00:40:35 Sweeky Yep. Yep Yep Yep. 00:40:36 Matt If our hobby air. 00:40:37 Matt Yeah, we forget everybody who's on it. 00:40:39 Matt But Oh my gosh. 00:40:41 Matt So, Sanjana, what's your what's? 00:40:44 Matt Your pick of the pod. 00:40:45 Sanjana So mine is also similar to watch City mentioned. 00:40:49 Sanjana It's about a book. 00:40:51 Sanjana Called the Immortals of Meluha by Amish Amish party so it's a it's one of it's the first book of trilogy and it's about Shiva. 00:41:02 Sanjana He's a he's a man who is in who lives in the mountains with his stripe and he's a destroyer of you. 00:41:09 Sanjana So yeah, they have a rivalry with. 00:41:14 Sanjana Forza properties they call it and then he goes ahead and saves. 00:41:19 Sanjana So two communities, one is the pseudo one, sees the other ones that. 00:41:23 Sanjana Ambulance fees were there. 00:41:24 Sanjana Who are arc? 00:41:26 Sanjana So yeah, that's what I have. 00:41:28 Sanjana Been reading so it's. 00:41:29 Sanjana It's like, uh, amalgam of mythology and fiction. 00:41:32 Sanjana So it's it's a great read, I see. 00:41:35 Matt These have been the best pick of the pod so far. 00:41:37 Matt Easy all right, so I want to thank everybody here for joining. 00:41:41 Matt This has been a great podcast learning about the Microsoft 365 administration app and thank you again. Sweet KIRO Head and Sanjana. And please join us next time on. 00:41:55 Matt The Xamarin podcasts.