WEBVTT

00:00.000 --> 00:10.000
So, we are going to talk about the state of Webview with Niklas.

00:10.000 --> 00:11.000
Thanks.

00:11.000 --> 00:12.000
Can you hear me?

00:12.000 --> 00:13.000
Yeah.

00:13.000 --> 00:14.000
Sounds about right.

00:14.000 --> 00:15.000
Okay.

00:15.000 --> 00:16.000
So, I'm Niklas.

00:16.000 --> 00:20.000
I'm a chair of the W3C Webview community group for two years now.

00:20.000 --> 00:22.000
And I'm a maintainer of Apache Code Over.

00:22.000 --> 00:25.000
And that's the way I got into Webviews.

00:25.000 --> 00:29.000
So, because Apache Code Over uses Webviews for building cross platform apps.

00:29.000 --> 00:32.000
And yeah, I had some trouble with Webviews in the past.

00:32.000 --> 00:35.000
And so, I joined the community group to make a change.

00:35.000 --> 00:37.000
First, raise your hand please.

00:37.000 --> 00:41.000
If you have ever used Webview for some kind of application.

00:41.000 --> 00:42.000
Oh, that's good.

00:42.000 --> 00:44.000
More than I expected.

00:44.000 --> 00:50.000
And if you haven't used it before, have you ever thought about Webview while developing for the web or whatever?

00:50.000 --> 00:53.000
Oh, that's what I expected.

00:53.000 --> 00:58.000
So, for the next few minutes, this is a little overview of what I want to talk about.

00:58.000 --> 01:01.000
It's a bit of the diverse topic.

01:01.000 --> 01:03.000
And yeah, Webviews are on a weird space.

01:03.000 --> 01:04.000
We will see.

01:04.000 --> 01:06.000
I'll catch you up on what Webviews are.

01:06.000 --> 01:10.000
And yeah, what maybe the future for Webviews.

01:10.000 --> 01:13.000
So, first, what is Webview?

01:13.000 --> 01:16.000
The short answer is, we still don't know.

01:16.000 --> 01:19.000
So, we're still figuring out what exactly is Webview.

01:19.000 --> 01:21.000
We came up with different definitions.

01:21.000 --> 01:22.000
Some of them are over here.

01:22.000 --> 01:25.000
They are quite good, but we still get into arguments.

01:25.000 --> 01:29.000
Have long discussions and never find found a good definition.

01:29.000 --> 01:35.000
And yeah, essentially it means if you're embedding Web into an application, you're using a Webview.

01:35.000 --> 01:38.000
But yeah, there are different kinds of Webviews.

01:38.000 --> 01:41.000
This is something we could find quite good definition.

01:41.000 --> 01:44.000
We have defined two types of Webviews.

01:44.000 --> 01:48.000
A fully flat Webview, which can basically do anything you want.

01:48.000 --> 01:50.000
Just like the browser and more.

01:50.000 --> 01:53.000
And we have browser-like Webviews.

01:53.000 --> 01:55.000
So, the criteria we defined.

01:55.000 --> 01:57.000
Use experience flexibility.

01:57.000 --> 01:59.000
The access to Web content.

01:59.000 --> 02:00.000
And yeah, stage sharing.

02:00.000 --> 02:02.000
I will get to that later.

02:02.000 --> 02:05.000
This is defined in our usage and challenges report.

02:05.000 --> 02:08.000
Part of the Webview community group.

02:08.000 --> 02:13.000
So, as an example, I'll get you a screenshot of an application using Android Webview.

02:13.000 --> 02:16.000
You can see in the top part is a native UI.

02:16.000 --> 02:18.000
This is something very ugly.

02:18.000 --> 02:19.000
I built myself.

02:19.000 --> 02:24.000
And then in the bottom, there is the Webview component, which renders the Web page.

02:24.000 --> 02:30.000
So, the app can mess and influence the content of the Webview in any way it wants.

02:30.000 --> 02:38.000
Because it has APIs like JavaScript, Edgex's, X's to cookies, loading stuff, loading CSS into the page, whatever.

02:38.000 --> 02:42.000
Yeah, other type of Webview is another example.

02:42.000 --> 02:45.000
This is like a browser-like Webview experience.

02:45.000 --> 02:46.000
It's Android custom tabs.

02:46.000 --> 02:48.000
You might notice it from social media.

02:48.000 --> 02:53.000
So, you click on the link and not your default browser opens, but it opens inside the app.

02:53.000 --> 02:57.000
And yeah, custom tab is the API on Android for that.

02:57.000 --> 02:59.000
It brings its own UI as you can see.

02:59.000 --> 03:01.000
You see the domain we're going to.

03:01.000 --> 03:03.000
And the title of the Web page.

03:03.000 --> 03:06.000
And it can do things like stage sharing with the browser.

03:06.000 --> 03:09.000
So, you might be locked in into your accounts.

03:09.000 --> 03:12.000
And it's more reliable used for web browsing.

03:12.000 --> 03:17.000
Because the app developer has less access and cannot, yeah, mess with you.

03:17.000 --> 03:22.000
And extract content from the page.

03:22.000 --> 03:24.000
What else is different?

03:24.000 --> 03:25.000
Or what else differs?

03:25.000 --> 03:27.000
Webviews from browsers?

03:27.000 --> 03:31.000
So, Webviews are developed separately from browser development.

03:31.000 --> 03:33.000
In some kind of fashion.

03:33.000 --> 03:34.000
So, I'm not sure.

03:34.000 --> 03:36.000
I don't work for browser developer, browser vendor.

03:36.000 --> 03:37.000
But I've talked to some.

03:37.000 --> 03:41.000
And yeah, Webviews sit somewhere between the native teams and the browser teams.

03:41.000 --> 03:44.000
So, they have to consider both sides.

03:44.000 --> 03:46.000
Because they have native APIs and browser.

03:46.000 --> 03:48.000
Things they need to consider.

03:48.000 --> 03:50.000
They're also more complex to build.

03:50.000 --> 03:55.000
Because you have to take into consideration extra security and compatibility stuff.

03:55.000 --> 03:58.000
And yeah, this makes them a lot more harder to develop.

03:58.000 --> 04:04.000
And some browser vendors told me that it takes more time to build something for webviews than for browsers.

04:05.000 --> 04:08.000
Webviews, as well, are part of the things.

04:08.000 --> 04:13.000
Patrick talked about, like, interrupt, blah, really browser planning.

04:13.000 --> 04:22.000
So, some features might come later or not get implemented into webviews.

04:22.000 --> 04:24.000
Again, a little overview of why I care about webviews.

04:24.000 --> 04:26.000
I started building apps.

04:26.000 --> 04:29.000
Using webviews, then I got into maintaining a project.

04:29.000 --> 04:31.000
I just use this webviews.

04:31.000 --> 04:36.000
And yeah, use the feature of the capability of webview to build a cross-platform framework.

04:36.000 --> 04:37.000
Patrick got over.

04:37.000 --> 04:39.000
I got maintain on this project.

04:39.000 --> 04:42.000
The community group was founded a few years ago.

04:42.000 --> 04:46.000
And I joined because of my interest to improve the group.

04:46.000 --> 04:48.000
And now I'm acting as a chair.

04:48.000 --> 04:53.000
And trying to figure out how we can improve webviews.

04:54.000 --> 04:56.000
Why you should care webviews.

04:56.000 --> 05:02.000
You might want to consider webviews in some parts of the web development process.

05:02.000 --> 05:05.000
Because there are critical component for many apps.

05:05.000 --> 05:08.000
You might use them every day without noticing.

05:08.000 --> 05:11.000
And yeah, they might expose you to security risk.

05:11.000 --> 05:15.000
If the developer isn't using webviews properly,

05:15.000 --> 05:17.000
they use for inner browsing.

05:17.000 --> 05:20.000
So you might go to a page and it's broken.

05:20.000 --> 05:26.000
Because the webview isn't up to date to the browser status.

05:26.000 --> 05:30.000
And you might be using mini apps.

05:30.000 --> 05:32.000
Mini apps are not that popular in Europe.

05:32.000 --> 05:34.000
But in China they are big deal.

05:34.000 --> 05:36.000
And basically everywhere.

05:36.000 --> 05:40.000
And mini apps are using webviews to deliver experiences.

05:41.000 --> 05:49.000
And many users in China or in Asia in general don't go to browsers.

05:49.000 --> 05:52.000
That often, but everything happens inside super apps and mini apps.

05:52.000 --> 05:54.000
And webviews are a big part of this.

05:54.000 --> 06:00.000
And in my opinion, the web is the best cross-platform technology we have today.

06:00.000 --> 06:02.000
It's good to build for the web.

06:02.000 --> 06:04.000
So you can target basically any system.

06:04.000 --> 06:07.000
So webviews are part of this.

06:08.000 --> 06:10.000
The current state of webviews is pretty broad.

06:10.000 --> 06:11.000
Pretty complicated.

06:11.000 --> 06:13.000
We have mobile webviews.

06:13.000 --> 06:15.000
We have desktop webviews.

06:15.000 --> 06:22.000
We have platforms that are using webviews for different kinds of things.

06:22.000 --> 06:25.000
Like Electron is using some kind of webview.

06:25.000 --> 06:28.000
And it's everywhere basically.

06:28.000 --> 06:31.000
And embedding is really important.

06:33.000 --> 06:36.000
Some developers are building apps using webviews.

06:36.000 --> 06:40.000
And they need webviews to keep up to date.

06:40.000 --> 06:44.000
And it would be great to have the same content we have on the browser.

06:44.000 --> 06:46.000
Inside the webview as well without any issues.

06:46.000 --> 06:51.000
So fragmentation is a problem or could become bigger problem.

06:51.000 --> 06:55.000
Most of the webviews we have today are provided by operating system.

06:55.000 --> 06:58.000
So they are part of the platform, the authority.

06:58.000 --> 07:00.000
And they are bundled with operating system.

07:00.000 --> 07:05.000
So you don't need to care about updating the webview yourself as an app developer.

07:05.000 --> 07:10.000
And this is what you have today.

07:10.000 --> 07:13.000
But there are some pain points for webviews.

07:13.000 --> 07:17.000
And there are some good reasons why we formed the community group.

07:17.000 --> 07:24.000
So the biggest thing is the difference in behavior and support of web features.

07:24.000 --> 07:29.000
So some web features come to webviews at the later stage or don't come to webviews at all.

07:29.000 --> 07:34.000
And this creates some friction if you want to use the same content for webview and the browser.

07:35.000 --> 07:37.000
Webviews have native APIs.

07:37.000 --> 07:40.000
So basically every webview has its own native APIs.

07:40.000 --> 07:44.000
They do similar things but do it in a different way and have different capabilities,

07:44.000 --> 07:46.000
which creates some problems.

07:46.000 --> 07:50.000
And sometimes it's hard to find out why something in a webview is broken,

07:50.000 --> 07:54.000
why it's not supported or what's going on here.

07:54.000 --> 07:58.000
The example I always bring is the topic of custom schemes,

07:58.000 --> 08:00.000
origins, loading local files.

08:00.000 --> 08:03.000
I won't bore you of the details but I spent many, many months,

08:03.000 --> 08:05.000
figuring out problems here.

08:05.000 --> 08:11.000
And yet this comes from the Apache Code Overcase where we have an app written in React,

08:11.000 --> 08:13.000
Angular of UGS.

08:13.000 --> 08:17.000
Bundle it together inside an app bundle, put it in the app.

08:17.000 --> 08:21.000
And then the webview is loading local content from the file system,

08:21.000 --> 08:22.000
so not from the internet.

08:22.000 --> 08:25.000
And webviews have API for this.

08:25.000 --> 08:28.000
Here's a little difference of the two APIs.

08:28.000 --> 08:33.000
You have different names, different approach, but do the same thing in theory.

08:33.000 --> 08:36.000
But because they're not doing exactly the same thing,

08:36.000 --> 08:40.000
you have to figure out how you can make it work and this created some problems

08:40.000 --> 08:45.000
for code over and similar approaches in the past.

08:45.000 --> 08:50.000
So to tackle this, all of this in the webview community group

08:50.000 --> 08:55.000
came up with the need we have to document issues like this somehow

08:55.000 --> 08:59.000
and other data for the web.

08:59.000 --> 09:03.000
We have web features today, as Patrick mentioned earlier today,

09:03.000 --> 09:06.000
and it is great for getting an overview of everything,

09:06.000 --> 09:09.000
and so we applied this to webviews.

09:09.000 --> 09:12.000
And yet to make it work to experiment with the data we have,

09:12.000 --> 09:15.000
we build a new site, canaveview.com,

09:15.000 --> 09:18.000
to write down first behavioral documentations,

09:18.000 --> 09:23.000
like the native APIs, and also work with web features,

09:23.000 --> 09:26.000
and see the and everything we learned today.

09:26.000 --> 09:31.000
So this is a screenshot of the site,

09:31.000 --> 09:34.000
and basically the best example we have today.

09:34.000 --> 09:38.000
We extended the tooling from web features a little bit,

09:38.000 --> 09:42.000
so we have web views, and they're equivalent browsers,

09:42.000 --> 09:46.000
so Android webview should be similar to Chrome on Android.

09:46.000 --> 09:50.000
iOS webview should be similar to Safari on iOS.

09:50.000 --> 09:54.000
So canaveview today shows you this table,

09:54.000 --> 09:56.000
where things don't match.

09:56.000 --> 09:58.000
We see some mixed support.

09:58.000 --> 10:01.000
This is all coming from web features,

10:01.000 --> 10:04.000
and canaveview is just the place to host it today,

10:04.000 --> 10:05.000
and to visualize it.

10:05.000 --> 10:10.000
But the data is together with all the other data for browsers.

10:10.000 --> 10:13.000
So we don't create a new space,

10:13.000 --> 10:15.000
we just do it today here,

10:15.000 --> 10:17.000
and canaveview may be at some point,

10:17.000 --> 10:21.000
it will be part of mdn, canaveviews, and all the other resources.

10:21.000 --> 10:23.000
We started with bcd,

10:23.000 --> 10:27.000
and then came to web features through our picture,

10:27.000 --> 10:29.000
and thanks to the help from open web talks,

10:29.000 --> 10:31.000
some people at Google,

10:31.000 --> 10:33.000
we managed to get a good overview today,

