ALEXIS: Hello, everyone.
I'm here again with Francois.
Hi, Francois.
FRANCOIS: [SPEAKING FRENCH]
ALEXIS: Not bad.
So we're here today to talk about extensions
versus Chrome applications.
There are subtle or important differences
that we think you should be aware of.
And Francois will help you and me
understand what those differences are.
So Francois, let's start probably with extensions.
They were the ones that were the first ones around.
And as the name implies, they were
extensions to the browsers.
FRANCOIS: Yeah.
ALEXIS: Tell us more about what they really are.
FRANCOIS: So basically, extensions
extend functionality for the Chrome browser.
They have no UI at all, actually.
For instance, let's take this Gmail extension,
which is the browser action.
You can see it all the time.
ALEXIS: It's associated with the browser instance itself.
FRANCOIS: Next to the Chrome menu.
ALEXIS: Not for a given page.
FRANCOIS: Next one is the RSS extension.
Pretty simple.
you will see this icon only when the web page has an RSS feed.
ALEXIS: OK.
FRANCOIS: And so this is a kind of UI you can get,
or sometimes you don't have anything.
Like for instance, AdBlock.
ALEXIS: Right.
FRANCOIS: It works under the hood,
and gets all the requests, and filters out
all the ads, for instance.
ALEXIS: Right.
So I suppose here, what you want is something
that extends the functionality of a browser,
but is not a full fledged application.
If you want to do a full fledged application,
there at these two types of applications
that people can consider.
The first one is called hosted applications.
So these are just typical websites,
but with a little bit of metadata.
Tell us more about what this is.
FRANCOIS: Yeah.
A hosted app is a regular web page,
so it works online, plus some metadata,
like some permissions that have been
granted to the application.
So let's take, for instance, Google Drive.
Google Drive is a perfect example of a nice hosted app.
It has the storage permission, the notification permission,
the clipboard permission.
And basically, once you know you've
got this permission for free, you
won't be prompted by Chrome, OK, do
you want to, blah, blah, blah.
ALEXIS: But as a user, I develop the application just once.
The experience of the user is a little bit different,
in the sense that the user is not
prompted every time for the specific permissions
if it's a hosted application.
So as you said, this is for online applications.
So clearly a hosted application lives in the browser
and works online.
Which brings us to the third type of extension in general.
But those are packaged extensions, or Chrome apps.
One thing that makes them different from the others
is the fact that they're offline.
But there's more to it.
Tell us more.
FRANCOIS: So those are my favorite,
and they deserve more than two minutes for sure.
We'll do another video, I hope, if you let me do one, please.
ALEXIS: Sure.
FRANCOIS: OK, so in a nutshell, a Chrome packaged app
is a native application, built with web technology, HTML5,
CSS feed, JavaScript.
It has a very, very strong content security policy.
If you don't know what is a CSP, please Google Mike West CSP,
and you will find tons of YouTube videos for that.
That's really important if you are
running a website right now.
You need to implement a CSP.
ALEXIS: So web sites included, right?
FRANCOIS: Yes.
ALEXIS: This is not specific to Chrome apps, extensions,
this is web.
And it's really something you should look into.
FRANCOIS: So CSP, very strong CSP.
And also you know they're working offline, which
is very important, which means when you download and install
a Chrome packaged app, it comes with all the assets.
CSS, JavaScript, images, blah, blah, blah.
And then, my favorite feature, even though the web is great,
there is still some stuff we can't do,
and that's why we have the Chrome APIs.
And with those APIs, we can access hardware devices
with USB, Bluetooth.
We can also play with sockets, like raw sockets.
It's really, really cool.
Yeah, we need to talk--
ALEXIS: Yeah, we'll get a chance, probably.
There is content online already about chrome apps,
but we'll certainly talk more about this in another episode.
What all of these have in common,
so extensions and both types of applications,
is that they're written in the same set of technologies,
as you said, HTML5.
Tell us more about the way you can develop them,
deploy them, package them.
Is it the same for all of those as well?
FRANCOIS: For Chrome packaged apps and extensions,
it's pretty easy.
If you have Chrome, you have all the tools
you need to start creating one.
You just go to Chrome colon slash slash extension,
and you check the Developer Mode.
We actually showed that in the previous video.
ALEXIS: The previous video, yes.
FRANCOIS: You click on the Load Unpacked Extension.
You select your folder, and bang, here you are.
You can start to debug and develop your real extension
or application.
And if you want to deploy it now, it's pretty easy.
You just zip it, upload it to the Chrome Web Store,
and in a matter of minutes, here you go.
ALEXIS: So what you're saying, is the technology is the same,
packaging technologies are the same,
and there's one place to deploy all of those extensions
and apps.
That's the Chrome Store, which by the way,
now supports a number of new features
for monetizing your work.
That's great.
Maybe we should look into some applications or some examples.
FRANCOIS: Let me show you some.
So let's play a little game.
What is it?
Is it an extension, a hosted app, a packaged app?
ALEXIS: So we're looking at something on the Chromebook
here, and this looks very much like a packaged application.
FRANCOIS: It is, it's actually the text application.
One little hint, you can see the icon.
That means it's an application.
Still a package.
But you guessed it, it's a packaged app.
Next one.
ALEXIS: That looks very familiar.
I would say this is a hosted application.
FRANCOIS: Why?
ALEXIS: Well, it could be a packaged application,
it could be stand-alone, but I don't know.
I had to make an educated guess.
FRANCOIS: Ok, so this is the hosted app for Google Maps.
But yeah, like you say, it could be a Chrome packaged app.
This is a classic UI for a hosted app,
or for a packaged app.
What about this one?
ALEXIS: Could be a hosted app.
It doesn't look like an extension,
because it seems to do a whole lot more than just
extend the browser capability.
Stand-alone, I don't know, packaged app.
FRANCOIS: Packaged app, yeah.
This application is called CRC, and whoa,
this is a RSC client written with web technologies.
So basically this guy just [? reapplied ?] GDRC protocol.
This is pretty cool.
ALEXIS: Great.
So maybe something we could talk about here at this point
is, where do all those live.
How can I manage those, look at versions, install, uninstall?
Tell me more about this.
FRANCOIS: Pretty easy, actually.
If you go to Chrome dot slash slash extensions,
you will see all your extensions and your applications.
ALEXIS: OK.
FRANCOIS: Though the name is not great here.
But you can also use the Chrome app called Chrome Apps
Developer Tool, and it will list all the applications in one tab
and all the extensions in the other one.
ALEXIS: All the extensions.
Great.
And of course, all applications can
be found on the App Launcher.
FRANCOIS: Yes.
ALEXIS: And maybe there's a hint on which is which.
FRANCOIS: Yeah.
So you get all the applications here,
but how do you know if it's a hosted app or a packaged
app for sure?
Just right click on Application, and if you see Open In New Tab,
Open In New Window, Open Maximized,
this is a hosted app.
If not, this is a packaged app.
ALEXIS: OK, great.
Well, I think that's all the time we have.
FRANCOIS: Yeah, sorry.
ALEXIS: This was very quick, again.
We will spend more time on Chrome packaged apps.
FRANCOIS: Hopefully.
ALEXIS: There is some great stuff there.
But in the meantime, thanks for watching,
and we'll be seeing you in another episode.
Thank you, Francois.
FRANCOIS: Thanks.
ALEXIS: Cheers.