Updated Priorities in the Issue Tracker

I updated the priorities of the issues in Redmine to match the February 2017 roadmap. The priorities carry the following meanings.

  • High applies to the first half of the 2.x series.  All these will be implemented (except for those waiting on a third-party fix) before the addition of the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE dangerous permissions.
  • Medium applies to the second half of the 2.x series. All these depend on the addition of these dangerous storage permissions. I expect to begin work on these issues in the second half of 2017.
  • Low applies to the 3.x and 4.x series. I would expect 3.0 to be released sometime in 2018.

In general, my design philosophy is to polish off one set of features before moving on to the next set. This is why, for example, there are several issues relating to polishing the bookmarks and domain settings included in the high priority. Not taking time to polish existing features, but constantly rushing on to the next hot thing, is what leads to the morass of poor software that assaults us from almost all sides.

In deciding which order to implement features, I am guided by the following general principles.

  1. Implement privacy features first.
  2. Implement those that are quick and easy before those that will require significant investment.
  3. Prioritize items that are most important to users within the framework of 1 and 2.

From time to time I hear from users, including my wife, who wonder why tabbed browsing is pushed all the way back to version 3. The answer is that the tabbed browsing I intend to implement is quite complicated and will require a large amount of coding. It will also require a lot of work to make sure that the privacy features apply correctly to each of the tabs, especially when each tab has different settings. It makes sense to me to postpone it until after the privacy related features in the 2.x series, which are quicker to implement, have been completed.

February 2017 Roadmap

I thought it would be valuable to lay down a development roadmap.

When I first envisioned Privacy Browser, I thought of a browser that would make it easy to disable JavaScript and other privacy sensitive settings and turn them on only for websites I trusted. With automatic controls by domain, it feels that Privacy Browser will have matured sufficiently to bump the version number to 2.0.

Most Android browsers’ implementation of tabs are more like quick bookmarks with large thumbnails than real tabbed browsing. My plan is to use a TabView (similar to the Guide and About sections). There are several complexities with doing so, including managing separate privacy settings for each tab, that make this much more complicated that might initially appear. That is why the implementation is pushed all the way to version 3.0. But the final result should be a fully usable tabbed interface that scales well from small phones all the way to laptops and desktops.