Dear developers,
I only recently got to know about B2G/Firefox OS and it looks great. Unfortunately, I don't/didn't have enough time to get acquainted with Firefox OS in depth with my studies and bachelor thesis (Computer Science) around. So bear with me, if some aspects are already available/being developed in some form or another. Nonetheless, I'd like to share some visions/ideas with you that would in my opinion make Firefox OS better than other operating systems. Feel free to implement any of the following ideas, if you find them to be worth your time.
I've developed a few smaller apps for Android (with Eclipse) and Windows Phone (with Visual Studio) for some lectures or privately at home.
Good documentation, tutorials and an easy-to-use IDE were three of the main reasons that made developing apps simple, fun and motivating. Especially the design tools for placing control elements, property editors and easy configuration for alignment/scaling on different screen sizes made it much easier to start development.
It would also be nice to have more complex UI elements at hand which are intuitive for standard users and look nice (e.g. like the Panorama-View on Windows Phone) and that could be used and adapted for free even in commercial apps. I see a high potential if app developers collaborate and have a place to share their UI elements for example over a separate Firefox OS app developer platform.
"We put your privacy first." - Mozilla
Privacy is an important aspect for many people and in my opinion this could be a major factor for selling Firefox OS phones.
I don't like to share certain data or services (e.g. GPS, internet, write or read access to the user's files, run background services) with a some apps I have installed on my phone, because I don't fully trust them. But neither Android nor Windows Phone allow me to disable the respective services for only one app. It's either all or nothing.
If apps would get dummy information (like name John Doe, GPS north pole, no sensor event handlers raised, etc.) they would still work without interference, but they couldn't extract any sensible user information. With API functions to get the current permission state and to ask the user to grant a certain permission, an app could adapt to the current situation or even refuse working if the developer wishes (e.g. if the app uses advertisements and the user revokes internet permission while granting it to others).
Backing up your data is an important part that non-IT users often neglect. Many solutions aren't easy enough to setup or the users don't want to upload the files to some cloud hosters that maybe aren't even able to protect the files from any unwanted access.
Three famous negative examples are the iCloud celebrity photo leak 2014, Gmail using private e-mail content to personalize advertisements and Microsoft's invasive privacy policy for OneDrive.
It would be great to have simple backup solution that works locally (same WiFi or LAN) among all the user's trusted devices. A Desktop computer/Raspberry Pie/NAS could for example run a background service that synchronizes the phones content into a folder (either encrypted or unencrypted) and back. This way files never leave the user's devices, while still being able to restore apps and settings or to get file access in an emergency (broken phone, etc.). This way all storage and infrastructure is provided by the user and Mozilla would not have to manage and host a cloud storage solution with multiple GB per user for it to be a useful backup solution.
Another great opportunity would be real portable apps, as in they work on any type of device (smartphone, tablets, desktops, Windows, Linux and Mac and more). In a way this could be realised by shipping a simulator that natively integrates apps inside seperate windows for other operating systems. The state of apps is synchronized between both devices. Users should be able to select which apps get synchronized since they probably don't want to share their home life with an employer for example.
With a simple app state store API, only a low amount of data would need to be transfered after an initial setup:
- store.add(myTextarea.text) //auto restore field on app reactivation
- store.add(strKey, value))
- store.addDeepCopy(strKey, classType, myClassTypeVar) //store the whole object recursively
- corresponding store.restore functions
This would allow to take your programs and apps with you in your pocket all the time and one could work on the phone or using a desktop computer if the infrastructure is available. Even better if the app supports both environments. In this context it would make sense to let apps know not just about the screen dimensions in pixels but also in physical units (cm). An app could easily adapt to a huge desktop monitor as well as to a small smartphone screeen while providing a fully functional interface for all devices.
What I miss most on my Windows Phone is a usable file manager especially when it comes to sharing local files with a friend. With the many different phones out there it can be a real hassle to spontaneously exchange a file without both of our devices having Dropbox (or something similar) and internet connection already setup. With a self created WiFi hotspot (even when no internet connection is available to share) and a web page interface generated by the file manager, exchanging files in both directions could be achieved with nearly any other smart device. For privacy/safety concerns, the user should of course still be able to decide what can be accessed: only a public exchange folder or all folders (either with create, write and/or read permissions) and for how long (e.g. until closing the file manager).
In general, the smartphone would be much more powerful if apps could register server services (e.g. provide a web page interface like in the above example).
Feel free to discuss, leave some feedback, further reading material, links or advice.
Kind Regards,
Serge
Serge
_______________________________________________ dev-b2g mailing list [email protected] https://lists.mozilla.org/listinfo/dev-b2g
