 Hi, I'm Alexander Noe, developer relations engineer for Chrome OS. And I'm André Banda, a developer relations engineer for Chrome and the web. And we'd like to invite you to join us on a journey that starts with our progressive web app and ends with your app published on Google Play. Looking at brochures can be as fun as the trip itself. Let me show you how the brochure for our trip looks like. Our trip starts with a progressive web app, or PWA. PWA's are just websites, but to meet the high expectations users have for an app, they are designed so that they take advantage of a variety of capabilities, ranging from features like push notifications all the way to devices connected to the serial port. Users expect experiences that are not only fast, but also dependable, and that provide an offline experience and still function even when the user is not connected to the network. Finally, they are also installable, and this installation can be done by either the browser or via an application store like Google Play. If you're new to PWA, there's great documentation out there to get you started, and a great place to get started is web.dev. Since PWA's can create awesome web experiences, it is common for developers creating those applications to want to connect with the user searching for them on application stores. Besides connecting your app with your users on both Chrome OS and Android, Google Play provides additional services that can further remove friction from users, like taking payments via Google Play billing. To deploy an application to Google Play, you'll need a developer account. Head over to the link here to learn how to create your account. Now that we are all excited about our trip, it's time to pack our bags. And the recommended way to pack your PWA into an application that can be downloaded from Google Play using Trusted Web Activity. This technology was introduced in Chrome 72 for Android and enables platform-specific applications to start a PWA in Chrome in full screen. Today, it's supported by most browsers on Android, and since version 86, it's also supported on Chrome OS. Now, when packing our bags, we often don't know exactly what to bring along. Wouldn't it be great if we had a tool that helps us bring the right clothes and never forgets the toothbrush? Bubble Wrap is a common line tool available on NPM that automates wrapping your PWA in a package that can be uploaded to Google Play, while ensuring that no detail is ever forgotten. To create the application, you're going to pass your PWA's WebManifest URL to the Bubble Wrap in its command. Bubble Wrap will read the WebManifest and generates a configuration for the Android project. You will have the chance to change the values of the default values generated by Bubble Wrap, as well as filling out any missing values. Google Play requires application packages to be digitally signed with a certificate when uploading to Google Play. There is a different certificate from the one used to serve your web application. The common line tool can generate the certificate for you. However, if you're using an existing listing on Google Play, you will need to use the same certificate as the existing application. And don't forget to ensure that the certificate and passwords are stored in a safe place, as you will need them to generate and update the application in the future. They need command generated a series of files in the application folder, including a configuration file and the source code for the Android project. Now you can generate the package you will upload to Google Play with the Bubble Wrap build command. You will need the passwords for the signing keys for this step. Finally, in your project directory, you will see a file called app-release.signed.aab. This is the application package you will upload to Google Play. Alex, can you tell us more about uploading this file to Google Play? Sure, Andre. After you have your web app bubble wrapped, it is time to upload the package to Google Play. After visiting the links shown previously for creating a developer account, we can head over to the console to start creating our app listing and start heading down the road to Google Play. As a reminder, when uploading to Google Play, the package must comply with all of the Google Play policies that also apply to Android applications. This includes changing billing and in-app purchases to support Google Play billing. From the console, click Create App. You will then be presented with a Create App screen. Go ahead and put in all of the relevant details for your app and click Create App again. Once this is done, we go to Main Store Listing under the Grow section and Store Presence section. Here, we add a short description and a full description as well as upload some graphics that represent our app and give our users a preview of the application. These items are required for your app to be visible in Google Play. You can optionally upload a promotional video of your app to the video line, but this is not required. Next, return to the dashboard and under Set Up Your App, go ahead and see the next steps. We see App Access is the next task. App Access specifies whether features are available with or without special access. Afterwards, we configure Add Settings. If your app contains ads, please specify this so Play can add a flag next to your app for users to alert them to advertising being present in your application. Following ads, we need to get a content rating. Content ratings are used to inform consumers, especially parents, of potentially objectionable content that exists within an app. They also help filter or block your content in certain territories or to specific users where required by law and determine your app's eligibility for special developer programs. It is not possible to comply with the Google Play Family Policy right now with apps that are primarily a trusted web activity. If you are interested in joining our trusted web activity pilot for education apps, please check the video description for a link to register your interest. Next, the target audience of the app needs to be filled out. Depending on how this is filled out, it could subject your users to additional Google Play policies. Finally, specify whether or not your app is a news app to ensure that Google Play policies are met with regards to news publishers. Next, we return to the dashboard to provide distribution details of our application. This is information on how users can contact you as well as which app category your app falls into. This allows Google Play to help users find your app related to a category of apps they may be interested in and provide an opportunity to follow up with you, the developer, as needed. Lastly, we select countries we want our app to be distributed in. This can help Play validate that your app follows those country's app distribution policies and allows your app to be rolled out to specific countries you wish to target. Once this is done, we are ready to create our first release. In the Create Production Release screen, we can turn on Play App Signing. This allows Google Play to manage our app signing keys for release to production. It's a secure way to store your app signing key that helps protect you if your key is ever lost or compromised. Fill in a release name that identifies the app to you and some release notes. You can now review and release to Google Play. It may take some time for the app to go through the review process before it will be fully released to Google Play. Congratulations! You are now listed on Google Play. For a more in-depth look at everything we covered, check out the link below. When installing the app from Google Play, the signing key will be different than what you may have already specified in your digital asset links file. Please see this video for more information on how to set up and validate your digital asset links for releasing your app to Google Play. When your app is available in Google Play, go ahead and download and run the app. You should be able to access all the features that you would expect within the application. If you already have a great Android experience on phones but want to target Chrome OS specifically, you can release a trusted web activity and Android app side by side on Google Play. What you can do is create your trusted web activity that has one version number higher than your currently released platform-specific app and set the Chrome OS only flag when running the bubble wrap init command. This will set the Chromium Arc flag to true in your Android manifest, which will only allow Chrome OS devices to download this version of the app. Your Android apps will still be downloaded on phones using the previous version. If you do update your platform-specific Android app, be sure to also update your trusted web activity with a new version number as the platform-specific Android app with the latest version will take precedence over the trusted web activity with the Chrome OS only flag active. Throughout the trip, you will need to stop for maintenance and update your application. While updates to the web app behave just like you would expect on the web, and are automatically applied to the experience users see on their devices, there are two reasons why you should update your application package on Google Play from time to time. The first reason is to apply changes to your web manifest, like icons or theme colors to the application on Google Play. The second is to take advantage of updates and new features added to bubble wrap. But before you proceed, always ensure you have the latest version of bubble wrap installed. Then, run the bubble wrap merge command followed by updates and then builds. Merge fetches the latest changes to the web manifest and applies those to the app configuration. Updates then regenerates the source code of the Android project. And finally, build creates the package that can be uploaded to Google Play. As we mentioned before, if you have a platform-specific Android package and you update it, you will be able to update your trusted web activity to have a larger version number than that of your platform-specific Android package. This is because play will deliver the latest package to all eligible devices with the highest version number. To do this from bubble wrap, modify your twa-manifest.json file to have a version number larger than that of your Android bundle. Remember that the Google Play package version number needs to always be at least one version number higher than that of the Android-specific package. Finally, there may be no useful updates for your particular trusted web activity wrapped app. In that case, we recommend updating once a year just to validate that your trusted web activity does work with the latest Android SDK and bubble wrap template. This can be done with the bubble wrap update and build commands that we mentioned earlier. And that's it. We've reached the end of our journey and learned how to use bubble wrap to take a progressive web app to Google Play. On your Android trip here, bubble wrap has a series of options that allow customizing the behavior of the application, like starting the application in a different screen orientation. Check out the bubble wrap documentation for details. You can also enable the Google Play Billion integration and integrate that into your app using the Digital Goods API and the Payment Request API in the web app. Watch the session by Jeevan and Joyce on the Carmelish Track to learn more. Thanks for coming on this journey with us and that's all for today. Thanks for watching!