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