10:33.000 --> 10:36.000
and we're still discussing how to implement this,

10:36.000 --> 10:40.000
into something like baseline, and all the other resources.

10:42.000 --> 10:46.000
So the community group currently focuses on documentation,

10:46.000 --> 10:48.000
so as you saw,

10:48.000 --> 10:50.000
we have canaveview.com slash base,

10:50.000 --> 10:52.000
and we can see an overview.

10:52.000 --> 10:55.000
We also built and published some testing apps,

10:55.000 --> 10:58.000
where you can load the site,

10:58.000 --> 11:00.000
your site, your developing elsewhere,

11:00.000 --> 11:02.000
your development for the browser,

11:02.000 --> 11:04.000
into a web view,

11:04.000 --> 11:06.000
and you test if something's going wrong,

11:06.000 --> 11:09.000
and you're quickly to use bugs.

11:09.000 --> 11:10.000
So these types are available,

11:10.000 --> 11:13.000
these apps are available on the stores to download,

11:13.000 --> 11:16.000
and you can have a look yourself,

11:16.000 --> 11:19.000
and figure out web views without building native apps yourself.

11:19.000 --> 11:22.000
So in the past, I always had to build my own native app

11:22.000 --> 11:25.000
to test something in web views.

11:25.000 --> 11:27.000
Another interesting approach,

11:27.000 --> 11:29.000
I recently started working on a server.

11:29.000 --> 11:32.000
We will hear about server later today,

11:32.000 --> 11:35.000
and yes, server has this slogan on the main page today,

11:35.000 --> 11:37.000
so they're focusing on embedding,

11:37.000 --> 11:41.000
so this sounds like a perfect fit for web views,

11:41.000 --> 11:45.000
and I took some time to look into this,

11:45.000 --> 11:49.000
and server is a good fit for trying a new web view,

11:49.000 --> 11:51.000
trying how we can do things differently,

11:51.000 --> 11:53.000
and server is really gaining traction,

11:53.000 --> 11:57.000
and I focus on this, so it's a good time now.

11:57.000 --> 12:01.000
Naturally, because I'm coming from a patchy code over,

12:01.000 --> 12:07.000
I got into figuring out how we can embed server into a patchy code over.

12:07.000 --> 12:09.000
I built a plugin for this,

12:10.000 --> 12:12.000
and it works on Android right now,

12:12.000 --> 12:15.000
because server was pretty easy to get going on Android,

12:15.000 --> 12:17.000
which was surprising to me,

12:17.000 --> 12:19.000
but I'm happy to report that we can use it.

12:19.000 --> 12:22.000
There's still a lot of details to figure out,

12:22.000 --> 12:26.000
and you will notice pretty quickly that some things are broken,

12:26.000 --> 12:28.000
and not working as expected,

12:28.000 --> 12:31.000
but I'm gonna keep working on this,

12:31.000 --> 12:33.000
and I'm looking forward for yeah,

12:33.000 --> 12:35.000
collaborating with the server team there.

12:35.000 --> 12:38.000
Thanks to some, thanks to the help and some funding

12:38.000 --> 12:41.000
from NGI mobile free fund, which is run by an internet,

12:41.000 --> 12:46.000
I got a little bit time to work on this as my free time project.

12:46.000 --> 12:50.000
Currently, I'm working on getting the essential features,

12:50.000 --> 12:53.000
done for a patchy code over, which is a black and bridge,

12:53.000 --> 12:56.000
so in a patchy code over, you have the website with JavaScript,

12:56.000 --> 13:00.000
HMS, CSS, and then you can call native functions

13:00.000 --> 13:02.000
of the operating system,

13:02.000 --> 13:05.000
like take a picture, get the location,

13:05.000 --> 13:08.000
or active Bluetooth, wireless, whatever,

13:08.000 --> 13:11.000
but would normally not be available in a browser,

13:11.000 --> 13:14.000
can be available in your web field with a patchy code over,

13:14.000 --> 13:16.000
and for this, we use a black and bridge,

13:16.000 --> 13:19.000
and I'm getting to work this,

13:19.000 --> 13:21.000
but the server lacks some APIs,

13:21.000 --> 13:23.000
we have an Android web field for example,

13:23.000 --> 13:24.000
so I have to work around this,

13:24.000 --> 13:26.000
but maybe at some point,

13:26.000 --> 13:28.000
if you will get those APIs in server,

13:28.000 --> 13:32.000
and it would be great opportunity to make it work properly.

13:32.000 --> 13:38.000
So what does the future bring for web views?

13:38.000 --> 13:40.000
I'm not sure.

13:40.000 --> 13:45.000
Web views definitely need a lot more considerations

13:45.000 --> 13:47.000
for security privacy.

13:47.000 --> 13:49.000
This is the number one priority,

13:49.000 --> 13:52.000
because if you make changes to web view,

13:52.000 --> 13:55.000
and we don't think about security and privacy,

