Shipping a PWA as an Android app
Skills:
Tool Use & Function Calling70%
Key Takeaways
The video demonstrates how to use Bubblewrap, a tool that transforms Progressive Web Apps (PWAs) into Android applications without requiring native code or native tooling knowledge. It covers the process of setting up Bubblewrap, generating an Android application from an existing PWA, and configuring the app for deployment to the Play Store.
Full Transcript
[Music] [Applause] [Music] hi my name is Andrew bandeja and in this video I'm going to show you how to use your progressive web app inside an android application without writing a single line of native code progressive web apps or petaboys combine the reach of the web with the capabilities that were almost available to native apps if you are new to petaboys read more about them on webdive slash progressive - web - apps it is natural that developers building great petaboys wants to reuse those experiences inside their Android applications in the past possible ways for developer to use their progressive web app inside an Android application included using the Android webview or embedding a browser engine the webview doesn't provide support for many of the new capabilities on the web like push notifications or web Bluetooth so the output can be a super experienced compared to the pdaboy it's built on creating and maintaining an app with an embedded browser requires a considerable amount of engineering effort and produces an app that's larger than a native app equivalent at last year's Google i/o we announced trusted web activities which allow developers to use their progressive web app inside an android app in a full-screen tab that is powered and has the same features and capabilities as the browser providing this leads to a small development cost and application size even though Tercel web activities provide a better alternative for using a PWM site and enter that developers to needs some knowledge about native application tooling and development so to create an easier path for developers who want to create their Android app using their pdaboy excited we have created bubble wrap emoji is projects that contains both a library and a common line interface developers can use to generate and build their Android application in the next few minutes I'd like to guide you on how to figure bubble wrap and use it to generate an application from an existing progressive web app I'm going to use Romero woods persistence app as a starting point but you can use any existing progressive web app check the video description for the link to the persistence app who needs to modify the application later so I'll open the app scroll down and click on the code link then I'm going to remix the project so we can modify it we can get the link to the remix tab by clicking on share then live app and then copying the link we are going to need that information soon in order to use bubble wrap we need node.js 10 or above installed on the development computer and optionally an Android device setup in developer mode so we can test the application check the link on the video description for more information on how to setup on an Android device for developer mode bubble wrap builds on top of native SDK tooling so we'll start by downloading the Android common line tools and the Java development kit or JDK version 8 to download the Android common line tools we can use the shortcut on the bubble-wrapped CLI documentation which is a linked on the video description inside the page click on the link for your operating system accept the license and click on download the bubble-wrap CLI documentation also links the corrections version of the Java development kit inside the page choose your operating system event architecture then download the compressive tar file for the JDK in our terminal we now create a directory where we can place both dependencies then we unzip the common line tools and then the Java development kits make sure to take note of the directories where those files were decompressed as we're going to need them later I like to rename the JDK folder to just JDK as it's easier to remember with the penisy is now ready we can install bubble-wrap using NPM install with bubble wrap and its dependencies now installed we can start the creation of the Android app itself let's start by creating a folder for it and now we can initialize the Android project by calling bubble wrap in it and passing the URL to the web manifest to it when bubble wrap runs for the first time it will ask for the location of the JDK and the Android common line tools we downloaded previously while also automatically installing order dependencies then the CLI will ask you to confirm values read from the web manifest and fill in any missing required values needed to create the Android app we can for instance change the Stars URL so that we can use Google Analytics to measure how often our users are opening the pdaboy from the Android app Android applications needs to be signed with a self-generated key in order to be uploaded to the Play Store if bogu rep is unable to find an existing key it will prompt the developer to grade one so let's go ahead and create it and make sure to take note of the password you choose finally we can now invoke bubble wrap build to build the project the comment will output three important things the quality criteria for the peter blake an asset links that json file used to validate the domain open and inside the trusted web activity and assigned android application that can be uploaded to the place where bubble wrap would check the quality criteria against the URL used to launch the trusted web activity we strongly recommend the repeatable passes the called secret area the quality criteria is measured using lighthouse against the start URL and consists of a minimum performance score of 80 and getting the peelable a check in order to be shown in full-screen developers need to implement digital asset links bubble-wrap takes care of the configuration of the android application but there is one extra step that needs to be done in the web app the content of the asset links to JSON file to be made available on dot well-known slash asset link JSON on the root of the domain on my remix project I'll create a dot well-known slash asset links to JSON file then I'll paste the content of the file generated by bubble-wrap into it the application is now fully setup if you have an Android device in developer mode you can now connect it to the computer and run bubble wrapping start to launch the app congratulations you have built an Android app when uploading an application to the Play Store for the first time you ask if the developer wants to use app signing if opting into app signing the Play Store will manage the signing key for you making sure it's not lost this is important as losing the key means it's not possible to update the application on the store anymore but it also means that the final key used to signed application will be different than the one is generated by bubble wrap to update the asset link start JSON file we needs information on the key used by the Play Store this information can be found by clicking on the add links item on the menu on the left and copying the details for the fingerprint and using is to update asset links dot JSON file on the web app it is possible to use both fingerprints in the application check out the video description for a link on how to add both case to the application booboo wrap removes friction for web developers who wants to open repeatably in an android app I'm a fan of comma line tools if you are more like a graphical user interface person checkout peel away builder it uses bubble wrap as a library to power their Android application generation and that's all for bubble wrap today make sure to check the github repo and drop us some feedback and if you're watching this live jump into our live chat and tell us what you think thanks for watching [Music] [Applause] [Music]
Original Description
Increase the reach of your Progressive Web App by using it as an Android app. In this session, learn about Bubblewrap, a new tool that developers can use to transform their PWAs into an Android application, without having to write native code or learn native tooling. Watch us transform an existing PWA into a native app from start to finish, in just a few minutes.
Resources:
Persistence App → https://goo.gle/2YBcFPj
Setup an Android device in Developer Mode → https://goo.gle/31rxy1z
Bubblewrap CLI README → https://goo.gle/387BRQA
Adding more keys to Digital Asset LInks → https://goo.gle/386koIu
Related Playlist:
Day 2 → https://goo.gle/WDL20Day2
Subscribe to the Chrome Developers → https://goo.gle/ChromeDevs
Speaker:
Andre Bandarra
#webdevLIVE #PWA event: web.dev LIVE 2020; re_ty: Publish; fullname: Andre Bandarra; product: Chrome - General;
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Chrome for Developers · Chrome for Developers · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Polymer Performance Patterns (The Polymer Summit 2015)
Chrome for Developers
Polymer Power Tools (The Polymer Summit 2015)
Chrome for Developers
Chrome Dev Summit 2014 – Chrome Case Studies
Chrome for Developers
Web Directions Code 2015 round up
Chrome for Developers
Maintainable Code - HTTP203
Chrome for Developers
iron-ajax… wat?! -- Polycasts #26
Chrome for Developers
The Guardian - Supercharged
Chrome for Developers
ES2015 (next version of JavaScript), Totally Tooling Tips (S2 Ep1)
Chrome for Developers
#AskPolymer: Rob answers all the questions ever -- Polycasts #27
Chrome for Developers
The Future of JavaScript - HTTP203
Chrome for Developers
Data Binding 101 -- Polycasts #28
Chrome for Developers
The Guardian part 2 - Supercharged
Chrome for Developers
The Future of Web Audio: with Chris Wilson and Chris Lowis
Chrome for Developers
Chrome 46: New motion-path animations, client hints and service worker improvements
Chrome for Developers
Sublime Snippets, Totally Tooling Tips (S2 Ep2)
Chrome for Developers
#AskPolymer: How do you make the show? -- Polycasts #29
Chrome for Developers
Critical Path CSS, Totally Tooling Tips (S2 Mini Tip #1)
Chrome for Developers
Binding to Objects -- Polycasts #30
Chrome for Developers
Player FM - Supercharged
Chrome for Developers
Where’s the Designer? #AskPolymer -- Polycasts #31
Chrome for Developers
Jake Beats Wikipedia - HTTP203
Chrome for Developers
Supercharged Observers! -- Polycasts #32
Chrome for Developers
Jai's Web blog - Supercharged
Chrome for Developers
Windows Command-line Tooling, Totally Tooling Tips (S2, Ep4)
Chrome for Developers
What about internationalization? #AskPolymer -- Polycasts #33
Chrome for Developers
Developing for Billions (Chrome Dev Summit 2015)
Chrome for Developers
Google+ Performance Improvement Comparison
Chrome for Developers
Deploying HTTPS: The Green Lock and Beyond (Chrome Dev Summit 2015)
Chrome for Developers
Progressive Web Apps (Chrome Dev Summit 2015)
Chrome for Developers
Instant Loading with Service Workers (Chrome Dev Summit 2015)
Chrome for Developers
Increase Engagement with Web Push Notifications (Chrome Dev Summit 2015)
Chrome for Developers
Engaging with the Real World: Web Bluetooth and Physical Web (Chrome Dev Summit 2015)
Chrome for Developers
Asking for Permission: respectful, opinionated UI (Chrome Dev Summit 2015)
Chrome for Developers
Polymer - State of the Union (Chrome Dev Summit 2015)
Chrome for Developers
Building Progressive Web Apps with Polymer (Chrome Dev Summit 2015)
Chrome for Developers
Introduction to RAIL (Chrome Dev Summit 2015)
Chrome for Developers
DevTools in 2015: Authoring to the max (Chrome Dev Summit 2015)
Chrome for Developers
RAIL in the real world (Chrome Dev Summit 2015)
Chrome for Developers
#ChromeDevSummit talks are up - W00T! -- Polycast #34
Chrome for Developers
V8 Performance from the Driver's Seat (Chrome Dev Summit 2015)
Chrome for Developers
Quantify and improve real-world RAIL (Chrome Dev Summit 2015)
Chrome for Developers
Owning your performance: RAIL (Chrome Dev Summit 2015)
Chrome for Developers
HTTP/2 101 (Chrome Dev Summit 2015)
Chrome for Developers
Leadership Panel (Chrome Dev Summit 2015)
Chrome for Developers
Build Processes, Totally Tooling Tips (S2, Ep 5)
Chrome for Developers
Accessibility (Chrome Dev Summit 2015)
Chrome for Developers
Binding to Arrays -- Polycasts #35
Chrome for Developers
HTTP2 - HTTP203
Chrome for Developers
Chrome 47: Splash Screens, requestIdleCallback and better desktop notifications (New in Chrome)
Chrome for Developers
Call For Submissions - Supercharged
Chrome for Developers
Cross Device Testing, Totally Tooling Tips (S2 Ep6)
Chrome for Developers
Testing AJAX with Web Component Tester -- Polycasts #37
Chrome for Developers
Slack: Extended Xmas Special - Supercharged
Chrome for Developers
Browser testing with Travis & Sauce Labs -- Polycasts #38
Chrome for Developers
Optimize for production with Vulcanize -- Polycasts #39
Chrome for Developers
Highlights from Chrome Dev Summit 2015
Chrome for Developers
Chrome 48: Custom buttons in notifications, DevTools Security panel, and Presentation mode
Chrome for Developers
Crisper: Protecting your Polymer app with CSP -- Polycasts #40
Chrome for Developers
How do I use Sass with Polymer? #AskPolymer -- Polycasts #41
Chrome for Developers
Colors – DevTools Tonight #0 (Pilot)
Chrome for Developers
More on: Tool Use & Function Calling
View skill →
🎓
Tutor Explanation
DeepCamp AI