Slide 1

Slide 1 text

#GDGKL Tech Talk Saturday with Google and GDGKL

Slide 2

Slide 2 text

#GDGKL Building Progressive Web Apps

Slide 3

Slide 3 text

#GDGKL Henry Lim @henrylim96 Google Developer Group Kuala Lumpur Polyman, Firebass Fisherman

Slide 4

Slide 4 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL IS NOT GOOD *

Slide 5

Slide 5 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL https://upload.wikimedia.org/wikipedia/commons/e/eb/Interior_-_Pullman_trolleybus.jpg

Slide 6

Slide 6 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL https://upload.wikimedia.org/wikipedia/commons/6/67/Qatar_Airways_Boeing_777-200LR_Business_Class_cabin_Beltyukov.jpg

Slide 7

Slide 7 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL FIRST-CLASS EXPERIENCE

Slide 8

Slide 8 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL FIRST-CLASS EXPERIENCE

Slide 9

Slide 9 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL FIRST-CLASS EXPERIENCE

Slide 10

Slide 10 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL Magnus Hyttsten

Slide 11

Slide 11 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL PROGRESSIVE WEB APPS

Slide 12

Slide 12 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL LET’S BUILD GOOD APP

Slide 13

Slide 13 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL IS AWESOME

Slide 14

Slide 14 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL HOW ?

Slide 15

Slide 15 text

#GDGKL Demo

Slide 16

Slide 16 text

#GDGKL “This presentation is one big advert for airhorner.com” - Paul Kinlan Paul, now you owe me a treat

Slide 17

Slide 17 text

#GDGKL Air Horner airhorner.com

Slide 18

Slide 18 text

#GDGKL

Slide 19

Slide 19 text

#GDGKL Pokedex pokedex.org

Slide 20

Slide 20 text

#GDGKL Voice Memos voice-memos.appspot.com

Slide 21

Slide 21 text

#GDGKL THANK YOU

Slide 22

Slide 22 text

#GDGKL THANK YOU why u no clap?

Slide 23

Slide 23 text

End of slideshow, click to exit

Slide 24

Slide 24 text

#GDGKL What makes PWA so special?

Slide 25

Slide 25 text

#GDGKL Homescreen Access App-like experience

Slide 26

Slide 26 text

#GDGKL 1. Web App Manifest ✓ 2. Service Worker ✓

Slide 27

Slide 27 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL

Slide 28

Slide 28 text

#GDGKL Push Notification Yes, push notification to webapp

Slide 29

Slide 29 text

#GDGKL 1. Works If Browser Closed 2. Needs Permission

Slide 30

Slide 30 text

#GDGKL Offline That Works™ & Instant Loading No more T-rex :(

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

#GDGKL

Slide 36

Slide 36 text

#GDGKL That’s (exactly) one month before my birthday

Slide 37

Slide 37 text

#GDGKL

Slide 38

Slide 38 text

#GDGKL

Slide 39

Slide 39 text

#GDGKL

Slide 40

Slide 40 text

#GDGKL Done.

Slide 41

Slide 41 text

#GDGKL End

Slide 42

Slide 42 text

#GDGKL Service Worker? Huh? html5rocks.com/en/tutorials/service-worker/introduction/

Slide 43

Slide 43 text

#GDGKL sw-precache npm install --save-dev sw-precache

Slide 44

Slide 44 text

#GDGKL Service Worker GENERATOR

Slide 45

Slide 45 text

#GDGKL Service Worker HTTP/2 CDNs Smaller images Lazy-load async/defer Defer iFrames Compression And more...

Slide 46

Slide 46 text

#GDGKL

Slide 47

Slide 47 text

#GDGKL

Slide 48

Slide 48 text

#GDGKL Well, you need HTTPS

Slide 49

Slide 49 text

#GDGKL

Slide 50

Slide 50 text

#GDGKL

Slide 51

Slide 51 text

#GDGKL So, am I progressive enough?

Slide 52

Slide 52 text

#GDGKL

Slide 53

Slide 53 text

#GDGKL Stops you crashing into the rocks; lights the way “ ”

Slide 54

Slide 54 text

#GDGKL lighthouse github.com/GoogleChrome/lighthouse

Slide 55

Slide 55 text

#GDGKL lighthouse Stops you crashing into the rocks; lights the way github.com/GoogleChrome/lighthouse

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL NOW WHAT? QUACK

Slide 58

Slide 58 text

#GDGKL Web App Manifest

Slide 59

Slide 59 text

#GDGKL webmanife.st app-manifest.firebaseapp.com

Slide 60

Slide 60 text

#GDGKL { "short_name": "Kinlan's Amaze App", "name": "Kinlan's Amazing Application ++", "icons": [ { "src": "launcher-icon-2x.png", "sizes": "96x96", "type": "image/png" }, { "src": "launcher-icon-4x.png", "sizes": "192x192", "type": "image/png" } ], "start_url": "/index.html", "display": "standalone", "orientation": "landscape" }

Slide 61

Slide 61 text

#GDGKL Can I Use ...

Slide 62

Slide 62 text

#GDGKL Internet Explorer?

Slide 63

Slide 63 text

#GDGKL caniuse.com

Slide 64

Slide 64 text

#GDGKL caniuse.com

Slide 65

Slide 65 text

No content

Slide 66

Slide 66 text

#GDGKL FONTS Well, that’s Comic Sans.. f*ck

Slide 67

Slide 67 text

#GDGKL

Slide 68

Slide 68 text

#GDGKL PHYSICAL WEB google.github.io/physical-web

Slide 69

Slide 69 text

#GDGKL

Slide 70

Slide 70 text

#GDGKL WebVR https://webvr.info

Slide 71

Slide 71 text

I forgot to talk about devtools Can I talk until 2am? * i really didnt design this slide… eh purposely

Slide 72

Slide 72 text

#GDGKL What’s next? Web Bluetooth Web VR RAIL FLIP 60FPS DevTools Go watch all the videos from #io16 and #pwadevsummit

Slide 73

Slide 73 text

#GDGKL Find us on: Twitter @chromiumdev Slack chromiumdev-slack.herokuapp.com Chromiumdev.slack.com YouTube youtube.com/user/ChromeDevelopers

Slide 74

Slide 74 text

#GDGKL #PWA #GDGKL

Slide 75

Slide 75 text

#GDGKL Credit / Source Chrome Team Paul Kinlan Paul Lewis Jake Archibald Surma Dion Almaer Bruce Lawson Pete Lepage Addy Osmani Sam Dutton Bok Thye Yeow Bangalore: Progressive Web Apps - goo.gl/XiX8vU Offline-o-saurus Who else?

Slide 76

Slide 76 text

#GDGKL THANK YOU

Slide 77

Slide 77 text

#GDGKL Tech Talk Thursday with Google and GDGKL

Slide 78

Slide 78 text

#GDGKL #UseThePlatform to build a better web

Slide 79

Slide 79 text

#GDGKL Henry Lim @henrylim96 Google Developer Group Kuala Lumpur Polyman, Firebass Fisherman

Slide 80

Slide 80 text

#GDGKL Web is useless

Slide 81

Slide 81 text

#GDGKL

Slide 82

Slide 82 text

#GDGKL Web is useless so you need Javascript * i didn’t use Javascript to create that animation...

Slide 83

Slide 83 text

#GDGKL

Slide 84

Slide 84 text

#GDGKL You need MOAR Javascript

Slide 85

Slide 85 text

#GDGKL

Slide 86

Slide 86 text

#GDGKL The Cost of Frameworks aerotwist.com/ blog/the-cost-of-frameworks/

Slide 87

Slide 87 text

#GDGKL

Slide 88

Slide 88 text

#GDGKL Polymer Project #GDGKL

Slide 89

Slide 89 text

#GDGKL

Slide 90

Slide 90 text

#GDGKL

Slide 91

Slide 91 text

#GDGKL This is Custom element It is reusable

Slide 92

Slide 92 text

#GDGKL Let’s build a Custom Element Using Polymer

Slide 93

Slide 93 text

index.html

Slide 94

Slide 94 text

index.html

Slide 95

Slide 95 text

index.html

Slide 96

Slide 96 text

index.html

Slide 97

Slide 97 text

polymer-button.html

Slide 98

Slide 98 text

Polymer({ is : ‘’ }) polymer-button.html

Slide 99

Slide 99 text

