WWDC 2021 Wish List

WWDC 2021

I was so focused on finishing up and releasing the big Timery 1.2 update that I hadn’t given much thought about what I want to see from WWDC 2021. But I finally made a wish list of some things from my list last year along with some new things.

Several things actually came off my wish list last year, so I’m hoping for the same this year. Most of these are for iOS and iPadOS, but there are a few other things here as well.

Here’s my list in no particular order (well except for maybe the first six):

  • Interactive widgets. Allow widgets to perform actions without having to open their associated app like how the Shortcuts widget can. Since an app’s widgets are powered by the same framework as its Shortcuts actions, at the very least maybe they can run other Intents in the background? Also: an increase to the frequency widgets can update.
  • TestFlight for Mac. Please, Apple, I’m begging.
  • 16-inch Apple Silicon MacBook Pro. Even if I have to say goodbye to the Touch Bar (I think I’m one of three people who like it), I will be elated to be rid of this utterfly keybbbbboard.
  • Catalyst improvements. Allow some more things out of the box: Adding a menu bar button and associated view like AppKit can do, more toolbar options like custom views and a search bar, and setting the tab order and keyboard focus for views.
  • WeatherKit. With Apple’s acquisition of Dark Sky, it would make sense to allow developers to access weather data for their apps. Doesn’t even have to be free. (Maybe it shouldn’t be free because of antitrust issues?)
  • Shortcuts for Mac. Lots of Catalyst apps support Shortcuts on iPhone and iPad, so instantly there would be a good amount of apps supporting it.
  • Screen sharing on iPhone and iPad. My use case for this is family tech support instead of “okay, we’ll FaceTime on your iPhone, and then flip the camera around and point it at your iPad so I can see what you see”.
  • Third-party automation triggers. Allow developers to define automation triggers for Shortcuts. For example, Timery could alert the system whenever a time entry is started or stopped, and users could set up automations around these events.
  • Alternate app icons on Mac. iPhone and iPad apps can set alternate app icons. Let Mac apps too—especially Catalyst apps that allow this already.
  • Drag and drop between apps on iPhone. I can drag, say, a photo from one app to another on iPad. Why not on iPhone too?
  • More conditional Shortcuts parameters for developers. Currently, Shortcuts parameters can be defined as: if Parameter A is Value 1, show Parameter B. I’d love the flexibility to say something like: if Parameter A is Value 1 OR Value 2, show Parameter B.
  • Shortcuts filtering options for developers. Give developers filtering options for parameters similar to the native filtering that Apple actions can do. For example, in the Find Calendar Events action, events can be filtered for specific dates (including today), between two dates, and in the last X days, months, etc. Third-party developers have to create their own filtering parameters that are far clunkier than what Apple actions can do.
  • Else If action in Shortcuts. So many times I’m building a shortcut and have to build nested if/otherwise actions to get around not having an actual “else if” action.
  • Emoji stickers in Messages. Like with sticker packs, allow emoji to be dragged from the emoji keyboard and resized and dropped anywhere in the thread.
  • Cards/sheets API. A built-in way for developers to create cards/sheets like Maps and Find My.
  • Keychain app. Bring the passwords section out of Settings into a stand-alone app to store passwords, credit card and bank info, notes, two-factor codes, and more.
  • Smart media rotation: When iPhone is locked in portrait orientation, allow full screen photos and videos to rotate if iPhone is rotated. Like how Christian Selig does it in Apollo.
  • Multitasking overhaul. An easier way to change the apps in Slide Over and Split View (like how prior to iOS 11 there was an app picker to select an app for multitasking). Also let us do it from context menus and an external keyboard.
  • Better indication of what app in Split View has keyboard focus.
  • Show Split View pairings. When dragging into Split View an app that is already paired with another app, show any pairings in the view that shows all available windows so that the windows already paired can be differentiated from the ones not paired. Currently there’s no indication of what window is already paired, so we’re guessing which window is which.
  • Three apps in Split View. Allow three apps to be run side by side. Bonus: showing three at a time but allowing more to be added and then slid back and forth like in this mockup from Daniel Korpai.
  • Better Control Center placement. Perhaps it could live in the multitasking app switcher UI as an app card.
  • Third-party Control Center buttons and controls.
  • Improvements and modernizations in Mail. If a big focus of Apple is privacy, don’t force people into using questionable third-party email apps. Make the native app better than “good enough”.
  • More SF Symbol options for Reminders lists.
  • Ability to create smart playlists in Music. Why do I need to use a Mac to do this?
  • iCloud backup improvements. Allow selectively restoring from an iCloud backup rather than having to restore the entire device. Imagine in iCloud settings being able to browse the contents of backups and selectively and directly restore things from them like a single app that went wonky or an old version of a document.
  • End-to-end encrypted iCloud backups. Perhaps make it opt-in so less tech-savvy people don’t accidentally get locked out of their stuff, but make it an option for those who want it.
  • Make Apple Watch notifications opt-in instead of opt-out.
  • Keyboard navigation. A system for navigating apps with keyboard arrow and tab keys that developers can use and customize if needed. Catalyst already has a good foundation for this with the ability to navigate table views and collection views with the keyboard.
  • Global keyboard shortcuts. Could be customized to run apps, specific actions in apps (perhaps that would require developers to expose possible actions to a new API), and Shortcuts shortcuts.
  • More robust developer analytics. Apple should provide developers with a robust, privacy-focused analytics framework to use instead of questionable third-party frameworks.
  • App Store Connect stats and sales improvements. Related, more immediate stats and sales info in App Store Connect even if they are a couple hours delayed. Like the above item, Apple should provide more robust reporting and analytics so developers aren’t pushed to using something that could possibly violate user privacy.

So, just a few things on my wish list again! Hah! Here’s hoping some of these things get announced next week!

iOS 14 Wish List

WWDC20

With everything going on [gestures wildly into the air] and with WWDC going virtual this year, I almost forgot to make an iOS/iPadOS 14 wish list. But I threw this together mostly so I could look back next year and see if anything actually made it into iOS or iPadOS like some of my wish list items did last year (like dark mode, Shortcuts input and output, and easier modal dismissing). Most of these items were also on my iOS 13 wish list last year, but of course there are some new things.

Here’s my list in no particular order:

  • Allow shortcuts saved to the Home screen to run directly on the Home screen and not launch Shortcuts. They would present their lists and menus and ask for input like they do when run from the My Shortcuts view in the app and like how some shortcuts do in the widget already.
  • In Shortcuts, allow copying and pasting actions both within the same shortcut or between shortcuts. Back in the Workflow days, I mocked up what both copying actions and running a workflow from another workflow might look like. Run Workflow (and then Run Shortcut) eventually came to the app. Hopefully copying actions will too!
  • Shortcuts actions to control Apple Watch things like starting and stoping workouts, setting Theater Mode, changing watch faces so automations could run at certain times of the day to change faces, etc.
  • Updated Reminders actions in Shortcuts. Right now, it’s not possible to add a reminder with a due date but NOT an alert. And it’s also not possible to add a URL to a reminder with Shortcuts. I would love to be able to do both!
  • Give developers filtering options in Shortcuts actions similar to the native filtering that Apple actions can do. For example, in the Find Calendar Events action, events can be filtered for specific dates (including today), between two dates, and in the last X days, months, etc. Third-party developers have to create their own filtering parameters that are far clunkier than what Apple actions can do.
  • Shortcuts for macOS (okay, this isn’t an iOS thing, but while I’m taking about Shortcuts…).
  • Oh, one more Shortcuts wish: Folders.
  • WeatherKit. This may be a 2021 thing, but with Apple’s purchase of Dark Sky, allow developers to access weather data for their apps.
  • A built-in way for developers to create cards/sheets like Maps and Find My.
  • A Keychain app to store passwords, credit card and bank info, notes, and more. Like 1Password but built in to iOS.
  • Replace the incoming call screen that takes over iPhone and iPad with a less-intrusive notification banner or something similar.
  • Smart media rotation: When iPhone is locked in portrait orientation, allow full screen, landscape photos and videos to rotate if iPhone is rotated. Like how Apollo now does it.
  • An easier way to change the apps in Slide Over and Split View (like how prior to iOS 11 there was an app picker to select an app for multitasking). Perhaps if the drag indicator at the top of Split View and Slide Over apps were dragged down slightly (similar to how dragging up from the Home indicator works to show multitasking) it could expose a panel with a grid of recently used apps that support multitasking (perhaps also with a search and the ability to favorite apps). If the drag indicator were dragged down further, perhaps then the current functionality of releasing the app from its Split View or Slide Over position would remain.
  • Some kind of indication what app has keyboard focus in Split View. And the ability to better Command-Tab between the two apps.
  • When dragging an app into Split View that has a window already paired with another app elsewhere, show the pairing in the view that shows all of the app’s windows so that the windows already paired can be differentiated from the ones not paired.
  • Allow three apps to be run side by side in Split View. Bonus: showing three at a time but allowing more to be added and then slid back and forth like in this mockup from Daniel Korpai.
  • Better Control Center placement. Perhaps it could live in the multitasking app switcher UI as an app card. On iPhone, it would be to the right of the active app. And like how you can swipe the Home indicator right as a shortcut to switch from the active app to the previously active app, perhaps swiping left on it could be a shortcut to show Control Center.
  • Allow third-party apps to add Control Center launcher buttons or controls.
  • Improvements and modernizations in Mail. Here are some basic ideas I had in 2018. If a big focus of Apple is privacy, don’t force people into using questionable third-party email apps. Make the native app better than “good enough”.
  • Sorting options in Reminders lists.
  • An option for the Reminders Today list to either group items by list or show a label with each item noting what list they belong to.
  • More SF Symbol options for Reminders lists.
  • Ability to create smart playlists in Music. Why do I need to use a Mac to do this?
  • Picture-In-Picture on iPhone.
  • Drag and drop from one app to another on iPhone.
  • Ability to selectively restore from an iCloud backup rather than having to restore the entire device. Imagine in iCloud settings being able to browse the contents of backups and selectively and directly restore things from them like a single app that went wonky.
  • Make Apple Watch notifications opt-in instead of opt-out.
  • Searchable emoji keyboard.
  • Keyboard navigation system (and API for developers) to navigate an app with an external keyboard.
  • Global keyboard shortcuts that can be customized to run apps, specific actions in apps (perhaps that would require developers to expose possible actions to a new API), and Shortcuts shortcuts.
  • More robust developer analytics. Apple should provide developers with a robust, privacy-focused analytics framework to use instead of questionable third-party frameworks.
  • Related, more immediate stats and sales info in App Store Connect even if they are a couple hours delayed. Like the above item, Apple should provide more robust reporting and analytics so developers aren’t pushed to using something that could possibly violate user privacy.

