What happened to the Inbox

This post was originally published on April 15th, 2014

With this blog post, we are following up on our previous post as to why the inbox feature was causing the app to crash at launch, and why we have decided to remove the inbox, as well as the notification feature from Hill88 with version 2.2.3.

Why did we implement the Inbox in the first place?

Asana doesn’t offer support for the inbox in their public API, which is just one of the many limitations in it’s current API version. However, due to the importance of that feature, we didn’t let it stop us. We built the unified task list (which Asana doesn’t even support in their web app), so we figured out that it should be possible to aggregate the required data in order to offer Inbox support in Hill88. We built various test prototypes, created thousands of test tasks and finally by the end of 2013, we came up with a solution that came really close to Asana’s own inbox feature.

What went wrong

Asana’s API architecture is more than limiting when it comes to requesting any data and was obviously never designed to support third party Asana clients like Hill88 (maybe that’s why our App hasn’t been featured on Asana’s third party solutions site yet).

Pretty much all task-related data can just by requested for one single task at a time, and there is no way to get data that has only been modified at a certain point in time. For our inbox feature, that meant that we had to request all historical comments for each single task and figure out ourselves, what data had been changed, deleted or added if we wanted to get any new activities or comments. As an additional hurdle, Asana’s API enforces a rate limit which would suspend our server requests for a certain time period, resulting in endless sync sessions.

We got all that sorted with a lot of development effort. We built custom, fast and lightweight data management layers that handled all that more or less transparently in the background, however, as you can imagine, that’s actually work that should be done server-side rather than on a mobile device. That’s exactly what made the entire solution collapse. To be more specific, it actually worked on newer Apple devices, with the new A7 chip. However, depending on the amount of data, it lead to the well known “Hill88 app launch crash” caused by high memory usage.

Our decision to completely remove the Inbox feature

Once the wave of crash reports came in, we didn’t think of the inbox as the primary issue at first. The crashes started after an update that introduced full 64-bit support together with many other improvements and changes. Although we knew quite early in the process that the crashes are related to memory usage, it unfortunately took us quite a while to track down the inbox as the one and only cause.

The decision to remove the inbox entirely was not an easy one, but in the face of how many of our users had to experience the app launch crash issue, it was the only viable solution to take in order to restore normal functionality to all of our users.

We want to thank all our pro users who supported us during this troubled period, and especially want give a huge thank you to Brian H. and Philippe D. for all their time in helping us track down the causing issue.

Performance improvements

Along the removal of the inbox we implemented a series of performance improvements and memory usage optimizations that make the app syncing faster than ever before.

Completed tasks

In the meantime, Asana’s API has been updated to support the recent changes for completed tasks, which have also been implemented in the latest version of Hill88. You can now set the task list option Show Completed Tasks to either none or a time period, which will keep the number of completed tasks limited and useful. The following screenshot shows for example the Show completed tasks set to 1 Week, which shows all tasks completed within the last week at the bottom of the task list.

Hill88 — Task List Options

Bad app store reviews don’t help

We have full understanding for the frustration that all our users experienced during the app launch crash (or other app related issues), however we want to make clear, that bad app store reviews aren’t helping solve this situation, at all.

In order to resolve such issues as quickly as possible, it’s important for us to be in communication with our affected users, and to learn more about the circumstances, so that we can recreate and fix the causing issue as fast as humanly possible. As Apple doesn’t allow us to get in contact with users who leave an app rating, that’s not the best place to communicate issues.

We invest a tremendous chunk of our time to provide you with the best customer support out there. We can be reached via email as well as through all major social media channels, so be sure to let us know if you’re experiencing any issues, or would just like to mention us.

You can find all our support channels either on our website or in the app settings.