Polymer({ is : ‘polymer-button’ }) polymer-button.html

Slide 100

Slide 100 text

// put whatever you want here Polymer({ is : ‘polymer-button’ }) polymer-button.html

Slide 101

Slide 101 text

#GDGKL Don’t want to build your own? How about ......

Slide 102

Slide 102 text

#GDGKL

Slide 103

Slide 103 text

#GDGKL Material Design

Slide 104

Slide 104 text

#GDGKL

Slide 105

Slide 105 text

#GDGKL

Slide 106

Slide 106 text

#GDGKL Material Design ??? Polymer ???

Slide 107

Slide 107 text

#GDGKL Material Design ??? Polymer ??? PAPER ELEMENTS

Slide 108

Slide 108 text

#GDGKL

Slide 109

Slide 109 text

#GDGKL Putting Google Maps on a website

Slide 110

Slide 110 text

#GDGKL

Slide 111

Slide 111 text

#GDGKL POLYMER !!!

Slide 112

Slide 112 text

#GDGKL

Slide 113

Slide 113 text

#GDGKL

Slide 114

Slide 114 text

#GDGKL Introducing POLYMERFIRE bower install --save firebase/polymerfire

Slide 115

Slide 115 text

#GDGKL Actually there is an awesome element to make Firebase works offline… polymer/app-storage

Slide 116

Slide 116 text

firebase-app

Slide 117

Slide 117 text

firebase-app

Slide 118

Slide 118 text

firebase-app

Slide 119

Slide 119 text

#GDGKL So you want to add login to your app ...

Slide 120

Slide 120 text

firebase-app

Slide 121

Slide 121 text

#GDGKL So you want to show something from the database...

Slide 122

Slide 122 text

firebase-document / firebase-query

Slide 123

Slide 123 text

#GDGKL There’s some amazing tools!

Slide 124

Slide 124 text

#GDGKL Polymer Snippets by Bob Dod

Slide 125

Slide 125 text

#GDGKL Let’s build a Progressive Web Apps with Polymer

Slide 126

Slide 126 text

#GDGKL Polymer App Toolbox a collection of components, tools and templates for building Progressive Web Apps with Polymer.

Slide 127

Slide 127 text

#GDGKL Install the Polymer CLI npm install -g polymer-cli

Slide 128

Slide 128 text

#GDGKL Initialize your project with an App Template polymer init app-drawer-template

Slide 129

Slide 129 text

#GDGKL Serve your project polymer serve --open

Slide 130

Slide 130 text

#GDGKL

Slide 131

Slide 131 text

#GDGKL What you have done: - Progressive Web Apps - Offline - Responsive - PRPL Pattern (Push, Render, Pre-cache, Lazy-Load)

Slide 132

Slide 132 text

#GDGKL PRPL Pattern - Push components required for the initial route - Render initial route ASAP - Pre-cache components for remaining routes - Lazy-load and progressively upgrade next routes on-demand

Slide 133

Slide 133 text

#GDGKL Demo

Slide 134

Slide 134 text

#GDGKL

Slide 135

Slide 135 text

#GDGKL Find us on: Twitter @polymer Slack polymer-slack.herokuapp.com polymer.slack.com YouTube youtube.com/user/ChromeDevelopers

Slide 136

Slide 136 text

#GDGKL Polymer User Group Malaysia facebook.com/groups/PolymerMalaysia

Slide 137

Slide 137 text

Polymer User Group Malaysia facebook.com/groups/PolymerMalaysia #GDGKL

Slide 138

Slide 138 text

#GDGKL Credit / Source Chrome Team Polymer Team Rob Dodson Taylor Savage Michael Bleigh Bok Thye Yeow Polytechnic Who else?

Slide 139

Slide 139 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL

Slide 140

Slide 140 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL Find us on Facebook & Twitter fb.me/GDGKualaLumpur facebook.com/groups/gtugkl twitter.com/gdgkl

Slide 141

Slide 141 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL Google I/O Extended Kuala Lumpur 2016 30 July 2016, Kuala Lumpur

Slide 142

Slide 142 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL

Slide 143

Slide 143 text

Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem #GDGKL Feedback goo.gl/LX2z7r

Slide 144

Slide 144 text

#GDGKL Henry Lim @henrylim96 TERIMA KASIH!