13:55.000 --> 13:57.000
things go down pretty quickly,

13:57.000 --> 14:00.000
and we definitely don't want to do this,

14:00.000 --> 14:02.000
and we think improving web views,

14:02.000 --> 14:04.000
and improving the documentation around web views,

14:04.000 --> 14:06.000
and reducing fragmentation around web views,

14:06.000 --> 14:10.000
helps a lot of other areas, like mini apps,

14:10.000 --> 14:13.000
and mini apps are very fragmented as well.

14:13.000 --> 14:15.000
They have their own APIs, their own problems,

14:15.000 --> 14:20.000
but we're looking forward to working together with them as well.

14:20.000 --> 14:22.000
Also, AI is everywhere these days,

14:22.000 --> 14:24.000
we are not sure if it stays, or how it will stay,

14:24.000 --> 14:28.000
but maybe web views would play role there as well,

14:28.000 --> 14:31.000
maybe web view, APIs, web views,

14:31.000 --> 14:33.000
will be part of AI experiences.

14:33.000 --> 14:37.000
So this is also a reason why we should focus on web views today.

14:41.000 --> 14:44.000
The top title can be fixed things.

14:44.000 --> 14:47.000
Short again, I'm not sure.

14:47.000 --> 14:49.000
I'm just an independent developer.

14:49.000 --> 14:50.000
Open source developer.

14:50.000 --> 14:52.000
I don't have any stakes and browser development,

14:52.000 --> 14:55.000
so it's hard to tell how we can change things.

14:56.000 --> 14:58.000
If we can change things,

14:58.000 --> 15:01.000
because vendors for good reasons move carefully,

15:01.000 --> 15:05.000
and don't want to break their things.

15:05.000 --> 15:08.000
The APIs for web views have grown over the years,

15:08.000 --> 15:11.000
and there should be stable for good reasons,

15:11.000 --> 15:14.000
and therefore there is not enough interest yet

15:14.000 --> 15:18.000
to work on collaboration on standards,

15:18.000 --> 15:21.000
and we are revising those APIs.

15:21.000 --> 15:26.000
I think most of the group agrees that documentation

15:26.000 --> 15:28.000
and tooling are the best way forward,

15:28.000 --> 15:35.000
so we're going to continue with the work on documentation we did,

15:35.000 --> 15:40.000
and this might show a path where we're going to improve web views.

15:40.000 --> 15:45.000
I really like the position of being independent in this space here,

15:45.000 --> 15:49.000
because here web views have a lot of different perspectives.

15:49.000 --> 15:51.000
We have app developers, web developers,

15:51.000 --> 15:53.000
you have browser developers, you have browser developers,

15:53.000 --> 15:54.000
you have framework developers,

15:54.000 --> 15:56.000
and my position is pretty unique,

15:56.000 --> 15:58.000
because I'm independent in this space,

15:58.000 --> 16:00.000
and it's interesting to talk of all of these,

16:00.000 --> 16:03.000
and find out how web views are used.

16:05.000 --> 16:09.000
So, come to the end,

16:09.000 --> 16:13.000
I'd like to highlight that we need help here,

16:13.000 --> 16:15.000
so if you have issues with web views,

16:15.000 --> 16:18.000
please reach out and write about it on blog posts,

16:18.000 --> 16:21.000
issues, we are still collecting,

16:21.000 --> 16:25.000
we have a report that's called Document Usage and Challenges,

16:25.000 --> 16:29.000
and we're looking forward to expanding this report,

16:29.000 --> 16:31.000
find out how web views are used,

16:31.000 --> 16:34.000
but could be improved, but typical what are issues,

16:34.000 --> 16:36.000
and we need help there.

16:36.000 --> 16:39.000
Also writing docs, so the behavior docs,

16:39.000 --> 16:42.000
the different APIs are documented in many places,

16:42.000 --> 16:45.000
but there's not a good overview of all these APIs,

16:45.000 --> 16:48.000
and it's hard to find out what changes,

16:48.000 --> 16:52.000
especially change logs are a thing when a new iOS comes out,

16:52.000 --> 16:54.000
you have to figure out what change,

16:54.000 --> 16:58.000
but it's anything broken, same for Android,

16:58.000 --> 17:00.000
so this is really a thing.

17:00.000 --> 17:03.000
It got a good idea today that we might do,

17:03.000 --> 17:06.000
we could do based on web features,

17:06.000 --> 17:09.000
a change log of all the web views,

17:09.000 --> 17:10.000
like get an overview,

17:10.000 --> 17:12.000
that's also a reason why we have kind of a view,

17:12.000 --> 17:16.000
like a place for all web views on the same page.

17:16.000 --> 17:19.000
So bringing new ideas, if you have anything,

17:19.000 --> 17:22.000
you know about web views, anything in mind,

17:22.000 --> 17:25.000
consider joining the community group at WFEC,

