In all the years that I’ve been reviewing apps here on Beautiful Pixels, I’ve used a ton of to-do apps and Getting Things Done (GTD) apps on my iOS and macOS devices. Things and OmniFocus — two of the biggest names in the market — are fantastic power user apps that have consistently been getting great updates in recent times, but for anyone looking to just have a superb and simple reminders app, Due App has been the light shining through all the darkness. Due has been great for people like me who keep wanting to snooze alerts and need an app to nag you until you get something done. I’ve been using and testing Due 3.0 for several months now and with its release on the App Store today, I’m glad to finally be able to write about it.
Due 3.0 is available for $2.99 or $4.99 on the App Store, as an IAP for existing users or as a fresh upfront price for new users. Its standout feature and the one that is more than worth the low asking price is the Custom Snooze option for notifications. While Due on iOS 10 allowed for a bit of customization for notification snooze, things were still limited to just 3 options. With the app now built for iOS 11 and later, we now have a fully featured snooze editor that lets you either go with the usual snooze options alongside the “Mark Done” option or use a custom snooze picker that lets you go with some predetermined times and a lot more. This lets you snooze something by as much as you want through a custom “Quick Access Times” setting that lets you set 9 different values — right from the notification itself. You basically don’t need to open the app ever outside of adding reminders by text input.
Also included in this Due 3.0 release is a new black theme meant for iPhones with OLED screens, and haptic feedback to go with your interactions. While haptic feedback is always welcome in apps, the themes are now showing their age.
If I were to quibble, I’d say Due now needs a lot of work in the visual side of things. It is a fantastic app, no doubt, but it feels like an excessively functional app that lacks a distinct UI and identity. It needs a major coat of polish that would add some elegance to the app. I would love to see a major UI refresh that gives it the same treatment that Things app got when it went from 2.x to 3.0.
Leading up to today’s release, we had a quick chat with Lin Junjie about what went into the development of Due 3.0 and how it has been working on the app all these years.
How has Due been doing over the last few years, considering how the App Store and discoverability have both changed quite a bit?
Whenever friends meet up with me and ask what I’ve been up to, I tell them I’m still working on Due, and they’re surprised that Due is still going on. It does sound unbelievable that a “simple” reminder app can go on for 8 years. It has not only survived being “Sherlocked” by Apple’s own Reminders app, but also the competition from many other quality todo apps, some of them free.
From my experience, sales of apps will usually drop to a baseline level. Even if nothing is done, you can expect sales to remain rather stable at this level for a while. This baseline level of sales, however, is unsustainable as a business. If you’re lucky to catch Apple’s attention to feature your app or the attention of the tech press like yourself, you get a short-term boost for a few days. These additional income are very much needed to keep the business sustainable. And this is why apps constantly need new updates to catch the attention of Apple and the press.
The App Store is still very much a mystery to me despite many years of working with it. One thing is clear though that it is very much different from when I started in 2010. Back then, 25% of the annual sales could come from a single month as a result of Apple featuring Due on the App Store. These days, features, while very much appreciated, no longer have that kind of impact on sales. One of the most obvious change is the daily features of the iOS 11 App Store. There used to be just 52 chances a year where you could get a shot at being featured, but now you have 365. However, the daily feature also tends to get less attention than the weekly ones in the past.
More importantly, there are also many more quality apps out there these days; of which many are free because they’re funded by VCs. With such intense competition, both in terms of quality and pricing, it’s harder to sustain a living as an indie developer. I’m guessing that’s also the reason why many developers have gone down the route of subscription pricing.
The traditional cycle of updating the app in hope for Apple- and media-features—and hopefully the sales spikes—has many problems:
- The new features in your updates need to sound impressive, so as to;
- interest Apple and the tech press to feature your app, of which;
- you have absolutely no control over, and finally;
- you can only make money from new customers this way.
So on many levels, it makes sense to move towards a subscription-pricing for the business to be sustainable, and Due is really one of the few holdouts with a dying business model.
The new custom notification snooze options are beyond amazing. I literally do not need another todo app ever. Was this not possible on earlier versions of the app or iOS or was it just something that took a long time to properly implement?
I’m glad you asked! I’m not sure if people realized that this wasn’t technically possible until iOS 11. Apple announced custom input for notifications during WWDC 2017. It was a pretty low-key announcement, and I haven’t seen any apps making use of it so far. Custom input is far from perfect though. I had to overcome technical limitations in terms of conveying the final snooze time back to the app and to explore workarounds on the Apple Watch where custom input was not available. I started exploring how to implement custom snooze and had a working prototype pretty early on. After that, it was a lot of testing and polishing.
So the technical side of things, while challenging, was not the only reason why it took a while. Another reason is the need to keep Due sustainable. Due has been around for 8 years, and I’ve only had one paid update so far in 2015. Sales have slumped and slowed, and it has reached a point where additional income is required to keep it going. Custom snooze could have been part of a 2.7 update, but that would mean giving away a major new feature for free.
If Due was on a subscription model, this would have been straightforward; I could roll out the feature as soon as it’s done. But since Due is not, I needed to start thinking of when to introduce a paid upgrade that could bring in the revenue to keep it going. A paid upgrade also requires a lot more work; I needed more features to bundle in 3.0, I needed to communicate the benefits clearly so people would be interested to upgrade, I needed to lock the new features under a separate IAP, and so on.
Can you discuss the pricing and upgrade model for Due 3.0? If a potential new customer wants to get Due and everything unlocked, how much would all of it cost for them? What was the reasoning behind not doing a brand new app?
A new customer who purchases Due today will pay just $4.99 for everything, including upcoming features in future 3.x updates. Existing customers who have purchased Due from version 2.6 or later (i.e. in the last 10 months or so) will get a free upgrade to 3.0. All other customers can upgrade to Due 3 with a $2.99 in-app purchase, which is a 40% discount.
If you bought Due eight years ago in 2010 for your iPhone 4, the same app you bought would now be optimized for the latest iOS, sport the latest interface, and run on your iPhone X, iPad Pro, and Apple Watch—all without paying a single cent more. I can’t think of many apps who can say this, and this is something I’m really proud of.
Back when developers sold paid upgrades, they would pull the last version off the store and start over with a new app. This effectively ends support for existing users who don’t pay for the upgrade; if the app crashes in the next iOS/macOS, you’re out of luck. I almost never pay for these upgrades until they’re broken. This is because most of these upgrades don’t offer anything that is relevant to me, and I don’t fancy the idea of paying for an upgrade just so that I can continue to use the app. I want customers to pay for an upgrade because they genuinely find it useful. I also want existing customers to be able to use the app even if they decide not to pay for the new features. For me, the new features introduced in each major upgrade have been game-changers rather than feature-creep; Due 2 introduced finer intervals of auto snooze and the 12-button Quick Access interface, and Due 3 is starting off with custom snooze from notifications. These features have fundamentally change the way I’ve been using Due. Still, I thought it would be nice to give customers a choice of not paying, but still being able to receive support in terms of bug fixes, compatibility updates, little enhancements and even an interface overhaul when necessary. I like this approach to pricing and upgrade, and I hope it continues to work out for Due.
How has it been working with newer versions of iOS for specific tools you need in Due and other apps versus older versions?
For a long time there were no enhancements to the Local Notifications framework—which Due relies entirely upon for notifying users—so it was rather limited in terms of what could be done to improve a core aspect of Due. There were, however, many bugs that were introduced over the last 8 years that broke notifications so badly it gave me sleepless nights. For almost a month after iOS 9 launched, notifications can become stuck with no way of canceling them without a restart of the device. In iOS 11, a bug persisted for almost four months, where interacting with a notification from Due causes iOS to clear all other Due notifications.
Perhaps the biggest change came in iOS 10, where the Local Notifications framework was deprecated in favor of the User Notifications framework. The deprecation caused Due to behave so slowly it forced my hand in adopting the new framework. The new framework had the opportunity to address many shortcomings of the older Local Notifications framework but didn’t. Instead, it introduced entirely new problems. For almost three months, SpringBoard could crash and restart when Due is scheduling notifications. Then, it removed the ability to repeat scheduled notifications at intervals. I had to spend a lot of time rethinking and reworking how to support auto-snooze with such limitations.
All of these problems resulted in plenty of unhappiness and frustration among customers, many of which I can do absolutely nothing about. Apple has a lot on their plate, and they do have different priorities. When serious bugs can take months to be addressed, you know local notifications is obviously a low-priority for Apple. (Most of the notifications you receive on your phone are push notifications). I really wish I have more time to polish Due, work on new features and the macOS app, rather than fighting iOS bugs.
What can we expect in terms of custom themes and icon changes for the future?
More themes is definitely in the pipeline for 3.x. I was just thinking the other day that the black theme should have come with a matching black icon, which is now possible with iOS. At the moment, the priority would be between adopting some iOS 12-specific features, as well as the much-needed overhaul for Due for Mac.
Due 3.0 is now available on the App Store for just $4.99 for new users, and if you’re an existing Due user, there’s a $2.99 IAP that you can take advantage of to get the new features.