For anyone who wants to try this, just open Firefox on your Android device, go to https://marketplace.firefox.com, and click on the install button for an app. It will download an APK and prompt you to install the application, and that app will then act just like any other app. It's pretty neat.
It's hard to say this without being so negative, but I really have to wonder if any of these apps have even been tested on an Android device. Because to be quite frank, they are absolutely terrible. Here's what I tested:
- Calculator. Whenever I press a number, it takes a second to be actually reflected in the user interface. If I try to press anything in rapid succession, the entire view zooms in. After this the entire size and scale of the user interface keeps shifting randomly. Completely broken.
- Wikihow. This is just a wrapper on their mobile site with an ugly search bar on top. Long pressing a link shows a context menu that lets me "open in a new tab" but there's no tab switcher to be found. I can select text by tapping and holding but can't figure out how to copy.
- Wikipedia. Pretty much the same. Scrolling performance is strangely atrocious considering that it works fine in Firefox for Android. Pressing the back button on the device boots me out of the app instantly instead of, you know, going back.
And all in all, they are all just slow and clunky. It feels like browsing a web page or using a web app in a mobile browser that just isn't up to the task.
In between this aim on building a more open platform for apps, there doesn't seem to be any focus in building apps or user interfaces that people would actually want to use.
I guess I can see that. What I meant was that it gets put into your app list and can be launched, be put on your homescreen, appear in the recently-used app list, etc., like any other app. I wasn't making a statement about the performance or "nativeness" of any particular app.
It won't be integrated into Android very well though; you can't kill the process, you can't check its resources, it's not in the task switcher, etc, etc
No, we haven't done a lot of testing of these apps on Android, we've been really focussed on testing them on Firefox OS up to now. BTW, which version of Firefox are you using? Bug fixes are coming in pretty fast lately, I'd recommend using Firefox Aurora for Android.
Where and how do I log bugs for Firefox Apps on Android? I'm on 4.4.3 with Firefox Aurora and I installed WikiHow and the Gaia Team Calculator - open WikiHow, hit back and open Calculator and I still get WikiHow. I have to "swipe away" the Firefox app in the task manager to get it to work.
"We share your frustration with the tradeoffs we have to make on Android regarding security versus openness, as I’m sure Amazon does as well. For example, it would be cool if we could ask people to trust apps they install from marketplace.firefox.com rather than from all sources. Unfortunately, I don’t think we have that option.
We, along with third-party native android app stores like Amazon, chosen to ask users to enable the third-party application setting because we think the benefits to users of our ecosystem outweigh the risks of doing so. We believe our security model and strict control over permissions for web apps means that the Firefox Marketplace apps that users install on their Android devices will be safe."
I really wish Mozilla had just abandoned this 'repackage apps in APKs' project.
I understand why they are doing it but I think in the end it is really bad for end-user security on Android.
People are advised everywhere to not enable 'Install from untrusted sources' for very good reasons: Android is plagued by an insane amount of malware. And now we confuse them by saying that "our security model" is great and that it is all ok.
But it is not ok. It is half the story. Even if our apps are safe, we make it a little easier for that malware to get on a device.
And nobody will just temporarily enable 'install from untrusted sources'. Once allowed, people are most likely never looking at it again.
I am not saying that the Google Play store is free of Malware. It is not. But I do think that malicious apps are then at least contained and controlled. With the option for untrusted sources enabled, apps can come from any place. Email, web, other apps, etc.
Everyone I know (hint: they're in the bay area and even if not all techies, they kinda know a bit computer stuff) disable that option (forever, indeed) and installs APKs from their favorite non-Google-Play source.
I'm pretty sure they added this option as an enforcement to use only Play. I would be surprised to see Google adding trusted sources. I do not believe that it's OK to kill competition in the name of so-called security.
On the other hand my mum doesnt know that option yet got Play malware pretty quickly. Go figure.
I know nobody that would uncheck the option unless they were very sure of the source, and then turn it back off again.
I've been to websites that automatically trigger the download of an apk to your phone. Without that setting it is only one or two wrong clicks and you've got all sorts of malware on your device.
It's not about competition, running a phone with that option switched off is dangerous.
Automatically triggering an apk download is just that... a download. An install (from opening said apk) triggers a fullscreen dialog of what you are installing, it's access, and whether you are sure...?
It isn't dangerous at all, you can't 'accidently' install an apk. It is a very intentional, multi-step, action.
Of course you could. You (an uninformed user, not a hacker) go to see what the notification you just got is about and tap on it. It's then only one more click to install.
Much easier and safer to have third party stuff disabled entirely.
I think there should be a way to install third party certificates for things like the amazon store, don't get me wrong, but it's a decent security feature for the uninformed masses.
But you aren't an 'uninformed user' you've gone to the app section of settings and intentionally clicked "I want to install third party apps" and then intentionally clicked "Yes, I know this isn't a great idea".
So chances are, on the spectrum you are more hacker than uninformed user.
There's a "Verify Apps" checkbox that I've seen that purportedly does this. I think the first time you install an app from outside the play store the OS will prompt you to enable this checkbox.
"it would be cool if we could ask people to trust apps they install from marketplace.firefox.com rather than from all sources."
This would be so handy for me, but it probably doesn't matter as my next phone is probably going to be an iPhone.
However, "We believe our security model and strict control over permissions for web apps means that the Firefox Marketplace apps that users install on their Android devices will be safe" basically misses the problem.
The problem is not that the Mozilla or Amazon marketplaces are unsafe, I would rate them at the same as Google Play itself, but that the phone now allows APK's from everywhere. While it would turn more users away from using them, it would almost be better to actually tell people to re-enable the restrictions, or have an install app that will turn it on, install from their marketplace and then turn it off again.
Which is corporate-speak for 'trust only Google Play'.
What the checkbox is designed to do is prevent installing random .apk files.
Firefox Marketplace is a known source. It's just not something Google will whitelist.
What the community need to include in their AOSP-derived distros is a UI user-specifying trusted repositories.
If the user then wants to add the marketplace or, say, f-droid then they could mark these as 'trusted'. Which would then still prevent downloading an .apk from a dodgy site.
There appears to be some sort of provision for this in newer versions, as apps can actually be aware of where they came from (necessary to simplify selecting billing providers if you distribute via both Amazon and the Play Store).
But yes, extending that to something deeper is probably needed, but you almost end up needing to alter the signing model of apks slightly. In the case of Amazon distributed builds I believe Amazon re-sign the apk completely, which is a bit of a workaround, whereas Google distribute the apks with the developer signatures. Really what you want is a chain of trust to sources of apps that the user trusts.
Shameless plug: the game shown in the screenshot and video is X-Type[1]. I'm working on a much improved version that will be released on the Nintendo Wii U soon[2].
Oh this is cool and that article was really insightful. I had no idea Nintendo was doing this. Back in the day console dev was near impossible to get into but this opens up all kinds of doors.
This reminds me of Nokia's attempt to make their mobile platform popular by supporting existing android apps. This backfired and lead to developers not making native apps for their platform because they could just reuse their existing android app and still reach all the users.
Mozilla is taking the opposite approach. Their platform already has reasonable support because it doesn't take too much effort to port an existing web application to their platform. By making apps for their platform compatible with android, they might get developers building for Firefox OS first and then just reusing their Firefox app for android. It sounds like a bit of a stretch, but developers already do this with tech like phonegap. This will attract the same crowd as other html5->native app development platforms do.
The advantage for Mozilla here is that if developers use their devevelopers tools to make apps, their apps will look more in place on Firefox OS and advance the platform.
As someone who worked in Nokia developer relations, I have no idea what you're talking about. Aside from the Nokia X (which is Android), no Nokia product has ever done anything to "make their mobile platform popular by supporting existing Android apps"
-Symbian didn't
-MeeGo didn't (sigh, my beautiful N9...)
-Windows Phone didn't
-S40 didn't
You might be confusing Nokia with BlackBerry, which did make Android support a feature of BB10.
Yeah, that never happened. It may be a reference to Alien Dalvik being rumored to be included w/the first actual MeeGo release (Not N9, which was branded MeeGo, but was really still Maemo.) Critics of this speculated that this would keep developers from developing native apps, and now, in the haze of ancient history and a lack of fact checking, a few people think that this actually happened and are using it as a parable to inform future strategies.
History is very slippery.
edit: Looks like there were press releases about it being available for N9 and N900. My history is slippery, too:) It never was.
From my experience the ability to sideload android apps is a major motivator for android users wanting to make the switch over to BB10. I'm a bit of a BB nerd, but I see this conversation come up again and again in online discussions
It depends how you mean "better". They could be run in their own copy of a Windows environment which meant one falling over couldn't kill the rest, and they all integrated with the same global clipboard and such so copy+paste and DDE still worked between them, but IIRC there was a massive memory overhead for this which made it impractical for smaller machines.
Yeah, a lot of web APIs have implementations that connect directly to the Android equivalent. When writing a web app you'd always use a "web" API though. Some of those APIs are still very new and Chrome and Mozilla haven't reached consensus yet so you'd have to deal with prefixing and what not.
Some of the APIs you list (like Bluetooth[1]) are available on Firefox OS, but only for system applications and not yet in Firefox for Android or desktop. This may change if the API becomes a web standard in the future.
in-app billing is coming soon, as is simple push; the other API's will appear on Firefox for Android (and therefore be available to these apps) on an API-by-API basis, see https://wiki.mozilla.org/WebAPI
some API's are the same as Chrome OS, some are not; we are talking regularly with those folks about standardizing API's.
Our goal with Firefox OS APIs is to create open web standards for the sensors / capabilities on mobile devices.
FxOS is a demonstration of new open web APIs, not a new platform to lock people in.
Web standardization takes time and Chrome OS / FxOS will hopefully converge and become standards.
We should write web apps with standards and progressive enhancement. Raw access to the camera? Use that. No, getUserMedia? Use that. No, file upload? Use that...
Sorry, deleted my comment while you were posting this. Repeating verbatim here:
“Chrome OS APIs, like Firefox OS APIs are not web APIs, so a Chrome OS app is not a web app, it’s just a regular app developed using web technologies.”
What would be really nice if you allowed developers to export their apps as signed APKs. That way they could submit them to the Play Store, Amazon AppStore, etc. That would be truly amazing.
If there is enough demand, we'd love to build that. It takes quite a bit of security resources to manage the developer's signing keys properly, which is why it didn't make it into 1.0.
If you build an app with Cordova you can easily get stuck in their APIs. If you build a Firefox OS web app you get stuck in Mozilla's APIs :) BUT Mozilla is making a strong effort at standardization and is working with Chrome and others to reach consensus. Cordova strays farther away from stable HTML5 APIs than Mozilla does so in Firefox OS you will definitely be building a more webby app. I.E. some HTML5 APIs work great on mobile, no reason to use a custom Cordova one in many cases.
However, if you need rich cross platform support for your app (like iOS) I'd still suggest going with Cordova. There is a Firefox OS backend! https://github.com/apache/cordova-firefoxos
You write a web app, throw it up anywhere, and it's an Open Web Application that can access anything the user lets it. There's no required "store", no need to enable sideloading, it's just a bunch of APIs you can access... on Firefox OS and Firefox for Android.
It's part of Mozilla's push in their portion of the mobile space to get away from the walled garden app ecosystem as much as possible.
We are working closely with the Cordova team to align our API's with those existing plug-ins. Meanwhile, this approach lets your app take advantage of Gecko's awesome WebGL and JS performance, plus goodies like WebRTC and Web Audio API.
It would probably do more harm than use. People would stop developing for FxOS because developing for Android would have a wider reach.
Another reason is that, while I am not very familiar with internals, I think running FxOS app on Android is much easier than native Android on FxOS. Because FxOS app essentially is just a web app, which Android is capable of running out of the box. Can't say the same about Android apps.
Is there any hope that startup performance will get on par with native Android apps? It takes a good 6 seconds to start a trivial Firefox web app on Android.
I found a bug [1] mentioning that gecko has to be loaded in the web app's process and that takes much of the time. But it got closed because no one seems to know how to improve it.
It's better than nothing, but it's hard to send the user to Firefox on Android knowing that their experience is going to be plagued by this.
Chrome's "Add to homescreen" is faster but not quite there yet (2 seconds for launching duckduckgo).
This is great for me, I've just rebuilt my Android phone without GAPPS as an ongoing effort to minimise my reliance on Google. The Twitter app does what it says on the tin. Looking forward to the Facebook app supporting Android too. I've always used simple bookmarks for these two services anyway (because why should their Play Store apps need all those permissions?) so the performance hit isn't something I'm bothered about.
You're missing the point. FirefoxOS exists to increase the market share of the web by giving lots of people in developing countries $25 smartphones built on browser technology. This creates incentives for companies to develop for the web.
Running Android apps on Firefox OS would be in direct conflict with that mission. Allowing developers to target both FFOS+Android with a single standards-track web application is definitely on mission.
The reasoning in your first paragraph never really seems very sensible or realistic.
So people with very limited financial resources to begin with will be able to buy ultra-low-end phones that offer poor performance and a poor user experience. Then they'll only be able to choose among a very small selection of apps, none of which end up being particularly useful. And although they have basically no money to spend at this point, somehow their mere presence online will somehow induce companies, who need to make or take money from these users somehow, to create more apps?
It just doesn't follow. It makes even less sense when you consider that it's possible to get used Android phones in these target markets for the same amount of money, if not less. And these Android phones often end up being more capable than a new, low-end phone running Firefox OS. Plus they offer all of the numerous benefits (like better performance and far more apps) that even old versions of Android offer over Firefox OS.
It sounds very nice but the whole user experience and feel of the apps looks very substandard. Even my Nokia phone of 2008 had better and more useful apps.
Supporting something and using it in real life is two different things. If you have really used Firefox OS, you will never want to switch to it, unless you want to experiment with it. It is not even a good match to the low cost android phones.
nothing new about that…after all the app is rendered in html, for that matter it will run on iPhone too..but if the app only runs on the firefox browser on Android, I don't see many people creating apps for that reason rather using Cordova.
The new part is that the app is automatically packaged into an APK (Android Package) file, so you can manage it (launch, restart, uninstall, reset data, switch between apps) just like other Android apps.
Android and iOS both offer "bookmark to home screen" features that include some of this functionality, but not all of it.
Even if web apps run in modern web browsers, there's a big chance that you would want your app to offer the same experience and integration as native apps on other platforms.
Using the Firefox runtime rather than Android Webview is great because the Firefox runtime is far faster than most phones's Webview implementations, and will continue to be updated.