17:25.000 --> 17:27.000
and we have regular meetings,

17:27.000 --> 17:31.000
and it's a good place to get started.

17:31.000 --> 17:35.000
And I also could need some support for server,

17:35.000 --> 17:41.000
but I'm hopeful for this, so we need more APIs for server view,

17:41.000 --> 17:43.000
so we can embed server properly,

17:43.000 --> 17:45.000
do something like code over,

17:45.000 --> 17:49.000
and figure out if a new engine,

17:49.000 --> 17:51.000
like server, might be a good path,

17:51.000 --> 17:54.000
so we're moving away from only the engines

17:54.000 --> 17:57.000
the operating system provides.

17:57.000 --> 18:01.000
The big omelette questions I want to close here,

18:01.000 --> 18:04.000
and here, give to the room and start a Q&A,

18:04.000 --> 18:07.000
is, do you have anything in mind?

18:07.000 --> 18:08.000
You want to share?

18:08.000 --> 18:10.000
You could do it now, or later with me?

18:10.000 --> 18:11.000
Yeah.

18:11.000 --> 18:14.000
Do we think server is a viable replacement web view?

18:14.000 --> 18:15.000
We could use in the future,

18:15.000 --> 18:18.000
instead of the already existing web views,

18:18.000 --> 18:23.000
and the long distance goal is standardization.

18:23.000 --> 18:26.000
So web view community group might evolve

18:26.000 --> 18:29.000
into something that standardizes web views,

18:29.000 --> 18:31.000
but we still need to figure out,

18:31.000 --> 18:33.000
is there a business interest,

18:33.000 --> 18:36.000
is there a good reason,

18:36.000 --> 18:39.000
and yeah, who might be willing to work on standardization?

18:39.000 --> 18:43.000
So this is the critical thing for me.

18:43.000 --> 18:48.000
And I definitely need some of those stickers.

18:48.000 --> 18:50.000
That's it for me,

18:50.000 --> 18:55.000
and I'm hoping to, for suggestions, questions, ideas.

18:55.000 --> 18:56.000
Thank you.

18:56.000 --> 19:06.000
Thank you very much.

19:06.000 --> 19:09.000
I have two questions, excuse my ignorance.

19:09.000 --> 19:11.000
The users get to choose,

19:11.000 --> 19:14.000
which web view they can use on their platform,

19:14.000 --> 19:19.000
and do web views have developed tools.

19:19.000 --> 19:22.000
The first one is,

19:22.000 --> 19:24.000
I don't think users get to choose.

19:24.000 --> 19:26.000
The developers get to choose in some way,

19:26.000 --> 19:28.000
but the choices are pretty limited.

19:28.000 --> 19:30.000
So I was used to have two web views,

19:30.000 --> 19:32.000
and they made a new one,

19:32.000 --> 19:33.000
and they've located the old ones.

19:33.000 --> 19:35.000
So you had to choice for some time,

19:35.000 --> 19:36.000
but right now,

19:36.000 --> 19:39.000
basically, every operating system provides their own web views.

19:39.000 --> 19:42.000
And you basically get to use that,

19:42.000 --> 19:45.000
and otherwise you have to ship your own web view,

19:45.000 --> 19:46.000
which is pretty complicated.

19:46.000 --> 19:47.000
I'm going to explain to you,

19:47.000 --> 19:50.000
but yeah, you blow up the app size.

19:50.000 --> 19:51.000
This is also a thing.

19:51.000 --> 19:53.000
You don't want to use downloading a whole browser engine,

19:53.000 --> 19:56.000
just for your delivery app.

19:56.000 --> 19:58.000
And on desktop,

19:58.000 --> 19:59.000
it might be different,

19:59.000 --> 20:03.000
because desktop has bigger APIs.

20:03.000 --> 20:05.000
And developer tools,

20:05.000 --> 20:08.000
basically, you use the same developer tools,

20:08.000 --> 20:09.000
you use for browser development.

20:09.000 --> 20:11.000
You can connect to your web view,

20:11.000 --> 20:13.000
and use developer tools like Chrome,

20:13.000 --> 20:14.000
for Android web views,

20:14.000 --> 20:15.000
or for iOS web view.

20:15.000 --> 20:17.000
And if you have a debug builder,

20:17.000 --> 20:19.000
you can connect to this,

20:19.000 --> 20:21.000
and it's the same experience, basically.

20:22.000 --> 20:24.000
Hi, thank you for the talk.

20:24.000 --> 20:27.000
If standardization does come to fruition,

20:27.000 --> 20:30.000
would those kind of native APIs that are actually

20:30.000 --> 20:31.000
called over provides,

20:31.000 --> 20:33.000
come into standardization,

20:33.000 --> 20:35.000
and be available in all platforms?

20:35.000 --> 20:37.000
And would that make a patchy code over,

20:37.000 --> 20:38.000
kind of,

20:38.000 --> 20:39.000
not necessary,