So, just a few things on my wish list again! Hah! Here’s hoping some of these things make it into iOS and iPadOS 14!

Indie Sticker Pack

We can’t swap stickers in person this year, so we’re doing it remotely. And we’re inviting everyone to join us.

100+ stickers from 90 indie iOS and macOS developers.

All while helping two good causes: the World Health Organization’s COVID-19 Solidarity Response Fund and the Equal Justice Initiative.

There’s both a physical sticker pack and an iMessage sticker pack available at http://indiestickerpack.com.

I’m so happy to be part of this project with Timery and Partly Sunny and to be among some awesome developers. A huge thank you to Sam Henri Gold and Nathan Lawrence for organizing this and making it happen.

And thank you to Charlie Chapman for making the fantastic promo video.

iOS 13 Wish List

WWDC19

Like last year, in the lead up to WWDC, I’ve been thinking about what new things or updates I’d like to see in the next version of iOS. Many of these items were on my iOS 12 wish list last year but didn’t come to iOS 12, so now I’m hoping they’re coming to iOS 13.

Here’s my list in no particular order:

  • Dark mode all the things! This has been on my iOS wish list for a few years now. But this year feels like the year it’ll happen. Dark mode came to macOS last year, and this year iPad apps are coming to the Mac—which means iOS apps will need to support dark mode. It would seem strange then for iOS not to get dark mode too. In addition to a toggle in Control Center, I would love to be able to toggle dark mode automatically either by screen brightness or by daylight time (which could be scheduled like Night Shift or could use the device location’s sunrise and sunset times).
  • Speaking of Control Center: Better Control Center placement. Perhaps it could live in the multitasking app switcher UI as an app card. On iPhone, it would be to the right of the active app. And like how you can swipe the home bar indicator right as a shortcut to switch from the active app to the previously active app, perhaps swiping left on it could be a shortcut to show Control Center.
  • One more Control Center thing: Allow third-party apps to add launcher buttons.
  • Replace the incoming call screen that takes over iPhone and iPad with a less-intrusive notification banner or something similar.
  • Replace the volume display that covers what’s being watched when the volume is changed with a display in the Status Bar like Apollo and Instagram.
  • An easier way to change the apps in Slide Over and Split View (like how prior to iOS 11 there was an app picker to select an app for multitasking). The Slide Over app and one app in Split View currently have a drag indicator at the top that allows the app to slide left or right or off the screen and allows dragging down to enter or leave Split View. Perhaps if the indicator were dragged down slightly, it would keep the current enter/leave Split View action, but if it were dragged down further, it would expose another panel with a grid of recently used apps that support multitasking. And perhaps apps could be favorited for quick access.
  • Picture-In-Picture on iPhone.
  • Better ways to dismiss modal form sheets.
  • Improvements and modernizations in Mail.
  • Ability to create smart playlists in Music.
  • Bring back the network activity indicator for notch phones.
  • A keyboard shortcut to dismiss Safari View Controller (unless this already exists and I don’t know about it?).
  • Bring back the URL schemes that launched Settings submenus (for example launching into Settings > Personal Hotspot or Settings > Privacy > Location Services).
  • If not those then allow customizing the 3D Touch shortcuts for Settings.
  • On iPhone X/XS, 3D Touch shortcuts on the lock screen when navigating or on a call (curiously they disappear from the lock screen now, so to take a photo, the phone has to be unlocked).
  • Ability to restore a single app or, say, a selection of Camera Roll photos from a backup rather than having to restore the entire device. (Seriously, why is this still a thing?) Imagine in iCloud settings being able to browse the contents of iCloud backups and selectively and directly restore things from them.
  • Make Apple Watch notifications opt-in instead of opt-out.
  • An expanded Shortcuts API. With it, developers could build shortcut actions that accept input and return output. And developers could build what are effectively native Shortcuts actions that can have full access to the app’s functionality and data and can perform actions in the background (like how the Notes actions work) without a URL scheme and bouncing to the app to complete.
  • Searchable emoji keyboard.
  • Low-light camera mode.
  • When deleting an app with an active subscription, display a prompt asking whether or not to cancel the subscription.
  • Ability to have three apps in iPad Split View.
  • Drag and drop from one app to another on iPhone.
  • Spam call filtering. If my phone can display “Scam Likely” when a suspected spammer is calling, I would like the option to have those calls not actually ring my phone and instead arrive silently like notifications can now.
  • Keyboard navigation system (and API for developers) to navigate an app with an external keyboard.
  • Some kind of indication what app has keyboard focus in iPad Split View. And the ability to Command-Tab between the two apps.
  • More robust developer analytics. Since third-party analytics frameworks have repeatedly shown they cannot be trusted, they should need to be approved by Apple. And Apple should provide developers with a robust, privacy-focused framework to use instead. Either should be opt-in for the user.
  • Related, more immediate stats and sales info in App Store Connect even if they are a couple hours delayed. Like the above item, Apple should provide more robust reporting and analytics frameworks so developers aren’t pushed to using possibly questionable third-party analytics librarys.

So, just a few things on my wish list again! Hah! I’m hoping many of these won’t be on next year’s list because they’ll be part of iOS 13. We’ll find out on Monday!

Watching for a Better Notification System

Notifications

One of the things on my iOS 12 wish list last year (that is also on my iOS 13 wish list) was opt-in Apple Watch notifications instead of opt-out. I’m an Apple Watch wearer who only wants taps on my wrist from things I need to act on immediately or soon (for example when I’m on the bus: a notification that my stop is coming up and I need to get off), so only a select few apps are allowed to send notifications. Too many things tapping my wrist gets annoying quickly.

The current system of allowing Apple Watch notifications, though, is not geared toward making this easy. I allow plenty of apps to send notifications on iPhone, and currently that means I also automatically get notifications on my Apple Watch. Nine times out of ten (maybe even 9.5), I don’t also want those notifications on my Apple Watch, so I have to go back to my home screen, find the Apple Watch app, scroll to and select Notifications, scroll scroll scroll to find that app, and toggle the switch off.

For users like me, Apple Watch notifications being opt-out is cumbersome and requires more management than it should.

But what if Apple Watch notifications were instead opt-in? Meaning: by default, apps would not also send notifications on Apple Watch, but if users wanted them to (in my case those one-out-of-ten times), we could allow them to.

How might opt-in Apple Watch notifications work?

One way to accomplish this is in Apple Watch app > Notifications having a switch to set whether or not Apple Watch automatically shows notifications for new apps. To maintain current functionality, it could even be toggled on by default.

Notifications Settings

I could toggle this off, and new apps I downloaded (or redownloaded) and allowed to send notifications would no longer automatically send them on Apple Watch in addition to iPhone—they would only be sending notifications on iPhone. For any apps I wanted to also send Apple Watch notifications, I could manually turn on notifications in the settings below the switch.

But I think a better way to handle this is in the modal when an app is requesting permission to send notifications. Currently, this modal has two options: Don’t Allow and Allow.

NotificationsModal_Current

What if it had a third option if there’s an Apple Watch paired to the iPhone?

NotificationsModal_Update

The phrasing could be improved of course since the label is rather long (or the button made taller to fit two lines of text), but the idea holds: this gives better, more immediate control over if and where I want to see notifications for this app. If I only want notifications on iPhone, there’s an option for that. If I want notifications on iPhone and Apple Watch, there’s an option for that too.

Compared to the current workflow, when I don’t want notifications on my Apple Watch too, this doesn’t require the extra several steps of navigating to and in the Apple Watch app to manually turn off notifications for the app (or manually turning them on if there were an auto switch like in the first example and I did want notifications). I can set where I want to see notifications right then and there.

As someone who only likes a few apps tapping my wrist with Apple Watch notifications and thus must more actively manage what apps can send them, the current opt-out notifications system feels more geared toward users who like all the apps sending all the notifications. An opt-in system, though, could work for both those users and users like me.

iOS 12 didn’t change the notifications workflow, so I’ll be watching to see if a change is on tap for iOS 13.

iOS 12 Wish List

wwdc18

For weeks I’ve been thinking about what I would like to see in iOS 12. I’m a details person, so many of the things on my wish list are tweaks or improvements to more minor aspects of iOS. If Apple really is delaying big iOS features and focusing on smaller improvements for iOS 12, these things on my wish list would fit right in.

Here’s my list in no particular order:

  • Dark mode all the things! (I feel like this has been on my iOS wish list for years now.) Developers can then tie in to the system determining if dark mode should be on or not. Also, dark mode should be toggled manually (perhaps by something in Control Center (though I would be sad to ditch the two-finger swipe up/down gesture in Partly Sunny, Tweetbot, and others)) or toggled automatically either by screen brightness or by daylight time (which could be scheduled like Night Shift or could use the device location’s sunrise and sunset times).
  • Unify the swipe-up gesture on iPhone and iPad. This means iPhone X Control Center isn’t in the top-right corner (hooray!). Perhaps the current implementations of Control Center and App Switcher on iPad and iPhone X could be combined: the new system would look like iPad with Control Center to the right of App Switcher, and it would work like iPhone X. Swiping up would go to the home screen, and swiping up and holding would bring up Control Center and App Switcher. And like how iPhone X works currently, swiping up and to the right at the same time would bring up App Switcher in one action, and swiping up and to the left at the same time would bring up Control Center in one action.
  • Replace the incoming call screen that takes over my iPhone and iPad with a less-intrusive notification banner or something similar
  • Replace the volume display that covers what I’m watching when I change the volume with a display in the Status Bar like Apollo and Instagram
  • An easier way to change the apps in Slide Over and Split View (like how prior to iOS 11 there was an app picker to select an app for multitasking). The Slide Over app and one app in Split View currently have a drag indicator at the top that allows the app to slide left or right or off the screen and allows dragging down to enter or leave Split View. Perhaps if the indicator were dragged down slightly, it would keep the current enter/leave Split View action, but if it were dragged down further, it would expose another panel with a grid of recently used apps that support multitasking. And perhaps apps could be favorited for quick access in a separate section. (I‘ll mock this up, but I’ll see what WWDC brings first.)
  • PIP on iPhone
  • Group FaceTime calls
  • Use iPhone 8 size for iPhone apps running on iPad instead of iPhone 4 size
  • Better ways to dismiss modal form sheets
  • Improvements and modernizations in Mail
  • Ability to create smart playlists in Music
  • Bring back the network activity indicator for iPhone X
  • A keyboard shortcut to dismiss Safari View Controller (unless this already exists and I don’t know about it?)
  • Bring back the URL schemes that launched Settings submenus (for example launching into Settings > Personal Hotspot or Settings > Privacy > Location Services)
  • If not those then allow customizing the 3D Touch shortcuts for Settings
  • 3D Touch on app icons working as soon as iPhone is unlocked (currently there’s a couple second delay while the apps animate into position where a 3D Touch press on an icon activates jiggly mode to rearrange instead of activating 3D Touch shortcuts and widgets; the same press a second later works as expected.)
  • On iPhone X, 3D Touch shortcuts on the lock screen when navigating or on a call (curiously they disappear from the lock screen now, so to take a photo, the phone has to be unlocked)
  • Messages recognizing a contact sent a message from another address (from email instead of phone number for example) and keeping the message in a single thread from the contact instead of a separate one. macOS does this. iOS should too.
  • Ability to restore a single app or a selection of Camera Roll photos from a backup rather than having to restore the entire device. (Seriously, why is this still a thing?) Imagine in iCloud settings being able to browse the contents of iCloud backups and selectively and directly restore things from them.
  • Make Apple Watch notifications opt-in instead of opt-out. Currently, if on iPhone I allow an app to send notifications, I automatically get notifications on my Watch too. Nine times out of ten, I don’t want notifications on my Watch too, so I have to manually turn them off every time. I would like either a setting in Watch app to make notifications opt-in (meaning if I wanted Watch notifications too I would have to manually turn them on) OR on the iPhone app’s modal asking for permission to send notifications another choice that deals with Watch notifications. For example: “This app would like to send you notifications” with the choices of “Don’t Allow”, “Allow on iPhone”, and “Allow on iPhone and Apple Watch”.

So, just a few things on my wish list! Hah! What did I miss? No doubt as soon as I hit the publish button on this, I’ll think of something else. I hope at least a few of these are addressed in iOS 12—especially if it’s focused on polishing what’s already in iOS. We’ll find out on Monday!

Not Mailing It In

Mail

A few months ago, I switched back to the default iOS Mail app (as seen on my home screen) after using third-party email apps for a while. I’m not an email power user (I don’t snooze my emails for example), so Mail is good enough for me.

There are a few things, though, that would make Mail more useful for email users of all levels and would help Mail better fit in the modern iOS ecosystem. Here are four easy things and one more advanced thing.

1.) Safari View Controller

When I tap a web link in an email, instead of Mail kicking over to Safari, the link should open right inside Mail using Safari View Controller. Perhaps this could be an option in Settings that is turned off by default so less tech-savvy users don’t have to know about it, don’t have to use it, and don’t have to be confused how to get back to their mail when they open a link in Safari View Controller.

Safari View Controller

2.) Returning to the inbox after acting on a message

Currently, when I’m viewing an email and I delete it or file it away to an archival folder, I’m shown the next or previous email from my inbox. I don’t necessarily want to act on it or mark it read (and then have to immediately mark it unread), so I would like an option to go back to my inbox after acting on a message. Perhaps this could be an option in Settings too.

Actions

3.) Account avatars

To help in quickly browsing an inbox, Mail should show avatars for each email in the list like each contact has in Messages. The avatar would be useful to visually process who the email is from.

Avatars

Currently when viewing an email, an avatar appears in the header information along with the from and to details. This avatar should be in the list view as well.

Message avatar

Additionally, while senders who are saved in Contacts use the image I have set for them, senders not in Contacts should use the domain’s favicon (if the email is from a company) or even the sender’s Gravatar instead of the sender’s initials as it works now (unless neither are available).

4.) Share sheet

For whatever reason, email messages can’t be acted on with the share sheet. I can share websites from Safari, notes from Notes, and locations from Maps, but why not emails from Mail?

Share

Not that I want to send my email to someone through the share sheet, but I might want to share it to another app. For example, if someone sends me a link to an article or video, I may want to send it to Pocket to view later. Currently, I have to tap the link, get kicked over to Safari, save the thing to Pocket with the share sheet, close the Safari page or tab, and go back to Mail. A Safari View Controller would save a few steps here, but being able to use the share sheet right in the email would save even more.

5.) Rules / smart inbox?

This one I realize could be considered more of a power-user feature, but I feel even casual email users could benefit from this too. While avatars for each email in the inbox list would be a small change to aid in triaging email, a smart inbox would be a big change. This could be something as simple as having the ability to set up rules which would work like they do in desktop email clients: if an incoming email matches a rule or set of rules (for example if it’s from a particular sender), it gets filtered to a particular folder.

But perhaps this could also be something more advanced like what Spark does: emails are grouped into predefined categories so more important emails are together at the top, and less important ones are together at the bottom.

SmartInbox

Mail already allows setting up VIPs, so perhaps one of the categories is VIP emails, another is other non-newsletter emails, and another is newsletter emails. There’s already some newsletter detection happening since Mail offers a link to unsubscribe, so at the very least why not group all the newsletter emails together so they don’t have the same weight as emails from friends and family. And if friends and family have their own MailChimp newsletters they’re sending me (or the automatic grouping missed something), there should be a way to mark the email as a particular type so it gets grouped correctly in the future.

A full modernization of Mail should also include the ability to snooze emails, create and save smart searches, and set email to send at a later date, but these five things would be a good start to making Mail more useful for both casual and more advanced users.

Mail feels like it’s good enough for many iOS users—me included—but that doesn’t mean it can’t be better. I hope a new version of iOS brings some updates to Mail so parts of the app don’t feel so, well, mailed in.

Gesturing for User-Friendliness

With my iPhone X in my hand, I’m checking the weather for my current location in Partly Sunny, and I want to see my full locations list. What do I do? I swipe from the left edge of the screen to go back. I’m done checking the weather, and I want to go to my home screen. What do I do? I swipe up from the bottom.

I open Photos, swipe through my Camera Roll, favorite some photos, and now I want to go to the Favorites album. What do I do? I swipe down on the current photo to get back to the Camera Roll, I swipe from the left edge to go back, and now I can tap on the Favorites album. With all that navigating, I didn’t press any buttons. I only used gestures.

Gestures are an increasingly important part of iOS. Whether they’re a simple tap to dismiss, a swipe to go back, or a pinch to close, gestures not only offer shortcuts, they offer increased usability.

There is one particular place in iOS that hasn’t been given some gesture love but dearly needs some: modal form sheets. No doubt you’ve seen and interacted with form sheets in iOS before. On iPhone, they slide up from the bottom of the screen and fully cover the other view you were interacting with. On iPad, they slide up from the bottom and occupy a portion of the width and height of the screen. The area of the other view not covered by the form sheet is dimmed underneath.

App Store Apple ID

By default, when modal form sheets are displayed, there is one way to dismiss them: the Done button in the top-left or top-right corner. This can make dismissing form sheets user-unfriendly. On iPads, this button occupies a tiny portion of the screen—meaning there’s just a tiny portion of the screen that can dismiss the modal. And on taller iPhones, reaching for the Done button can be challenging. How can dismissing form sheets be made easier? Gestures!

Before we get to that, let’s define a few things. First, what’s a modal? In its basic definition, a modal is a view that covers up another view and prevents interaction with that other view (the parent view) until an action occurs on the modal view. What are some examples of modal views?

In iOS, there are a variety of modal views. There are alerts (centered on the screen with usually a message and one more more buttons), action sheets (anchored to the bottom of the screen and usually show two or more choices to act on something), and activity sheets (commonly know as “share sheets” to copy, send, or share content).

Modals

These types of modal views are defined by iOS. One more type of modal view is defined by developers. When showing (called “presenting” in iOS parlance) a custom view—say a settings view with options and submenus—developers can choose to present the view modally. By default, the view will slide up from the bottom of the screen and cover the view the user was interacting with.

When presenting a view modally, developers can choose a few styles for the modal view. From the iOS Human Interface Guidelines, the styles are “full screen”, “page sheet”, and “form sheet”. On smaller screens, page sheets and form sheets cover the whole screen, but on larger screens, they cover a portion of the screen. The portion of the parent view not covered is dimmed underneath.

ModalPresentations

I’m going to focus specifically on form sheets though the improvements I discuss would also apply to page sheets and mostly to full screen modal views too.

What are some examples of form sheets? In App Store, viewing your Apple ID account presents a form sheet.

App Store Apple ID

In Settings > Apple ID, tapping “Set Up Family Sharing” presents a form sheet.

Family Sharing

And in Partly Sunny, viewing settings, editing the locations list, and viewing radar all present a form sheet.

Partly Sunny settings

Partly Sunny edit list

Partly Sunny radar

So how can dismissing form sheets be made easier with gestures? Here are two ways.

First, on iPad, tapping anywhere outside the form sheet where the parent view is dimmed underneath should dismiss it. Here’s the current active area of the screen where tapping will dismiss the form sheet: just the Done button.

Current tap area

And here’s what the active area to dismiss the form sheet should be: both the Done button AND the space outside the view (the status bar is still reserved for its interactions like scrolling a view to the top).

Proposed tap area

The space outside the form sheet currently is a touch dead zone; the dimmed area merely prevents taps to the view underneath. Why not use this space to dismiss the form sheet?

Tapping outside a view to dismiss it already exists elsewhere in iOS—even for dismissing modal views. When an action sheet or activity sheet is presented, tapping above or outside the buttons or view will dismiss the sheet.

Tap outside action sheet

In the iOS 11 App Store, tapping a Today story tile or list tile opens a sort-of page sheet where, on iPad, tapping to the left or right of the view in the blurred area will dismiss the view.

Tap outside App Store tile

This example isn’t a modal view per se, but it applies. On iPad when pulling down on a Messages notification banner to reply to the message, tapping to the left or right of the messages view in the blurred area will dismiss the view.

With the latter two examples, perhaps these relatively new interaction methods will inform an updated modal system in a future iOS version.

In the meantime, there’s a workaround to capture taps outside the form sheet and have them dismiss the modal. This Stack Overflow thread discusses the solution. Since I first discovered this workaround, there’s been an update for Swift 4. I’ve reproduced and tweaked it here:

import UIKit

class FormSheetViewController: UIViewController, UIGestureRecognizerDelegate {
    // gesture recognizer to test taps outside the form sheet
    var backgroundTapGestureRecognizer: UITapGestureRecognizer!
    
    // dismiss the modal and perform any other related actions (e.g. inform delegate)
    func done() {
        dismiss(animated: true, completion: nil)
    }
    
    // check if the tap was outside the form sheet
    @objc func handleTap(_ sender: UITapGestureRecognizer) {
        if sender.state == .ended {
            let location: CGPoint = sender.location(in: view)
            
            // if outside, dismiss the view
            if !view.point(inside: location, with: nil) {
                view.window?.removeGestureRecognizer(sender)
                done()
            }
        }
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        // set up gesture recognizer
        if backgroundTapGestureRecognizer == nil {
            backgroundTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
            backgroundTapGestureRecognizer.delegate = self
            backgroundTapGestureRecognizer.numberOfTapsRequired = 1
            backgroundTapGestureRecognizer.cancelsTouchesInView = false
            view.window?.addGestureRecognizer(backgroundTapGestureRecognizer)
        }
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        
        // remove gesture recognizer
        if backgroundTapGestureRecognizer != nil {
            view.window?.removeGestureRecognizer(backgroundTapGestureRecognizer)
            backgroundTapGestureRecognizer = nil
        }
    }
    
    // don't forget the delegate method!
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }
}

Partly Sunny uses this workaround, so in any of the previously mentioned form sheets, tapping outside the view will dismiss it.

Tap outside Partly Sunny settings

Tap outside Partly Sunny edit list

Tap outside Partly Sunny radar

This works for iPad, but what about iPhone where the form sheets cover the full screen and there isn’t any dimmed area? The second way to make dismissing form sheets easier is dragging. Once the view is dragged down a certain amount, the view should dismiss. This would work on iPads too.

Drag to dismiss

This idea of dragging down to dismiss something exists elsewhere in iOS. In Photos, when tapping on a photo in the Camera Roll or an album, the photo goes full screen. Tapping the back button goes back to the album, but also dragging down on the photo will shrink it and fade it to reveal the album—in other words, dragging down dismisses it.

Drag photo to dismiss

While Maps doesn’t use traditional modal views, the system it uses allows for dragging the cards down to get back to the content underneath.

Drag map card to dismiss

Third-party apps have started to employ dragging down modals to dismiss as well. I’m not sure where I first saw it, but I know of several apps that have this functionality. Partly Sunny is one of them. In any form sheet, dragging down on the view will dismiss it. Here it is in action:

Drag to dismiss

I added a sort-of guard to help prevent accidental dismissals. If you scroll the view and then scroll back to the top, if when you reach the top you’re still dragging down (so that the view is doing the iOS rubber-banding effect), the view won’t dismiss. But once you release, if you drag down again, the view will dismiss. I didn’t want anyone to be casually scrolling up and suddenly the view disappeared on them. Here’s what that code looks like added to the code above:

import UIKit

class FormSheetViewController: UIViewController, UIGestureRecognizerDelegate {
    // scroll view must be dragged down this distance to be dismissed
    var scrollDistanceToDismiss: CGFloat = 50
    
    // tracks whether or not the scroll view should be dismissed if dragged down from top boundary
    var dragScrollViewToDismiss = true
    
