I'm an experienced full-stack developer (web, enterprise, and mobile esp. Android), and I've decided to try out Firefox OS after acquiring a Geeksphone Keon recently. I made notes along the way and thought I'd post them here. I hope it's the right place, otherwise I apologize for the noise!
NOTE: The comments below are based on recent nightly v2.0 builds. I am aware that it is not a stable release. The Good: - Development is super easy. WebIDE is great (fast code-change-to-execution) although I'd love a dark theme. Breath of fresh air compared to all other mobile OS's. - Smooth activity transitions. - Fading/translucent system bar on homescreen is cool. - Notifications showing up on lock screen is nice. The above features only recently dropped in Android, so FxOS feels modern. - Love the lockscreen pin timeout option, so I don't have to enter pin everytime. - Apps are super tiny and barely ever ask for permissions. - Permissions can be denied! - Love the simplicity of the OS. It's simple and yet functional, and doesn't feel bloated at all. - Data metering in the notification shade is great. - Apps are sandboxed! i.e. don't share cookies, external links open separately in the browser. I wrote a whoel app for this in Android: https://github.com/tobykurien/webapps - Browser shortcuts on the homescreen are independent of the browser, i.e. I can clear cookies in the browser, but shortcut's cookies persist. - App discovery via collections (social, games, etc.) - In general, there's an app for everything I need (e.g. XBMC remote, folder music player, WhatsApp, etc.) - Speaking of WhatsApp, the Loqui IM app it the least permissions-intensive OTR-supporting IM client I've ever seen on mobile. A big win! The Bad: - The default touch slop is too large, making the homescreen (for example) feel "spongy" and unresponsive. Example, touch down and drag, and see how far the finger is from the point it touched. - I fixed this by setting profiledir/prefs.js "apz.touch_start_tolerance" = "0.1" (default is about 0.2), and did a hard reset. Feels *much* better! - Touch slop is actually too small on the notification shade! This makes toggling buttons like wifi difficult - touches are easily mistaken for small drags. - Critical problem for me: email and contacts refuse to sync with my self-signed SSL/TLS-secured IMAP and ownCloud server. I wrote a small app (https://github.com/tobykurien/vCardImporter) to import my ownCloud contacts to make the phone usable. The vcf could not be imported by Contacts or any other app on the market (they just hung with no error messages). IMAP fails with "bad security" even though I added the certificate to the browser, and the calendar works fine with it. - Calendar doesn't do recurring events. - The keyboard is terrible: always shows uppercase characters, touch targets are not correctly placed, leading to constant typos (not using auto-correct). SwiftKey on Android works much better without auto-correct and same screen size. I am guessing that the touch target for a key should be somewhat under and to the left of the actual key placement on-screen. - Couldn't find a GPS turn-by-turn navigation app, which is a big missing feature. - Tapping on Loqui IM notifications doesn't bring up the app. Not sure if app problem or FxOS problem. - No copy & paste, which is cricital for using password managers. - Multi-tasking is sluggish - after a while the phone crawls when switching multiple apps. Manually killing them all in "recents" seems to bring the phone back. - Once (and only once) I experienced overnight complete battery drain with wifi+data off. Hopefully this is just a weird bug rather than a rogue app being able to keep the CPU running. - The app close badge in recents is too small. I more often re-open an app than close it. - Wired headphone music controls don't work in the music player (using a SkullCandy Crusher). The massive platform issues (IMHO): - Browser shortcuts on the homescreen are not sandboxed from each other. They share cookies and load 3rd party content, thus creating a big privacy issue. If I create a shortcut to Google News and login, then create another shortcut to GMail, I don't expect to be logged into GMail, but I am. - Exception handling: unhandled JavaScript exceptions are absorbed (I am guessing), so apps just hang leaving user stuck (no back/refresh button). This even happens often on the lockscreen and homescreen, especially with a spotty internet connection, forcing me to reboot the phone. - A related issue: when on a bad internet connection (e.g. ISP using Sandvine to shape traffic by sending random RST packets, leading to "connection reset"), apps just display blank or become unresponsive. No error messages are shown, and even worse, FxOS does not retry loading the failed resources. It should keep trying to load all the page resources, or display a persistent error message if the internet connection just went down, for example. - The platform desperately needs touch feedback on all interactive elements. Do not rely on developers to add this. They either don't, or their touch targets are so small that the finger covers up the highlighting. There should be default touch highlighting on any element that accepts an onClick, onDrag, etc. I can't stress how bad it is for UX when there is no touch feedback. I am constantly clicking things 3 or 4 times, because I don't know if the app accepted the touch. - Similarily, when javascript is running, some sort of activity indicator would be extremely good to have (similar to the network activity indicator in the status bar). I spend a lot of time clicking on a "dead" app (due to javascript failure from unloaded resources or an exception that wasn't handled), and without the touch feedback, this gets maddening. Overall, I love the FxOS platform. I'm really impressed with the AsyncPanZoom thing and the tiling thing, that makes the UI smooth. WebIDE allowed me to tinker with apps in no time at all. I love the innovative ideas like Pinned Apps, and I can't wait for things like standardized UI components (Mozilla Brick?). The permissions system is leagues better than Android's broken one, and I love that apps don't (currently) abuse permissions. This is definitely pushing the web forward in more ways that I thought possible, and I hope to be able to contribute to it in future. _______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g