20:39.000 --> 20:41.000
if it comes to all web views,

20:41.000 --> 20:42.000
by default,

20:42.000 --> 20:43.000
like you can access the camera by,

20:43.000 --> 20:45.000
from all web views.

20:45.000 --> 20:48.000
I think this is a pretty interesting question,

20:48.000 --> 20:50.000
so,

20:50.000 --> 20:52.000
is using native APIs,

20:52.000 --> 20:53.000
is using native APIs,

20:53.000 --> 20:54.000
the web view is provide

20:54.000 --> 20:57.000
to make the bridge between web view and native.

20:57.000 --> 21:01.000
So if everything becomes part of the web,

21:01.000 --> 21:02.000
the browser,

21:02.000 --> 21:03.000
and then the web view,

21:03.000 --> 21:04.000
in term,

21:04.000 --> 21:06.000
code over will be irrelevant,

21:06.000 --> 21:07.000
could be gone.

21:07.000 --> 21:10.000
But this is the unofficial model of code over,

21:10.000 --> 21:11.000
since forever.

21:11.000 --> 21:12.000
So code over,

21:12.000 --> 21:13.000
or we're said,

21:13.000 --> 21:15.000
once the web caught up to the features we provide,

21:15.000 --> 21:17.000
you can see it's to exist.

21:17.000 --> 21:20.000
So this is basically our end goal,

21:20.000 --> 21:23.000
but the standardization comes in a different way.

21:23.000 --> 21:27.000
So the web views have different APIs of interacting with the web,

21:27.000 --> 21:30.000
so you can have a value of JavaScript,

21:30.000 --> 21:31.000
a typical API.

21:31.000 --> 21:33.000
So if you start in a native line,

21:33.000 --> 21:34.000
you start a web view,

21:34.000 --> 21:36.000
you have a value of JavaScript API,

21:36.000 --> 21:38.000
and then you can do something inside the web view.

21:38.000 --> 21:42.000
And those APIs are different between different platforms,

21:42.000 --> 21:44.000
and those could be standardized.

21:44.000 --> 21:45.000
So this is my,

21:45.000 --> 21:48.000
hopefully, in that this will be standardized at some point,

21:48.000 --> 21:49.000
but yeah,

21:49.000 --> 21:53.000
we're still figuring out if and how this could be possible.

21:53.000 --> 21:54.000
Cool, hello.

21:54.000 --> 21:56.000
So talking about web views,

21:56.000 --> 21:59.000
and kind of like going a little bit into the alternative paths,

21:59.000 --> 22:01.000
because I want to hear your opinion,

22:01.000 --> 22:04.000
have your very research on validation of applications about,

22:04.000 --> 22:06.000
for example, module validation,

22:06.000 --> 22:08.000
also for use cases for mini apps,

22:08.000 --> 22:10.000
and things like that.

22:10.000 --> 22:12.000
So this is pretty new to me as well,

22:12.000 --> 22:14.000
just a last topic,

22:14.000 --> 22:15.000
the W3C conference.

22:15.000 --> 22:18.000
There was an interesting practical session about module web engines,

22:18.000 --> 22:22.000
that you could have web views that are tailored to a specific use case,

22:22.000 --> 22:24.000
so they don't contain all the web features,

22:24.000 --> 22:26.000
just the ones that are needed.

22:26.000 --> 22:27.000
So there's an interesting use case.

22:27.000 --> 22:29.000
There's a whole community group around this.

22:29.000 --> 22:31.000
I'm looking forward for this,

22:31.000 --> 22:32.000
but yeah,

22:32.000 --> 22:35.000
there's also the concern that we don't want to fragment the web,

22:35.000 --> 22:36.000
or a subset of web.

22:36.000 --> 22:40.000
So this is something that's definitely in this question today.

22:40.000 --> 22:44.000
Yeah, thank you.

22:44.000 --> 22:49.000
I heard you talk mostly about real native web views,

22:49.000 --> 22:52.000
but we have all these developments now,

22:52.000 --> 22:54.000
with web views.

22:54.000 --> 22:55.000
So we have Electron,

22:55.000 --> 22:56.000
we have VBB,

22:56.000 --> 22:57.000
we have Firefox,

22:57.000 --> 23:00.000
and Google has isolated web apps with controlled frames.

23:00.000 --> 23:04.000
And like in my idea version,

23:04.000 --> 23:08.000
we would kind of get these web views into some standard,

23:08.000 --> 23:11.000
and then the UI and the engine of browsers

23:11.000 --> 23:13.000
would be pluggable together.

23:13.000 --> 23:17.000
And the native parts would just be whatever native translation

23:17.000 --> 23:20.000
of those web web standards exist,

23:20.000 --> 23:22.000
what are your thoughts on that?

23:22.000 --> 23:24.000
Yeah, it's an interesting thought,

23:24.000 --> 23:27.000
and we should continue this discussion.

23:27.000 --> 23:30.000
Yeah, isolated web apps and all the other topics

23:30.000 --> 23:33.000
that are coming up right now are also interesting.

23:33.000 --> 23:36.000
We don't want to get stuck in our web views,

23:36.000 --> 23:39.000
and many apps, so they are basically silos right now.

23:39.000 --> 23:41.000
They don't talk to each other,

23:41.000 --> 23:44.000
and we're looking to change that pretty soon.

23:44.000 --> 23:48.000
And yeah, this should be part of this as well.

23:48.000 --> 23:51.000
Hey, so thanks for the talk,

23:51.000 --> 23:55.000
and not really a question more of saying things

23:55.000 --> 23:58.000
for creating documentation about web views,

23:58.000 --> 24:00.000
because in practice, for instance,

24:00.000 --> 24:05.000
browser vendors usually aim for investing a lot on performance,

24:05.000 --> 24:10.000
but that comes for, on the price of sometimes security hosts

24:10.000 --> 24:12.000
that are very hard to find actually,

24:12.000 --> 24:16.000
and they're not easy systematic ways to find them.

24:16.000 --> 24:18.000
So I hope that, for instance,

24:18.000 --> 24:22.000
the commendation about the security implications of web views

24:22.000 --> 24:26.000
could be also informative for people working on not only,

24:26.000 --> 24:29.000
not only using the web views,

24:29.000 --> 24:34.000
but also implementing what features that could

24:34.000 --> 24:36.000
could open such security hosts.

24:36.000 --> 24:38.000
And for instance, for me personally,

24:38.000 --> 24:41.000
this mini-ups usage was completely new,

24:41.000 --> 24:43.000
a part of not very popular in Europe.

24:43.000 --> 24:46.000
So yeah, just to show up,

24:46.000 --> 24:50.000
thanks for sharing this information that you've gathered

24:50.000 --> 24:52.000
the hard way, currently.

24:52.000 --> 24:53.000
Yeah, thank you.

24:53.000 --> 24:55.000
It was great to get Android,

24:55.000 --> 24:57.000
and I was into the web features,

24:57.000 --> 24:59.000
PCD space, so we have the documentation everywhere.

24:59.000 --> 25:01.000
You can see it, and can I use it right now.

25:01.000 --> 25:05.000
And another big plan we have is security guide for app developers,

25:05.000 --> 25:08.000
so you can use web views in a secure and responsible way.

25:08.000 --> 25:11.000
This is also something we would like to write down,

25:11.000 --> 25:14.000
but we haven't found the right person and resources yet.

25:19.000 --> 25:23.000
So I'm wondering if you could talk more about the security implications

25:23.000 --> 25:25.000
of these bridges to native.

25:25.000 --> 25:28.000
It seems kind of scared to me that you have a web view

25:28.000 --> 25:30.000
that can go to an arbitrary website,

25:30.000 --> 25:32.000
but then the embedding app can look at the cookies,

25:32.000 --> 25:34.000
and inject color scripts,

25:34.000 --> 25:36.000
and whatever, I'm not sure how that corresponds

25:36.000 --> 25:38.000
to the web's normal security model.

25:38.000 --> 25:40.000
Could you say more about that?

25:40.000 --> 25:42.000
Yeah, it's complicated.

25:42.000 --> 25:44.000
I can say much in one minute,

25:44.000 --> 25:48.000
but web views are pretty scary,

25:48.000 --> 25:50.000
if you think about it, that way.

25:50.000 --> 25:52.000
Frameworks like code over,

25:52.000 --> 25:54.000
capacities of Italian, whatever day,

25:54.000 --> 25:56.000
put extra security measures in place.

25:56.000 --> 25:59.000
So those things are secure,

25:59.000 --> 26:01.000
that context and that usage,

26:01.000 --> 26:02.000
but if you use a web view,

26:02.000 --> 26:03.000
just I open up a web view,

26:03.000 --> 26:05.000
load any site in there.

26:05.000 --> 26:07.000
It's not very secure.

26:07.000 --> 26:08.000
You have to think about it.

26:08.000 --> 26:10.000
That's why we need the security guide.

26:10.000 --> 26:12.000
We need documentation and teach developers,

26:12.000 --> 26:14.000
how to use it in a good way,

26:14.000 --> 26:16.000
and you can use a good build.

26:16.000 --> 26:18.000
You could publish an app on the store,

26:18.000 --> 26:19.000
use a web view,

26:19.000 --> 26:21.000
say hey, this is my browser XYC,

26:21.000 --> 26:24.000
and then scrap all user information.

26:24.000 --> 26:26.000
This could be possible in theory.

26:26.000 --> 26:28.000
We don't have time for our questions.

26:28.000 --> 26:29.000
Thank you very much.

26:29.000 --> 26:30.000
Thank you.

26:30.000 --> 26:32.000
Thank you.

