I'm unreasonably excited about Firefox OS. Android really isn't open enough for my taste, and my trust of Google has diminished over the years, as they've encroached on more and more of the web and my data on that web. Apple has always been awful for the open web. And I'd rather write JavaScript and HTML than Java.
Android's open enough for me, but what I find unhappy is that Google seems intent on tricking people into revealing more and more information. It often reminds me to turn on history tracking, despite having said no many times.
Every time I use the Play store, it tries to get me to enter a phone number. The way it does this is by popping up a dialog, with no buttons except continue. It makes it look like you MUST do this (there's no indication you can back out), even though it's optional. That's deceptive.
And of course, the idiotic permissions system. Want to check to see if a user's on the phone? Gotta also get access to who they call and their IMEI and other permanent identifiers.
Basically, all the time I'm on my Android device, I feel like I've gotta be extra cautious, that Google's out to screw me over. Unfortunately, MS is just flubbing their system by pumping it full of crap. (They were paying devs in 3rd world countries $2000 to push out junk apps. They refuse to take down garbage/scams. They even published fake Windows Updates on the store, and other stuff that falsely claims to be by MS.) MS could fix it all immediately by offering Android app compatibility. I'd switch in a minute.
I use Firefox as my browser, mainly because of this. I wish I could switch to another smartphone platform.
Try F-Droid, a repository of FOSS apps with a focus on user confidentiality. They offer some security assurance by building and signing the apps from the orginal source, and offer nice functionality such as automatic updates (which you can disable, of course). Their store and related app is a fork of Aptoide. I often can find good solutions on F-Droid, but the repository is small.
Small correction: F-Droid doesn't yet support automatic updates [0], but rather, automatic notifications that updates are available to be manually installed. Merge requests always welcome though :)
> And of course, the idiotic permissions system. Want to check to see if a user's on the phone? Gotta also get access to who they call and their IMEI and other permanent identifiers.
This bothers me the most about Android. What is the point of individual Permissions if it's all or nothing!!
The only reasonable explanation for me after years of slipping down the slope, and trying to rationalize and defend Google's actions such as :
0. Reading through all our email (We were so naive back then)
1. Google saying it would never link data from its other websites (Youtube, bloggr) with our Gmail id, and then going ahead and doing just that
2. Google announcing Android as Free, Open-source Operating System, then with each update removing functionality to Google Play Services,
3. Google sabotaging the permissions system, by clubbing innocuous, essential permissions with down-right dangerous/malicious ones
4. Creating amazing tech that could provide a quantum leap in the quality of life (for the first world at least) but will further enable Google's all-seeing eye to impinge over our daily life (Self-driving cars, Google Glass)
5. Acquiring home automation companies, robotics company with large defense contracts,
... is that Google is well on its way to becoming truly Evil.
People say that the NSA's unsaid motto is 'to collect it all'. I say that motto sum's up perfectly Google's vision.
Maybe the NSA should just outsource their IT operations to Google... Google has a better security/breach track record, and seems to do better in terms of finding what people are looking for.. I'm sure giving them more data to work with could only help. :-D
I'd like to see a critical mass of AOSP vendors emerge that would convince Android devs to look beyond the Play store. MS shipping their own flavor of Android, along with Amazon and then BB and Jolla offering Android app compatibility could begin to turn that tide. Especially with MS being able to offer some "foundational" type apps (Bing maps, email client, MS Office, Cortana) that could address some of the holes in not utilizing Google Play services.
I don't see it happening though, MS would have to declare that their unified Windows 10 OS is a failure before it even launches.
It's not just the lack of apps (but any Windows Phone user will tell you that it's a huge drag) but that the ROI of offering an Android app outside of Google Play isn't there.
If it weren't just Amazon's AOSP, but also (for instance) if Microsoft and Firefox also offered their own, and combined they took a respectable share of the Android install base AND their respective app stores could all be targeted by Android devs with a single deployment then we would have something.
I have a Fire Phone with the Amazon maps app. I find it extremely disappointing after coming from Google Maps. No bike routes and quite clumsy UI. And, unfortunately, even though I've sideloaded the Play Store and installed Google Maps, the text is mangled beyond legibility, so I get lost a lot more often now.
Funny, after early today having to enter "Hospital" then "Emergency Room" into maps while in down town Phoenix, I found the whole experience pretty disappointing... Google should really work on that kind of entry.
That Microsoft were paying anybody cash to stuff their app store was sufficient to make your point. There's no need to bring prejudices against "3rd world countries" into this.
Just realised you think I'm objecting to the term "3rd world countries". The term is outdated and no longer relevant today, but is not the issue. Re-read my comment - I agreed with the point but didn't like the finger pointing at devs in poorer countries. I'm not sure why that seems to have provoked a bunch of downvotes.
>And of course, the idiotic permissions system. Want to check to see if a user's on the phone? Gotta also get access to who they call and their IMEI and other permanent identifiers.
Use XPrivacy. It should be mandatory for anyone who uses a phone and has a clue about privacy.
It filters permission requests so when an app tries to use one, it gives you a popup with allow/deny temporarily/permanently options, so if an app wants to access something it shouldn't (location, contacts, device ID, etc.), you can feed it empty/fake data transparently to it.
This requires rooting, which (unfortunately) comes with all sorts of strings attached and ugly rough edges. I'd rather have the idea of a flexible permissions model built into the OS.
I'd like it too, but there are still innumerable things that also need root. I've never had a single problem from root and would never own a phone without root, for any reason. Without root, a phone just sucks too much.
Pry-fi (randomise MAC address when probing for wireless networks), Titanium Backup (backup that doesn't suck), most advanced network tools, changing FDE password to be different to lock screen password, running an sshd, detecting IMSI catchers, most performance fixes/optimisations, even just basic full filesystem access - all need root too.
But from using the Store, the overwhelming majority of crap appears to be distinctly from not the US. Having dealt with local MS subsidiaries, I'd be surprised if they didn't do similar stuff. The ones I've seen are quite eager to promote and can get cash from Redmond.
Or, seeing as how MS regularly publishes stuff that's a total fake, even when the publisher claims to be Microsoft itself, I wouldn't be surprised if they didn't validate US residency here.
Or I might just be biased and the publishers just have terrible English and uncommon names for North America. But some of them used the letters "pvt ltd" in their fake company names, which is not common in the US.
Email me if you want some more details. I've got screenshots of lots of the junk, but I'm on my phone and don't have the links handy.
Being paid is common enough, and I've heard of companies getting 5-6 figures from MS to port stuff. But I think getting paid per app, like the link above shows, is the only explanation for some of the broken shovelware that's dumped on the store. Maybe advertising, but there doesn't seem to be any install volume. (Paid scams are a different story, like fake Netflix or WinRAR.)
I am a guy who gives everything to Google, have every god damn thing turned on on my Nexus. It's not that I trust Google, I have come to terms with the fact that privacy is dead.
The overall experience when you do give Goggle everything is quite good ( Google Now ) but I too second your opinion about Android permissions, its really idiotic.
BS. Privacy is not dead. You just gave up your privacy because you wanted a smartphone and wanted to use Google Now.
Privacy while connected to the internet is almost dead but even then it's weak to just surrender. And I think more people are fighting than you might think. Using an app like TextSecure for example is giving back a little privacy.
Yeah, it was pretty wild when I am seeing even reminders (flight times, show times, etc) from stuff that I received in my gmail inbox. It's convenient, and makes sense, but a bit unexpected.
I like Android (the AOSP) in itself, but I very much dislike how Google ships it with a lot of their own (proprietary) apps that can't be uninstalled (the usual way).
Some of Google's features may be nice, but I don't want them to track me and get all my private data from my phone.
I'm using CyanogenMod without all the Google apps. It's nice, but the experience just isn't as nice as you have it with Google-Android. Most of the features could be done without tracking users, however.
With Firefox OS you could also write C or C++ (possibly Rust eventually) thanks to emscripten and asm.js. But, crucially, asm.js makes them portable. No compiling for different architectures.
I like that they are targeting the low end, both in developing countries and now in the US. I need a phone for email/sms/phone, and I use the browser, calendar, calculator, and authenticator, but really that's about it. I don't want a 5-inch device in my pocket for this use case!
Apple played a massive part in the success of the mobile web and responsive design. The release of Mobile Safari and WebKit was a watershed moment. Before that point, the mobile web largely consisted of separate, pretty awful sites on WML. Afterwards, most mobile platforms had a default web browser based on WebKit, and the mobile web transformed as a result.
I'm not saying Apple are perfect, but saying that they've "always been awful for the open web" is grossly overstating things.
I don’t want to sound like a broken record, but Webkit was originally a fork of KHTML, which is LGPL, so they were required/forced to release it under the same license.
And based on the their upstream contributions[1] it doesn’t look like it was a gesture of goodwill.
> I don’t want to sound like a broken record, but Webkit was originally a fork of KHTML, which is LGPL, so they were required/forced to release it under the same license
No, they were forced to release parts of it under the same license. There was a lot of original Apple code that could be separated out easily and released under any license they wanted (or kept proprietary) as long as they released them as object files so could modify and relink in the modified LGPL parts.
The parts that Apple was not required to release under LGPL they released under BSD.
The well-known fact that WebKit has an origin story in KHTML is completely irrelevant to the point being made. Apple was the one who put substantial engineering effort into making the mobile web work well, and released their work with the most open licenses they could.
That credit should probably go to Google, and to a lesser extent to Firefox (which at least tried).
Google used the strong weight of Youtube to make sure all web browsers implemented a replacement, a long and tiresome process that took the better part of ten years. They bought companies and gave patents away along the way.
I'm not sure exactly what Apple did. Please enlighten me.
Apple kept Flash off the iPhone, at a time when nearly all web video was in Flash, and when iPhone was the phone to have. There was much gnashing of teeth, but Jobs and Apple stood firm, and demanded the world come to them (which is their way, but in this case what they were doing was for good and not evil).
It definitely wasn't just Apple. Google and Mozilla certainly played a huge role, and I definitely consider them much better web citizens than Apple (Mozilla best of all, obviously), but a lot of sites switched to HTML5 video only because they wanted to be watchable on iOS devices.
Google and Mozilla definitely plaid a supporting role but the iPhone was the main act because it was the device which executives wanted to use. In addition to web video, that also pushed HTML5 in general because all of the IE-only internal apps didn't work on the CIO's new pride and joy.
Apple didn't keep Flash off the iPhone specifically. They made a blanket ban against all scripting languages when they realized they needed native apps after all and opened the App Store.
Adobe could have struck a deal there, given Apple their 30% and only allowed blessed scripts through the App Store. But they didn't. I would be surprised if there weren't neogiations about this, but in the end Adobe refused.
(Other scripting languages budged, which is why you can find Unity games in the App Store, but not Adobe Flash games. Unity was also banned at the same time Flash was.)
So if anyone kept Adobe Flash off the iPhone, that honor should probably go to Adobe itself.
The Nokia N80, launched in 2006, came with a Webkit-based browser. WAP had mostly died in the smartphone market long before the iPhone came along, in no small part thanks to Opera Mini & Mobile.
For the first couple years, you're right, but they've coasted on that success for far too long. They've been dragging their feet on fixes and features since then. The fact that they haven't been as bad as MS in the IE6 days is hardly worthy of praise.
Is it possible to write good mobile apps in JS and HTML, compared to Android or iOS? I don't know much about mobile programming, but it seems much harder for JS to compete with native apps, no?
The startup I work for was approached some time ago by Firefox in order to ship our app on FFOS (our app has ~1 million daily users, so we regularly have this kind of proposals).
I did not participate in this firsthand, but from what I gathered from my colleagues, the FFOS SDK is so atrocious that sadly the idea of porting our app to this OS is laughable.
On the other hand, we are fully committed to our iOS and Android app (in objc & java) and are mostly satisfied by these two SDKs.
It might be an unfair comparison though, Google and Apple have had way more time than Mozilla to improve their respective SDKs.
I'm interested in knowing more what makes developing for Firefox OS "atrocious". There's no sdk per se, and maybe this is what bothers you. If you have no web version of your app and not seasoned web developers then for sure the porting effort can be almost a full rewrite, but so it is with any new "native" platform.
I tinkered with Android development when the original Google Developer Phone came out (aka G1). And, after years of not paying it any attention, because my focus was on server development, I've started learning my way around it again. It's not even the same world. So much of the tedium of developing in Java has gone away, due to better libraries, much better tooling, and just all around a bigger/better ecosystem. Making apps for Android, even without starting with a third party framework or tool, is vastly less time-consuming than it used to be.
I believe it's fair to say Firefox OS SDK will get better. I suspect we'll see interesting things happen just because it is primarily JavaScript+HTML5. There are a half dozen (or more) projects to make it possible to make Android and iOS apps in JavaScript, and they're popular, despite having dramatically less support and tooling available (as much as I hate Java, and I really do hate Java, Android Studio almost makes it tolerable).
I haven't seen the Firefox OS SDK yet, though I plan to check it out, and pick up some kind of dev phone soonish, but I would bet that it's at least on par with some of the early JavaScript+native frameworks cropping up lately. Stuff like Ionic, React Native, etc. All of those are new and sloppy and don't have settled toolchains, etc. But, the desire to work in JavaScript instead of ObjC or Java is pretty strong for many people, as evidenced by the huge quantity of people doing it despite it probably being more effort than coding in the standard language of the platform.
JavaScript is the path a lot of people want to walk for making mobile apps. Firefox OS is the first to make it the primary way to develop apps for the platform. I suspect the application developer uptake will be very rapid; probably more rapid than previous platforms, and more rapid than the actual user uptake. This is a platform that allows you to use your existing web development skills right out of the box...and there are a lot more web developers than Java or ObjC developers in the world.
"JavaScript is the path a lot of people want to walk for making mobile apps. Firefox OS is the first to make it the primary way to develop apps for the platform."
Not true at all, actually; I was doing this back in 2009 on Palm's webOS platform as one of the first wave of devs with early SDK access.
IMO, webOS' adoption of HTML5/JS apps as "native" was too ahead of its time, and unfortunately early enough where the intersection of hardware of the time and browser JS performance left it looking pretty janky compared to IOS and Android. Still, I loved developing for the platform in spite of everything that happened around the OS.
All that said, I'll probably give FFOS a shot as a development target in the near future.
I have to say that WebOS on the touchpad was probably my first positive tablet experience as a user.. the UI made total sense and worked incredibly well... I think that Android and iOS have finally caught up, but there's something to be said for webOS' simplicity in design.
It was definitely ahead of its' time.. I didn't stick with it long, as the browser became very dated, very quickly.. but overall it is still one of the better devices I've used (aside from HP's choice for a janky proprietary charger).
While I really like a lot of where the current Android has gone, I think some choices are just difficult for power users.. for more than 2 email accounts (let alone 5+) the gmail interface truly sucks... some of the flyover buttons (like new message) are just awkward, and some of the other apps are weird too.
The experience in google maps seems to be getting worse with time and more use as well. Hangouts as a replacement for google voice is cumbersome and incomplete... I think of this era of android to be akin to Windows Vista at release... some great ideas, but half baked... Hopefully it gets better not worse.
I haven't used iOS on a regular basis enough to comment there. I prefer JS + HTML for apps, it's not a bad idea all around... It (webos) was one of the earlier places for node development (before it got really good).
The webOS UI design and interaction model was something pretty damned amazing for its time, and still unparalleled in certain aspects. No doubts there.
JavaScript is the path a lot of people want to walk for making mobile apps. Firefox OS is the first to make it the primary way to develop apps for the platform.
It has been possible to write fully native (not webview wrappers) Windows Phone apps in HTML and JavaScript for the last four or so years, but web developers didn't really adopt the platform (and those that did primarily used C# and XAML).
You can scoff that it was something to do with Windows Phone OS's abysmal market share but then I don't see how you would be able to draw a different conclusion that FFOS will fare any better.
1. I had no idea you could make native Windows Phone apps in HTML. This may be a failing on my part for having less than zero interest in Windows Phone (though I find my dislike of Microsoft has faded quite a bit, as they've embraced more openness and more fair dealings with the rest of the world).
2. I don't think we mean the same thing when I say "the primary way to develop apps for the platform". I googled "how to develop windows phone apps" and followed the trail to the most obvious seeming instructions, and found this in the Microsoft Dev Center:
"When you create a new project, you also make the following selections:
Your preferred programming language - Visual C#, Visual Basic, or Visual C++."
So, if JavaScript+HTML5 is a good, and "official", way to make apps for Windows Phone, somebody needs to tell Microsoft, because they don't seem to realize it.
"Get started with Windows Runtime apps. You can write a Windows Runtime app in a variety of languages, such as C# or C++ with XAML, C++ with DirectX, and JavaScript with HTML/CSS. Now you can easily create apps for Windows devices and Windows Phone from a single project."
If I had the choice to program in C# or Java I wouldn't touch Js.
I can't take the language seriously when the are languages that does things so much better being offered.
Funny how that works. Some people like one thing, others like another. It just doesn't make sense, sometimes! Why doesn't everyone only like what I like?
100% agree here. I have same feeling.For some reason 15 years ago i learned basic java script from some "learn in 21 days book" and they quoted it as a helper language to get things done at client. And for some reason i can't seem to come out of that and still use it only where i needed.
I'm not sure that's the entire story of what's happening. There are a lot of factors that play into whether a new platform succeeds, and it is never just the way one makes apps for it that makes or breaks the platform. Obviously, there are people who will use any technology, no matter how poor, if it means they can make money in a growing market. iOS showed that; while the APIs for iOS are quite well-designed, ObjC is not particularly wonderful environment for GUI apps compared to many modern alternatives. But, a huge user base means people will learn ObjC in order to make apps for it. In fact, the only reason ObjC is relevant at all is because Apple put in on their phones and tablets. But, even Apple can't keep it alive forever...Swift is obviously their answer to more modern development approaches.
This has played out in many other markets, including desktops and servers, where higher levels of abstraction won mindshare over time as technology (both hardware and software) advanced to make it feasible. When I started using person computers (8 bit machines), software of any seriousness was written in assembly. The next generation (16 bit machines) brought good C and Pascal compilers, and applications built with those tools. Only now are we seeing serious talk of replacing C/C++ with something else for systems programming (maybe Rust, maybe Go, etc.).
Being right but at the wrong time is just as bad as being wrong. Maybe WebOS was right, but at the wrong time...maybe apps made in JavaScript five years ago weren't snappy enough on a phone. Maybe the tooling wasn't there. Maybe the VMs weren't good enough. Maybe they are, now.
I don't know. But, Mozilla has shown itself capable of taking on the biggest companies in the world with open web technologies, and holding their ground tenaciously. I believe they have the clarity of vision and the technical chops to pull it off.
Finally, I just want a Firefox phone. So, I may have rose-colored glasses. I think Firefox is the bee's knees, and I think Mozilla truly represents one of the most positive forces for good in technology today. I want Firefox OS to win. If it can't win, I want it to be a serious contender.
I don't know. But, Mozilla has shown itself capable of taking on the biggest companies in the world with open web technologies, and holding their ground tenaciously.
There are zero switching costs associated with a browser. It costs nothing to download and run Chrome, Firefox, Safari, IE, etc... The switching costs associated with phones is obviously much higher. Mozilla has to win ground in the mobile OS wars before they can even think about defending it.
Not trying to be a downer, I would like a viable mobile OS to break up the current duopoly, especially one that really embraces the web. I just think Mozilla has a hell of a fight ahead of it and it can't win it on merit alone.
Isn't the point of JS that you do not need an SDK!? If I need to use something else then notepad to write a program for FFOS - that would be a big turn-off.
I think you're mistaking a SDK (software development kit) with an IDE (integrated development environment). A SDK is nothing more than a set of libraries that allow you to write code for the target hardware. In this case, the SDK consists of a Firefox extension that you can install, which gives you an emulator that will simulate the phone hardware.
You can totally write FirefoxOS apps in Notepad if you want to. It is just HTML, CSS and Javascript (and a JSON manifest that tells the OS where the entry point for your app is).
I thought the whole point of Firefox OS was that the hardware layer would be accessed through JS API's like window.ondevicemotion, Canvas, navigator.geolocation, window.DeviceOrientationEvent, navigator.getUserMedia, navigator.vibrate, 'devicelight', navigator.battery.level, SMS, contactList, etc. And that the Firefox team would add even more features that can be accessed from the VM layer. And making the Firefox OS the most secure OS by adding app permissions. And that the VM could not be bypassed unless the computer gets re-flashed.
This might sound funny, but considering Moore's law and where we currently are on that exponential curve, making a fully virtual OS will be the next step in the PC evolution. You shouldn't have to write low level interrupts or accept that apps need full root access anymore.
>This might sound funny, but considering Moore's law and where we currently are on that exponential curve,
In case you haven't noticed, the exponential curve has already started to level off. Moore's Law is done. Every incremental improvement from Intel offers smaller and smaller improvements, as transistor sizes run into fundamental physical limitations imposed by quantum mechanics and thermal and battery-life constraints impose limitations on the amount of power a chip can use. Combine that with fact that RAM speed stopped scaling about a decade ago, and the conclusion is clear. Moore's Law isn't ending. It's already gone. As far as desktop application developers are concerned, Moore's Law ended about a decade ago when single-thread performance plateaued.
Yes, we have more and more cores, and more and more cache. But the cache is only there to make up (poorly) for the fact that RAM speeds haven't scaled. And more cores don't help, because most desktop applications don't parallelize easily beyond ~2 threads. Yes, the user is able to run more applications at the same time, but each individual application is still running at about the same speed.
I briefly looked at Firefox OS a few months ago and my conclusion was that the primary issue was neither JS nor HTML but rather that there is no canonical UI framework for the OS (please correct me if I'm wrong here). This means that there is no consistent look and feel across apps.
It all depends on the hooks that Mozilla provides to the JavaScript developers. These hooks are the way that the web page can interact with the phones built in hardware. If these API's are sufficient then there is no reason that these apps can't execute as well as an app on any other phone.
Correct me if I'm wrong but I don't think you can write native apps for Android or iOS either. Also recently there's been way more effort on improving JavaScript VMs than Java's.
On the latter, why is that? Is it that Java's VM is already very mature and the community doesn't feel that urgency on "improving" it?
Another question. What does Java VM have to do with Android?
I'm not a mobile developer so you shouldn't ask me but basically because of web browsers there's a JS VM in every PC and smartphone nowadays which isn't necessarily the case with Java. And Android runs its applications on a Java VM called Dalvik: http://en.wikipedia.org/wiki/Dalvik_(software)
Dalvik is not a Java VM though it is a VM.
As of Lollipop Android left the whole VM thing behind and moved to ART so there is no stagnation on that front
You linked to the page that states it all but its like you didn't bother to read it yourself.
Ok thank you, that information is pretty hard to stumble upon when you don't know where to search. Although on Android you can't seem to be able to build a whole "native app", only some components of it cf this now removed quote from: