Rethinking Widgets

Widgets have been a key part of Android since its earliest days, but iOS has never adopted them in the same manner. With iOS 5 Apple introduced Notification Center, which included two widgets of sorts that pulled information from the Weather and Stocks apps. These really just existed to give a quick update on information when you went to check notifications, and they weren't a persistent part of the home screen like widgets on Android are.

Fast forward to iOS 7 and widgets received an overhaul. They still existed in Notification Center and couldn't really be customized, but they now formed what Apple called Today view, which existed on a separate page from notifications and provided relevant information relating to upcoming meetings and reminders, stock prices, and the weather. With iOS 8 Apple opened widgets up to developers, allowing anyone to present relevant information as a section in the Today view. Of course, this kind of customization was new for Apple and for iOS, and there was conflict between Apple and certain developers who had created widgets that provided functions beyond what Apple had originally intended.

To be honest, I think widgets have provided a poor user experience on both iOS and Android, although for different reasons. My problem on Android is that widgets have no standards for design, padding, and appearance, and so your home screen turns into a mess of mismatched widgets. iOS resolved this by providing a standard interface for widgets that developers would simply provide a view for, and widgets were not placed among the app icons which helped cut down on clutter. Unfortunately, the solution of putting widgets in Notification Center only worked in theory, and  in practice you never end up pulling down Notification Center to check your widgets. Android got it right by putting them in the launcher, but there needs to be a better solution for organization and visual uniformity.

iOS 9 actually presented a solution to the widget problem on iOS, although nobody would have known at the time. In my iOS 9 review I talked about the new search screen to the left of your first home screen. This screen had a number of fixed widgets, such as Siri app suggestions and content pulled from News. At the time I remarked on how similar this screen was to Google Now, but that it really didn't provide value to the user and seemed poorly thought out. In iOS 10 that screen has been scrapped to make room for a new space just for widgets.

The widgets screen on iOS 10 exists in three places. You'll find it on the redesigned lock screen, on the home screen, and in Notification Center. In all three cases you access it by swiping right, which provides a uniform way to access widgets from any part of the iOS UI. In every situation the interface changes slightly. In Notification Center you have a blurred background, and on the lock screen you get the current time and battery charge rather than the date. The iPad gets some additional tweaks in landscape mode, with the widget layout expanding into two columns to take advance of the available space.

In addition to the new interface, Apple has added some useful widgets that didn't exist in iOS 9. The new weather widget is great, with the current weather and chance of rain being shown in the condensed view, and the expanded view showing the weekly forecast. There's also a widget for the Activity app which shows your current progress toward your three activity goals. Maps also receives some really helpful widgets, including one for transit which allows you to check if there are any service advisories on your favorite transit lines, which has already helped me avoid delays due to subway and streetcar closures that I would not have thought to check for otherwise.

Widgets in iOS 10 provide a much better experience than they did in iOS 8 and 9. Replacing the useless search screen to the left of the home screen with a widgets page was a good move on Apple's part, and in my view it provides the best overall widget experience on a mobile platform because the design and size of widgets are consistent, and they don't have to share space with application icons. I've definitely used the widgets more during the beta period than I ever did during the two years that iOS 8 and 9 were the latest versions of iOS, and I'm sure that I check them more times in a single day than all the times I checked the search screen that they're replacing. Getting users to actually use widgets puts more pressure on developers to offer their own, so it'll be interesting to see if more apps begin to offer widgets after the release of iOS 10.

Expanding 3D Touch

3D Touch was perhaps the most interesting thing about last year's iPhone 6s. Apple's pressure sensitive screen technology quite literally added another dimension to the touch experience on mobile devices. Like most of Apple's new technologies, the initial implementation of 3D Touch features in the OS was fairly limited, and there was basically no API for developers. You could create a hack of sorts by subclassing UIGestureRecognizer and playing a specific AudioToolbox sound to trigger feedback from the Taptic Engine, but Apple didn't provide official support for 3D Touch beyond the Peek and Pop interactions to preview content from a ViewController without actually navigating to it.

Presenting a new technology with an initially limited or non-existent API is nothing new for Apple. When Touch ID launched it was only able to unlock your phone and authorize App Store payments. Since that time it has been opened up to developers for handling authentication in their own apps, and Apple has expanded its use to cover authentication when paying with Apple Pay. With Apple's history of waiting to expose APIs for their new technologies, it's not surprising that iOS 10 is where 3D Touch gets a full-featured API for developers to use.

As I mentioned before, in iOS 9 developers were limited to using 3D Touch for Peek and Pop actions, as well as for Quick Actions from the homescreen by pressing on their app icons. This is still a large part of the 3D Touch experience, and Apple recommends that all developers implement 3D Touch in their application on tappable views that navigate somewhere else, such as tapping on a TableViewCell to move to a new ViewController.

Right now neither Peek and Pop or Quick Actions have changed a great deal, although Apple has seemingly altered the timing functions for the animations that play for these interactions, which makes them feel more responsive and aligned to the amount of force that you're applying. Quick actions on the home screen can also show widgets that your application provides, along with a button to add it to the widget screen if you haven't done so. This is actually the fourth place in the OS where widgets are accessible, and it's quite an elegant solution to avoiding the clutter that mixing widgets and app icons creates, while also expanding 3D Touch's ability to provide access to relevant information rapidly.

The new UIPreviewInteraction class allows developers to move beyond Peek and Pop to use 3D Touch for customized actions in their applications. The kind of UI that this can enable really depends on the application, and the opportunities for customization are limitless. The most common type of interaction that 3D Touch is useful for is displaying a screen where the user can select an object which then triggers an action in the previous screen and returns back. 

In iOS 10 I've noticed an example of this type of interaction in the Music application. In the new Music app there is a three dot overflow button next to your album art when you open an album. This brings up a Action Sheet with various options, such as adding it to a playlist or setting it to play next. These are actions that apply to the entire album, and it's inconvenient to have to navigate into the list of songs just to get this menu up, set it to play next, and then navigate back out. 3D Touch solves this by defining a custom action on the album cover cell in the CollectionView. By pressing down on the album cover the application creates the exact same view as the overflow menu, giving you access to all the available options. In addition, the menu is designed so that you can move your finger to the appropriate action and then release to select it, which means you don't have to remove your finger from the display. It's a very natural interaction to follow a 3D Touch press, and it lets you quickly access and select one of the actions in a much quicker manner.

It will take time for developers to implement support for custom 3D Touch actions in their applications. Adding support for basic Peek and Pop is incredibly simple and so it already has good adoption among popular apps. Now that Apple has more than two devices with support for 3D Touch there will also be more incentive for developers to find the areas where this kind of interaction can improve the user experience and actually implement it. Only time will tell how widespread 3D Touch becomes adopted in applications, but I think the improvement to user experience is substantial enough to warrant the effort required to do so.

Refining The Design of iOS Extending iMessage
Comments Locked


View All Comments

  • ApePriori - Wednesday, September 14, 2016 - link

    $399 for a 16GB SE, $549 for a 32GB 6s, $649 for a 32GB 7. More storage and Plus models will bump the price of course, but let's not pretend there are no options unless you spend over $800 dollars.
  • Lavkesh - Wednesday, September 14, 2016 - link

    Which is why Samsung isnt Android. They are a memory leak laden software mess.
  • robinthakur - Friday, September 23, 2016 - link

    Luckily for Samsung, their phones are just *exploding* in popularity so you probably don't need to worry about upgrading your S7 or Note 7 in 2 years because it will have been recalled.
  • Teknobug - Wednesday, September 14, 2016 - link

    Getting an Android through phone carrier causes the longer update times. If you get an Android phone directly from Google or directly from the manufacturer then updates comes pretty quick. Lenovo is the only one that dumped security updates.
  • robinthakur - Friday, September 23, 2016 - link

    Yes, it's just a shame that most consumers won't be buying their phones in this way so it's still a massive problem, more from a security perspective, for Android.
  • Lavkesh - Wednesday, September 14, 2016 - link

    And the fact that Nexus 5 isnt getting the Nougat update but much inferior hardware Android One devices are! So much so for dont be evil!
  • Xinn3r - Thursday, September 15, 2016 - link

    1. Maps also receives some really helpful widgets, including one for transit which allows you to check if there are any service advisories on your favorite transit lines, which has already helped me avoid delays due to subway and streetcar closures that I would not have thought to check for otherwise.

    I assume this is Google's map instead of Apple? Because I do have that widget for Google Map instead of Apple's own Map.

    2. In Notification Center you have a blurred background, and on the lock screen you get the current time and battery charge rather than the date.

    In your screenshot of the lock screen, you get current time and date instead of battery charge. I'm also not seeing the battery charge on my lock screen widget.
  • BulkSlash - Thursday, September 15, 2016 - link

    Really awesome review, as an iOS developer it's really great to see a review that focuses on API changes and the benefits they can bring to coders. More of this sort of thing please! :)

    It would be great to get Xcode on the iPad so I can quickly test out ideas on apps I'm developing if I have a flash of inspiration in the night or something. I definitely see the problems with security though, and also installing things like CocoaPods would be problematic.

    I also agree that the way Android handles animations is not good, I'm currently writing an Android app and video animations are currently impossible because the video goes blank during animations! It never does that in iOS!
  • - Thursday, September 15, 2016 - link

    nothing interesting or new... Android has had those features/customization for YEARS and Years.

    and Crapple is still not customizable.
  • damianrobertjones - Monday, September 19, 2016 - link

    Maybe the standard user doesn't care to customize anything!?

Log in

Don't have an account? Sign up now