Weekly Roundup: A Dubious Vitamin

Change can be incredibly difficult to sell to your users. They have their set ways of using your product, with months or years of experience guiding them towards accomplishing tasks. When you pull the rug out from under them by making your software look and behave differently, you upset their expectations, reset their muscle memory, and face an uphill battle to convince them of the greater utility of what you have created.

Take the Office 2007 Ribbon fiasco, for instance. Personally, I think that the Office 2003 user interface was terrible. It had no design philosophy. Features weren't so much deliberately added to the product as slapped in wherever room could be found. Office 2007's user interface was thoughtfully designed, with care and attention paid to the challengingly dichotomous goals of making its constituent products easy to use while surfacing the thousands of features that comprise the suite.

Of course, no good deed goes unpunished: the goals of the Office UI team really weren't the same as the goals of its users. The Office UI folks were charged with doing all of the things I mentioned above, while the users of Office only wanted to do their jobs. As cumbersome as the experience might have been, these users knew how to accomplish the tasks required of them. Forcing them to relearn almost everything about how to do their jobs is an uphill battle.

I think that Microsoft won by attrition in the end. Eventually, the enterprise customers who had been resistant to upgrading to Office 2007 had to relent, and the users adapted. I think Office made the right choice, as painful as it was.

In contrast, when you redesign a product that functions not as a painkiller, but as a vitamin (a dubious vitamin, perhaps), you will have a much harder time convincing your users to adapt. They don't have to use your product, and coupling simultaneous redesigns with reductions in features seems like a terrific way to drive away your users, regardless of how noble your intentions might be. Take the recently poorly received redesigns of Skype and Foursquare. Users raging against Skype redesigns is nothing new, but it's interesting to me to see them making the same mistakes over and over again.

I'm not sure how to guarantee the success of your product redesign, but looking at these examples demonstrates some surefire ways to fail.

Best,
Aaron


What We're Reading


Control of the Week

SCLAlertView-Swift

SCLAlertView-Swift

Beautiful Alert View. Written in Swift

MIT licensed.

Find out more Add to Favorites  See a Video


Weekly Roundup

SSACreditCardValidator

SSACreditCardValidator

A simple credit card validation class for iOS.

MIT licensed.

Find out more Add to Favorites


CGParallaxCollectionView

CGParallaxCollectionView

Extending Ole Begemann CGParallaxCollectionView to Swift.

MIT licensed.

Find out more Add to Favorites


RSPOPAlertView

RSPOPAlertView

Fullscreen pop-able and block-able alert view.

MIT licensed.

Find out more Add to Favorites


YouTube Data API 3

YouTube Data API 3

A simple wrapper for YouTube data API 3.0 written completely in Objective-C.

MIT licensed.

Find out more Add to Favorites


RBMenu

RBMenu

A menu for iOS that was inspired by Medium iOS APP

MIT licensed.

Find out more Add to Favorites


XHRefreshControl

XHRefreshControl

XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。

GPL licensed.

Find out more Add to Favorites


PASImageView

PASImageView

Rounded async imageview downloader lightly cached and written in Swift

MIT licensed.

Find out more Add to Favorites


JMCircularColorPicker

JMCircularColorPicker

Animated circular color picker You can use this simple picker to add a color picker to your project.

Custom licensed.

Find out more Add to Favorites


CircleStatus

CircleStatus

View showing circular chart with customisable number and range of colours on outer ring with background transparency/colours configuration. There is also an option to show legend. You can customise legends labels & dots, change its position (top/bottom/left/right). Call heightForChartSize: method on legendView to get height for selected width and chart radius.

Apache 2.0 licensed.

Find out more Add to Favorites


BAPersistentOperationQueue

BAPersistentOperationQueue

A persistent operation queue that uses a database to save operations that need to be completed at a later time.

MIT licensed.

Find out more Add to Favorites


xcfui

xcfui

Xcode plugin for fui tool, which finds unused imports.

MIT licensed.

Find out more Add to Favorites


MPGTextField

MPGTextField

An autocomplete textfield for iOS which provides suggestions as you type. Written both in Swift and Objective C, the textfield can be configured to ensure that a selection is compulsorily made from the list of suggestions and gives you control over the size of the popover showing suggestions based on the text entered by the user.

MIT licensed.

Find out more Add to Favorites


BitLive

BitLive

A bitcoin price tracker iOS client. Providing a simple and clean user interface to track the bitcoin prices from some major exchange.

It can also remind you the bitcoin price in in the background after turning on the alert switch.(set it to remind you when the price is higher or lower than certain number)

GPL licensed.

Find out more Add to Favorites


DKTuner

DKTuner

A Tuner control for setting a scalar value, or time or any catalog value.

MIT licensed.

Find out more Add to Favorites


ParseChat

ParseChat

ParseChat is a full native iPhone app to create realtime, text based chatrooms with Parse.

MIT licensed.

Find out more Add to Favorites


BSImagePicker

BSImagePicker

BSImagePicker is a multiple image picker for iOS

MIT licensed.

Find out more Add to Favorites


MAThermometer

MAThermometer

A Progress bar shaped as a thermometer customizable. You can also use it to display temperature !

MIT licensed.

Find out more Add to Favorites


FeSlideFilter

FeSlideFilter

The whole-new way to show your filter. See before/after photo in realtime by sliding your finger over the view.

MIT licensed.

Find out more Add to Favorites  See a Video


YLGIFImage-Swift

YLGIFImage-Swift

Swift implementation of YLGIFImage

MIT licensed.

Find out more Add to Favorites


PKHUD

PKHUD

A Swift based reimplementation of the Apple HUD (Volume, Ringer, Rotation,…) for iOS 8.

MIT licensed.

Find out more Add to Favorites


AGSpriteButton

AGSpriteButton

A SpriteKit button which is implemented like a UIButton. Subclassed from SKSpriteNode, it handles touches on it's own and performs the selector which corresponds to a particular touch event. Helps in minimizing code while setting up buttons.

MIT licensed.

Find out more Add to Favorites


CRPixellatedView

CRPixellatedView

Custom UIView subclass with a cool pixellated animation inspired by Facebook's Slingshot app.

MIT licensed.

Find out more Add to Favorites

Join the Mailing List

Sign up for the mailing list to get our articles and the coolest new open source controls delivered right to your inbox.

We'll never share your email with anyone else.

(optional)
(optional)