Weekly Roundup: "Listen to your users and respect them"

Aaron Brethorst, March 08, 2014

The best article I ran across this past week didn't directly have anything to do with Apple, iOS, or Mac OS X. Instead, it was a look at the fall of QuarkXPress, initially the best desktop publishing application available for personal computers, from the perspective of one of their users. The article reminded me of the inherent tenuousness of being on top. Everyone is out to get you, you're never as agile as you were originally as a young upstart, and if you rest on your laurels, you're pretty much doomed. In the end, Adobe InDesign beat Quark because Adobe looked, listened, and respected their customers.

The comparison with Apple is pretty clear, even though Apple has never enjoyed a market share of 90% or more in the mobile phone space, and Apple has a history of not so much specifically listening to their customers but doing what they think is right for them. Apple, to their credit, is willing to take big risks, trash things that work and are well-regarded, and aggressively cannibalize their own product lines in favor of what they think is better. Dave Wiskus wrote a piece at Macworld about where he thinks Apple's design is heading in 2014, and I'm generally inclined to agree with him. Apple didn't have to release a version of iOS that was such a drastic departure from past versions—at least not yet[1]—but they felt it was right.

Somewhat relatedly, if you have a chance, I highly recommend picking up a copy of The Innovator's Dilemma by Clay Christensen. Although it doesn't speak directly to what I write about above, it is an incredibly insightful look at the tectonic forces in the technology industry that, over time, manage to utterly destroy once-dominant companies. I often wondered whether or not Steve Ballmer had ever read it, back when he was still CEO of Microsoft. In contrast, I know the top folks at Apple must have.

Best,
Aaron

[1] Arguably, though, waiting until they had to would've doomed them.


What We're Reading


Control of the Week

KFEpubKit

KFEpubKit

An Objective-C epub extracting and parsing framework for iOS and OSX.

MIT licensed.

Find out more Add to Favorites  See a Video


Weekly Roundup

KVNBoundedImageView

KVNBoundedImageView

KVNBoundedImageView attempts to keep faces visible and centered in a UIImageView. It is designed to be easy to use and extensible for different types of image detection.

With configurable detection speed, operation queues, caching, and utilizing the optimized image rendering of UIImageView (no custom drawing here), KVNBoundedImageView aims to be as fast as possible, without blocking the main thread when heavy lifting is needed. Simple image loading via a URL is also available.

MIT licensed.

Find out more Add to Favorites


RNBlurredSideViewController

RNBlurredSideViewController

RNBlurredSideViewController is a side view controller with a dynamic blurred background effect when swiping similar to the iOS 7 control center. It can be used to show views on the side like the Facebook or Path app. The unique feature of RNBlurredSideViewController is that it can blur the side view background dynamically when swiping which is similar to the iOS 7 control center. The implementation of the blur effect is not based on UIToolbar. The blur effect can be customized.

RNBlurredSideViewController is available through CocoaPods, to install it simply add the following line to your Podfile:

pod "RNBlurredSideViewController"

MIT licensed.

Find out more Add to Favorites


FGThrowSlider

FGThrowSlider

iOS drop-in control giving you the iOS 7.1 brightness/volume style slider with a dynamic fadeout animation.

Simply copy over the FGThrowSlider.h and FGThrowSlider.m files into your project, create a new instance in the delegate like so:

 FGThrowSlider *slider = [FGThrowSlider sliderWithFrame:
    CGRectMake(50, 300, 200, 50) andDelegate:self];

add it to your view:

 [view addSubview:slider];

and recieve updates at:

 - (void)slider:(FGThrowSlider *)slider changedValue:(CGFloat)v

Feel free to use it in your projects and let me know of any ideas, requests, stuff.

Watch the video for a demo.

MIT licensed.

Find out more Add to Favorites  See a Video


THArrayView

THArrayView

iOS UI component to draw arrays

MIT licensed.

Find out more Add to Favorites


CCTableData

CCTableData

A class providing the ability to create a model for a UITableViewController and then "bind" a UITableViewController to the model.

MIT licensed.

Find out more Add to Favorites


CircularSliderDemo

CircularSliderDemo

Circular Slider can be used for scalar values, list of values, and time

MIT licensed.

Find out more Add to Favorites


FRDLivelyButton

