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 Xamarin developers, covering the world with xamarin.net, Azure and more. And today we have a special episode. I'm joined by Andreas Wilkins and Brad Dean from live person and we're going to talk about this cool app they made called. 00:00:30 Matt Agent App 00:00:31 Matt and I'm also joined by the person voted most likely to take my podcast hosting job one day. 00:00:37 Matt Swiki Satpathy, swiki, how are you? 00:00:41 Sweeky I'm so happy that you mentioned that in my intro I. 00:00:45 Sweeky I mean, I knew you said people wanted me back, but I didn't realize they wanted me to host Alex Blount. 00:00:51 Sweeky We need to talk. 00:00:53 Matt Put it on your connect and that's what we have for Microsoft for for our reviews. 00:00:57 Matt Put it on there so we voted most likely to take my job. 00:01:03 Matt All right, so before we get too far into me and squeaky just talking Andreas, why don't you go ahead and introduce yourself a little bit and please tell us a little bit about Liveperson, 'cause this is just an interesting company and a very interesting. 00:01:17 Sweeky Yep. 00:01:18 Andreas Sure, anyone I miss Andreas Wilkins. 00:01:21 Andreas I'm I'm very happy to be here. 00:01:22 Andreas Thanks for the invitation I'm Chief Architect at live person and I'm I'm working with the principal engineers on for the specific services. 00:01:30 Sweeky This. 00:01:32 Andreas So the product we're having is called the conversational cloud and it consists of a lot of different. 00:01:38 Andreas Micro services for specific tasks. 00:01:41 Andreas So I'm I'm working with the with the engineers on the architectural side and on the innovation side. 00:01:49 Matt I'm very cool. 00:01:50 Matt I like I like the conversational cloud that sounds like a really interesting concept, which we'll explore a little bit more so, so Brad, before we get back into the conversational cloud. 00:01:56 Sweeky Yeah. 00:02:01 Matt Can you tell us a little bit about yourself? 00:02:03 Brad Sure, so I'm Brad Dean. 00:02:05 Brad I'm a Xamarin developer, SDE three at Life person and I'm responsible for writing code for. 00:02:13 Sweeky Tab. 00:02:14 Matt And Brad, we know we have a pretty cool story that we'll get to later in his podcast and really wild both speaking myself. 00:02:21 Matt Andreas back to you, let's talk a little bit about live person. 00:02:24 Matt I know especially about this agent app, but what it does specifically and how it really like now that we're kind of in the kovid age, how it helps out specifically with helping people with like customer service maybe? 00:02:38 Sweeky Yeah. 00:02:39 Andreas Yeah, sure, happy to do so. 00:02:41 Andreas To give and give an overview. 00:02:42 Andreas So a little bit back to the conversation Cloud. 00:02:45 Andreas So the conversation Cloud is is a platform which enables brand to communicate with their customers synchronously. 00:02:50 Andreas In a chat you know the typical web chat and. 00:02:54 Andreas Through messaging with this uh, synchronously, which is WhatsApp, it's text messages and and some others. So what we have seen is. 00:03:05 Andreas And it's not just just a coping thing, so it was the password. 00:03:08 Andreas Kind of clear that conversations are going off the phone because customers are. 00:03:17 Andreas We don't. 00:03:17 Andreas Companies don't want to keep the customers waiting online and and going through all these kind of voicemail systems and menus so they can, they can. 00:03:25 Andreas Get in front of an agent, which can be a bot agent with AI or a human agent if that's helpful. 00:03:32 Andreas Just very very quickly to website, or they can even resume the conversation if they're already in a a talk with the with with an agent or representative and it could be for sales and could be for customer support so that that's pretty flexible and we're pretty proud to be a global leader in the conversational AI, so I know it's another conversational. 00:03:52 Andreas Thing so it's all about the conversations and what conversational AI basically means is we want to we're dealing with humans, so we want to make sure that the convo. 00:04:02 Andreas Stations are showing empathy and also we want to help the brands to professionally manage these conversations with bots with self learning bots with intent analytics. 00:04:14 Andreas So it's it's a very very interesting concept. 00:04:15 Andreas I can go on and talk for hours, but I think we only have 40 minutes or so so that's kind of a very high level overview and we're helping. 00:04:22 Andreas With this conversational AI. 00:04:26 Andreas Brands such as Delta Airlines or HSBC Chipotle, so there are very, very interesting use cases. 00:04:33 Andreas Uh, maybe we can talk about, but expect to the Agent app so. 00:04:38 Andreas What we have seen is that due to covid the the move the shift from from the typical boys called sender to to messaging was just accelerated. 00:04:50 Andreas It would have happened anyway, but this accelerated. 00:04:54 Andreas The transition and it's limited it, so we're pretty sure we're pretty confident this is going to stay because it's a very, very good and proven model where the customer has a lot of benefits and also the the actual company, so it's it's a really cool concept. 00:05:10 Andreas So Fast forward what we have seen is in the. 00:05:14 Andreas Traditional world, even the messaging agents were sitting in big contact centers. 00:05:21 Andreas On the PC, on the Mac, whatever, and answering the conversations. 00:05:25 Andreas So now with chobit. 00:05:28 Andreas There was a shift to send this agent home and work from home. 00:05:33 Andreas So basically work from everywhere to support this we had to create an application in a pretty. 00:05:42 Andreas Short time frame, which allows nearly the same experience the same speed, the same benefits on a mobile device on a phone or tablet pretty quickly, so that's what the Agent app does. 00:05:54 Andreas It's basically a mobile workspace for customer support Agent sales agent on the mobile device everywhere. 00:06:02 Andreas In their pockets? 00:06:03 Andreas That's that's it in a nutshell. 00:06:06 Matt Then Brad, let's transition over to you and actually talk about the app a little bit. 00:06:10 Matt Give me give me a real quick overview. 00:06:12 Matt What the app, what it might, how it might work, and what what you built it in. 00:06:16 Matt Of course, I'm I'm. 00:06:17 Matt I'm going to guess it's Xamarin forms, but yeah, just give us a real quick view of what the app looks like. 00:06:22 Brad So it is Xamarin forms. 00:06:23 Brad Yeah, and when you it's an agent facing app. 00:06:29 Brad So like Andrea says, it's it's conversational messages between agents and consumers. 00:06:36 Brad And this is the app that faces a. 00:06:38 Brad Chance so you log in and you'll immediately see a list of conversations that are ongoing and then as conversations come in, they immediately pop up and give you the option to answer them. 00:06:53 Brad And when the apps in the background it'll give you push notification saying, hey, you have a. 00:06:59 Brad New conversation that you need to answer or this ongoing conversation has a new message that you need to respond to and then we have options like you can transfer this conversation to another agent. Or you can send photos or files you know PDF's or Excel things like that. 00:07:18 Brad And one thing that a lot of our customers do is you know you do. 00:07:22 Brad You're constantly typing the same message over and over, so there'll be a lot of predefined content. 00:07:28 Brad You know just things that you're always going to be saying like hello, my name is Matthew. 00:07:34 Brad How can I help you today? 00:07:35 Brad Things like that. 00:07:37 Sweeky Uh. 00:07:37 Sweeky 'cause like that, that that's actually pretty exciting like chat apps are are the rage. 00:07:43 Sweeky I want to say a lot of people are trying to implement some sort of, you know chat, talking social aspect to a lot of their apps. 00:07:51 Sweeky Especially in sort of this, you know, Kovid world. 00:07:54 Sweeky I'm sort of curious knowing that this is the requirements of your app. 00:07:58 Sweeky How or what sort of pushed you towards picking Xamarin as your choice of technology? 00:08:04 Brad So we actually did do a few POC's we we looked at flutter and we looked at react. 00:08:11 Brad Native, I actually end up giving a talk at the Microsoft Alpha Retta Office on Flutter and just 'cause I had. You know, I wanted to share my experience with it, but the theteamknew.net so it seemed like a an easy win to to take that knowledge and not have to. 00:08:31 Brad Re learn a new language. 00:08:33 Brad And just, you know, I'm a huge fan of Xamarin. 00:08:36 Brad I've I've been using Xamarin for a long time and I've been doing XAML. 00:08:43 Brad Since. 00:08:43 Brad You know, Silverlight, so there's definitely a lot of knowledge there and and you know, like you alluded to Matthew, we were talking about the story beforehand. 00:08:52 Brad I had been doing a. 00:08:53 Brad You know not related to live person, just to a side project a couple years ago I wrote a Xamarin app. 00:09:01 Brad And then as I was releasing it to the App Store, I got a call from a health insurance company asking if they could buy it. And of course I sold it to them and with the money I got from that it was actually enough to to buy a 67 Porsche. 00:09:21 Brad So you know. 00:09:23 Brad Definitely appreciative to Xamarin for that I actually printed out. 00:09:27 Brad Had a metal manufacturer make the Xamarin logo into a grille badge for the the back of the car. 00:09:36 Brad So just I mean we love Xamarin. 00:09:38 Brad It's worked really well. 00:09:39 Brad You can just. 00:09:41 Brad Really build up apps very quickly without having to have the two different iOS and Android teams, and that gave us such a leg up when we had such a short time span to make the app. 00:09:54 Andreas Yeah, I wanted to mention this. 00:09:55 Andreas Sorry so the time to market was very critical, so it's important that that you serve. 00:10:02 Andreas Android and iOS, and I like it that that's a shared codebase, so we don't have to work. 00:10:09 Andreas Have double of the effort that will double up the work to do there, and, uh, spread mentioned. 00:10:14 Andreas It was a very very, very tough time frame because. 00:10:19 Andreas The business scaled up really, really massively. 00:10:22 Andreas I'm driven by by the shift to the to the messaging and closing of call centers, so we had to. 00:10:28 Andreas We had to deliver something very very fast, but with in high quality. 00:10:32 Andreas So this was was pretty perfect to land. 00:10:35 Andreas I'm happy that we worked in Xamarin before, so we had a pretty good head start. 00:10:40 Andreas So we worked on a on a different app for the automotive Division of Life person before so we could just transition over, get started and get it going and it was really, really fast. 00:10:50 Andreas I think it took 6 to 8 weeks from from the idea to the release of. 00:10:55 Andreas The initial MVP product and it was very very stable. 00:11:00 Andreas No customer complaints. 00:11:02 Andreas It just just worked. 00:11:03 Andreas Was very very smoothly. 00:11:04 Andreas So I was. 00:11:05 Andreas I was very very happy, doesn't success. 00:11:08 Matt Wow, that is very fast. 00:11:09 Matt 6 to 8 weeks and so I guess during that time then you're using what I'll call vanilla Xamarin forms. 00:11:17 Matt Or did you have to go down a drop down and create any custom renderers or anything? 00:11:21 Matt I guess what was? 00:11:23 Sweeky Did you? 00:11:24 Matt Did you run? 00:11:25 Sweeky I. 00:11:25 Matt Into any problems with Xamarin forms I guess is the what the question I'm asking. 00:11:30 Brad Uhm, yeah we. 00:11:32 Brad I wouldn't say problems the we use web sockets for the communication so you know obviously still rest APIs. 00:11:41 Brad But the the actual real time communication is web sockets which has worked fine for our. 00:11:49 Brad You know the web based component we the Agent app is the mobile side and then on the web we call it Agent Workspace. 00:11:57 Brad But on the mobile app we found every time the app goes to the background we have to kill the web socket connection or our back end service doesn't know to send push notifica. 00:12:08 Brad Options so then every time the app comes back to the foreground we have to reestablish that Websocket connection, and it's not a quick process. 00:12:19 Brad And then to make it even more fun. 00:12:22 Brad Xamarin doesn't support Websockets, so the dot NET Framework does but not on Xamarin so. 00:12:33 Brad You know there is a websocket Nu get package, but it's not really up to date. 00:12:41 Brad I mean it hasn't been published in several years, and there's several Forks of it, but. 00:12:48 Brad You know there's several Forks of it, and each one of those has 30 or 40 open issues and several pull requests that haven't been responded to, so it's just, I mean websockets is not a fun thing to do on Xamarin. 00:13:04 Brad Uhm? 00:13:05 Brad So that was our initial, uh, of Hiccup and I. 00:13:09 Brad I think that took the first couple of weeks, I think. 00:13:15 Brad But it it obviously it did eventually work. 00:13:18 Brad And we got it going. 00:13:21 Brad But other than that, I I don't think we're using many. 00:13:25 Brad You know custom iOS and Android renderers, and we had to use custom web views for video. 00:13:34 Brad We're doing web RTC for video and so each of those requires a custom renderer and we have a long press renderer. 00:13:45 Brad But that's you know, that's that's a tiny little thing. 00:13:48 Brad Other than that, you know you really get a lot of use out of just custom components in XAML and it's. 00:13:55 Brad It's not like it was a couple of years ago when you really had to drop down to the custom renderers. 00:14:01 Brad You just don't need to do that much anymore. 00:14:04 Sweeky Right, right, that was that was actually going to be my question. 00:14:06 Sweeky So since you've said there's not a lot of you know native renderers or any custom renderers in each class. 00:14:12 Sweeky Come on, this is like so just I'm. 00:14:16 Sweeky I'm guessing here. 00:14:17 Sweeky Feel free to correct me. 00:14:18 Sweeky So the UI it's the chat UI so we're talking about chat bubbles, avatar icons I guess profile pages. 00:14:27 Sweeky So like how was your experience? 00:14:30 Sweeky Sort of having to design all these types of you know? 00:14:33 Sweeky UI elements that forms was it like. 00:14:36 Sweeky Did you enjoy the process? 00:14:37 Sweeky Did you use any of our fun new tooling, hot reload or restart? 00:14:42 Sweeky How? 00:14:42 Sweeky How was that? 00:14:44 Brad OK, well first of all I cheated. 00:14:46 Brad And I convinced Andreas to pay for Syncfusion. 00:14:51 Brad So we got the the Avatar view and they actually have a chat control which gives you the little. 00:14:52 Sweeky Got it. 00:14:52 Sweeky It. 00:14:59 Brad Rounded chat, bubble icon and everything like that, so that saved us a ton of time and I'm really happy with their controls and hot reload. 00:15:12 Brad Is amazing compared to where it is. 00:15:16 Brad I mean the initial version of Xamarin forms when it just had a couple of controls. 00:15:22 Brad Uhm Hot Reload came out and it was so frustrating. 00:15:28 Brad Uhm? 00:15:29 Brad And it's funny, you know you. 00:15:31 Brad You said you're gonna ask like my biggest issue with Xamarin. 00:15:36 Brad And, uh, my will say one of the biggest issues right now is we have hot reload but only for XAML. 00:15:42 Brad And if you play around with React native. 00:15:45 Brad They've got hot reload for, you know, even the code, not just the UI, and we don't have that yet. 00:15:51 Brad You know you you change your view models and you've got to restart the whole thing, but then you look at Maui. 00:15:57 Brad And you're like, oh OK, well I can't really complain 'cause it's coming. 00:16:01 Sweeky I was just about to say that. 00:16:01 Sweeky Yeah. 00:16:02 Matt Oh, so that's really cool, Brad. 00:16:04 Matt So you mentioned there's video in there, which is really neat that you're doing. 00:16:08 Matt You know, real time video over the top so that I assume that's all with the. 00:16:11 Matt You know this still the same deal where people can actually go and talk with agents as well. 00:16:17 Matt That that that couldn't be easy I I've tried doing it's RTMP you said. 00:16:23 Brad It's web RTC and it was interesting because iOS doesn't support in iOS. 00:16:31 Brad Uh, let me see if I get this right. 00:16:33 Brad I've got a blog post up on it because it took us so much research. 00:16:38 Brad So iOS 12 does not support web RTC at all. 00:16:42 Brad iOS 13 supports web RTC, but only in Safari. 00:16:48 Brad Sorry. 00:16:49 Brad So it's not supported in the UI web view, and of course not in the web view at all. 00:16:57 Brad But if you're trying to use Webct in a UI web view, you cannot use it. 00:17:03 Brad You have to use an SF Safari view controller. 00:17:08 Brad But the problem with that is you don't really get the events in SF Safari View Controller and the default you know the view when you use Xamarin Essentials and then open the view controller is it's full screen. 00:17:24 Brad I mean, so when we're doing video calling, we really don't have nearly as much control over the application at that point as we'd like to, and one of the main feature requests we get is OK, this is awesome. 00:17:40 Brad We can do video the the use case we get is. 00:17:44 Brad You know, we've got this major telecom provider and a lot of their stores right now are either in lockdown or just, you know, limited capacity. 00:17:53 Brad So they have a customer message in and you can show them the phones over video and then they you know once the customer says, yeah, I love that. 00:18:03 Brad So I wanna come in and buy it then great, but they want to be able to show the phone in a video and also still continue to chat with the customer and they can't do that because the the phones locked out by video. 00:18:13 Brad There's no keyboard access. 00:18:14 Brad There's no little text message box. 00:18:16 Brad And on Android we can do that. 00:18:18 Brad We can show half and half. 00:18:20 Brad On iOS, there's. 00:18:21 Brad There's just no way to do that, and we think we can get around that in the future, but we we're not quite sure it's it's a very tricky thing. 00:18:31 Brad Dale UM. 00:18:33 Brad And maybe in iOS 15 we'll get web RTC support in UI Webview, but you just never know with Apple. 00:18:44 Andreas And The thing is, with the web RTC we we we have a video service on inside the conversation cloud and it was important to have it as friction free as possible. 00:18:56 Andreas So an agent. 00:18:58 Andreas Needs to be able to work on the Agent Workspace, which is the desktop version on the mobile. 00:19:03 Andreas Use the same service every conversation goes into the same data store and on the customer side. 00:19:09 Andreas It's important that there's no app to download, nothing and it should be agnostic of any device, so you press the button you check with the agent or methods with the agent. 00:19:18 Andreas And then at some point the agents wants to show you. 00:19:20 Andreas Let's say the phone and you can invite you easily, very, very seamlessly into a video conversation. 00:19:26 Andreas You accept for privacy reasons, to grant the access, but that's that no install, no third party components, nothing doesn't matter if it's iPhone or or Android, and that that was kind of the the tricky part, but for us it was very, very important. 00:19:40 Andreas It's a it's a seamless. 00:19:41 Andreas With customer experience and for the agent, they used the same same way to initiate the conversations on the desktop and on the mobile device. 00:19:50 Sweeky That's awesome, I really. 00:19:52 Sweeky I love it when companies always try to like sort of create that seamless. 00:19:56 Sweeky You know transition between their products and I'm pretty sure all your customers are really appreciate the effort that's being put into this. 00:20:04 Sweeky So, Brad, you mentioned for this particular video player use case so you have a blog post already. 00:20:10 Sweeky With your initial I guess findings is the plan as you try and fix the second half of the problem, can we expect more blog posts on how the rest of the Community can do it? 00:20:20 Sweeky This. 00:20:21 Brad Yeah, Andreas has been really supportive of sharing knowledge, so I've been trying to write blog posts. 00:20:29 Brad As we've been learning, you know things like this about web RTC, and I've got one about a security change and there's a a default setting in Xamarin. 00:20:41 Brad Or 00:20:42 Brad I forgot it was some some Android HTTP setting that our security team thought should be changed, but then also things like we use Flurry for analytics and you know we needed to create the. 00:20:56 Brad You know the native bindings 'cause they didn't have a Xamarin SDK, so we created Nu get packages for us to use internally and we thought you know what we might as well publish these so that anybody else that wants to use this and is using Xamarin can can do that. 00:21:13 Brad And so we're in the process of we've already got a life. 00:21:16 Brad Person GitHub we might as well publish. 00:21:19 Brad Life person Nu get packages for these things. 00:21:22 Brad So we're going to do that for that. 00:21:24 Brad And then we're also going to publish a life person API. 00:21:28 Brad I'm sorry. 00:21:29 Brad Live person SDK to use our our messaging. 00:21:33 Brad For xamarin. 00:21:34 Sweeky That's awesome, that's so good Matt. 00:21:36 Sweeky Look, who says like I mean not? 00:21:38 Sweeky Who says? 00:21:39 Sweeky I keep telling everybody I meet how awesome this Tavern community is. 00:21:43 Sweeky They just look at this so great. 00:21:45 Matt I also say that all the time this week is that Xamarin has one of the best communities. 00:21:48 Matt I mean, you just have to go back to evolve a couple of years ago and see how passionate that was and. 00:21:54 Sweeky Yeah. 00:21:54 Sweeky Yeah. 00:21:56 Matt We have people putting on their Porsches, Xamarin logos on the grill. 00:22:01 Matt I mean, that's passionate. 00:22:03 Matt And no, but it's. 00:22:05 Andreas That's the cool thing is Xamarin developers drive Porsches? 00:22:08 Andreas That's another good success. 00:22:11 Sweeky It is great great. 00:22:13 Matt That's the key though. 00:22:14 Matt Yeah, Xamarin developers can drive Porsches, but it it totally is is that when we see companies being supportive of the open source. 00:22:23 Matt World and be able to put packages that their employees have worked on for when I'm gonna put air quotes around real work and be able to support the community that way. 00:22:32 Matt That's that's amazing. 00:22:34 Matt Yeah, I mean, the whole Xamarin ecosystem though is better for it. 00:22:34 Sweeky Yeah. 00:22:34 Sweeky 00:22:38 Matt And so and thank you, Brad and Andreas or being for doing that Xamarin. 00:22:43 Matt Folks like to help other Xamarin folks out. 00:22:45 Sweeky Yep, Yep. 00:22:45 Sweeky 00:22:45 Sweeky Yep, Yep I'm lowkey. 00:22:47 Sweeky Kinda just feeling like I I have tons of stickers on my laptops and have badges on my bag. 00:22:51 Sweeky Nothing compares to a Porsche grill so I'm just trying to up my game as one could say. 00:22:57 Sweeky Yeah. 00:22:58 Uh. 00:22:59 Andreas Like you need to send it. 00:23:00 Andreas Sending a photo of it. 00:23:01 Andreas It's pretty cool. 00:23:03 Sweeky Watch out for this space wiki. 00:23:05 Sweeky Comes back with some amazing new swag. 00:23:10 Matt Oh, so I guess Brad, what are you? 00:23:14 Matt We we might have touched on it already, but what are you most proud of for this whole application that you built up in 6 to 8 weeks? 00:23:20 Matt Which is amazing in itself, but. 00:23:23 Brad The the timeline definitely I I think I'm I'm proud of UM. 00:23:29 Brad It was a lot of work and. 00:23:33 Brad You know we were very tired at the end of it. 00:23:37 Brad But you know, we got a lot of support from from Andreas and just from Liveperson as a whole. 00:23:44 Brad You know they they paid for my meals during that that 6 to 8 weeks that a very very supportive company it was, you know it was fun. 00:23:54 Brad It was a lot of work but it was a lot of fun. 00:23:56 Brad Gonna say I'm very proud of the video, just figuring out the technical challenges like that. 00:24:04 Brad I I always really love a technical challenge that you can just sink your teeth into and it was also one of those things where. 00:24:11 Brad Yeah, like Andre said in the beginning we we run a lot of microservices, so it was one of those things where you have to talk with the Seattle team and find out how the back end service works. 00:24:23 Brad Then you have to talk to the Germany team and find out how the video service works and then you have to figure out how you're going to do your. 00:24:31 Brad Brand and I'm here in Atlanta so you've got you know all these multiple time zones going on and it's all these different Slack meetings and that makes it interesting. 00:24:41 Brad It's not just the technology, but it's the the people. 00:24:45 Brad And I I was proud of that that we got it working and it's one of the more popular features. 00:24:51 Brad Because it's one of those things that you can only do on mobile, you can't on desktop. 00:24:57 Brad Pick up an application and show a customer you know. 00:25:01 Brad Here's our phone or here's our fridge and then walk around it and sell them that product. 00:25:08 Andreas OK, what what Brett says. 00:25:11 Andreas What was really amazing for me was was the teamwork within the company. 00:25:15 Andreas So you have these service owners so one owner owns the video service so we went there and say hey we want to implement it into the mobile film. 00:25:24 Andreas And we hit several several issues or just just impediment and quality issues. 00:25:30 Andreas So something has to be modified there and. 00:25:35 Andreas They just work with us and they get back to it. 00:25:37 Andreas We were playing around this. 00:25:39 Andreas OK yeah tomorrow you get a new release, let let's figure it out. 00:25:42 Andreas OK we check which we tried so it's a very very great teamwork. 00:25:46 Andreas Besides their normal they they work for for calling the road map. 00:25:51 Andreas They were modifying and adopting the video service so it can work with a web RTC view on the mobile phone. 00:26:00 Andreas This was really really cool and the other thing was really exciting is. 00:26:06 Andreas We just had we had the mobile developer team, but we need to have a very very solid QA team and a QA plan. 00:26:13 Andreas So we were just reaching out and asking for help and nearly right away we get help from from a great team in Israel and in our company say hey yeah, we're going to do it and we and you have a test plan. 00:26:26 Andreas Oh no not yet. 00:26:28 Andreas OK, I'm going to write one so it was really really hand in hand and it was awesome to see. 00:26:29 Sweeky Miss. 00:26:33 Andreas The people. 00:26:35 Andreas Uhm, we're really passionate about it, so there was a lot of workload. 00:26:39 Andreas Is that on top of the normal? 00:26:41 Andreas They work. 00:26:42 Andreas They did it after I was late on the weekends, but we all had a lot of fun and then the outcome is really, really speaking for itself, so I think. 00:26:51 Andreas We had one bug because this covered by customer and was a smaller one, but that's it. 00:26:57 Andreas So it was was really really cool. 00:26:59 Andreas So no, no that's not my job kind of thing. 00:27:01 Andreas Everybody was so excited. 00:27:03 Andreas Everybody was working on it in their in their free time and. 00:27:06 Andreas To make it happen, and I was very, very pleased to see this commitment and everybody did it because they wanted. 00:27:13 Andreas So starting with Brett for sure. 00:27:14 Andreas He was like he was thrown model for it and showing and this this. 00:27:18 Andreas This caused some kind of traction and just motivated the other people to to go go go there and they said they had a lot of fun and everybody. 00:27:26 Andreas Really proud of it. 00:27:28 Andreas So that was my kind of success. 00:27:30 Andreas My my my thing I'm really proud of. 00:27:32 Andreas It's it's the people, the people in the company, the teamwork with spirit, and it's really really cool. 00:27:38 Sweeky For sure, what's it? 00:27:39 Sweeky Teamwork makes the dream work. 00:27:42 Andreas That's right. 00:27:43 Sweeky 100% true. 00:27:44 Sweeky Yep, I also just want to shout out. 00:27:46 Sweeky I love the fact that you guys have a solid QA plan that you know you came up with it and you QA did. 00:27:51 Sweeky I'm a sucker for a great testing story so you get you get my extra thumbs up for that. 00:27:58 Andreas Thank you. 00:27:59 Matt Swiecie is like the expert on testing. 00:28:02 Matt I personally haven't written a unit test in my life, so. 00:28:06 Sweeky I wouldn't say I'm the expert. 00:28:07 Matt Job. 00:28:08 Sweeky Expert, I'm more of that annoying voice at the back of your head that reminds you that hey, have you written a test or this will hurt you later on? 00:28:18 Matt Well, speaking about that though, Brad, did you guys write a whole suite of unit test? 00:28:22 Matt I mean, what was the plan for that? 00:28:26 Brad So. 00:28:26 Brad So we rely on App Center a lot. 00:28:31 Brad I I will say we probably don't have as many as Swiki would like. 00:28:37 Sweeky Yeah. 00:28:37 Brad Or even Andreas yeah, yeah, but it it has saved us already. 00:28:42 Brad I I do remember we had one point where. 00:28:45 Brad Everything was running fine as far as the developers were concerned. 00:28:48 Brad And. 00:28:49 Brad And App Center started complaining and refused to build. 00:28:53 Brad So we've got a complete CI CD pipeline where when we check into the dev branch you know we check in through a, you know GitHub flow, so we'll create a branch where request, uh, PR app center will do its thing. 00:29:10 Brad Test on a virtual device and then say yeah, you're good to to merge. 00:29:15 Brad And then we dive. 00:29:17 Brad We merge from there into the master branch and and then if that goes well then that goes off to the App Store and Play Store. 00:29:27 Brad And so it actually stopped and app Center said now this isn't running on a physical device and it turned out there had been in. 00:29:36 Brad Android update and it worked fine all the way up to the physical device and for some reason it was causing the app to crash on start. 00:29:47 Brad Worked fine for some reason on all of our devices when we ran in debug mode. 00:29:55 Sweeky Right? 00:29:55 Brad But yeah, it it saved us just by having that Xamarin UI test project and we were able to figure it out before we deployed to. 00:30:04 Brad You know, it would have gone just to the the test environment and then QA would have caught it. 00:30:08 Brad But still it's it's always nice to catch it before it gets to that point. 00:30:13 Sweeky 100 percent 100% Yes UI. 00:30:15 Sweeky Test saves the day, yeah? 00:30:18 Brad The the next step for us is our QA engineer is saying you know how do I learn how to write the tests for App Center? 00:30:29 Brad She's like it would save so much time if I'm the one writing those and then all these manual tests that I'm doing. 00:30:36 Brad I can just automate half of my job and I'm like, yeah, that sounds great. 00:30:42 Sweeky Yeah. 00:30:44 Andreas Yeah, we're pretty big on quality and and and security stuff, so that that's really interesting. 00:30:49 Andreas And and and and test automation. 00:30:51 Andreas I have one story which is kind of related where which was eye opening to me when before we released and so we had to make sure we we wanted to make and had to make sure the quality is. 00:31:02 Andreas At the standards they have to beat so enterprise grade quality. 00:31:06 Andreas We couldn't sacrifice any any any quality or really something which is which is not sorely tested and the second thing is we couldn't sacrifice the security. 00:31:14 Andreas So that was another cool thing we we hired. 00:31:16 Andreas An external security testing company who tear the whole thing apart and what what what they found initially we get the report say huh? 00:31:25 Andreas It's a little bit. 00:31:26 Andreas This is a little bit. 00:31:26 Andreas 00:31:27 Andreas Picky maybe, but let's hop on a call and explain. 00:31:32 Andreas So they were explaining ways how. 00:31:36 Andreas Security could be breached when when you store credentials. 00:31:42 Andreas In the key chain and things like that, and they even showed it and I was curious, say hey, show me, show me how this works and it was incredible. 00:31:49 Andreas I've never seen how people do the security test and also this company would be told them. 00:31:54 Andreas Hey, in two weeks you need to get it done, but you need to get it done very very carefully and they said, yeah OK, we're going to do it so I'm very very cool company. 00:32:04 Andreas I think the company was called website, right? 00:32:06 Brad I think so, yeah. 00:32:08 Andreas OK, very cool. 00:32:09 Andreas This was very very eye opening so learned a lot. 00:32:13 Matt And security is one thing that you never want to, I guess miss out on because everything is cool until you miss it and then everything is very bad. 00:32:22 Sweeky Yeah. 00:32:23 Andreas Yeah, yeah, so there was no way to release it without the blessing from the internal security team and the and external testing company, which which is really appreciated. 00:32:33 Andreas So this was pretty good. 00:32:35 Andreas Very very interesting. 00:32:35 Sweeky Like this? 00:32:36 Matt So, so Brad, what's next for the app? 00:32:39 Matt I mean, are you guys still iterating on it or we are? 00:32:43 Brad So the initial version was, you know, senior conversations respond to conversations and. 00:32:52 Brad You know the the very basics of what an agent needs. 00:32:56 Brad You know the the call center employee. 00:32:59 Brad But on the web experience, there's a lot more features. 00:33:04 Brad They have the ability to see the call center analytics, see how their agents are doing, view the status of a queue, and manage the employees and even look at you know we have a lot of AI. 00:33:19 Brad Functionality, a lot of bot functionality, things like that. 00:33:23 Brad So our goal is to reach feature parity with the web version and how we're going to do that because. 00:33:30 Brad You know there's not a ton of real estate on a phone is we're working towards when you log in on a tablet it shows you a lot more experience. 00:33:40 Brad So that's our road map is just feature parity. 00:33:43 Sweeky Do you feel like with the recent updates with Xamarin with all the new community toolkit stuff, are you feeling empowered, inspired for these upcoming features? 00:33:54 Sweeky They're going to add? 00:33:56 Brad Yeah, I think so. The the upgrade for us from 4.8 to 5 wasn't too bad. We were using both of the experimental features for media and expander so we had to to rename those gotcha. It wasn't too bad. 00:34:13 Sweeky Good to hear, good to hear. 00:34:15 Sweeky We hear mixed Lanegan have mixed. 00:34:18 Sweeky I hear certain types of stories, but good to hear. 00:34:20 Sweeky Your transition was great. 00:34:23 Matt So are you planning on moving up to Maui as soon as you can, or are you going to take a wait and see approach? 00:34:29 Brad You know, I don't know that we'll do it as soon as we can, but I really don't like. 00:34:33 Brad Like, uh, you know, delaying the the problem with delaying is if you wait too long then you get. In this situation where it's been six months and now you've got, you know this backlog of OK, I've got 37 Nu get packages and I need to update them all. 00:34:53 Brad And that's a very dangerous position to be in. 00:34:56 Brad It's just. 00:34:58 Brad Yeah, I, I think we'll update as as soon as we reasonably can. 00:35:04 Brad Uhm, and from what I can tell, it's. 00:35:08 Brad You know it. It seems scary because you're going from Xamarin forms to Maui, but I think it's less scary if you think of it as I'm going from 5.0 to 6 and and then it's not as bad. So I I think what we'll do is we'll do POC's as the the Maui early releases come out. 00:35:28 Brad And then we'll kind of gauge how well it goes, and then hopefully it won't be too bad for us. 00:35:35 Matt Right, and as you go, and this goes for all our listeners too. 00:35:38 Matt Is let us know how your policies are going and you know ping David or now on Twitter he loves to hear all the feedback. 00:35:46 Sweeky Oh yeah. 00:35:47 Matt And on GitHub too. 00:35:48 Matt So I mean, just let us know how it's going and you know and we the feedback helps more than anything so. 00:35:53 Sweeky For sure for sure, actually just for David, I have a fun question for both Brad and Andreas, what would you be? 00:35:55 Sweeky I. 00:35:55 Sweeky 00:36:02 Sweeky What like I'm I'm your genie. 00:36:04 Sweeky I give you one wish. 00:36:05 Sweeky You get to ask David what would you want to see in Maui? 00:36:11 Brad Oh, can I? 00:36:15 Sweeky Just one I don't want him to hate me. 00:36:15 Brad I asked for the new logo. 00:36:20 Sweeky That's valid, that's valid Andreas, what about you? 00:36:23 Andreas It is very hard to say I'm more people person so I would love to have a have a clone breath button in there so I feel fresh. 00:36:29 Brad Yeah. 00:36:34 Sweeky OK David, you have it from milk from your favorite customers. 00:36:38 Sweeky That's what they want. 00:36:39 Matt Well, Brad and Andreas thank you so much for joining us and swiki. 00:36:40 Matt Thank you as always. 00:36:41 Matt This is this has been a really fun episode. 00:36:43 Matt Thank you very much. 00:36:43 Matt I really appreciate it. 00:36:45 Matt This has been the Xamarin podcast.