Its Power Apps Wrap Unpacking Microsoft's New Mobile App Tool for Enterprises
Sitaram Pemmaraju
FULL SHOW NOTES
https://podcast.nz365guy.com/445
AgileXRM
AgileXRm - The integrated BPM for Microsoft Power Platform
If you want to get in touch with me, you can message me here on Linkedin.
Thanks for listening 🚀 - Mark Smith
[mark_smith]: Today's guest is from the United States. He works at Microsoft. He's a principal software engineer and manager. You can find links to his bio and any social media, et cetera, in the show notes for this episode. Welcome to the show Sitaram.
[sitaram_pemmaraju]: Thanks, Mark. Thanks for having me here.
[mark_smith]: Good to have you on the show. Today's episode, of course, is it's a wrap, right? It's all around what's the new PowerWrap rapper to produce mobile apps out, particularly in the enterprise. But before we unpack that, tell us a bit about food, family, and fun. What do they mean to you?
[sitaram_pemmaraju]: Oh, food, I like spicy food. Like, you know, I just find the restaurants which has most spicy food around this area. I'll just go try all of that. Yeah, and family, yeah, I have two kids who keep me busy all the time. One is 30,daughter, you know how our signatures are, they test my patience, and my son is eight year olds. We play saga together,so yeah.
[mark_smith]: nice. Where did you originate from?
[sitaram_pemmaraju]: I'm from India, so I joined Microsoft culture in India,and then it's been a long journey, but yeah, I'm from India.
[mark_smith]: Well, any particular region?
[sitaram_pemmaraju]: South side of India, the state is called Andhra Pradesh.
[mark_smith]: Okay.
[sitaram_pemmaraju]: There are only a couple of states below India.
[mark_smith]: Very good. Very good.
[sitaram_pemmaraju]: Thank you.
[mark_smith]: Tell me how did you end up, moving into Microsoft? Like, or even further back, how, what made you take a career choice in IT?
[sitaram_pemmaraju]: So I think it was always my passion, like, you know, when during childhood days when I was playing video games, I was like, hey, how this is being built, right? What's behind the scene? What's going on, right? So with that, I used to, the passion towards how this is being built, right? So I started learning, like, you know, first language I learned was basic. Long ago, it was just small programming language. That passion I took computer science as my majors, did a four-year college, and then I worked in a couple of servicing industry, and then Microsoft is a dream company for many people. So literally studied a lot for getting into Microsoft, and then like joined back in 2006, I joined Microsoft.
[mark_smith]: Wow, so how long have you been in the business applications team?
[sitaram_pemmaraju]: It's been four years.
[mark_smith]: Okay. What do they still call it the business applications team internally is you're in BizApps or is there another name for it?
[sitaram_pemmaraju]: So Business Application Group is a bigger group. Our group is Power Apps.
[mark_smith]: Yep.
[sitaram_pemmaraju]: We specifically develop apps for browser, Android, iOS,and any kind of applications required for your business. You can build it with the writing least amount of code.
[mark_smith]: Yeah, yeah. So let's jump into there. First of all,you know, the focus of this episode is around the Power Apps wrapper. In your terms, what's the Power Apps wrapper?
[sitaram_pemmaraju]: So yeah, it's long.
[mark_smith]: Yeah, go for it.
[sitaram_pemmaraju]: Yeah, it's officially called perhaps native apps. Okay, the initial, initial terminology was given perhaps wrap and then like, you know, we renamed rebranded to perhaps native apps.
[mark_smith]: excellent.
[sitaram_pemmaraju]: So basically, you know, the native apps enables you to wrap any canvas app that you build and add your branding to it, custom branding to it, and create an iWiz and Android app Right. So Android, the output, once you build an Android app, is called an APK. And for iOS, it's called IPA. So we give, once you build a Canvas app, we give you these two files out. Right. Isn't it amazing, right? You know, you build a Canvas app and then you just get these two out. And once you get that, you distribute it through your own stores. Like, you know, most of the intros have Intune, you know, enterprise business program as such, which is Apple Business Manager. So you can use that and distribute this app. So without writing any single line of code, you can get these two files, which are like, you know, one for Android, one for iOS, and distribute it to your, you know, mobile users.
[mark_smith]: So just let's unpack that a bit. So I work for IBM and we have our own enterprise. I've got iOS devices. So I've got an IBM app store that's still provided by Google. Sorry, no, it's not provided by Apple. So in that scenario, I could deploy apps that are still for the stakeholders in the organization, but they don't depend on the Power App being installed. Is that the case? Are they just a fully standalone app Or is there still a dependency on the Power App to be installed on the device?
[sitaram_pemmaraju]: No, you don't have to. So there is no need of Power Apps to be installed on the device. So this is a complete standalone app which you can install from your own favorite store.
[mark_smith]: So why do we need that when we've already got the Power App and we can of course launch any app we create in there? Why is this a use case? Why is it Microsoft invested in this area?
[sitaram_pemmaraju]: Yeah, so if you look at it, there are multiple steps. When you use it in your mobile app, which is, hey, you should install your Power App, and then you should search for your app list, and then you open it. So there are two reasons why we did this. One, the many, many customers who ask for branding experience. They are very, very particular. We want our brand. Our employees wants to install the app, or they should click on the logo that we want them to click on. which is a fair ask. PowerApps is just a platform, but in fact, they are building their apps for their needs. So branding for their app for themselves, which makes sense. So that's the primary motive. And the second motive is if you, in general, today, if you go click on any app within PowerApp, and when you start playing the app, it downloads all the assets that are required to your device playing it. With RAP, I'm doing a little technical, but with RAP, we will bundle all the assets, right? We'll package all the assets for you. And when they download the app, it comes along with it, right? But when you play it, it just opens like that, right?
[mark_smith]: Right.
[sitaram_pemmaraju]: Our SLA is less than three seconds, less than four seconds, you will be able to open the app and start, you know, consuming it.
[mark_smith]: Excellent, excellent. So there's a massive performance jump by doing it this way. There's a consistency of brand across the organization. People are familiar with AppStores. They know how to go and consume that. And let's say the organization's just deployed a thousand power apps and they're using just the power app tool. You don't have to sort through all those icons to get to the app that I want to use. Is that
[sitaram_pemmaraju]: Exactly. Exactly. Yep.
[mark_smith]: sum it up? Yeah.
[sitaram_pemmaraju]: In a little bit.
[mark_smith]: I just want to dispel something just get your clarity on it because some people I feel will listen to this and go oh this is awesome I can create a a a native app that is visible to our customers tell me how you answer that
[sitaram_pemmaraju]: Can you repeat that question for me?
[mark_smith]: So some people will think that this means that you could create a Power App and distributed it in Apple Store or Google Store and let customers engage with it. But of course, there's a little thing called authentication, right? This is still for apps inside the enterprise, right? Apps inside the company, in other words,
[sitaram_pemmaraju]: correct.
[mark_smith]: what I like to say inside the firewall, not outside the firewall,
[sitaram_pemmaraju]: correct,
[mark_smith]: correct?
[sitaram_pemmaraju]: correct
[mark_smith]: Yeah, I just think we need to be clear on that, apps with Power Apps and put them out in the app stores.
[sitaram_pemmaraju]: Absolutely. I think you're absolutely right. So this is not for consumer based apps. So this is still under the umbrella of a tenant. Right. So you have an app which runs within your own tenant today and you brand it. You have your own native standalone app Which also runs under the same tenant, right? So you're absolutely right. So this is not for consumers. This is still for only enterprise
[mark_smith]: Excellent, excellent. How do I get access? If I'm the admin of my Power Platform tenant, what are the steps that I need to take to light up and be able to start wrapping my apps and getting those two output files, one for Google Play and one for the Apple App Store?
[sitaram_pemmaraju]: Correct. So you need to have a solution installed in your environment, which is called RAP for Power Apps. We did not install it by default as of today because we want to test the waters first, you know, how well the need is before we go to everybody. And it looks like there's a lot of craving for this feature and we are actually enabling this for everyone from end of this month, you know, the deployment for the whole, you know, solution if you want to deploy the process in six weeks because you want to safely deploy. So we are starting the deployment from end up this month. But if you want to go and pursue, try this option right now, go to your Dynamics app, go to Resources, and then search for RAP for Power Apps and install that solution in that environment. And that environment, if you select any app, you should be able to click on RAP and then follow the steps from there.
[mark_smith]: Fantastic. Okay, so what what are the prerequisites are needed once I've gotten there? What are the prerequisites?
[sitaram_pemmaraju]: Right, so first of all, you need to have a developer account, because all the files, the two files that I mentioned earlier, APKs and IPAs, if you want to install and try it out on your mobile or if you want to push it to any of your favorite stores, the developer account is amended. So as an admin, you need to have a developer account. Once you have that, you can
[mark_smith]: just one thing, just to clarify the developer account. You're not talking about a PowerApp developer account, you're talking about a developer account on those either Google Play or iOS, right? Stores,
[sitaram_pemmaraju]: Correct,
[mark_smith]: okay,
[sitaram_pemmaraju]: exactly. So you need to
[mark_smith]: fantastic.
[sitaram_pemmaraju]: have an Apple Developer account or a Google Developer account. Correct.
[mark_smith]:
Excellent.
[sitaram_pemmaraju]: And second thing, you just need to have knowledge on how to sign them. All right. We have that documented perfectly. There are just three simple steps. Just go if you can go follow it, then you create your certificate and then you can sign it. And you need to create your app. You need to create your app ID, which will be tied to the PowerApps app. The app ID I'm talking about is the app ID, in your Azure portal, so you should be an admin. If you go create that, you'll get an app ID, and then you need to tie up with the Power Apps app. So you need to know how to create an app ID, but with V2, we'll create it for you. You really don't have to worry about it. Everything happens behind the scene. This is just for admin's knowledge. And also you need to have an app center. You need to create an org, you need to create an app folder after the build process is complete. You just need to know, hey, there is an app center where you should go look for it. But we have automated that in v2 as well. So app center is something which you should own. And of course, this is a premium feature. You should have a dataverse and a solution and everything to be installed before you start using this.
[mark_smith]: Yes. Totally, totally. Now you mentioned version one, version two a few times there. Can you unpack what the differences are between these versions?
[sitaram_pemmaraju]: I was waiting for you to ask this question. So we released, we won a few months ago, which has a lot of steps, manual steps. They are like close to 16 manual steps.
[mark_smith]: Wow. Yep.
[sitaram_pemmaraju]: And user has to choose the name and then get the GUID, go to Azure, they get this ID, put it here. Hey, go to Azure, give this respective permissions for Android platform, for iOS platform, and then comment tell us to the power ads. Hey, go to App Center, here is where Output Folder has to be, create those folders, give us the specific permissions, bring back that. So there are a bunch of manual steps in v1. Few of the customers were confused, right? Hey, I'm missing something here, like, I missed this step. So we were helping customers to do, rectify those mistakes. And we came up with v2, right? is completely wizard based. There are five steps, which you'll just click next.
[mark_smith]: Yes.
[sitaram_pemmaraju]: You have I icon on every text box that you see on every drop down that you see, click on it. It will clearly tell you this information and we go on behalf of you to as you create the ID, we put it here. We go to App Center, we take your token, your consent, we go to App Center, create the locations, we'll populate it here. You should not go away from Power Apps. the page wherever you
[mark_smith]: Nice.
[sitaram_pemmaraju]: are creating this native apps, whether you are wrapping this or packaging this, to not leave that page, next, next, next, click on build, you should be getting it. So that's the huge improvements we have done in V1 and V2. And another huge improvement we have done in V2 is V1, the whole building process is close to 1.5 hours. build it, one for Android, one for iOS. So once you click on build, it actually takes one and a half hour for us to give the output back. V2, it is 10 minutes. Right. Just click on it. In 10 minutes, you have two files that you can basically push it to your stores, and then your customers are ready to download. That's
[mark_smith]: incredible.
[sitaram_pemmaraju]: a huge improvement we have done on V2. Yep.
[mark_smith]: Yeah, yeah, was it a case of just throwing more resources at it, or did you just optimize some code, or what was the story there?
[sitaram_pemmaraju]: Yeah, there was, it was not just throwing the resources, the number of resources is still the same. In v1, because it was initial phase, we are building the entire code, right? You know, everything is required, just take everything, like, you know, just build everything together and then give everything. So we did not take chance, right, of losing anything. So after,
[mark_smith]: Yes.
[sitaram_pemmaraju]: after v1 being 1.5 hours, like, you know, we wanted to improve it, like, you know, We started digging deep and understanding what exactly is being built, what is not being built, how many packages we can pre-build. So we took all that that can be pre-built. We kept it in a folder, in a location. And then any changes that our customers are doing for their app, their assets and everything, we are bringing that. And we are packaging only the difference, right? That brought us the time from 1.5 hours to 10 minutes.
[mark_smith]: Yeah, incredible. And what about multiple apps wrapping at a time?
[sitaram_pemmaraju]: You can, right? So it's not just one app that you can wrap or create a standard on app. So you can basically create one Power App, mobile app, and then you can have the navigation links to app 1, app 2, app 3. You have app 0, you have app 1, 2, 3. And then when you actually started packaging it, all you can do is select the app 0 as a primary app, and you can create multiple secondary apps. app three and then ask it to wrap it. So what's happening behind the scene is we download the assets of all the apps, app zero, one, two, three, and four. And then we package it into a standalone app and then give it to you. So when you actually play the app, you'll first see the app zero, where you have navigation to all these other apps. When you click on that app one, it immediately opens. I can see it confidently because all the assets download it. All it has to do is just open it.
[mark_smith]: Nice, nice. massive improvement. Tell me about authentication of a wrapped app. Is it consistent with how we would currently authenticate?
[sitaram_pemmaraju]: Yes, so we're not changing anything in the authentication model. It remains exactly same as how it was for Power Apps Mobile. Any enhancements that we are doing for Power Apps Mobile will also be taken into this graph.
[mark_smith]: Nice, nice. Outside of what I can normally customize around a user interface and user experience in the app, what are the other customizable features that are more specific to a wrapped app?
[sitaram_pemmaraju]: You know, they are majorly, the thing when you open an app, first thing that the mobile user see is a splash screen, right? Today you see PowerApp, right? When you open a PowerApp, you see a PowerApp logo in there. That can be changed. Like, you know, there is a company X, they can have the logo as a splash screen and then, you know, they can see it. And the login screen, the way they enter the username and password, that can be customized. And a lot of icons, like on your home screen, Shortcuts, like, you know, within app everywhere,the icons, you know, on the store, in the store description, everything, everything can be changed. And the color theming itself, like, you know, how your button color would look like, how your background of, you know, of an app would look like, you can change all of it. So, you'll, if you play around with it, Mark, you'll see, like, you'll not even feel like it as a Power Apps app.
[mark_smith]: Yeah. And it's interesting you say that because for the last two years I've been asking, show me a power up that I don't know is a power up. You're right. In other words, it doesn't look like the out of the box power up. It's been, you know, I was just with a big customer the other day around 20,000 seats. And their thing was, their management, the executive layer in the organization is saying, functionality of what these apps can do, but we don't like the look. They're not on brand, they're not, when we've got that many stakeholders using it in that site organization, they don't want to feel like, is this a company app or is this a Microsoft app? Because it looks very power app centric. And so I think that that's fantastic. Tell me about high level configuration. What type of configuration needs to be done?
[sitaram_pemmaraju]: So like I said earlier, the first thing is you need to have a solution, which means you need to have a dataverse. So if you don't have an environment without a dataverse, then this app is not going to work for you. You cannot create a standalone apps. And the second two things that you know, one app, one app center. So the app you need to create in Azure portal. You need to be an admin. So if you go to the app registration page, you create an app. you can actually choose explicitly like, hey, you're creating an app for iOS, you're creating an app for Android, and is it a React Native app, or is it an Objective-C app? Like, you know, it gives you multiple configurations, so you need to be aware of what it is, but you don't have to configure it. We will configure it for you, right? You know, if at all, in the troubleshooting phase, probably you have to go and look at it there, That's one bigger configuration. And the second configuration is your app center. That's where your output goes. Giving permissions to app center, how do you distribute is something the key. And we will also configure it for you. We will take your token during the wizard. There you will configure it. So these two are the main things. a lot of things that should happen behind the scene, which is all the resources that you configure, that you start to use should be configured. Like for example, if you want to use SharePoint, if you want to use Outlook. So now the app that you are creating is no more a Microsoft First Party app. This is your standalone app, this is your app. So then how does Microsoft Outlook or SharePoint this app. So there are few configurations that admin has to run, which we have documented. We made it a PowerShell script for it. The admin will go and say, here is the app. Is it still part of this tenant? Please trust this. And then we'll take the admin request and then we'll make sure this app can be, we will basically put it in the allow list resources that this app wants to access. Another interesting thing, another configuration that is not visible, but still we do it internally, is if you go give a consent to one of your connections, and then when you start, when you open the same app outside of Power Apps app in a native app, we will use the same consent. You really don't have to give another consent. PowerApps app and your native app will take it in the same way.
[mark_smith]: Excellent. Awesome.
[sitaram_pemmaraju]: So that configuration is so deep and is needed for a seamless customer experience. It's not like, hey, I created a new native app and I have to do a bunch of configurations to get it working. No, that's not the case. We're handled as much as we can. There are a few things that Admin has to do, like making sure this app is a first party you know, use this native app in a very seamless way.
[mark_smith]: Excellent. How do we distribute apps then? How do they get rolled out?
[sitaram_pemmaraju]: So there are few, you know, what you call distribution channels, and every company or every tenant has their own way of distributing it. Microsoft has App Center, right? Like, you know, if we publish through App Center, App Center gives you a QR code, and then you can just go scan it, and then you can download the app for all your customers, for all mobile users within the company, and then they can start using it. Intune is another channel, right? You know, that's one of the favorite distribution channels for Microsoft customers. upload your APK, you upload your IPA to Intune, and then force users to download it from there. What I mean by force is there is an option called force install. So when you open the company portal on your device, it will automatically install this app for you.
[mark_smith]: Yes, yes,yes.
[sitaram_pemmaraju]: So that way, companies can say, here are the apps for you. It's not necessarily one app. It could be multiple apps. different app, they can explicitly set their conditional policies. For this app, this is a policy. For this app, this is
[mark_smith]: Yes.
[sitaram_pemmaraju]: a policy. They can use any MDM framework for Microsoft's Intune and then distribute their app, both Google and Android. For Google, they will allow you to take it and ship it to Play Store also. But as you pointed out rightly earlier, login except that only that tenant needs
[mark_smith]: Yes.
[sitaram_pemmaraju]: So it's not required to go to Play Store, but nothing is stopping our users to push their APK to Play Store. But as Apple, they don't allow. Apple is very strict in their policies. Apple encourages Apple Enterprise Program,
[mark_smith]: Yes.
[sitaram_pemmaraju]: a company should buy Apple Enterprise Program, and then they can push this IPA and then distribute app in their mobile users within their company.
[mark_smith]: Yeah, excellent. I take it all the setup is at a tenant level, not an environment level, right?
[sitaram_pemmaraju]: it is at the tenant limit, correct?
[mark_smith]: Yeah, excellent, excellent. What about if I need to update the app? You know, I've got a new feature request that I wanna push out. How's that handled?
[sitaram_pemmaraju]: So this is an excellent question. I'll take it two part. The first part is changes to your app itself. Let's say you have two text boxes and a button. On click of a button, you're basically storing the results into data works. And then now you add another text box. And then what should I do? It works exactly the same way as it does today. When you open the native app, it shows you a popup. And your version is available. It basically downloads everything for you. So this is the most powerful feature because today, any native apps, if you look at it, you get updates only when you download it from the store. You go click on the update, and then you will download it. But
[mark_smith]: Yes.
[sitaram_pemmaraju]: this one, within the app, you'll see the
[mark_smith]: Well.
[sitaram_pemmaraju]: next version. You click on it, you just download and use it. Now the second part is the actual platform itself. We call it as player. So that we encourage everyone who is creating the native apps or wrapping and then creating native apps they should re-wrap to get those latest updates once in two months is good enough right you know if there are any crucial security updates then we will notify them like hey this is super important like you know the reserve security fixes that are in this particular release so please take
[mark_smith]: video.
[sitaram_pemmaraju]: So two ways, your PowerApps app and your player itself. Your PowerApps app, automatically you'll get it, no change in there. The player, you need to re-wrap and publish it in your version in your store and then
[mark_smith]: Yes.
[sitaram_pemmaraju]: your customers can download, mobile users can download.
[mark_smith]: Yeah, well, this is so good. So such a great advancement. You mentioned that this is a premium feature, so you'd obviously need a premium license to use it. A couple of things that jumped to mind. One is around the signing, the digital signing certificates that we talked about earlier on. And this is probably my ignorance in understanding, using digital certificates to sign software because my experience in my career has only been digital certificates to secure internet connections and so that certificate is not by a third party righ? it's an Azure type feature that you can digitally sign it, is that right? or do you need third party?
[sitaram_pemmaraju]: No, no. No, you don't need third party. So once you have your doll, let's talk about Android. Once you have a doll per account, once you install the Android Studio, you get a tool called KeyTool. And then
[mark_smith]: Right.
[sitaram_pemmaraju]: you give your credentials, use that KeyTool, and then generate a hash and a certificate, and then tie them together. So that's the sort of use it for science.
[mark_smith]: Excellent, that solves that. Last question I have before we wrap up, I see we're at time, is around telemetry information. If I was building a standard iOS app, one of the things I probably want to do is monitor, we're people closing down the app, where are they exiting it? Does it seem that they're on a user journey within the app, and then they, for whatever reason, they don't go anywhere? that can be fed back to understand how the app can be improved over time.
[sitaram_pemmaraju]: Yeah, so then we are working on it, you know, but the bear the telemetry to understand and or diagnose a problem with the secured, in a secured way. What I mean is PII or any, being UDB compliant, all of this,
[mark_smith]: yes.
[sitaram_pemmaraju]: excluding all of that, we are logging everything that can help our customers who are actually wrapping it. But there are thoughts, there are requests which we are considering because Now give feedback to makers and to Microsoft. Because a native app, when it is published out, the reviews that you get for that app, makers, publishers of that app would see not the Microsoft. So the publisher in this case is our makers. So
[mark_smith]: yes, yes.
[sitaram_pemmaraju]: how would we get the feedback from our users and how can we help to improve the app still evaluating, how can we do this? But in short, yes, we have the telemetry. If any of these
[mark_smith]: Thank you.
[sitaram_pemmaraju]: customers face an issue, if they come contact us, then we know what is happening. We have all
[mark_smith]: Fantastic.
[sitaram_pemmaraju]: monitoring alerts, everything in place. We definitely know before they know, so we will fix it. But yes, the answer is yes.
[mark_smith]: Excellent. Now sir has V2 G8.
[sitaram_pemmaraju]: A Vita is not in GA, it's public previewed last month and we are planning the GA sometime in April or May
[mark_smith]: Fantastic.
[sitaram_pemmaraju]: Thank you.
[mark_smith]: Yes, yes, yes. Sitaram, this has been a very, very interesting conversation. Thank you so much for coming on the show.
[sitaram_pemmaraju]: Thanks Mark, thanks for having me here, it's been an honor.
Sitaram Pemmaraju works at Microsoft as a Principal Software Engineering Manager with several years of rich experience in Software Application Development & Maintenance and a proven record of successful Project Delivery by driving the Team to meet aggressive timelines and deliver quality products on schedule.