Bring Your Android App to Chrome OS - Google I/O 2016

Bring Your Android App to Chrome OS - Google I/O 2016


Bring Your Android App to Chrome OS - Google I/O 2016

Today we announced that we’re adding the best mobile app experiences in the world, Android apps and the Google Play store, to the best browser in the world, Chrome! Come to this session and test your Android apps for Chrome OS. You will get hands on help from our friendly engineers on how to optimize your Android app for Chromebooks.

Watch more Android talks at I/O 2016 here: https://goo.gl/Uv3jls
See all the talks from Google I/O 2016 here: https://goo.gl/olw6kV

Subscribe to the Android Developers channel at http://goo.gl/GEh1ds

#io16 #GoogleIO #GoogleIO2016 #chromeos


Content

0.03 -> hello everyone welcome to Google i/o my
3.149 -> name is Masetto Chavez and I'm one of
4.77 -> the engineers in the Chrome OS team
6.56 -> maybe you thought place earlier
8.55 -> announcement that we're bringing Android
9.96 -> apps to Chrome box so I'm super excited
18.9 -> to be here because I can finally tell
20.73 -> you guys what we've been working on for
22.859 -> the last few months so it's not a secret
24.42 -> anymore all right so first of all let's
29.67 -> talk a little bit about why we're doing
31.8 -> this and why it should be interesting to
33.45 -> you first of all
35.13 -> Chrome OS is a growing platform well
37.41 -> overall PC shipments are declining
38.96 -> Chrome OS continues to grow in fact last
42.18 -> year we had 33 percent year-over-year
43.62 -> growth the numbers get even better in
46.53 -> certain segments for instance
48.18 -> Chromebooks are the number one device in
50.129 -> K to 12 edu in the u.s. there are
54.66 -> millions of active users with more than
56.52 -> 50 different devices from 13 OEMs in 44
58.98 -> countries we've got lots of amazing
61.23 -> Chromebooks coming out okay so we have a
66.24 -> large growing platform with a large
68.1 -> number of potentially new users this is
70.68 -> where you Android developers coming to
72.33 -> the picture all liner developers want
76.2 -> more users all Chromebook users want
79.95 -> more apps but they just don't want any
82.049 -> app they want the apps they know unloved
85.22 -> so we believe that bringing Android apps
87.81 -> to Chromebooks provides a middle ground
89.13 -> that helps both groups of people ok if a
94.11 -> developer wanted to bring their
95.22 -> application on Chromebooks what are
96.99 -> their options let's start with a non
99.81 -> solution you can write a Chrome OS app
102.229 -> this is essentially writing your
104.189 -> application twice this required you to
106.649 -> learn a new platform which might yield
110.369 -> an application that looks more native
111.84 -> but it's a lot of work it's a lot of
114.03 -> upkeep and you need to maintain to
115.68 -> potentially separate code bases so it's
117.81 -> not an option for most people another
121.92 -> option was to build an html5 application
124.85 -> this might yield a an application that
127.799 -> looks and feels native in Chrome OS but
129.39 -> you would need an Android HTML wrapper
132.58 -> which doesn't look super native it also
135.46 -> doesn't take a lot of advantage of the
137.35 -> net and replayed platform so it's still
140.5 -> not a great option another option was
145.12 -> app runtime for Chrome we in the Chrome
147.31 -> OS team released this two years ago in
149.41 -> 2014 as a way to run Android
151.45 -> applications in Chromebooks we were
154.39 -> running full Android instances in a
156.22 -> Native Client sandbox unfortunately it
158.95 -> had some challenges for developers
163.53 -> access to some of the system resources
165.64 -> were restricted due to the advanced
167.26 -> nature of Native Client sandbox for
170.02 -> instance we had to do full filesystem
171.61 -> emulation because it was not available
172.84 -> to us and some apps didn't work rate
175.57 -> with this Native Client also had a
179.83 -> single process execution model which
182.92 -> cost some applications to not work rate
185.38 -> especially the Google Play Store finally
190.51 -> some of the features that are critical
193.42 -> for developers like in-app payments
195.19 -> required extra work on your behalf
199.739 -> having settled that we still believe
202.209 -> that getting Android applications
203.38 -> running as fully integrated native
205.39 -> Chrome OS apps was the right idea
208.38 -> so we made a lot of improvements and
210.76 -> we're building a whole new platform to
213.55 -> run Android apps on Chromebooks
216.51 -> all right so many of you might have
219.04 -> missed the today's earlier demo so I'm
222.31 -> going to give a shorter one right now
226.05 -> okay so first of all this is standard
229.239 -> chrome OS desktop but you can see we
232.39 -> have the Play Store now yay
236.98 -> and of course I don't have internet so
239.51 -> there's no play store but fortunately I
244.25 -> already installed a few apps like Gmail
246.76 -> that I'm so one of the things we're
250.069 -> doing here is that we do have multi
252.11 -> window support and not only that we can
262.43 -> also change size of the window we can
264.74 -> also maximize it stuff like that neat
268.639 -> things
273.669 -> we also support in integration with some
277.15 -> Chrome OS s native notifications for
278.86 -> instance
285.96 -> hello world and of course as I mentioned
292.03 -> before I don't have internet so let's
293.41 -> keep that oh there you go so as we see
297.61 -> we can have offline access in android
299.92 -> apps now right let's go back to the
305.83 -> lights ok we already saw what it looks
312.13 -> like so let's talk a little bit bit more
313.87 -> about how its implemented first of all
318.85 -> we're not using a native client anymore
321.22 -> we're using a brand new sandboxing
322.87 -> mechanism it uses it uses existing Linux
328.72 -> namespaces to isolate Android and Chrome
331.3 -> OS this are you're already using Chrome
334 -> OS and in some of our cloud offerings
335.91 -> we're using a mount process user network
339.91 -> and IPC namespaces the Chrome OS
344.32 -> security team also developing new
345.85 -> features for this since Android is
348.55 -> running directly on top of the Linux
349.9 -> kernel this increases the attack surface
352.3 -> a little bit more about than we were
354.34 -> comfortable with so the Chrome web
358.15 -> security team developed a new way to add
360.22 -> alternate syscall tables this is more
363.19 -> efficient and configurable than existing
365.35 -> system call filtering techniques like
366.85 -> second BTF which by the way the Chrome
369.85 -> OS team also developed having both
374.62 -> Android and Chrome OS do their own
375.85 -> compositing would make everything slower
377.32 -> so we have a shared compositing model
379.81 -> where there's only one overall
381.34 -> compositor this makes things a lot
383.26 -> faster and more responsive finally since
388 -> we know that a lot of Android developers
390.48 -> target NDK for armed only we're
393.76 -> providing just-in-time binary
394.99 -> translation so that they're already
396.34 -> existing armed applications can run on
398.35 -> x86 devices like the Google Chromebook
400.6 -> pixel with no work required on your part
407.199 -> so Disney approach still maintains a
409.639 -> high level of security in both operating
411.23 -> systems you get to keep all of chrome OS
413.9 -> s security features like verified boot
415.669 -> user data encryption continuous updates
418.34 -> in Android still has a Linux running
422.889 -> there are no virtual machines or
425.21 -> emulation going on so you get full
426.86 -> native performance and finally since
431.51 -> we're running the whole Android system
433.79 -> you get to run all of 100 marshmallow
436.669 -> within Chrome OS this includes a Google
438.56 -> Play Store so something that we learned
443.09 -> with a great app runtime for Chrome is
444.95 -> that integration matters the more
447.5 -> integrated the apps are with the rest of
448.79 -> the operating system the better they
450.229 -> look and feel so we only grant direct
453.71 -> hardware access to Android in very few
455.27 -> occasions the rest of the time the
457.01 -> hardware is still managed by Chrome OS
458.889 -> but still we added a lot of integration
461.15 -> points so that Android the Android
463.19 -> developers can still call the same API S
464.75 -> and those API is underneath will make
466.97 -> calls to Chrome OS this allows both
470.45 -> operating systems to share the same view
472.19 -> of the system instead of having split
473.45 -> views ok so what does the double
478.22 -> translate into and how does it impact
479.45 -> your applications because we're running
484.039 -> a full Android system it means that most
485.81 -> applications can be run in Chrome OS
487.22 -> without any code changes at all of
489.349 -> course
490.43 -> since this is a new platform you might
492.74 -> want to still make some optimizations in
494.389 -> Sault weeks but your app works like
500.78 -> Chrome OS app most of the things you
504.59 -> expect the Android system to do will be
506.18 -> now provided by Chrome OS instead of
508.28 -> having been instead of being constrained
509.93 -> to a little window every task runs in
512.93 -> its own window you get any notifications
515.3 -> together with Chrome OS s there's just
517.849 -> one app launcher and shelf signing
520.88 -> information will be shared between
521.87 -> operating systems so you don't have to
523.459 -> log in twice you're also able to share
527.6 -> files in the Downloads folder as well
531.7 -> hardware is also integrated so you still
534.589 -> get connectivity to Wi-Fi and Bluetooth
536.95 -> camera microphone audio and video still
540.86 -> work all of Chrome OS s input mechanisms
545.99 -> are still plumb through your application
547.67 -> so keyboard and trackpad events will be
550.51 -> delivered to your application and also
553.22 -> touch events if the Chromebook supports
554.779 -> it meanwhile your application still
559.25 -> behaves like an added application since
562.82 -> we're running a full Android stack the
564.529 -> whole marshmallow API is available to
566.089 -> you this includes Google Play services
568.25 -> so things like in-app payments will be
571.04 -> available in consumer Chromebooks we're
573.589 -> also not adding any new API so there's
575.75 -> nothing for you to learn this time all
580.399 -> system services are running and all the
582.709 -> interactions between the system services
584.24 -> and your application are exactly like
585.89 -> you would expect this includes things
587.899 -> like the application lifecycle events
592.51 -> finally the hardware is subtractive so
595.1 -> that you don't need to worry about
596.12 -> anything I'm going to be clear where
602.12 -> while apps can be run in Chrome OS we
604.85 -> still require Chrome OS users to opt in
606.589 -> to use this feature we understand that
609.32 -> there are some scenarios in which people
610.7 -> don't want to enable this just yet we're
613.82 -> also providing enterprise in education
615.74 -> users with additional policies that can
618.14 -> enforce if and which applications can
620.12 -> run on devices they manage right what is
624.38 -> going to be available for your
625.97 -> developers where we're enabling this
628.91 -> feature on Chrome OS 53 this should be
631.459 -> available in the dev channel in June
634.54 -> m-53 should be generated available for
636.8 -> you for all users in the stable channel
638.63 -> in September so you still have some time
640.49 -> to prepare we'll start by supporting
644.54 -> three devices the Asus 10 inch flip the
647.149 -> Acer Chromebook re 11 and the Chromebook
648.95 -> pixel 2015 we'll gradually bring support
652.37 -> to more devices in later milestones and
653.87 -> so stay tuned and that's the URL where
656.06 -> you can check which devices will be
657.8 -> getting supported
659.12 -> on which releases so stay tuned okay
663.939 -> it's great that most applications will
666.319 -> work out of the box without any changes
668.089 -> so let's let's take a look at the best
670.67 -> practices you can take into account so
676.22 -> your application works even better on
677.959 -> Chromebooks there's a wide variety of
683.899 -> Chromebook form factors all of them have
686.209 -> a physical keyboard and trackpad most of
688.999 -> the devices will be rolling out support
690.439 -> to have a touchscreen as well some of
692.87 -> them are even convertible so they can
694.519 -> switch between a laptop and a tablet
695.959 -> form factor while we're testing
699.17 -> applications most of them we found out
701.6 -> that they already work pretty well with
703.249 -> keyboard and mouse still not all of them
706.43 -> did so it's better that you developers
710.48 -> take into account testing with a
712.42 -> keyboard and mouse also since there's
716.749 -> essentially new hardware available to
718.279 -> you might as well make the best of it so
722.329 -> productivity applications can have
724.819 -> things like hot key support that will
728.809 -> make users even more productive some
731.779 -> games even lend themselves to be
733.129 -> controlled using a keyboard and mouse
745.86 -> okay now now now for the important
748.14 -> coding part by default to all Android
750.78 -> applications set the touchscreen
752.16 -> Hardware feature to be required now I
755.97 -> mentioned before that not all
757.17 -> Chromebooks will provide touchscreen so
760.67 -> it's very important that on your Android
763.5 -> manifest XML you set the Android
766.74 -> hardware dot touch screen feature to be
768.96 -> not required this will allow your
771.9 -> application to appear in the Play Store
773.16 -> for all Chromebooks instead of just for
775.32 -> the Chromebook that support touch if you
778.08 -> go out of this presentation with just
779.73 -> one thing in mind little bit this all
784.71 -> right best practices for multi windows
786.12 -> on laptops everybody yes is multiple
788.82 -> windows for productivity given that
790.86 -> there are more pixels available in the
792 -> screen now I did mention a couple of
795.72 -> times before that we're supporting
797.16 -> marshmallow API and marshmallow doesn't
800.25 -> have the API for multi window I also
803.13 -> mentioned that we are not adding any new
804.69 -> API ice so how does it work
807.5 -> in order to minimize the amount of work
809.55 -> needed for everybody we're only
811.2 -> supporting a few layouts that your
812.85 -> application already most likely supports
818.54 -> first of all we have landscape this is
821.1 -> the default layout this uses a nexus 9
824.96 -> aspect ratio and device density will
830.58 -> support portrait which uses runs just
832.86 -> like a nexus 5 we also have maximized
837.18 -> windows which take up take up all
839.16 -> available pixels on the screen
842.45 -> finally for convertibles we have touch
844.89 -> me mode
845.42 -> which is more or less the same as
848.1 -> maximized but hides the window
850.17 -> decorations and the chef at the bottom
851.52 -> so it's similar to androids image that
853.44 -> world we had some window controls to
858.36 -> toggle between all the available layouts
860.45 -> this allows both users and developers to
865.02 -> choose the right balance of information
866.37 -> density in the sizes and layouts the
868.23 -> applications were originally designed
869.61 -> for now some things you need to give you
873.12 -> were aware of similar to ends multi
875.88 -> window implementation we're not changing
877.98 -> that the application light
879.13 -> technical model exactly one application
881.77 -> will be on the young resume state and
883.06 -> this is the window that's currently
884.53 -> focused all the rest of the windows and
886.99 -> applications are in the on past state
889.77 -> also the atom memory killer is
892.57 -> integrated with the rest of the
893.71 -> operating system and it takes the Z
895.87 -> order of the windows into account when
898.03 -> calculating the final score so
901.03 -> applications that have been listen least
903.31 -> recently used will be killed first okay
909.01 -> so since a changing orientation also
914.35 -> changes the physical size of your window
916.51 -> or the device you need to declare the
919.48 -> correct Android screen orientation so it
921.79 -> only uses the ones that support now it's
927.43 -> also important that you go read this
929.29 -> document the handled runtime changes in
931.42 -> the official Android documentation there
936.67 -> will be some things that you don't
938.56 -> expect to change whenever changing
941.26 -> orientation for instance the screen
943.36 -> width and height will change in a ways
945.19 -> you don't necessarily expect because on
947.32 -> normal devices they only flip between
949.42 -> them and here you can have totally
952.06 -> different values also the density dpi
955.38 -> setting can change when you switch
957.79 -> orientation also very important
961 -> make sure you invalidate any cash
962.47 -> resources since once you change
964.78 -> orientation you're effectively changing
966.46 -> device you need to make sure that you
969.46 -> load the correct resources after the
971.35 -> orientation has changed now this this
974.77 -> two things are still important for
976.36 -> Android and so might as well do them in
978.34 -> right now
982.86 -> also use the correct task affinities as
986.41 -> essentially in the demo it's possible
988.54 -> for a task to launch another activity in
991.87 -> a new task this will render a new window
994.41 -> but if your intention was to have a
996.64 -> model window you should put that up
999.19 -> activity in the same task otherwise
1002.16 -> you'll get you might get into Africa
1004.98 -> application files that you weren't
1006.03 -> expecting finally respect the unpassed
1011.31 -> date while your application might be
1013.56 -> passed it's still visible so make sure
1015.72 -> you're not doing any rendering because
1017.37 -> that might look awkward for the user and
1018.96 -> it will also consume a lot of battery
1024.98 -> using backup and restore effectively
1027.03 -> it's also very important one of the best
1029.4 -> features about Chromebooks is the juices
1031.079 -> can just throw out their machines get a
1033.9 -> new one log in and all their
1036.39 -> applications and settings will be there
1038 -> so it's not totally required to support
1041.819 -> backup and restore but it's a very good
1043.23 -> idea and users will love it make sure
1046.29 -> you read the official documentation and
1047.939 -> backup and restore
1049.91 -> there are also some scenarios in which
1051.99 -> Chromebook users I mean Chromebooks can
1054.45 -> be shared amongst a large number of
1055.59 -> users for instance in education students
1058.77 -> don't get their own personal Chromebooks
1060.33 -> they are shared between students so if
1063.36 -> you're writing applications for for
1065.25 -> gauging purposes make sure to take the
1067.17 -> scenario into account and be mindful of
1068.79 -> the local storage you use in general
1074.52 -> Chromebooks support less amount of
1076.02 -> sensors compared to mobile devices for
1077.99 -> instance most application most Android
1080.88 -> developers are used to having a GPS
1082.56 -> device to get accurate location
1084.54 -> information Chromebooks don't have a GPS
1087.33 -> device but they can still get course
1089.49 -> location information - the use of Wi-Fi
1091.37 -> this might be enough to get the best
1093.87 -> friend restaurants around you but it
1096.06 -> might not be enough to get just grab a
1098.43 -> Chromebook put it in your car expect to
1100.35 -> have turn-by-turn navigation so the
1104.49 -> recommendation is to make sure you don't
1106.53 -> require hardware that might not be
1108.21 -> available of course if your application
1111.09 -> does require some piece of hybrid that's
1113.46 -> not available
1114.39 -> will respect your decision and not show
1116.88 -> that application on the Play Store for
1118.83 -> Chromebooks there are some other
1127.02 -> software features that are not not going
1129.18 -> to be supported in Chrome OS C to want
1133.23 -> users to have the full chrome OS
1134.64 -> experience applications that customize
1136.77 -> some parts of the UI will not be
1138.18 -> available applications that provide
1140.43 -> custom input methods app widgets live
1143.79 -> wallpapers or home screens won't be
1145.53 -> supported also Chrome OS is going to be
1150.45 -> the device manager for Android so
1152.31 -> applications that the clear themselves
1153.63 -> to be device admins or manage users also
1156.51 -> going to be supported
1162.89 -> we will be shipping initially whenever
1165.24 -> with Android marshmallow but it's still
1167.22 -> a good idea to focus your efforts to
1169.56 -> focus some efforts in upgrading to n
1171.33 -> eventually because it will bring a lot
1173.73 -> of features that will improve desktop
1175.59 -> productivity to users for instance you
1179.13 -> will have the ability to fully resize
1180.99 -> activities instead of being constrained
1182.46 -> to one of the four layouts we support
1184.26 -> right now you also be able to use
1186.69 -> drag-and-drop between applications and
1188.6 -> there's going to be a new mouse cursor
1190.8 -> API available so in order to learn more
1195.03 -> about em you can watch these two
1198.47 -> presentations that aired yesterday today
1200.91 -> here in i/o
1201.86 -> the what's new in Android and multi
1204.03 -> window both also you can consult the
1206.79 -> official Android n Developer Preview for
1209.31 -> documentation ok if we have any more
1214.56 -> questions about this you can consult the
1216.78 -> official documentation for Android apps
1218.85 -> for Chromebooks you can also ask
1220.8 -> questions in Stack Overflow or post
1222.66 -> questions on the Android G+ community
1228.63 -> now before I go a lot of you try to get
1233.23 -> to today's earlier announcement but
1235.18 -> couldn't get to it so we're going to
1237.82 -> redo the demo that we gave earlier today
1240.46 -> so here's Katie that will present to you
1242.89 -> the earlier demo all right thanks a lot
1252.31 -> Louis and can we see the demo ah please
1256.23 -> okay all right very good so apologies is
1260.44 -> foreing that we were a little short on
1261.76 -> space so we thought with these extra few
1264.55 -> minutes we could go back through our
1266.35 -> demo flow so unfortunately it'll be a
1271.05 -> mildly different second rendition
1273.13 -> hopefully a little bit better but here
1275.26 -> you've got a fixes to it looks like a
1279.88 -> regular Chromebook it got a Chrome
1282.22 -> browser here but you obviously now have
1284.32 -> the Play Store on the shelf here so go
1287.5 -> ahead and launch that so here we can
1290.26 -> actually browse through our apps looks
1292.99 -> like we've got just like the regular
1295.81 -> Play Store so let's go ahead and install
1297.64 -> something so I think we decided
1300.34 -> bejeweled was a pretty good game search
1302.29 -> for that and we'll go ahead and install
1309.36 -> oh look at that coincidentally
1312.21 -> apparently kans wife has asked me to
1315.05 -> make a poster for cads child's birthday
1318.12 -> party ah so being good employ let's go
1321.93 -> ahead and reply to cans wife I love to
1328.01 -> the great thing about the way we've
1331.29 -> integrated Android is we get the nice
1332.94 -> inline reply that you'd expect on your
1334.83 -> tablets and phones so I'll go ahead and
1336.84 -> send that off now great so uh let's go
1340.89 -> ahead and do that I've already installed
1342.9 -> Photoshop mix from the Play Store so
1345.36 -> I'll go ahead and launch that now so
1347.01 -> that's actually a picture of Cannes kid
1349.74 -> I think feeding a pen to piglet odd
1353.99 -> anyway I've been told that it would be
1356.73 -> more appropriate to put ice cream there
1358.62 -> instead so we'll go ahead and try to
1361.08 -> find some ice cream here so luckily from
1364.04 -> Adobe stock they've got some great
1366.45 -> photos of ice cream it's actually very
1368.31 -> bizarre like half Neapolitan ice cream
1370.47 -> with some pistachio but that looks kind
1375.24 -> of big so why don't we go ahead we can
1376.89 -> use the touchscreen just like we'd
1379.32 -> expect we go ahead and shrink our ice
1381.6 -> cream go down oh that's a little bit
1384.69 -> better than a pen I suppose one of the
1388.32 -> problems here though is obviously now
1389.61 -> our cone is kind of over her head so
1392.49 -> we'll go ahead and and cut out that we
1394.71 -> can zoom in and zoom in a little bit
1396.84 -> more we go ahead again use the
1398.58 -> touchscreen oh that was a truck head we
1401.4 -> didn't want go ahead and move with that
1405.32 -> and there we go we'll go ahead well
1409.34 -> there we get that photoshopping live not
1412.44 -> not my finest work probably
1420.26 -> probably come up in my next performance
1422.25 -> review but okay let's go ahead and say
1424.35 -> that anyway alright we're saving that
1429.84 -> that looks great on so I've been told
1433.62 -> that he wants a poster so let's go ahead
1436.14 -> and open up a word for that what's
1439.02 -> really nice about this is I can now just
1440.52 -> go and I've got kind of regular work
1442.83 -> here throwing some photos for the
1445.11 -> beyonds birthday party there there we go
1447.059 -> that that looks pretty good so want to
1451.23 -> now get this back to Cannes wife so
1454.559 -> let's go ahead and we can click that we
1456.899 -> want to share this as an attachment go
1460.289 -> ahead open up the Gmail we here that's a
1462.779 -> pretty good product and go ahead and
1465 -> send this off to nad that looks great
1470.429 -> let's go ahead and send that off Oh what
1474.179 -> do you know just coincidentally someone
1476.64 -> is attacking me on clash clans so again
1479.73 -> with how we've integrated the android
1483.149 -> framework chat heads just work this is a
1487.07 -> Shaheed right here we'll go ahead we
1489.659 -> better go check out our our village so
1493.95 -> clash of clans its we go ahead and close
1496.409 -> Photoshop we don't need that anymore
1498.059 -> ah sorry go ahead get clash of clans
1502.74 -> rolling for us oh dear you guys have
1506.94 -> never ever seen a demo not work on stage
1509.01 -> uh all right uh go ahead uh we actually
1514.679 -> have a slide known bug here uh any case
1518.73 -> so alright we'll go ahead and and
1520.649 -> continue on from that
1523.11 -> apologies that another great game other
1525.299 -> than clash plans which I also like a lot
1527.94 -> is galaxy on fire here we're able to get
1531.809 -> the nice use of the desktop GPU
1533.99 -> everything super smooth out our folks
1536.13 -> super nauseating to y'all in the
1538.38 -> audience but uh anyway a very good
1541.26 -> performance here as well with that I can
1545.25 -> also do in-app purchase
1546.77 -> as well as we go direct you can go to
1550.06 -> buy an add-on and go ahead and click buy
1553.49 -> and now this will be available on my my
1556.01 -> phone payment successful great as well
1559.67 -> as my tablet as well so again this was
1564.05 -> just a quick view of what we we also
1566.03 -> showed this morning we are of course
1567.92 -> very excited to be working with all of
1569.96 -> you to bring your apps you pro book so
1571.82 -> thank you very much
1579.97 -> all right that's it from both of us
1582.76 -> enjoy the rest of the show if you have
1585.17 -> any questions ask them on the spacious
1586.58 -> app or we'll be hanging out down the
1588.62 -> stage thank you

Source: https://www.youtube.com/watch?v=ZLYzX0G0YKQ