Manifest 3.0

Today I released Manifest 3.0, which brings Manifest's goal-focused time tracking to the iPad. A big reason I added sync to Manifest a few months ago was to support an iPad version as well. After all, it wouldn't be very useful to have Manifest on multiple devices if you couldn't easily share data between them. With sync in place, I was able to design a great iPad app that takes advantage of that big screen.

On the iPad, you can keep an overview of your day on the left-hand side and also dig down into additional detail about each project on the right. On both iPhone and iPad, Manifest 3.0 includes updated charts that show how much time you've tracked and whether you're on pace to reach your goals.

Manifest 3.0 also adds a new multi-project view that shows all of your projects on the same chart. It'll give a day-by-day breakdown of which projects you worked on, as well as chart overall time across all projects. This is a feature I've wanted to add for a while, and I'm excited to finally get it into users' hands.

This version also combines a list of your active projects with a calendar view. Tapping on a day in the calendar makes it easy to add or adjust time for past days, which was a frequently-requested feature. (This was actually possible in previous versions of Manifest, but it wasn't very obvious how to do it.) The calendar can also be toggled between a week and month view.

Manifest 3.0 also has new options for how to display the list of projects. You can change the sort and switch from ascending to descending, as well as toggle the display of notes and archived projects.

I'm really excited about this release, and it opens up lots of possibilities for the future. You can download a copy and try it for free on the App Store. As always, I'd love to hear your feedback or feature requests by email or on Twitter. If you enjoy Manifest, please consider rating it on the App Store.

Comparing Podcast Apps: Overcast and Castro

I listen to a lot of podcasts, and the app I use for podcasts is one of the most frequently used apps on my phone. For the last couple of years, that's been Overcast. Recently I decided to give another app, Castro, a spin to see what else was going on in the podcast app world.


My favorite feature of Castro, by far, is how it manages your play queue. When a new episode is released for one of your subscribed podcasts, Castro places the episode in the Inbox. From there, you can quickly play the episode, add it to the beginning or end of your play queue, or archive it. This ends up being a fantastic solution for podcasts where you don't want to listen to every episode. For example, I generally skip over episodes of The Incomparable that discuss a movie or book I'm not familiar with, but I don't want to miss an episode about Star Wars. (Fortunately for me, there tend to be lots of those.) Castro makes that easy: as each new episode arrives in my inbox, it's quick and easy to either archive it or add to my queue.

I did find navigation in Castro to be a little tricky. At the very bottom of the screen is a row of buttons with play controls: play/pause, skip forward and back, that sort of thing. Above it is another row of buttons representing tabs in the main interface. There's a tab for your queue, the inbox, archive, and search for adding new podcasts. Although the two rows are visually separated by very different background colors, I found myself having to stop and think a bit about where to look for the button I wanted. To be honest I'm a little surprised by my own confusion, because the layout seems logical, but for whatever reason, it doesn't quite click with my brain.

After using Castro for a bit, I also discovered that I really missed a few unique features from Overcast.


The thing that really sets Overcast apart is how it processes and plays the audio itself. Specifically, it has two key features: Smart Speed and Voice Boost. Smart Speed cuts out little bits of time when there's silence in an episode. Even though each slice is very small, it can really add up. An hour-long podcast might take only 55 minutes to play. The feature is also pretty clever about not trimming too much, thereby maintaining the pace and feel of each episode.

Maybe even more crucial for me is Voice Boost, which evens out volume differences between different people's voices. I often listen to podcasts in environments with other noise: on the subway, while cooking or washing dishes, etc. Voice Boost really helps keep everybody at an audible volume without making one person's voice painfully loud. In fact, I've come to rely on Voice Boost without even knowing it. I started listening to a recent episode of Upgrade in Castro and thought something had gone wrong before I realized that I was used to hearing the show in Overcast.

I've also come to rely on Overcast's support for podcast chapters. As far as I can tell, Castro doesn't support chapters, and I miss them when I use it. I don't skip around in podcasts all that much, but I occasionally find it handy to know how much time is left in a particular segment, or breeze past something that doesn't interest me.

On the other hand, Overcast's episode management isn't especially noteworthy. Smart playlists get me part of the way there, but now that I've been exposed to Castro's sublime inbox concept, I really miss it. The most recent major version of Overcast added some new queue management tools that help a bit, but it's still not quite the same. (If Overcast's smart playlists could include or exclude the contents of other playlists, it might be possible to set up an inbox-type system.)

For now, I think I'm sticking with Overcast. While I absolutely love Castro's organizational system, I can manage to work with Overcast playlists to come up with something that works pretty well. Conversely, there's no real equivalent to Smart Speed and Voice Boost in Castro, and I really got used to them. It's too bad that there isn't one single app with all of these features, but it's great to see so many interesting and useful innovations in podcast apps. I'd heartily recommend either one of these apps to anyone looking for a new podcast client.

Manifest 2.3: Introducing Sync

I'm very pleased to announce the release of Manifest 2.3, which has one key new feature: sync. Until now, Manifest has stored its data locally on the iPhone, and that worked fine most of the time. But if you deleted the app, your data was just gone. Sync changes that. By syncing data into the cloud, Manifest can restore your data from the cloud on a new device or after deleting and reinstalling the app.

Manifest uses Apple's CloudKit to store data in your private iCloud account. Using CloudKit means there's no separate account to create or configure, and no new passwords to remember. If you're already signed into iCloud on your phone, you're good to go.

CloudKit also protects your privacy. Unlike other web services, not even the developer (that's me!) has access to your private data. The only way to get at your data is by signing in to your iCloud account with your credentials.

Sync also enables a lot of new possibilities for the future. Storing data in the cloud unlocks the potential of multiple devices. I plan to add iPad support in the near future, and possibly a Mac app down the road as well.

Of course, sync in Manifest is optional. When you first launch Manifest 2.3, you'll be asked if you want to enable sync. If you'd like to keep your data on your device, just tap Not Now and you can continue using the app the way you always have. If you change your mind later, sync can be switched on or off on the Settings screen.

As anyone who's tried to implement sync knows, it can be a tricky business. There are lots of conditions and edge cases to consider: airplane mode, flaky connections, conflicting data, and more. I'll be honest: it's a little scary. I care deeply about providing a great experience, and I've spent the past several months making sure Manifest has a solid sync system that deals with these situations sensibly. That said, there are probably some rare circumstances that I haven't considered, so if you encounter the app doing something you don't expect, please let me know.

If you haven't tried Manifest already, you can download it from the App Store. Thanks for trying it, and I hope you enjoy!

WWDC 2016 First Thoughts

The first day of WWDC is in the books, and I jotted down a few first impressions before I get too into the technical sessions later this week.


Although I'm happy there's finally a developer API for Siri, I'm disappointed that it's limited to a fairly small set of applications for now. As a user, what I want most is for my favorite shopping and to-do list apps to get Siri integration, something that won't be possible with what Apple announced today. However, they strongly implied that Siri API support will expand to other situations in the future. It's also notable that the API works across all languages that Siri supports, and allows users to interact with much more flexible syntax than something like the Amazon Echo.

It looks like I was wrong about the Siri API being cloud-based, and Apple didn't say much about how Siri features will work across devices. I assume that each device will only support features for the apps it has installed. I hope they'll do something about the problem of multiple devices answering whenever I say "Hey, Siri," especially now that Siri lives on the Mac as well.

MacOS Sierra

I always had a fondness for the classic "Mac OS" name, and I'm happy to see it return, even with slightly odd spacing and capitalization. This year's code name Sierra may be meant to evoke the Sierra Nevada mountains, but I can't help but think of the 90s adventure games I loved so dearly in my youth.

Most of the changes on the Mac strike me as gradual evolutions rather than revolutionary new features, and I'm OK with that. The Mac doesn't need a ton of new features, it just needs to keep up with the times and other platforms. Siri on the Mac doesn't strike me as all that Earth-shattering, but can't hurt and might turn out to be handy here and there. I'm puzzled as to why Siri search results get stashed in Notification Center. Why not a smart Finder window? As someone who rarely opens Notification Center on the Mac, it's an odd choice.

Auto-unlock, Apple Pay on the web, and universal clipboard are small but handy features. Storing the Documents and Desktop folders in iCloud Drive is really appealing as an idea – get at all your files anywhere – but I'm nervous about reliability. I assume that it'll be possible to opt out of this feature, and I'll probably do that for a good while to make sure any bugs are worked out.

iOS 10

Aside from a big overhaul of Messages, the changes in iOS strike me as surprisingly incremental for the 10th version of iOS. Many of the updates, like Maps and the lock screen, look great and will certainly be useful and appreciated. Improvements to search in Photos, including face and object recognition, will be great provided that they work as advertised. I don't think the redesigned Music app does enough to solve the usability problem in Apple Music, but I'm happy to see Apple keep trying to improve it.

One of the bigger changes is something Apple didn't really talk about: de-coupling many core apps from iOS itself. Many of the system apps, like Mail, Maps, Compass, etc., can now be uninstalled. Moreover, they're now downloadable from the App Store. That implies that Apple could also update these apps on a different schedule from iOS itself. For example, they could roll out new features in the Photos app in January, instead of waiting for iOS 11. Whether that'll happen is an open question, but I hope Apple will take advantage of the flexibility.

Messages was clearly the biggest winner in iOS 10, with a ton of new features and even its own app store. Some of the full-screen messaging effects look pretty annoying, but that should shake itself out sooner rather than later. I particularly like how Messages embeds rich content and previews right into a thread. I suspect we'll look back on the old mostly-text Messages and think we lived like animals.

Of everything in the event today, I'm most puzzled by the lack of significant upgrades for the iPad, particularly multitasking. The multitasking app switcher, in particular, is such a mess that I can't believe Apple will go another year without improving it. Even something as simple as adding a search field would go a long way. I'm hoping that this is a feature that just wasn't quite ready and will appear before iOS 10 launches this fall. Barring that, perhaps it could be a 10.1 or 10.2 feature in early 2017. Here's hoping.

Apple TV

The only thing that really caught my eye during the Apple TV demo was the single sign on feature for authenticating with your cable provider. It'll make it much less annoying to download a new video on demand app. That one feature alone should make this a great update.


Apple Watch badly needed a software re-think, and Apple delivered. Gone is the confusing distinction between glances and apps, as is the rarely-used friend picker. Instead, you can now press the side button to see a list of frequently-used apps displayed in a horizontally-scrolling Dock. Apple also claims to have vastly increased the speed of Watch apps. Apple claimed to have improved Watch app speed with WatchOS 2, so I'm reserving judgement until I actually get a chance to use this. "Fast" is a relative term, but like Justice Potter Stewart, I know it when I see it.

Overall, I'm very happy that Apple kept an open mind about the Watch with a willingness to change the things that weren't working. The updates announced for WatchOS 3 make much more conceptual sense to me, and if they're anything close to as good as today's demo they should make the Watch much more pleasant to use. Interestingly, no mention was made of the "honeycomb" home screen, so I guess that it remains even in a de-emphasized state.

Siri, iCloud, and Swift on the Server

WWDC kicks off in just a few days, which means it's prediction time. This year I've got one that's a little off the wall: Not only will there be an API for Siri, but it'll be iCloud-based and take advantage of Swift on the server.

Implementing a Siri API this way would solve a number of potential problems, and fits with several converging trends from Apple.

Siri exists on an ever-growing list of Apple devices. It started out as a feature specific to the iPhone 4S, then gradually expanded to subsequent iPhones and the iPad. Then came the Apple Watch and Apple TV, and rumors strongly indicate Siri will arrive on the Mac soon. Users expect Siri to have more or less the same feature set on all these devices, which is pretty much what happens now with its core features.

That gets a little tricky when you consider how and where third-party apps and services could integrate with Siri. Unlike the Apple Watch, which is paired to one and only one iPhone, Siri isn't a good fit for apps that pair to extensions in their iOS counterparts. For example, if Uber creates a Siri app that allows you to request a car, you'd expect that to work from Siri on your iPad or your Mac just as much as on your iPhone where the Uber app is installed.

To me, the most logical solution is to make the apps server-based. Installing a Siri app would create an association between Siri and your Apple ID. Then Siri could provide that app's functionality from any device where you've signed in with your Apple ID. The app could store your personal data in your private iCloud storage, allowing it to remember things like login credentials. From the user's perspective, Siri apps might be installed through some kind of Siri App Store, or through a prompt in a native app. Either way, the main logic of the app itself would live on the server, perhaps interacting with local native apps on each device through new API.

Storing Siri app logic on the server also ties in to the steady progress Apple has made in advancing services like CloudKit. Last year Apple added CloudKit JS, which allows developers to connect to CloudKit through other web services. It's not hard to imagine additional expansion that lets developers configure server-side logic within CloudKit itself, logic that might be perfect for Siri.

Finally, Apple has been working on getting Swift running on Linux, which suggests at least a passing interest in running Swift on the server. Given the company's strong push to drive Swift adoption, it wouldn't be a huge surprise to see Apple use Swift as the language of choice for cloud-based Siri apps. Even better, it could provide the start of a framework for running Swift in server environments elsewhere.

This prediction is a wild guess, but if Apple does something along these lines it would create some pretty cool opportunities. Finding a way to coordinate a voice-driven assistant across multiple devices is a problem that most other companies haven't tackled. It would also be a very Apple-y way of moving further into cloud-based services and pushing developers to adopt Apple's cloud technologies. I can't wait until next week to find out whether I'm right or wrong.