FRDLivelyButton

FRDLivelyButton is a simple UIButton subclass intended to be used inside a UIBarButtonItem, even though it can be used anywhere you can use a UIButton. It is entirely Core Graphics driven, supports 5 common button types used in navigation bars (menu, close, add, etc...), and will nicely animate any button type changes and touch events.

MIT licensed.

Find out more Add to Favorites


KFToolbar

KFToolbar

An easy to setup and use toolbar that can contain KFToolbarItems (what is actually a wrapper for NSButtons).

MIT licensed.

Find out more Add to Favorites


APDropDownNavToolbar

APDropDownNavToolbar

iOS7 Messages App style toolbar that drops down from navigation bar when tapping on the UIBarButton item.

MIT licensed.

Find out more Add to Favorites


RDRStickyKeyboardView

RDRStickyKeyboardView

Replication of iMessage's text input behavior on iOS 7 (UIScrollViewKeyboardDismissModeInteractive + persistent inputAccessoryView)

MIT licensed.

Find out more Add to Favorites


TSAssetsPickerController

TSAssetsPickerController

Highly customizable control used to select multiple assets (saved photos and videos) for use in your app. It works as UIImagePickerController, allows to browse all albums, select multiple assets and this control is highly customizable (read github documentation linked at the bottom). Control returns ALAsset objects which are easy to deal with. It also can filter assets by type and sizes.

Available on CocoaPods

pod 'TSAssetsPickerController', '~> 1.2'

Video demo

Demo of TSAssetsPickerController

Licenses Apache 2.0 licence

Features:
  • Browse all albums
  • Set filters (photos, videos, all), can filter size of asset
  • Supports all orientations
  • Supports iOS6, iOS7
  • Supports iPhone, iPad
  • allow to select multiple assets from one album
  • customizable order of albums and assets,
  • Picker has plenty of properties to customize
  • Easy to apply in your project
  • Easy to customize

You can find more informations on project's github page.

Apache 2.0 licensed.

Find out more Add to Favorites


MXLCalendarManager

MXLCalendarManager

A set of classes used to parse and handle iCalendar (.ICS) files

MIT licensed.

Find out more Add to Favorites


GRCustomizableWindow

GRCustomizableWindow

NSWindow subclass with support to custom titlebar height, background color and title color

BSD licensed.

Find out more Add to Favorites


Haneke

Haneke

A lightweight zero-config image cache for iOS.

Haneke resizes images and caches the result on memory and disk. Everything is done in background, allowing for fast, responsive scrolling. Asking Haneke to produce, cache and display an appropiately sized image is as simple as:

[imageView hnk_setImageFromFile:path];

Apache 2.0 licensed.

Find out more Add to Favorites


SLTDoubleTapSegmentedControl

SLTDoubleTapSegmentedControl

A double-tap segmented control. Each segment functions as a discrete double-tap button.

Apache 2.0 licensed.

Find out more Add to Favorites


Easy Timeline

Easy Timeline

Sometimes you need things to happen at specific times and things.

When it's just an event 2.0 seconds later, a performSelector:withObject:afterDelay: is perfect.

If it gets a little more complex where you need something happening ever 3.0 seconds, a quick implementation of NSTimer is good.

But what if you want something to happen every 2 seconds and then at the 7th second something else to happen. Or if you want to pause everything for a while and then resume later?

That's where Easy Timeline comes into play.

Public Domain licensed.

Find out more Add to Favorites


VENPromotionsManager

VENPromotionsManager

iOS Library to perform location & time-based promotions.

MIT licensed.

Find out more Add to Favorites


IDScrollableTabBar

IDScrollableTabBar

Custom scrollable tab bar that highlights selected item like under magnifying glass.

You can customize it as you wish!

More information:

http://www.youtube.com/watch?v=wBNHplkTSLQ

http://blog.bananadev.pro

http://bananadev.pro

MIT licensed.

Find out more Add to Favorites


MVArrowOverlays

MVArrowOverlays

Simple class to draw an arrow as an arc of a circle given two points and the radius.

MIT licensed.

Find out more Add to Favorites


WCActionSheet

WCActionSheet

A customizable and elegant alternative to UIActionSheet with support for block syntax.

MIT licensed.

Find out more Add to Favorites