Bazaar2 Monthly Report - April 2016
Objective 1 Simple multi-pronged distribution
In April we introduced a security check to prevent the root installation of packages that reside in third-party repositories and have the same package name as the F-Droid Privileged Extension. In addition, we started working on an unattended installer based on the "device owner" feature in Android 6. Currently, this is just a proof of concept.
In addition to the package name, we now compare the "package signature" (it's more a certificate) with the package signature of the F-Droid app itself, see https://gitlab.com/fdroid/fdroidclient/merge_requests/256
Proof of Concept for Android 6 Device Owner unattended install, see https://gitlab.com/fdroid/fdroidclient/merge_requests/258
Our other activities included implementing background downloading of apps so that multiple apps can be downloaded, while users continue to browse F-Droid. Previously, users had to wait on the screen of a single app while it downloaded before navigating away. This is a huge improvement, and we will continue to make it even better over the coming weeks.
We also worked on the notification system. When apps are downloading in the background, Android will show a notification to indicate that this is happening. Now the notification is able to:
- Show download progress correctly.
- Indicate the name of the app being downloaded.
- Disappear when it is supposed to (in some, but not all situations).
- Navigate back to the app details page in F-Droid when touched.
- Correctly show progress in app details when returning, e.g., from the lock screen
Towards the end of April we started looking into the general performance of F-Droid. Many people have pointed out that our recent change to ensure that low memory devices can use F-Droid has impacted performance in a very negative way. While we were aware of this trade-off, it seems that it is a little more problematic for users than we had hoped. As such,we are looking into changing the database schema in the hope of improving performance for updating repos, but also general F-Droid performance.
Objective 2 Curation Tools for Organizations
We informally presented our ideas for curation tools to some non-technical organization to start gathering feedback on how the tools should be structured and which kinds of use cases to prioritize.
Objective 3 Modern App Store with Built-in CircumventionIn April, we focused on re-architecting some of the core parts of the F-Droid client app to make it work more flexibly, to change to an event-based programming style, and to allow parallel background operation. This is mostly finished and included in release 0.100alpha5.
- Streamlined app updating in F-Droid
- Rearchitected core to enable parallel and background operations to support upcoming UX overhaul
For the NetCipher HTTP stack integration (https://github.com/guardianproject/NetCipher/pull/42), we added new code. We will be contributing another chunk of code shortly, as we slowly migrate some standalone implementation into the main NetCipher project.
Objective 4 Partner Deployments
We discussed distribution strategies with Storymaker and explored ideas to address country-specific challenges to getting Storymaker to people ready to produce their own media. We are waiting for feedback about the technical approach they are taking for distributing “content packs” to help us design the new media handling features in F-Droid.
Objective 5 Usability Research on In-country Developers
Interviewed potential community manager and discussed how to structure user experience research around the developer user experience.
In April we gave a talk about F-Droid and Bazaar work at LinuxWochen Austria, https://cfp.linuxwochen.at/de/LWW16/public/schedule