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

Reply via email to