Weekly Roundup: Slow and Steady Wins the Race

Aaron Brethorst, December 28, 2013

Happy new year, everyone! As 2013 draws to a close, I just want to thank you all again for your support. Cocoa Controls would be nothing without its community, which means you. Without your apps, or your open source controls the site wouldn't be worth much.

2013 was also a big year for Apple and iOS, with Apple releasing the most significant set of changes to the operating system since its original release in 2007, a much-needed overhaul of the Mac Pro, somehow managing to shove both a top of the line CPU and display into the iPad mini, and managing to continue to prove that slow and steady does indeed win the race. John Gruber talks about this more in one of the links today in What We're Reading, but I feel like this is a topic worth touching on here as well.

If you look back at the evolution of the iPhone and iOS over the past six years, you'll find that only rarely does Apple take a big leap forward in terms of how their devices look or work. Obvious exceptions include the iPhone 4 and iOS 7, but these seem like exceptions that prove the rule. Even though the iPhone 4 represented a huge leap forward in terms of display quality and industrial design, it was otherwise not that different from the iPhone 3GS. iOS 7 represented a huge shift in terms of user experience, but beyond that it isn't really all that different from iOS 6.

Ignoring the rare punctuated event, it's only when you look at Apple's hardware and software from a longer term perspective that you see truly "revolutionary" change. Other companies—Microsoft comes to mind—seem compelled to regularly change everything purely for the sake of change: 'look, it's new and different, buy it!' To their credit, this does give them a lot of press when they announce new products, but it also results in a regular need to backtrack and rip out their most egregious change-for-the-sake-of-change changes. Windows 8 is the most obvious recent example, with the generally loathed Metro experience and removal of the Start button.

Every year brings another iOS announcement and iPhone hardware announcement, and these almost always include the inevitable tech press lamentations about how Apple simply isn't revolutionary anymore, whatever that means. Clearly, I disagree with the tech press' conclusions. Not because I think that Apple makes revolutionary changes every year (they don't), but because I don't think that would be a good or desirable outcome. I'd rather Apple keep pressing ahead on making spectacular products with one or two meaningful, large improvements every year, and leave the creation of dead-end, "all sizzle, no steak" products to others. (On a related note, what on earth was Samsung thinking with the release of their Galaxy Gear watch in the first place, or that profoundly awful ad for it recently?)

According to Tim Cook, Apple's working on some cool stuff for 2014. I have confidence in the company that if and when they do release a watch, for instance, that it'll actually be a useful product.

Until next year,
Aaron


What We're Reading


Control of the Week

EZAudio

EZAudio

An iOS and OSX audio framework built upon Core Audio useful for anyone doing real-time, low-latency audio processing and visualizations. It provides a universal API that provide cross-platform access to microphone input, reading and seeking through audio files (including compressed formats), recording, generic playback, and provides audio waveforms views that are CPU and GPU-accelerated.

The Official EZAudio Page:

http://syedharisali.com/projects/EZAudio/getting-started

MIT licensed.

Find out more Add to Favorites


Weekly Roundup

SATextMenuView

SATextMenuView

iOS7 like Menu UI.

MIT licensed.

Find out more Add to Favorites  See a Video


DBCustomAd

DBCustomAd

DBCustomAD helps you to add custom advertisements to your apps for promoting your products or services. It provides an easy way to include a custom UIButton with some cool features.

Apache 2.0 licensed.

Find out more Add to Favorites


UIReferenceLibraryViewController Simple Dictionary Example

UIReferenceLibraryViewController Simple Dictionary Example

Dictionary app with UIReferenceLibraryViewController for iOS7

Public Domain licensed.

Find out more Add to Favorites


AAPullToRefresh

AAPullToRefresh

A pull to refresh library that lets you pull from any of your screen's four sides.

MIT licensed.

Find out more Add to Favorites


LanguagesManager

LanguagesManager

Easily provide manual control over the language of your app.

MIT licensed.

Find out more Add to Favorites


FakeLocations

FakeLocations

A hacky little thing to fake locations in MKMapView and CLLocationManager. Use it to inject locations into your map view and location manager using udp sockets. Comes in handy for testing in house or automated testing.

MIT licensed.

Find out more Add to Favorites


RFPasswordStrength

RFPasswordStrength

People wonder if their password is a good password. I often come across two distinct groups of people. The first would fall into a "just use any word" category, which is a very bad practice for picking passwords. The second group will mix in a few numbers in order to make the password a lot harder to guess. But, how do you know if you have a secure password?

How To Get Started
  1. Download RFPasswordStrength
  2. #import "RFPasswordStrength.h"

  3. Check your password strength using the class method:

[RFPasswordStrength checkPasswordStrengthWithPassword:@"YourPassword"];

MIT licensed.

Find out more Add to Favorites


RFLoader

RFLoader

RFLoader provides a loading animation.

You can customize the Animated Loader color (Provide a UIColor) and also you can choose from 3 different animations. You can also provide an image name and animate that image as a loader.

You can also remove the loader with 3 different animations:

  • removeLoader
  • removeLoaderWithSuccess:YES
  • removeLoaderWithSuccess:NO

How To Get Started

  • Download RFLoader
  • #import "RFLoader.h"
  • Create an instance of RFLoader:

RFLoader *customLoader = [[RFLoader alloc] init];

[customLoader showLoaderWithColor:[UIColor redColor] andAnimation:LoaderMix andImage:nil onView:self.view];

If you prefer to use an image: [customLoader showLoaderWithColor:[UIColor redColor] andAnimation:LoaderMix andImage:@"icon.png" onView:self.view];

To remove Loader:

  • [customLoader removeLoader];
  • [customLoader removeLoaderWithSuccess:YES];
  • [customLoader removeLoaderWithSuccess:NO];

MIT licensed.

Find out more Add to Favorites


RSTransitionEffect

RSTransitionEffect

Re-implement mayuur's MJTransitionEffect and provide default data binding for UITableViewCell and detail view controller and solve the white screen problem. All images, data source are taken from mayuur's MJTransitionEffect.

My implementation introduces source frames and target frames for RSTransitionEffectViewController, provide basic data item and data item -> view binding and frame calucations.

  1. RSBasicItem, data item for UITableViewCell, contains text, detailText, image.
  2. UITableView category, provides cell itself, textLabel, detailTextLabel, imageView frames' conversion to absolute screen coordinate.
  3. RSTransitionEffectViewController, provides data binding, animations, etc. In the sample it demonstrates the relationship and usage between list -> item -> detail.

In storyboard, create a detail view controller which subclassing RSTransitionEffectViewController, and link predefined IBOutlets to current views then in UITableViewDelegate, instantiate the view controller defined in storyboard and pass sourceFrames and current list item to it:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    RSDetailViewController *viewController =
        [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
    viewController.sourceFrames =
        [tableView framesForRowAtIndexPath:indexPath];
    viewController.item = [self.items objectAtIndex:[indexPath row]];
    [self.navigationController pushViewController:viewController
                                                             animated:NO];
}

and that's all, the new detail view controller will display with beautiful transition effect.

MIT licensed.

Find out more Add to Favorites


XHShockHUD

XHShockHUD

An easy-to-use and customize HUD view with four built-in styles.

重用性好、使用简单、可任意定制HUD样式(用的人去定制),默认有四种定制好的方式,你想随意的提示嘛?进来吧!总有你要的

MIT licensed.

Find out more Add to Favorites


VENSnowOverlayView

VENSnowOverlayView

iOS implementation of UIView with snowflakes overlayed. A perfect Christmas easter egg!

MIT licensed.

Find out more Add to Favorites


RFScreenshot

RFScreenshot

RFScreenshot provides an UIImage of the current view (Takes a screenshot and gives you an UIImage containing that screenshot).

How To Get Started
  1. Download RFScreenshot
  2. #import "RFScreenshot.h"
  3. Use the provided class method:

[RFScreenshot takeScreenshot:self.view];

MIT licensed.

Find out more Add to Favorites


GRProgressIndicator

GRProgressIndicator

Reimplementation of NSProgressIndicator with some customization support

BSD licensed.

Find out more Add to Favorites


LWF - Lightweight SWF

LWF - Lightweight SWF

LWF (Lightweight SWF) is an open-source framework for importing Adobe Flash animations into iOS UIKit, HTML5, Cocos2d-x, Unity, and more.

It means that LWF allows you to make animation using Adobe Flash for your iOS UIKit Application.

An example of LWF for iOS UIKit: https://github.com/splhack/Hello-LWF-UIKit

A screenshot of the example http://gree.github.io/lwf-loader/images/lwfloader-sample3.png

How to install LWF into your project Use CocoaPods with Podfile as the following. pod 'LWF/UIKit'

zlib licensed.

Find out more Add to Favorites


MDBrowser

MDBrowser

MDBrowser is a very convenient iOS browser that you can present and dismiss with a neat pop up animation,also supports slide from bottom animation ,has a back and forward button so the user can navigate the history, you can open it for the user for example to like your Facebook page, follow on google+ or twitter, or to simply view web pages on the fly without interrupting your app flow.

should compiled with ARC ,also supports iPhone and iPad.

MIT licensed.

Find out more Add to Favorites


RFRotate

RFRotate

Drop in rotations for your iOS project. Support for blocks.

MIT licensed.

Find out more Add to Favorites


Mobile-Canberra

Mobile-Canberra

Mobile Canberra is an initiative by the ACT Government and the NICTA eGOV Cluster. It is a powerful platform for showing points of interest and services on a map.

MIT licensed.

Find out more Add to Favorites


UIViewController-Modal

UIViewController-Modal

Determine whether UIViewController is presented as modal.

MIT licensed.

Find out more Add to Favorites


UIImage-ImageWithColor

UIImage-ImageWithColor

Creates an image using a color.

MIT licensed.

Find out more Add to Favorites


NZCircularImageView

NZCircularImageView

Performs async download image and leaves with rounded edge, used for presenting pictures of user profiles.

MIT licensed.

Find out more Add to Favorites


NZGoogleAnalytics

NZGoogleAnalytics

Facilitates the use of Google Analytics API for iOS.

MIT licensed.

Find out more Add to Favorites


UIDevice-Helpers

UIDevice-Helpers

UIDevice category. Easy access to device information.

MIT licensed.

Find out more Add to Favorites


NZBundle

NZBundle

Changes the information present in the Info.plist project file at runtime, as version name.

MIT licensed.

Find out more Add to Favorites


JWBlurView

JWBlurView

Easy to use frosted/blurred views (using a UIToolbar) for iOS 7

  • allows for creation with Storyboard or programmatically
  • able to apply subtle tint colors
  • can add subviews

Note: Spin off of JagCesar's blurred UIView implementation, only easier to use and create

Apache 2.0 licensed.

Find out more Add to Favorites


LINQ4Obj-C

LINQ4Obj-C

Provides fluent interface of LINQ-style query to Objective-C.

MIT licensed.

Find out more Add to Favorites


NZLabel

NZLabel

UILabel with multiple fonts and colors.

MIT licensed.

Find out more Add to Favorites


ImageFlipGrid

ImageFlipGrid

Image grid animation using single UIImage as input.

License unspecified.

Find out more Add to Favorites  See a Video