    // tracks whether or not dragScrollViewToDismiss is ready to be set
    var dragScrollViewToDismissIsReady = false
    
    // stores the initial offset of the scroll view
    var scrollViewInitialOffset: CGFloat = 0
    
    // stores if the scroll view was loaded; guards overwriting scrollViewInitialOffset
    var scrollViewLoaded = false
    
    
    
    // gesture recognizer to test taps outside the form sheet
    var backgroundTapGestureRecognizer: UITapGestureRecognizer!
    
    // dismiss the modal and perform any other related actions (e.g. inform delegate)
    func done() {
        dismiss(animated: true, completion: nil)
    }
    
    […]
}

extension FormSheetViewController: UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        // store initial content offset of scroll view
        if !scrollViewLoaded {
            scrollViewLoaded = true
            scrollViewInitialOffset = scrollView.contentOffset.y
        }
        
        if dragScrollViewToDismiss {
            // if scrolling up, cancel dismiss
            if scrollView.contentOffset.y - scrollViewInitialOffset > -scrollView.contentInset.top {
                dragScrollViewToDismiss = false
                dragScrollViewToDismissIsReady = false
            }
            // if scrolling down, dismiss view controller
            else if scrollView.contentOffset.y - scrollViewInitialOffset <= -scrollView.contentInset.top - scrollDistanceToDismiss {
                done()
            }
        }
        
    }
    
    // if scroll view released beyond top boundary, set dismiss ready
    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        if scrollView.contentOffset.y <= -scrollView.contentInset.top {
            dragScrollViewToDismissIsReady = true
        }
    }
    
    // if scroll view drifts beyond top boundary, set dismiss ready
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        if scrollView.contentOffset.y <= -scrollView.contentInset.top {
            dragScrollViewToDismissIsReady = true
        }
    }
    
    // if scroll-to-top activated, set dismiss ready
    func scrollViewDidScrollToTop(_ scrollView: UIScrollView) {
        dragScrollViewToDismissIsReady = true
    }
    
    // when tapping again on scroll view, set dismiss active
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        if dragScrollViewToDismissIsReady {
            dragScrollViewToDismiss = true
        }
    }
}

Form sheets and modal views as a whole are important and useful tools for iOS app developers. Dismissing them could be a bit more user-friendly, and gestures—tapping outside the view and dragging down on the view—can accomplish that. I hope a future version of iOS gives developers out-of-the-box tools to do both and thus standardizes these interaction methods.

Until then, developers can use their own solutions like those above. If you have suggestions how I can improve tapping outside the view or dragging down on the view, please let me know. Now it’s time for me to swipe down on this and get back to work.

iPhone X

iPhone X

You all weren’t kidding how crazy good iPhone X is. The device—especially the screen—is simply marvelous. Here are a few initial thoughts:

I don’t miss the home button. The swipe gesture is far superior. I just wish Control Center were integrated into that gesture. (Perhaps Control Center could be activated by continuing the swipe up gesture past activating the app switcher.)

Face ID is magic. I keep expecting there to be something else I need to do, but it just does its thing without me even thinking about it.

I do miss the 3D-Touch app-switcher gesture on X. The left/right swipe of the home indicator is fine but not as convenient.

I’m very curious for the future. What will iPhone X2 look like? What will Apple take from X to the rest of their product line?

Well done to everyone at Apple who brought us iPhone X. It’s the future, and it’s crazy good.

Workouts

From this Apple Support tweet, I’m mesmerized by these animations. Does this little guy have a name? Does he ever get tired? What does he do when he’s not exercising?

Improving the iOS Incoming-Call Screen

My friend is coming into town, and he messaged me to see about meeting up. So I start typing a response. Type type type. While I’m typing, I’m suddenly interrupted, I lose control of my screen, and I can’t finish what I was doing. What happened? I received a phone call.

Or maybe I’m looking up which train I need to take home to leave me enough time before I have to be on my way somewhere else. And bam. Incoming-call screen.

Or maybe I’m editing a video and trying to precisely trim the end of it. And bam. Incoming-call screen.

Whatever the task, the incoming call commandeers my screen and forces me out of the task I was performing.

Because the device is a phone and making and receiving calls is a primary function, let’s assume the incoming-call screen is here to stay. So how can the screen be just a bit less intrusive? I have an idea.

Let’s say my friend John Appleseed is coming into town and wants to meet up. A text conversation might go something like this:

JA: Hey, I’m in town tomorrow. Care to meet up? I should have time in the afternoon.

Yeah, so I just checked, and I’ll have the afternoon free. So I’m up for meeting if you are.

JH: Of course! I can let you know when my appointments wrap up. And then we can grab some food. Perhaps a movie too?

JA: Yeah, that all sounds good. What time are you thinking?

I begin typing my response:

chat

…and bam. Incoming-call screen. Mom is calling:

Current incoming-call screen

On the incoming-call screen, I have a few options to deal with the call. I can accept the call, I can decline the call and send the caller straight to my voicemail, I can send the caller a text message, and I can set a reminder (with the last two requiring further steps). With the hardware side buttons, I have another option: silence the ringer. Although my phone stops sounding or vibrating, the call continues and after a period of time automatically goes to my voicemail.

When I receive a call I can’t (or in some cases don’t want to) take, I choose the latter. With the ringer-silencing option, the caller may think I’m unavailable. Or if the caller is an unrecognized number like from a marketing call, the caller may think the number isn’t actively used. If I decline the call, it sends the caller directly to voicemail letting them know I’m on the other end and deliberately ignoring them.

Choosing the latter, though, means I have to stare at the incoming-call screen until the call automatically goes to voicemail when I just want to get back to the task I was performing.

But what if I could dismiss or minimize the incoming-call screen without taking or declining the call? That’s what I propose.

When a FaceTime call fails, iOS presents a screen with three buttons: “Call Back”, “Cancel”, and “Leave a Message”:

FaceTime unavailable

Let’s take that middle button and add it to the incoming call screen. So now when someone calls, the screen would look like this:

New incoming-call screen

If I tap the new “Minimize” button, the screen would animate out of view while a notification banner would animate on:

chat

Like when I press the volume buttons on the side of my iPhone, the ringer would silence, and the call would continue until it automatically went to my voicemail. But unlike when I press the volume buttons, I could resume the interrupted task.

Because phone calls—and the incoming-call screen—get an intrusive level of priority, the banner notification would as well. While the call continued until it automatically went to my voicemail, the banner would remain at the top of the screen.

While other banner notifications can be swiped up to dismiss them, this one would remain pinned to the top. If I tapped the notification, I would return to the incoming-call screen. Though I wouldn’t be able to swipe up on the notification to dismiss it, I would be able to swipe down on it to reveal action buttons:

chat

Once the call automatically went to voicemail, the banner notification would disappear like normal as I continued my task.

Ideally, I would like iOS to ditch the incoming-call screen altogether and just present an actionable banner notification when I receive a call (like other notifications, it would be customizable to appear as an alert box instead). Maybe the banner would look something like this:

chat

This way, there’s a far smaller interruption of my task. More of a distraction rather than a full interruption. The decline or accept buttons on the banner would do exactly that. If I couldn’t or didn’t want to take the call, I could still press the volume buttons on the side of my iPhone to silence the call and let it automatically go to voicemail. And if I swiped down on the banner, I could chose to be reminded or send the caller a message:

chat

But assuming the incoming-call screen is here to stay and an actionable banner notification isn’t in iOS’s future, this new workflow could be a way to dismiss the screen without telling the caller I’m ignoring them.

Because I promise I’m not ignoring you, mom.

incoming call screen

Improving iPad Multitasking

Multitasking on iPad received an enormous update in iOS 9 in the form of Slide Over and Split View. But however advanced and, well, pretty cool both are, the execution of Slide Over has puzzled me since I first played with it. The list of apps available for multitasking is presented in an excessively roomy fashion—meaning finding the app you’re looking for can be unnecessarily difficult.

Jason Snell wrote this week about a few ways to improve iPad multitasking. After reading the article and finding myself in agreement, I mocked up some ideas last night based on his suggestions. Let’s start.

Here’s what Slide Over looks like currently on an iPad mini.

Current Slide Over

There are four (FOUR!) apps visible in the menu. Finding the app you’re looking for can result in scroll after scroll after scroll.

Jason wrote, “A denser design that presented the app list in a more straightforward manner would be welcome, especially when the list is long.” So what might that look like?

Compact Slide Over

I made the buttons a comparable size to a list view for familiarity, but perhaps they could be a smidge bigger. Also, I’m designing for an iPad mini, and I realize what looks good on the mini might not look good on the pro, so perhaps some dynamic resizing could be in order depending on the device.

I think this is already an improvement. Sure the list is still long (a product of having so many great apps!), but the compact nature reduces the amount of scrolling necessary.

In addition to the “denser design”, there is a search bar at the top. Don’t want to scroll to find the app you’re looking for? Search for it instead.

Also of note is the button shape. I retained the rounded rectangles with the idea of keeping a similar shrink-down animation when closing an app in Slide Over.

Now that more apps are visible, finding the app you want is easier. But what if there are a few apps you want quick access to in Slide Over. Why not pin them as Jason suggests? Tap “Edit Favorites” to enter edit mode. App icons and names slide over to reveal a star outline.

Add favorites

Tap the star, and the app animates into your favorites list.

Add favorites

(Since Twitter’s favorites and stars have recently found themselves unemployed, I put them to work here.)

Add favorites

Grips on the right of the buttons give you the ability to reorder your favorites as you see fit. Tapping a star on a favorited app would animate it back to the list of unfavorited apps. Tap “Done” to exit edit mode.

Add favorites

Now we have a more compact design, the ability to search for an app, and the ability to pin apps for quick access.

The final bit of functionality to add is the ability to save app pairings—app buddies as Jason called them. The idea here is to have quick access to two apps you like to use together in Split View. The current system, as he describes, can make getting those two apps together a pain. So how about favoriting an app pairing? In edit mode, tap “Add App Pairing” to open a popup with the list of available multitasking apps.

Add app pairing

Select two apps, tap “Done”, and Split View will now remember you want those two apps together.

Add app pairing

I imagine when selecting a paired favorite from the list, an elegant animation would animate the current app off the screen and the two selected apps into position. And tapping on the star of an app pair would simply delete the pairing.

Slide Over redesigned

So there you have it. While iOS 9 introduced great new multitasking tools, selecting apps to multitask with can be a chore. But a few tweaks and some new bits of functionality could go a long way to improving iPad multitasking.

Slide Over redesigned

Singing the Apple Music Blues

Lost in recent Apple Music discussions is how the usability of navigating on-device music has been unnecessarily over-complicated. Apple’s focus on Apple Music the service has seemingly come at the expense of Apple Music the app.

Along with Apple Music the service, iOS 8.4 brought a new organization scheme to Apple Music the app. Previously, the bottom navigational tabs in the app were customizable. I could choose four of Playlists, Albums, Composers, Genres, Songs, Compilations, Artists, and Radio.

Customizable Tabs

To jump from one list of items to another involved a single tap (provided both were present in the customizable tabs). For example, say I wanted to navigate from my list of composers to a specific album. Let’s say I want to listen to a track on the Tomorrowland score. Before 8.4, I would tap the Albums tab, tap the T in the letter slider along the righthand side, scroll to reveal Tomorrowland, and select the Tomorrowland album. Four steps.

Navigating in 8.3

In 8.4, that process has become more complicated. To navigate from composers to Tomorrowland, I tap the status bar to scroll the list of composers to the top, tap the sort button, select Albums, scroll the Recently Added section out of the way, tap the T in the letter slider along the righthand side, scroll to reveal Tomorrowland, and select the Tomorrowland album. Seven steps.

Navigating in 8.4

The steps to navigate are nearly doubled. I could search for the album or track I want to listen to, but I shouldn’t have to rely on search to navigate. While Apple Music the service has made streaming favorite artists and albums easier, Apple Music the app has made navigating on-device artists and albums harder.

In Settings > Music, if I toggle off “Show Apple Music”, the “New” and “For You” tabs in Music are replaced with a Playlists tab.

Toggle off Show Apple Music

And in Settings > General > Restrictions, if I toggle off “Apple Music Connect”, the Connect tab in Music disappears.

Toggle off Apple Music Connect

Why make customizing this row of tabs buried and convoluted especially since in the previous version of the app this customization was forefront and simple?

Navigating my music isn’t the only frustrating new thing about Apple Music the app. The Now Playing view features album art positioned flush against the top of the screen. This top-heavy design makes the whole view unbalanced. And the album art’s new position means the status bar covers the art—making for situations were the status bar is illegible.

Now Playing view

While the new Apple Music the app has become fraught with usability frustrations, the app does have two new features in particular that are welcomed additions.

First is the Up Next feature similar to iTunes on the Mac to show all the upcoming tracks to play. This is especially helpful to create an on-the-go playlist that iPods of yesteryear could create. Here, I can reorder, remove, or add tracks to the currently playing list of tracks.

Up Next

Also of note is the ability to add the currently playing track to a playlist. If I am listening to a particular track and think, “Gee, this would fit really well in X playlist”, I can immediately add the track to said playlist by tapping the ellipsis button and “Add to a Playlist…”. Previously, I would have to browse to the playlist, tap on Edit, tap +, and find the track in the library.

Add to Playlist

While these two new features are great usability additions to Apple Music the app, they don’t overcome the larger usability frustrations of the redesigned app. These frustrations are enough to have me experimenting with alternative music players. I’m hoping a future version of Apple Music the app restores easy customization of the tabs—and thus also restores the superior usability of the old app.

Apple “No’s” Best

Here’s a post about something Apple has done recently that isn’t regarding pastel colors or flat design. Apple’s new “Designed by Apple in California” ad:

This is it.
This is what matters.
The experience of a product.
How it makes someone feel.
When you start by imagining
What that might be like,
You step back.
You think.

Who will this help?
Will it make life better?
Does this deserve to exist?
If you are busy making everything,
How can you perfect anything?

We don’t believe in coincidence.
Or dumb luck.
There are a thousand “no’s”
For every “yes”.
We spend a lot of time
On a few great things.
Until every idea we touch
Enhances each life it touches.

We’re engineers and artists.
Craftsmen and inventors.
We sign our work.
You may rarely look at it.
But you’ll always feel it.
This is our signature.
And it means everything.

Designed by Apple in California.

I cringed when I read that for the first time. Certainly not over the sentiment. Over the apostrophe. Did Apple commit the grammar sin of using an apostrophe for pluralization? No, and here’s why.

Apostrophes are used for omissions (e.g. “can’t”, short for “cannot”, or “Oakland A’s”, short for “Oakland Athletics”) and possession (e.g. “the dingo’s last meal”). Not, not, NOT for pluralization (e.g. “1900’s”, “DVD’s”, or “the Hribar’s”). So what’s going on with that “no’s”?

Turns out, if you have more than one “no”, you have “noes”. And that means the apostrophe isn’t an attempt at pluralizing “no”—it’s omitting the ‘e’ in “noes”.

So, technically, “no’s” is correct. I’m guessing someone at Apple decided “no’s” looked less awkward than “noes”.

While “no’s” still does look awkward and the line probably could’ve been rewritten to avoid the issue altogether, the apostrophe usage in the ad is technically correct.

And thus concludes your grammar lesson for the day.

Improving iTunes 11 Expanded View

After installing iTunes 11 this past weekend, I quickly developed a sour opinion of the design of the expanded/open “folders” of TV shows. Bothered enough by these issues, I attempted to fix them. (Click any photo below for a larger view.)

This is what an open folder for content purchased on iTunes looks like:

And this is what an open folder for content that was digitized and imported (sorry, Library of Congress) looks like:

Here are some of my issues:

  • What’s with all the colors? I’m sure an iTunes engineer is extremely proud of the algorithm he or she developed to lift colors from album art and assign them to text and backgrounds (and rightfully so), but yikes! iTunes preferences offers a checkbox to disable the colors, but then you lose the big album art.
  • Speaking of album art, yikes! Why the edge fades and decreased opacity?
  • Why are the season buttons tucked away in a corner almost blending into the album art? As they serve a kind of important function (you know, showing more content), shouldn’t they be in a more prominent place?
  • Why why why when switching seasons does the album art for that season not display? In this expanded view, only the art for the first available season of the show is displayed.
  • Is the close button really necessary? And why is the spacing to the right of the season buttons different than the spacing to the left of the close button?
  • How about all that text? For imported content, there’s not much, so compared to purchased content, the text is drowning in negative space. And those horizontal divider lines between episodes? They’re so transparent they might as well not even be there.
  • Purchased content displays the episode’s air date between the episode number and episode length. But for imported content, this data cannot be entered (so far as I know), so we’re left with a hole between the episode number and length.

What I propose: chuck the colors, move the season buttons, create a better album-art display, and reformat the text.

Imported content would look like this:

Switching seasons would display the proper art:

Purchased content would look like this:

I think these changes offer a cleaner, better organized display of content. And the design elements here (the bars, “3D” album art) fit in with existing iTunes design elements. (Thanks to Neven Mrgan for inspiring the art.)

In addition to design nitpicks, I have a functionality nitpick, too, with TV shows. Season two of Breaking Bad in its current iTunes display looks like this:

When you scroll down, you lose a way to quickly identify what you’re looking at:

What season is this again? When you scroll down, why not have the show/season header lock to the top of the screen until the last episode pushes it out of view? Just like headers in scrollable lists on iOS devices work.

The redesigned Breaking Bad season two:

What it would look like after scrolling with the title/season bar locked to the top:

In addition to giving a quick visual identifying what season you’re browsing, you can also quickly switch seasons. That episode you were looking for wasn’t in season two? No problem. Click another season in that locked header, and iTunes would scroll to the top of the expanded view and switch to that season. In the current setup, you’d have to scroll back up yourself and find those tucked-away season buttons over by the album art to switch to another season.

Overall, the expanded views of TV shows feel like they were rushed to completion. The design needs improving, and there are numerous bugs when viewing and editing info in seasons other than the show’s first available season (in building these examples, I experienced many WTF moments in iTunes). Here’s hoping we get some improvements soon.

(P.S.: Yeah, I like the Golden Girls. Thank you for being a friend and not judging me.)

Pull-to-Refresh in iOS Safari

Based an idea my friend Jon Nagle tweeted, here’s a mockup of how pull-to-refresh could work in iOS Safari:

(And for those times where obsessive refreshing is necessary, this would certainly be more fun than feverishly tapping a tiny button.)

The Old New iPad

Apple broke the rules today. Well, Apple broke its rule today. Since the release of the original iPhone, Apple followed a yearly release cycle with both its iPhones and iPads. Apple had an unwritten rule stating consumers were safe to purchase an iOS device knowing the next model wouldn’t be released for another year.

But that ended today with the refresh of “the new iPad” that was released in March. Seven months after it was released, it was not only made obsolete, it was retired. It didn’t become the cheaper, previous model for sale; it was dropped entirely.

How is that supposed to make those of us who bought “the new iPad” feel? Angry? Confused? Duped? I feel all of the above. I’ve read numerous tech writers exclaim I have no right to be upset that Apple released something better and I have every right to buy that new thing or not.

I don’t think this situation is that simple. Again, the “old” “new iPad” is no longer for sale. Gone. Apple is selling the iPad 2, the iPad 4, and the iPad mini—not the 3, 4, and mini. The 3 is dead. Apple sold us a device they had every intention of discontinuing several months after it was released.

So here’s what I propose. Just months after the original iPhone was released, its price was dropped $200 for the holidays. Early adopters, rightfully upset at this, were given a $100 credit. Apple should do something similar for iPad 3 owners—whether they bought it seven months ago or last month. Perhaps an Apple or iTunes credit isn’t the best route. So how about the option to trade in iPad 3 for iPad 4 plus an upgrade fee? I’d pay $100-$150 to upgrade my iPad. Plus, Apple could then sell my iPad 3 as a refurbished device. Everyone wins!

Wishful thinking. I know. Especially since there hasn’t been, to my knowledge, much uproar over this situation. In his letter after the original-iPhone incident, Steve Jobs wrote, “We need to do a better job taking care of our early iPhone customers as we aggressively go after new ones with a lower price. Our early customers trusted us, and we must live up to that trust with our actions in moments like these.”

Apple should extend that same spirit of goodwill to iPad 3 owners.

How To Set Up Gmail As an Exchange Account on iOS to Enable Push Access

Today, I learned Gmail can be set up as a Microsoft Exchange account in the iOS Mail app to enable push email-access. With push, you’re instantly notified when a new email arrives—no more having to wait for Mail to poll the Gmail server every 15 minutes.

Megha Bassi at Simon Blog posted a tutorial back in March 2011, and that’s where I learned how to set up Gmail Exchange. Below, I’ve updated the screenshots for iOS 5 and included a couple extra steps (like a fix for Mail to delete emails instead of archiving them). (Note: I only sync my mail from Gmail, not contacts or calendars, so this tutorial only covers mail.)

Setup Instructions

On your iOS device, launch the Settings app and go to Mail, Contacts, Calendars:

If you’ve previously set up your Gmail account with the Gmail option, go ahead and delete the account:

Next, on the “Mail, Contacts, Calendars” screen, tap “Add Account…” and select Microsoft Exchange:

You’ll be brought to the Exchange screen:

Enter the following credentials:

Email: your Gmail address
Domain: leave this blank
Username: your Gmail address
Password: your password
Description: the label for this account

Tap Next. After your account is verified, an additional “Server” field will appear:

In the Server field, enter: m.google.com. Tap Next, and you should see a bunch of checkmarks:

Next, select which services you want to sync:

Tap Save, and your Gmail Exchange account will be added.

In the settings for the account, there’s one more option you may wish to change: “Mail Days to Sync”.

By default, the Exchange account only syncs the last three days of mail, but there are other options. Tap “Mail Days to Sync” to select a new sync range:

If your Gmail account is your default mail account, back in the “Mail, Contacts, Calendars” screen, scroll down to “Default Account” and reselect your Gmail account:

Also, make sure you have push activated (it should be by default). In the “Mail, Contacts, Calendars” screen, under the list of accounts is “Fetch New Data”. Tap this option and make sure push is on:

To verify your Gmail Exchange is using push, scroll down, and tap on “Advanced” to see what each account is using:

So now Mail is set up to use Gmail through an Exchange account. In this setup, the delete button in the Mail app by default archives your mail to your “All Mail” folder instead of moving the mail to the trash. If you’re okay with that, then you’re done. Enjoy your push Gmail. If, though, you want to fix that and be able to actually delete emails, there’s one more step.

Launch Safari and browse to m.google.com/sync. If you aren’t logged in, you’ll be prompted to. Next, you’ll a list of your iOS devices that use Google services:

Select the device you’re on. On that device’s settings page, check the box to “Enable ‘Delete Email As Trash’ for this device”:

And that’s it. Now your Gmail uses push, and the Mail app delete button deletes. Enjoy!

Apple TV Needs the Jiggles

Along with yesterday’s announcement of the third-generation iPad came the announcement of the third-generation Apple TV. And with this new Apple TV comes a new interface—an interface available to second-generation Apple TVs as well.

apple tv menu

Apple TV has been inspired by iOS app icons. Something else it can be inspired by is app rearranging.

Previously, the Apple TV main menu looked like this:

apple tv menu

I primarily use my Apple TV for two things: streaming content from my iTunes library and streaming content from Netflix. Since Apple TV remembered the last menu I used, whenever I started up Apple TV, either my iTunes library or Netflix was selected. Navigating to the other was simple. If my iTunes library was selected in the Computers menu and I wanted to watch something on Netflix, using the Apple TV remote, I pressed left to navigate to the Internet menu and then select to launch Netflix. Two clicks.

Here’s what the full Apple TV main menu looks like now:

apple tv menu

The scenario I described now has more steps. If my iTunes library is selected (the Computers app now) and I want to watch something on Netflix, I press down, left three times, and then select to launch Netflix. Five clicks.

What was press, move thumb, press is now press, move thumb, press, press, press, move thumb, press.

This is now my use case. But yours is likely different. Which brings me to my feature request. So just like in iOS, Apple TV should allow for rearranging apps. I’m not an iTunes Match subscriber, so the Music app is useless to me. I’d like to replace it with the Netflix app to return to two-click Netflix launching. And since I rarely use the Settings app, maybe I’d like to replace it with the Trailers app.

I can see this working two ways. First, the harder way: the Apple TV remote. When in the main menu, clicking and holding the menu button on the remote makes the apps jiggle. Then, I can use the directional buttons to navigate to an app, click the select button to select the app, and the use the directional buttons to move the app around. If I’m done rearranging, I click the menu button again and the apps stop jiggling; otherwise, I click the select button again to deselect the app, and I can select and rearrange another app.

Second, the easier way: the iPhone and iPad Remote app. In the app is a grid of Apple TV apps. If I tap and hold on an app, they all jiggle, and I can rearrange them—just like how I rearrange documents inside Pages for iOS, and just like how I rearrange apps in iOS.

So now that Apple TV has iOS-like apps, Apple TV needs iOS-like app rearranging—and with it iOS-like jiggles.

Siri Should Tame the Mountain Lion

OS X Mountain Lion roared into existence this week featuring many smart additions inspired by iOS. One addition I would like to see in the final build of Mountain Lion is Siri.

But where would Siri live? Easy. Notification Center is hiding under the right side of the desktop wallpaper. Why not have Siri hiding under the left side of the wallpaper?

siri_mac

Here’s a mock-up (click for larger version):

siri_mac

