Hacker News new | past | comments | ask | show | jobs | submit login
Firefox OS Apps run on Android (hacks.mozilla.org)
221 points by rnyman on June 12, 2014 | hide | past | favorite | 80 comments



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.


Is there any reason this was posted as a reply to my comment?


I think because you wrote:

...that app will then act just like any other app. It's pretty neat


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.


You can also add any Chrome bookmark to your home screen, just like any other 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.


I switched from the orange zte phone. Most of the apps I tried had similar issues.


Is Aurora the same thing as the Firefox Beta in the Play Store?


Yeah, that calculator was awful. I tried a solitaire game that was pretty decent though.


It's definitely better if you are using Firefox Beta but I've replied below with an odd bug.


Some apps are bad but some apps are pretty much on par with native apps.

I guess its just young.


Doesn't this require the 'Allow Installs from Unknown Sources', which is generally a bad idea to allow?


Yes. wfwalker said it best here: https://hacks.mozilla.org/2014/06/testing-your-native-androi...

"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.

It puts users at risk.

It is a step backward in Android security.


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.

Think of the Children! :)


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.


Androi is not just aimed at me though, extra protection for the uninformed is not a bad thing. IMHO.


It's been a while since i've installed from unknown sources but doesn't it give a prompt asking if you want the apk scanned for malicious apps?


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.


I've never seen such a prompt when install third party stuff, no. There might be an 'are you sure?' dialog.


I will start with I see this weren't your words.

"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.


I've been wondering - is there any app that makes this process more elegant, like controlling which users can install 3rd-party APKs or something?


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.


The number of geeks running an "AOSP-derived distro" is insignificant compared to the bigger Android user base.


Honestly, with the recent Play permission display changes, I think it might be much safer. Non-play-store installs always show all permissions. http://www.xda-developers.com/android/play-store-permissions...


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].

[1] http://phoboslab.org/xtype

[2] http://www.nintendolife.com/news/2014/02/developer_interview...


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.


That game is very nice. I can't get past level 8 though. What's the trick? Be 10 years younger I think...


Do you have any way to add Bluetooth controller support on Android? (via Firefox or otherwise)


X-type ROCKS.


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.


It sounds like Sailfish OS, actually, which is developed by a company started by ex-Nokia employees.


Blackberry tried to make this a selling point too.


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


The android compatibility (plus some nice native apps/games) and BlackBerry Bridge where why I held onto my Curve and Playbook for so long...


I thought something similar, except for OS/2's support for running Windows applications. (Showing my age, I guess...)


Didn't OS/2 run Win16 apps better than Windows, by virtualizing them essentially?


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.


Same thing I thought about! Strategically it was a terrible decision. Why build a native OS/2 app when a win app will run on both.


> developers already do this with tech like phonegap

...and have their apps universally panned for being just terrible in general.


Does this actually support the interesting parts of phone APIs like push messaging (and notifications), bluetooth, in app billing via the stores etc.?

And is it compatible with the equivalent Chrome OS APIs or are we looking at writing web apps two different ways?


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.

Mozilla's APIs: https://developer.mozilla.org/en-US/docs/Web/API


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.

[1]: https://developer.mozilla.org/en-US/docs/WebAPI/WebBluetooth


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.


I work on the service and CLI, so I'm probably wrong... but I think we're incrementally fixing these.

See https://hacks.mozilla.org/2014/06/testing-your-native-androi... for an example


[deleted]


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.


What's the "value add" here over just going the Cordova route?

Cordova/phoneGap already has lots of plugins for in app billing, push messaging, etc....


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.


What they really need is Android apps running on Firefox OS.


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.

So not sure what's your argument for that?


They want to force everyone to use/transpile to legacy stuff (JS, HTML). So cross-paradigm thinking is not an option for them.


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).

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=779974


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.


Nice technical trick but doesn't this make Firefox OS even less necessary than it ever was?

I mean, if I were Mozilla, I'd work very hard to get Android apps to work on Firefox OS, not the other way around.


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.


Would prefer Chrome apps packaged by Apache Cordova(http://blog.chromium.org/2014/01/run-chrome-apps-on-mobile-u...) anyday to the apps on Firefox OS. The apps on Firefox are like years behind in quality and quantity as compared to chrome apps.


Would prefer if webapps were standard and not tied to a unique browser. What happened to standards and stuff? We forgot its actually good?

I want to run firefox webapps on chrome and chrome webapps on firefox, and both of them on IE. Obviously that doesnt work today.


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.


i used it on the flame developer device,its quite decent actually. I certainly wouldnt want a N95 instead of it. Its not at all in the same league.


They have to start somewhere.


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.


[deleted]


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.

On Cordova/PhoneGap and Firefox OS, please see https://hacks.mozilla.org/2014/02/building-cordova-apps-for-...


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.


im not sure how much faster it is, as a user, it seems like about the same - but it certainly support a bunch more things.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: