Questions about porting apps

I would love to help port some apps if I can, but I have a few questions. What’s the difference between a web app (running on localhost) and what Gaia apps currently are? I thought that’s what they were.

Also, are “chrome” apps and web apps written in different languages?

2 Likes

The difference between web apps and the former gaia apps are that gaia apps have been Firefox OS packaged apps.

Packaged apps are apps build with web technologies, but acessing gecko speciffic privileged and certified APIs. They could never run on the web since those APIs do not exsist on the web.

Chrome packages are bundles of html / css / js which are part of the system UI. As you can see they are also writen with web technologies like web apps but are A stored on the device and B executed with chrome privileges.
Chrome privileges give them the ability to access Gecko internal APIs which are not accessible from the web.

Webapps are applications served from the web, using web APIs.

2 Likes

Intersting explaination. Why did Firefox OS use that API’s?
Does it have advatages that downsides B2G now has to deal with?

because the web was lacking a lot of APIs which are required to build a phone operating system.

Advantags are that the apps will be 100% web conform and so can run in any modern browser. Parts like the Dialer, settings, camera are now system chrome and so part of the system. They need to be chrome because there is no way to implement them with pure web APIs.

Even if since the beginning of B2G project some standards has been defined (and we now try to use them only, when available)

And we can use webapps not originally targeting B2G OS

yes sorry, I was talking about the past.

well we were able to do that before already.

If I’m understanding this correctly, the differences between the three involves how it’s packaged and whether or not it uses gecko specific API’s?

So old gecko apps = packaged as apps and uses gecko API’s
Chrome apps = packaged as system chrome and uses gecko API’s
Web app = not packaged and no gecko API’s

Is this right?

yes this is right.

We should somehow wikify this topic :innocent:

Well, this have been reported some times in meetings, but indeed it do not appears that clearly in the wiki. You’re welcome if you want to start this :wink: