all micro contact rss

RECaf 1.6

RECaf 1.6

For a while now, I’ve noticed RECaf users had a very different approach than I intended of logging an item from earlier in the day, or from the day before.

The frequents list on the front panel of RECaf is great for one-tap access to your most frequent sources. But logging that way always records the current time and date. If you want to customize the date to say, this morning, my intention was for people to go through the custom logging process. (Push down the frequent and favorites panels, choose your category, drink, amount, and then set the time before logging.)

Instead, what I observed many people doing was simply logging the item with the frequent button. Then, they would slide over to the history screen, tap into the newly created log entry, and edit the date from there. (I’m fairly certain this takes longer, but nevertheless, it seems many believe this is the only way to change the date—after they’ve logged.)

For a long time, I’ve had a quicker remedy than both of these methods planned, and with version 1.6 it is finally ready.[1]

Enter our old friend, 3D Touch.

Now, if you force press on a frequent button (or tap and hold on it on devices without 3D Touch), you can bring up a quick actions menu to change the date (or the amount) very quickly.[2]

I’m sure I’ll still see people in the wild logging, then editing the entry just to change the date. But hopefully this will help some folks log just a bit faster.

I’m hoping to add similar functionality to the favorites menu soon as well. Along with many other improvements in the works.


  1. Special thanks to Curtis Herbert for pushing me to make this menu better than it otherwise would have been. ↩︎

  2. Changing the amount is nice for those of us who usually have a 12-ounce coffee, but today decided to go for the 16. ↩︎

The Thumb Zone

My driving principal while designing RECaf was to make the app “thumb-able.” That is, I wanted to be able to do as many tasks as possible with the phone in one hand, gesturing only with my thumb.

This is getting harder with every new iPhone generation.

Years ago, Jeff Hawkins, creator of the original Palm Pilot and then CEO of Handspring, commented on the one-hand-ability of the Treo line of smart phones. He was getting asked frequently why Handspring had adopted plastic RIM-style keyboards on its phones, rather than relying on the Graffiti handwriting recognition he had pioneered for Palm devices.

“I think the most important thing here is that on a phone, you have to have a keyboard. You really want to have one-handed operation, and that requires a keyboard....”[1]

This was a few years before Apple released an on-screen touch keyboard that anyone would consider usable, of course. The point is, in Hawkins’ mind, any task you needed two hands to do on a mobile phone was a failure, at least to some degree. The task may be easier or better to do with two hands, but it needs to be possible with one hand. I believe this is still largely true.

We’re busy people, and our hands are often busy throughout the day. When I’m walking around the city, I’m often lucky to have one hand free to pull out my phone and get something done. The last thing I want is to have to free up the other hand just to do the simplest of tasks.

Unfortunately, phone manufacturers and software developers have all but thrown the one-hand principle out the window in recent years. The allure of larger and larger screens has decreased the thumb-reachable percentage of the screen significantly. And yet, much of our software, particularly on iOS, has failed to accommodate.[2]

When the first iPhone was released, with its puny 3.5-inch screen, I could easily reach every corner with either thumb. On an iPhone XS Max, with its gargantuan 6.5-inch screen, I’m lucky to reach even 60% of the total screen area without a second hand. And yet, Navigation bars, with their all-important Cancel and Done buttons, and many other controls are still located at the top of the screen, way out of thumb’s reach.[3]

And it’s not just the top of the screen. The larger your screen area, the more difficult it becomes to carefully balance the device and reach the bottom of the screen as well. Simply moving navigation to the bottom of iOS would not adequately address this issue.

With this in mind, I approached RECaf’s design as if my thumb were the only option for at least the most common actions[4]. If it was something I needed to do more than occasionally, and I couldn’t do it with my thumb without some sort of awkward phone juggling, I declared the design a failure and started over.

Throughout the process, I studied other apps that had tackled this issue—some built-in from Apple, others from third parties—and I adapted what I considered to be the best ideas from each.

The Tab Bar

I’m not a big user of Snapchat (I’m not in the correct demographic) but when a few developers I trust showed me Snapchat’s swipe-able tabbed interface, I knew a variation of that would be perfect for RECaf.

The Tab Bar lives at the bottom of the screen, so technically, it is reachable by the thumb. But I find it so much easier to simply swipe between tabs vs reaching down to the bottom of the screen and tapping that frankly I would love it if Apple stole this idea for the standard Tab Bar.

Since this is not a standard implementation, of course, it took a bit of work to get the animations and the gestures working as well as I liked. But the end result is so fluid and simple. While a more complex tabbed interface with more tabs and deeper navigation structures might make this impractical, in RECaf’s case, with only three tabs, it’s perfect. With the easiest flick of your thumb, you can get from one major area of the app to another. You can still tap on the icons on the bottom toolbar as well, of course, if you are unaware of the swipe gesture.

Drag-able Panes

Over time, Apple has been adding drag-able panes to Maps and other built-in apps, such as Stocks; a variation of the same pattern also exists in the current Music app. And many third-party apps have copied and enhanced this pattern themselves, most notably ride-sharing apps like Lyft. The idea is to put information in a panel, or pane, that can be dragged up or down to reveal more information/controls on two different z-depths. This way, you get almost two screens worth of UI on a single screen, and you can move the information you don’t want out of the way with a simple thumb movement up or down as needed. Put a scroll view inside these panes, and you can get just about any active controls you need under your thumb with relative ease.

In RECaf-this became the perfect way to show both a listing of historical statistics about your caffeine habits and a listing of your entire caffeine logging history on the same screen. Just tap, swipe, or drag the All Log Entries pane up, and the history is concealed behind the long list of entires. Drag, swipe, or tap it back down, and the stats become visible again.

A more complex variation appears on the Log Entry screen, where you can move two different panes (frequents and favorites) to show three different methods of logging on a single screen (frequents, favorites, or custom). Rather than putting these three modes behind a segmented control, having to tap all the way on the top of the navigation bar to switch modes, you can simply move your thumb up or down to reveal the UI you need. Because the panes are drag-able from any visible part of the pane, it doesn’t matter how precise you are about the dragging, either. Wherever your thumb happens to land on the pane, you can move it up or down. You can even move both panes at once, so you’re never more than one drag away from he UI you need.

The podcast app Castro uses a similar approach with its now-playing screen. You can swipe down from just about anywhere on the now-playing screen to go back to the main interface.

Implementing this in RECaf took quite a bit of UIPanGestureRecognizer gymnastics (and ample use of container views) to get it working smoothly, but at the end of the day, I ended up with an extremely “thumb-able” UI. Given how often Apple is using a similar pattern to avoid putting UI tools in navigation bars in Maps and other built-in apps, I wouldn’t be surprised at all to see drag-able panes become a much more common part of iOS in the future. That would make me very happy. I’d love to have an official API for creating such interfaces, rather than the custom implementations many of us have had to create in the meantime.

Viewable Content vs Interactive Regions

Clearly, we can’t put our entire interfaces under our thumbs. We have these gorgeous giant screens; we want to use every pixel. But if you reserve the areas that are out of reach of your thumb for visual information that isn’t interactive, you can free up the thumb-reachable region for your interactive elements.[5]

In RECaf, I wanted to take advantage of the larger screens of some iOS devices by putting the pertinent information, whenever possible, above my thumb. On the source detail page, for instance, the name, icon, and other information about the source is listed just below the navigation bar, while the interactive buttons for favoriting amounts and adding Siri Shortcuts are placed in the thumb zone.[6]

By all means, we should make use of every pixel of our screens. We just have to be sure the parts with which we need to interact are not out of reach.

Conclusion

Large screens on phones are not going away anytime soon. At the same time, our thumbs aren’t going to magically start getting longer. That shrinking percentage of reachable screen real-estate needs to become the focus of interactivity, while the outer regions of the screen are devoted mainly to information display. The more designers and developers consider this, the better time we will all have with our apps, regardless of our screen-size preferences. I hope Apple, too, is planning on leading us in this direction with future versions of iOS.


  1. via Pen Computing ↩︎

  2. Understand, this is not a knock against larger screens. I totally get why some people prefer large-screened phones. I just think that we as software developers are failing to accommodate these customers by not moving the most important interactive elements of our designs to a more reachable region. ↩︎

  3. Yes, we have hacks like Reachability. But they are hacks, not solutions. ↩︎

  4. That is, when you actually launch the app and use it in the traditional sense. My real hope with RECaf is that you don’t need either hand to use the app. Siri Shortcuts make logging with your voice a much more efficient option. Nevertheless, knowing some people would not be using Shortcuts, I wanted the process of logging with your thumb to be as convenient as possible. ↩︎

  5. This is why Navigation title bars are so large in iOS. That giant header serves as a clear visual anchor. What may look like a waste of screen space to some is actually very effective for creating hierarchy in an area of the screen that is not optimal for interactive elements, anyway. ↩︎

  6. If you switch to Edit mode, the upper informational regions do become interactive, but this is an infrequent use case compared to how often someone may want to alter a shortcut or add an item to favorites. ↩︎

Linking to Subscription Management Settings

One common argument I hear from the Apple community against subscriptions is that most customers don’t know how to manage their subscription settings. It’s difficult, they say, to explain in a customer support interaction how a customer can cancel or alter a subscription. And because customers are confused about how to cancel or manage subscriptions, many customers may be afraid to start an auto-renewing subscription in the first place.

These are fair points. I definitely agree Apple could do a better job of exposing subscription management settings in iTunes. Oddly, the subscription management page can be found (with some effort) in the App Store app, in the iTunes Store app, and also in the Settings app, which adds to the confusion.[1] As you can reach the same subscription page from multiple places, there’s no single definitive set of instructions we all use.

No wonder customers and Apple pundits get confused.

If Apple were to place the link to subscription management somewhere more obvious in the Settings app, perhaps under the iTunes & App Store section—or better yet, right in the top-line Apple ID, iCloud, iTunes & App Store—that would be a big improvement. Adding an easier-to-find link in the iTunes Store and App Store apps would also be welcome.

Fortunately, developers can help make finding subscription settings easier, too.

Just in case some folks are unaware, and for those who have argued that developers should be able to provide a way to manage subscription settings from within their apps, I wanted to point out that developers, can, at least, provide a direct link to their customers’ subscription management settings. Your customers can manage their subscription to your app from your app, as long as you provide them with this link.[2]

The more places this link is made available, the faster we can overcome any customer fears of not being able to find subscription settings.

I did a quick check, and just about all the apps to which I currently subscribe (including Castro, Weather Up, GifWrapped, Ulysses, Carrot Weather, Drafts—just to name a few) provide a quick link within their own settings pages that takes you to the iTunes subscription management page. So good devs, at least, seem to be doing the right thing. (Surprise, surprise.) Unless you are actively trying to discourage your customers from finding a way to unsubscribe from your app (Don’t be that dev.) there’s no excuse not to make this link an easy tap within your own application.[3]

When I approached placing this link in RECaf, I decided I’d make it a top-line item in the More tab. Since I had a More tab for miscellaneous items, and subscription status is not technically an app setting, I figured it made sense to put subscription status right there at the top level. You could argue that more customers will expect it to be inside app settings, since that’s where a lot of developers put this link.

Feel free to find a place where it makes the most sense for your app.

IMG_1984-1

Tap on the subscription status cell, and RECaf will take you to the appropriate place in the iTunes Store app to manage your subscriptions.

To make things easy for these sorts of links, I like to create a quick extension on UIApplication. That way, I avoid repeating a lot of UIApplication.shared.open() code if I need to link from more than one place in the app.

extension UIApplication {
    class func openAppSettings() {
        guard let url = URL(string: self.openSettingsURLString) else { return }
        self.shared.open(url, options: [:], completionHandler: nil)
    }
    
    class func openSubscriptionManagement() {
        guard let url = URL(string: "itms://apps.apple.com/account/subscriptions") else { return }
        self.shared.open(url, options: [:], completionHandler: nil)
    }
}

With this extension in place, wherever I want to link to the subscription page, I just call UIApplication.openSubscriptionManagement() and the app does the right thing.[4]

Note, my URL uses itms://, which will pop customers directly to the iTunes Store app, bypassing the need to first bounce to Safari.[5] It’s also not app-specific. That exact generic link will go to the correct place in iTunes Store from any app.

There may be a better way to code a quick link to the subscription management page. Feel free to let me know. But the point is, there’s no reason your customers should need to contact you to find this link, if you put it somewhere obvious enough. And even if they do contact you, you should be able to point them to a button within your own app, rather than having to walk them through several steps in Settings, App Store, or iTunes Store.

The more apps provide this link to the management page, the faster the argument that subscriptions are too hard to manage becomes moot.

And Apple, if you’re listening, take a look at my suggestions above for making it easier to find subscription management elsewhere in the system. Also, adding a static variable on UIApplication, or wherever you feel it would be appropriate, (something like UIApplication.openSubscriptionManagementSettingsURLString, perhaps?) would go a long way to making it even easier for devs to provide a link without having to worry about the URL changing in the future.


  1. As with so many App Store oddities, this is likely a byproduct of App Store being duct-taped onto iTunes. Subscription management is actually just a web page, really, which is why you can find it in either app. Both apps are presenting a web view of the same url: https://apps.apple.com/account/subscriptions. Type that in Safari, even on a Mac, and you’ll be sent to the same place in iTunes. ↩︎

  2. They will still get bounced out of the app, but the process is pretty obvious once they reach that main subscription management page. ↩︎

  3. I’d love to see Apple require this link to be present in our apps. It would be one more item for the App Review team to check, but it would go a long way to help curb scam apps that trick you into signing up and then leave you with no obvious way to unsubscribe. ↩︎

  4. The first function in that extension openAppSettings() is another good one for giving your customers one-tap access to the Settings page that’s usually found in the long list of third-party apps in the Settings app. This is a great way to provide quick access to Siri shortcut settings, notification settings, background app refresh, and so on. Don’t make your customers scroll through that super-long list of third-party apps in Settings just to find this stuff. ↩︎

  5. I’ve noticed a lot of the apps to which I subscribe use https://, which is fine. You still get to the right place eventually. But eliminating that middle Safari redirect is not only more convenient; it also makes it a simple matter to switch right back to your app when the customer is done. ↩︎

New iPad Pro 11-inch: First Impressions

I was all set to go on a weeklong trip out of the country just one day after the new iPads became available. It was as if Apple knew I was leaving town and rushed it out on a Wednesday instead of the usual Friday.

Now that I’m back, some initial thoughts, in no particular order:

  • I went with the 11-inch model. As I’ve said in the past, this is purely a personal decision. There is no right answer to which iPad size is best. I’ve owned literally every size iPad screen Apple has ever offered. For me, last year’s 10.5-inch (now stretched to 11) is the one. As a bonus, it still fits inside my Waterfield Designs AirCaddy travel case. The 12.9, despite being smaller this year thanks to shrunken bezels, is still a bit large to fit into my current carrying case lineup. But I totally get why others want the larger screen. I still think Apple will make an even bigger iPad eventually.
  • This is the best-looking iPad to date. I probably should have gone with silver this time around, since it still has the black bezel. But I ordered the Space Gray out of habit. No regrets. But now I’m craving a matching Space Gray Magic Keyboard.
  • I went with 256 GB. I will eventually want more storage, but for now, I can load up quite a bit of media while traveling without filling the device. I don’t sync music to it, since I always have my iPhone handy for music listening. Once I start Photoshopping next year I may wish I had more storage, but I’ll cross that bridge with my next iPad.
  • Once again I went with cellular. I can’t recommend this enough. T-mobile offers me 5 GB of data that I can use over a span of 6 months for only $10. No commitment. No recurring fees. Use it until I run out. Buy more as needed. If someone offered me this on my Watch, I’d actually pay for data on my Watch. Most of the time, I’m on WiFi. For those few times I’m not, though, having cellular kicks the ever living crap out of trying to tether, draining my phone battery, and so on.
  • I love the new Pencil. It’s smaller. The magnet is clever and way more convenient for charging. I never lost the cap on my old Pencil, but I certainly came close a few times. Glad to see it gone. I will still likely use the Pencil less often than I should.[1]
  • I wish Apple made a Smart Cover for this new iPad. Instead they went with a two-sided folio. Not for me.
  • I never get the Smart Keyboard with my iPads. I hate the feel of those keys about as much as many developers seem to hate the new generation of MacBook Pro keyboards. To each their own.
  • The squared-off sides: Oh man, do I love the way the sides of this new iPad feel. Some people call it “retro” to the iPhone 4 or 5. Fine. As far as I’m concerned, squared off sides are better. The tapering gives the illusion of a thinner device, but once you’ve reached peak thinness, there are many advantages to a squared off edge. (Pencil charging, for one.) I can’t wait until the iPhones go back to squared off edges.[2] I think this is the future, not the past.
  • Face ID: I was right to be scared of the camera being on the “short” portrait side of the device. Whenever I’m holding the iPad in Landscape (just about 100% of the time) my thumb is covering the camera. I tend to hold the device in my left hand and use my right to “swipe up” to unlock. But because I’ve always wanted the home button on that right side as well, I tend to hold the device with the camera on the left side. (Apple clearly figures this as the “normal” landscape orientation as well, since they set the pencil charging magnet along the top edge when you hold it this way. That means despite taking a hand off the device to unlock, it’s always the “wrong” hand for me. Thus, I get the dreaded “Camera covered” message about 70% of the time when I am unlocking.[3] As I wrote earlier, this could be completely avoided if the camera were on one of the longer landscape sides of the device. But who knows? Maybe there’s some engineering reason that couldn’t be done. Suffice it to say, this is my only true complaint about this new iPad. It’s annoying as hell, in fact. But I will learn to swipe to unlock with my left hand, hold the device with the camera on the right (which will put my Pencil under the device), or just reposition my thumbs somehow. I’ll get over it.
  • The home indicator. My friend Alec Pulianas pointed this out, and he’s absolutely right: There’s really no need for a permanent home indicator on this iPad. The behavior has not changed for swiping up since iOS 11 last year. People have had a year to “figure out” how to go home with the iPhone X. Sure, turn the indicator on for the first few days for new customers, but it should disappear after that. The graphic only gets in the way for most apps. I hope Apple is considering this UI affordance a temporary thing.
  • It’s taking longer than it should for some apps to be updated to support the new screen aspect ratio. I’m not talking about indie apps made by developers who are working their butts off. I’m talking about Netflix (Took almost a week.) HBO. (Still not updated as of this writing.) Apps with large teams who, let’s be honest, had more than a year to prepare for the removal of the home button. Watching letter boxed video inside a pillar boxed app is far from ideal.
  • I didn’t think much of the switch to USB-C at first, but the benefits are slowly sinking in. I’m charging my nearly dead iPhone as I write this with my iPad. Sounds silly, but in a pinch, it’s turning out to be a very handy feature. I doubt I’ll be connecting to an external screen anytime soon. But I’m glad that’s now available to video editors, etc. Eventually, I have to think the Files app will get external drive support, which will be awesome. More accessories will work with either Mac or iPad. I think this is one of those changes that will take some time to sort out but eventually will be a “how did we ever live without that?” type of thing. Not sure if it makes sense for iPhone, but I’d be happy to see that happen as well. I wouldn’t be surprised or disappointed either way.
  • Being able to travel with just my laptop charger and give it double duty for charging iPad as well is quite nice. I will probably never need a second charger for this iPad.
  • Speed: I’ve never thought any iPad I’ve owned is slow. Then again, why not push the state of the art forward? I’m happy these iPads are getting faster, support more storage and RAM, and are generally kicking the ass of laptops the world over. This is what Apple does. I know some have suggested the RAM is overkill, but when I think of apps like Final Cut Pro X, Logic, and other “pro” apps people complain about not existing for iPad, the one thing those apps need that current iPads don’t have yet is tons of RAM. (Have you ever loaded a set of virtual instruments into Main Stage?) I say bring on more and more speed and RAM until it becomes physically impossible to add more. Here’s the thing: an iPad is in no way a “lesser” device from a hardware standpoint. Which means it doesn’t need to be any lesser from a software standpoint, either.
  • Speaking of software: Yes, iOS needs more iPad-only features. Apple is still paying for the mistake of encouraging “Universal” apps for iPad back in the day. I wrote about all that years ago, so I won’t go into it again. I do think starting simple with iPhone’s OS and getting more complex over time was the right move. It’s taking longer than any of us would like, but I’m optimistic about iOS 13 next June. Will they fork iOS into an iPadOS eventually? Maybe. Not sure it’s necessary, though. Just keep adding iPad specific features where appropriate, and share with iPhone when that makes sense. I don’t think maintaining yet another full operating system is going to be a net gain.
  • More on software: Apps. Pro apps. Whatever that means. They exist. More will exist. All I can say is when they come, be willing to pay for them. And for my friends making those apps: be willing to charge for them. I’ll be using Photoshop on my iPad a year from now. I can’t imagine XD won’t follow soon after. At that point, I’ll be able to do almost all my design work on iPad. If you have design apps now that are Mac only and you don’t have an iOS road map, you’re as good as dead to me in a few years.[4] How long before I can say the same for most of my development work?[5] And once apps like Photoshop appear, look for the gaps in the surrounding ecosystem. I’d love to see Adobe bring something akin to its plugin architecture to iPad. That may take some cooperation from Apple, but it could spark an entirely new market for third parties on iOS. The future is looking bright.
  • And that brings me to my final point. iPad has been my favorite Apple device for a long time now. This new edition only strengthens my feeling. I am newly inspired to write apps for this machine. I want to use it more than I already do. It doesn’t have to replace my laptop. It needs to expand my current concept of how and where I use computing devices. And that’s been steadily happening since the first iPad was released in 2010.

Congrats to the entire team who worked on these new iPads. They are truly remarkable.


  1. I keep hoping the Pencil will inspire me to learn to draw better, but I still haven’t committed to it. ↩︎

  2. The taper is, by definition, a compromise. Retaining a pure rectangular shape is more honest, if you’ll permit me some design-snob terminology. ↩︎

  3. Oddly enough, I even get this message sometimes when my hand is nowhere near the camera. I figure this is a bug that will eventually get worked out, though. ↩︎

  4. That CC subscription keeps getting more valuable over time. Still my favorite bill to pay every month. ↩︎

  5. I’m not just talking about Xcode here. Panic’s Coda and Prompt already get me a good part of the way there on the web front. There are lots of other good code tools out there, too. ↩︎

Not a Prediction

Okay: Crazy designer ideas time. Bear with me. This is not a prediction of what may or may not happen at tomorrow’s Apple event. Just a thought that’s been rattling in my brain for the past few months.

Have an iPad handy? Great. If not, use your imagination.

Pick up the iPad and hold it as you normally would in landscape orientation. Where are your hands? If you’re anything like me, one of your thumbs is roughly on top of the home button, and the other one is just about covering the selfie camera. Hands are basically in the middle of the device, in other words.

Now, hold the iPad in portrait mode. Where are your hands? Chances are, your hands are towards the bottom of the device, not the middle. Your thumbs are not covering the center of either long side of the device.

Is it me, or is this an argument for Apple putting the Face ID sensor array on one of the longer, landscape sides of the device?

Now, there may be some perfectly logistical, engineering reason why the selfie cam/sensor array needs to stay on the short side of the device. This is why I’m not making any predictions here. But if it isn’t physically difficult or impossible to put the array on the longer side, I think Apple would and should put it there. Otherwise, forget whether or not Face ID can work in landscape or portrait. We may have to take one hand off the device every time we need to authenticate when we are holding in landscape, anyway. Which would not be ideal.

Ever since the 10.5-inch iPad Pro was released, with it’s slightly longer aspect ratio, I’ve used my iPad in portrait mode approximately 0% of the time. It’s just awkward to hold that iPad in portrait, because of its elongated geometry. Positioning the sensor array at the “top” of that orientation makes no sense from a design standpoint, as it optimizes for an edge case, rather than what I’m guessing is “normal” use for most people. (Again, assuming that engineering challenges don’t make this a moot argument.)

On the other hand, if the sensor array were on one of the long edges of the device, Face ID would work just fine in either orientation for most people, as your hands would never be covering the array regardless of how you hold it.

Just a thought. I’m sure I’ll be proven wrong tomorrow. But I couldn’t let this thought go without at least documenting it.