Just like with Notification Center, a trackpad gesture can slide the wallpaper and activate Siri. And perhaps a menu bar icon and a keyboard shortcut (or even a dedicated key) could as well.

I have to imagine someone in Cupertino has Siri running on their Mac today. Let’s hope we all will this summer.

iOS Linen and Other Grip(e)s

iOS linen doesn’t really bother me; it’s Apple’s favorite texture right now, and that’s fine. What does bother me is inconsistency in visual and interaction design.

Say this is my home screen with one of my photos (click on any photo for a larger version):

current iPhone home screen

When I open the Utilities folder, something heinous happens:

current iPhone folder

My wallpaper gets split and filled with linen. Because my wallpaper and my apps are treated as the same layer in the home-screen hierarchy, both the wallpaper and the apps divide and split apart when opening a folder; revealed underneath is the layer with the folder apps and linen.

Here’s another example with a nice wallpaper by Louie Mantia:

current iPhone home screen

Folder opened:

current iPhone folder

Visually, I have two issues with this. First, I don’t want my wallpaper split in two. Second, I don’t want additional colors (or texture) introduced behind my apps. I want a consistent wallpaper behind my apps.

So here’s what I propose: introducing three layers instead of two and saying goodbye to linen. Instead of the top layer consisting of the home-screen apps and wallpaper and the bottom layer consisting of the folder apps and linen, the top layer will consist of home-screen apps, the middle layer folder apps, and the bottom layer wallpaper.

When a folder opens, instead of the wallpaper splitting and moving up and down from the break, the wallpaper will remain stationary. The apps will still split as they do now to reveal the folder apps, but replacing the linen behind the apps will be a blurred section of the wallpaper:

proposed iphone folder

With this functionality, the wallpaper doesn’t split in two, and the wallpaper color scheme stays intact.

proposed iphone folder

But what about other instances of linen? This solution works with both the multitasking drawer and Notification Center. Currently when the multitasking drawer opens, everything above it slides up to reveal the apps and, of course, more linen:

current iPhone multitasking drawer

In my proposal, when the drawer opens, the apps will slide up, but the wallpaper will remain stationary just like when a folder opens. And instead of linen behind the drawer, there will be a blurred section of the wallpaper.

proposed iphone multitasking drawer

(What’s that grip for? I’ll come back to that shortly).

Notification Center will display similarly. Instead of linen in the background, you guessed it: blurred wallpaper.

proposed iphone notification center

But this treatment for Notification Center only works if the functionality of Notification Center changes as well. Instead of pulling down over the home screen, Notification Center will push down the home screen just like how the multitasking drawer pushes up the home screen. Just as I do now, I will swipe down from the top bar to open Notification Center, and all the home-screen apps will move down with Notification Center. (As Neven Mrgan pointed out, the current Notification Center grip needs some work; I used his solution.)

And since I can swipe down to open Notification Center, I should be able to swipe up to open the multitasking drawer hence the grip above. Max Rudberg has an example video of this. Swiping up takes far less effort than double clicking the home button and will be consistent with how to open Notification Center. (One additional note, for consistency, I also propose to keep the top bar visible when the multitasking drawer is open. Currently, when the multitasking drawer is open, the top bar slides up with the apps and wallpaper and is not visible, but when a folder is open, the apps and wallpaper slide under the top bar keeping it visible.)

So there’s my proposal: greater visual consistency in the wallpaper and improved behavioral and gestural consistency in the multitasking drawer and Notification Center. As a result, no more linen.

But if you really like that linen texture, you could always make it your wallpaper; it might even look nice blurred.

Some side-by-side comparisons:

folder comparison

multitasking drawer comparison

notification center comparison

(Many thanks to Teehan+Lax and their iOS 5 GUI PSD for help with the Notification Center and multitasking drawer images.)

Zzzzz > Buzzzzz

I love Notification Center in iOS 5. I love not missing any notifications because a new one came in. And I love periodically pulling down to open Notification Center just for the sake of opening it (I love me some touchscreen gestures, too).

I don’t love that my iPhone goes off at all hours of the night. When I go to sleep, I toggle silent mode on. While I don’t hear notification sounds during the night, because I have my iPhone set to vibrate while on silent mode, it still vibrates at all hours of the night.

Missing from Notification Center is a sleep option where you specify a block of time where the notifications will still roll in, but iPhone won’t make any sounds. Some apps like Tweetbot and Boxcar have this option in their settings, but not all apps do and certainly not the Apple apps.

So here’s what I do: When I go to bed, I toggle my iPhone to silent mode like usual, and in the Sounds settings, I turn off vibrate in silent mode

vibrate off

Notifications will still accumulate, but my iPhone won’t make a sound and won’t vibrate all through the night.

If I am using my iPhone as an alarm, the alarm will still play its sound even when the phone is in silent mode (this works for the Clock app but not for third-party alarm apps).

Having an actual sleep option for Notification Center would be great in a future iOS release. Until then, this is my workaround. Maybe you’ll find it useful, too.

Apple iPhone Invigorate A6 4G Turbo Deluxe SmartPhone

With all the chatter about iOS 5.1 hinting at the next generation of iDevices—and specifically the next iPhone—I started wondering about the iPhone naming convention and what, if anything, is Apple’s master plan for naming their flagship product.

This naming-convention conundrum is only found in two of Apple’s product lines: iPhones and iPads. Whenever a new Mac is released, the previous model is removed from the sales floor. You can still get a refurbished previous generation product, but not from the sales floor.

But with iPhones, previous models are still available. So how should they be named?

The most obvious convention would be the iPad route. The first iPad is iPad 1; the second iPad is iPad 2. But that’s not possible with the iPhone (I’m looking at you, iPhone 3G).

So, how about a different idea: name the phone using the year it was released. This year’s model? The iPhone 11. Next year’s model? The iPhone 12. Or even the iPhone ’12. And for consistency, why not the iPad ’12?

Apple only releases one iPhone per year, so this could work. This naming convention is what the car industry uses. You want a new car? Which year’s model do you want?

And gone are the silly G and S names. And the “oh I really wanted an iPhone this year, but I was hoping it would be the iPhone 5”. No. You get this year’s model or next year’s model.

So what’s wrong with this idea? Well, this naming convention assumes Apple will only release one iPhone per year. What happens if they release two? Yeah, I don’t know. iPhone ’13A? iPhone ’13S (for Spring)? No.

And perhaps this naming convention calls too much attention to the age of the device. Hey, it’s 2011. I think I’ll buy the iPhone ’09. Manufactured two years ago. Prior to this year’s iPhone 4S release, the iPhone 3GS was still a popular phone. Would that have changed had the name of the phone called attention to its age? I don’t know, but not including the manufacturing year right in the product’s name does mask its age at least on first glance. A customer in the Apple Store looking at a comparison chart of the three available iPhone models now sees 4S, 4, and 3GS. Seemingly, they could all just be variations of this year’s technology (even though they aren’t). But that mask is lifted when the comparison chart shows ’11, ’10, and ’09. Perhaps this is a small issue, but something to consider nevertheless.

I guess something else to consider is just going with the industry norm and naming the next iPhone the Apple iPhone Invigorate A6 4G Turbo Deluxe SmartPhone. That works, right?

If Apple did name the next iPhone that, it would still set sales records because in the end, perhaps what we’ve learned is the name of the device doesn’t matter. An iPhone is an iPhone, and people know what they’re getting no matter what it’s named.

I’ll be getting next year’s iPhone whether it’s named the iPhone ’12, the iPhone 5, or the Apple iPhone Invigorate A6 4G Turbo Deluxe SmartPhone. I’ll say WTF is this name and then not be able to take my hands off the phone. Just like everyone else.

Sonofabitch

I can’t get my hands on an iPhone 4 yet, and this effing guy is BLENDING one?! Sonofabitch.

(via TUAW)

Buy Me Some Peanuts and Hack-er Jack

mlb at bat iPhone app

Via TUAW, the 2010 edition of the MLB At Bat iPhone app will allow you to stream audio in the background while you accomplish other tasks on your iPhone.

While Apple doesn’t allow 3rd party apps to run in the background on the iPhone or iPod touch,* Silicon Alley Insider notes that you can listen to audio in Mobile Safari while using other applications. It’s this trick that MLB exploited with At Bat 2010. With the tap of a button, At Bat will push an audio stream to Mobile Safari.

Note that MLB didn’t come up with this trick, nor is their app the first to exploit it. ESPN Radio does it, as well as Scanner911 and FlyCast. Still, it’s nice that MLB’s devs acknowledged that some users might want to check email or hop onto Twitter while listening to game, and made it easy to do so.

Dear Apple: please make this available sans-jailbreak and sans-hack.   Thank you.