Bazaar2 Monthly Report - August 2016
The main focus of development efforts in August was on designing the new user experience for the Android client app. We have the design pretty much finalized, and the re-architecture of the software need to support the new user experience has been laid out to be fully implemented in September.
Based on our surveys of Android app stores around the world, as well as feedback from Digital Society of Zimbabwe, we have decided to emphasize some of the aspects of F-Droid that work well when the device is offline. The whole app collection can be browsed and searched without an internet connection. To improve the offline experience, we need to handle offline install requests gracefully.
Objective 1 Simple multi-pronged distribution
Adding dynamic malware scanning to the whole fdroidserver build process is functional and almost complete. It is working on the prototype setup, and we have new server infrastructure run by f-droid.org that will run the dynamic scanning as part of the regular build process for apps that are included in f-droid.org.
The fdroidserver tool suite is now available in Windows 10 Subsystem for Linux (aka Bash for Windows):
Objective 2 Curation Tools for Organizations
We started designing some user tests around trainers working with Digital Society of Zimbabwe. They are also helping to run user tests on other F-Droid tools.
Objective 3 Modern App Store with Built-in Circumvention
We finalized the new designs of the main screen and overall navigation through app listing, browsing by categories, searching, etc. We also finalized the design of the notifications related to installs, uninstalls, and background downloads. We decided on a core design pattern of a bottom navigation bar because it provides simple usability with one hand, is compatible with Google’s Material Design guidelines, and matches the navigation design pattern that is dominant in Chinese design.
We determined what recently updated and recently added apps would be displayed, and how to display them based on the artwork they provide (featured image, size of launcher icon), and tested concepts for a default background artwork to use for apps if no featured image is provided.
We worked with Digital Society of Zimbabwe to incorporate user/field testing as part of their regular trainings. We discussed the feedback gained from the first user test in a Zimbabwe trainings and brainstormed ideas for gathering and documenting learnings from the field more effectively.
We hired Hailey Still as a UX Intern to help with user testing and tutorial design. We kicked off work on click through tutorials for installing F-Droid and swapping apps with nearby devices with a discussion of the goals and challenges.
Re-architecting F-Droid client app
The internal database structure of F-Droid client was overhauled to fully support all of the possible states of apps, including multiple source repos, multiple builds, and multiple APK signing keys. The database structure will now allow repositories of varying "priorities" to provide metadata from the same apps. This work will also make it possible to transition apps away from the F-Droid signing key to developer’s own signing key. All together, this means that the F-Droid client app will be able to make better decisions about what to show the user, leading to more useful security alerts.
Objective 4 Partner Deployments
We designed a set of tools based on the F-Droid infrastructure that allows apps to have miniature, embedded “featured app” collection that also allow direct installation. One key example of this idea in action is the Tibetan keyboard for Android, which recommends other apps that also support Tibetan well. The library that we will build to support this will also work well for creating apps that can directly update themselves, with or without the F-Droid client app installed.
Objective 5 Usability Research on In-country Developers
We worked out how much of a physical presence we need in order to effectively gather information on developers who feel targeted. We started work on a plan for which countries would be most useful and most feasible to visit in order to conduct user research on developers.