Full Code of dzenbot/DZNEmptyDataSet for AI

master 9bffa69a83a9 cached
190 files
464.5 KB
137.8k tokens
1 symbols
1 requests
Download .txt
Showing preview only (521K chars total). Download the full file or copy to clipboard to get everything.
Repository: dzenbot/DZNEmptyDataSet
Branch: master
Commit: 9bffa69a83a9
Files: 190
Total size: 464.5 KB

Directory structure:
gitextract_vznosu_2/

├── .codecov.yml
├── .gitignore
├── .travis.yml
├── DZNEmptyDataSet/
│   ├── Applications/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Application.h
│   │   ├── Application.m
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── LaunchImage-2.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage-3.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_foursquare_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_foursquare_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_icloud_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_icloud_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_kickstarter_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_kickstarter_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── header_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── header_podcasts.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_appstore.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_camera.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_icloud.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_itunes_connect.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_photos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_podcasts.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_remote.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_safari.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_twitter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_videos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_whatsapp.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_wwdc.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── loading_imgBlue_78x78.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_twitter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_appstore.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_itunes_connect.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_remote.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_videos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── placeholder_whatsapp.imageset/
│   │   │       └── Contents.json
│   │   ├── DetailViewController.h
│   │   ├── DetailViewController.m
│   │   ├── Fonts/
│   │   │   └── Ideal Sans/
│   │   │       └── IdealSans-Book-Pro.otf
│   │   ├── MainViewController.h
│   │   ├── MainViewController.m
│   │   ├── Supporting Files/
│   │   │   ├── Applications-Prefix.pch
│   │   │   ├── Base.lproj/
│   │   │   │   └── LaunchScreen.storyboard
│   │   │   ├── Info.plist
│   │   │   ├── Storyboard.storyboard
│   │   │   ├── en.lproj/
│   │   │   │   └── InfoPlist.strings
│   │   │   └── main.m
│   │   ├── UIColor+Hexadecimal.h
│   │   ├── UIColor+Hexadecimal.m
│   │   └── applications.json
│   ├── Colors/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   └── LaunchImage.launchimage/
│   │   │       └── Contents.json
│   │   ├── Base.lproj/
│   │   │   └── LaunchScreen.storyboard
│   │   ├── CollectionViewController.h
│   │   ├── CollectionViewController.m
│   │   ├── Colors/
│   │   │   ├── Colors-Info.plist
│   │   │   ├── Colors-Prefix.pch
│   │   │   ├── System.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.launchimage/
│   │   │   │       └── Contents.json
│   │   │   ├── en.lproj/
│   │   │   │   └── InfoPlist.strings
│   │   │   └── main.m
│   │   ├── DataSource/
│   │   │   ├── Color.h
│   │   │   ├── Color.m
│   │   │   ├── Palette.h
│   │   │   ├── Palette.m
│   │   │   ├── UIColor+Hex.h
│   │   │   ├── UIColor+Hex.m
│   │   │   └── colors.json
│   │   ├── Images.xcassets/
│   │   │   ├── empty_placeholder.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── search_icon.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── tab_collection.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── tab_search.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── tab_table.imageset/
│   │   │       └── Contents.json
│   │   ├── Info.plist
│   │   ├── SearchViewController.h
│   │   ├── SearchViewController.m
│   │   ├── Storyboard.storyboard
│   │   ├── TableViewController.h
│   │   ├── TableViewController.m
│   │   └── main.m
│   ├── DZNEmptyDataSet/
│   │   ├── DZNEmptyDataSet.h
│   │   └── Info.plist
│   ├── DZNEmptyDataSet.xcodeproj/
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace/
│   │   │   └── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── xcschemes/
│   │           ├── DZNEmptyDataSet.xcscheme
│   │           └── DZNEmptyDataSetTests.xcscheme
│   ├── DZNEmptyDataSet.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   ├── DZNEmptyDataSetTests/
│   │   ├── ApplicationsSnapshotTests.m
│   │   └── Info.plist
│   ├── EmptyDataSetTests/
│   │   └── DZNEmptyDataSetTests-Bridging-Header.h
│   ├── Podfile
│   └── Pods/
│       ├── Pods.xcodeproj/
│       │   └── project.pbxproj
│       ├── Target Support Files/
│       │   ├── Pods-DZNEmptyDataSetTests/
│       │   │   ├── Pods-DZNEmptyDataSetTests-Info.plist
│       │   │   ├── Pods-DZNEmptyDataSetTests-acknowledgements.markdown
│       │   │   ├── Pods-DZNEmptyDataSetTests-acknowledgements.plist
│       │   │   ├── Pods-DZNEmptyDataSetTests-dummy.m
│       │   │   ├── Pods-DZNEmptyDataSetTests-frameworks.sh
│       │   │   ├── Pods-DZNEmptyDataSetTests-umbrella.h
│       │   │   ├── Pods-DZNEmptyDataSetTests.debug.xcconfig
│       │   │   ├── Pods-DZNEmptyDataSetTests.modulemap
│       │   │   └── Pods-DZNEmptyDataSetTests.release.xcconfig
│       │   ├── Pods-EmptyDataSetTests/
│       │   │   ├── Pods-EmptyDataSetTests-Info.plist
│       │   │   ├── Pods-EmptyDataSetTests-acknowledgements.markdown
│       │   │   ├── Pods-EmptyDataSetTests-acknowledgements.plist
│       │   │   ├── Pods-EmptyDataSetTests-dummy.m
│       │   │   ├── Pods-EmptyDataSetTests-frameworks.sh
│       │   │   ├── Pods-EmptyDataSetTests-umbrella.h
│       │   │   ├── Pods-EmptyDataSetTests.debug.xcconfig
│       │   │   ├── Pods-EmptyDataSetTests.modulemap
│       │   │   └── Pods-EmptyDataSetTests.release.xcconfig
│       │   └── iOSSnapshotTestCase/
│       │       ├── Info.plist
│       │       ├── iOSSnapshotTestCase-Info.plist
│       │       ├── iOSSnapshotTestCase-dummy.m
│       │       ├── iOSSnapshotTestCase-prefix.pch
│       │       ├── iOSSnapshotTestCase-umbrella.h
│       │       ├── iOSSnapshotTestCase.modulemap
│       │       └── iOSSnapshotTestCase.xcconfig
│       └── iOSSnapshotTestCase/
│           ├── FBSnapshotTestCase/
│           │   ├── Categories/
│           │   │   ├── UIImage+Compare.h
│           │   │   ├── UIImage+Compare.m
│           │   │   ├── UIImage+Diff.h
│           │   │   ├── UIImage+Diff.m
│           │   │   ├── UIImage+Snapshot.h
│           │   │   └── UIImage+Snapshot.m
│           │   ├── FBSnapshotTestCase.h
│           │   ├── FBSnapshotTestCase.m
│           │   ├── FBSnapshotTestCasePlatform.h
│           │   ├── FBSnapshotTestCasePlatform.m
│           │   ├── FBSnapshotTestController.h
│           │   ├── FBSnapshotTestController.m
│           │   └── SwiftSupport.swift
│           ├── LICENSE
│           └── README.md
├── DZNEmptyDataSet.podspec
├── Dangerfile
├── Gemfile
├── LICENSE
├── Package.swift
├── README.md
└── Source/
    ├── UIScrollView+EmptyDataSet.h
    └── UIScrollView+EmptyDataSet.m

================================================
FILE CONTENTS
================================================

================================================
FILE: .codecov.yml
================================================
codecov:
    token: 

coverage:
  precision: 2
  round: nearest
  range: 70...100
  ignore:
    - ./DZNEmptyDataSet/.*

  status:
    project: true
    patch: true
    changes: false

comment:
  layout: "header, diff, tree, changes"
  behavior: default
  branches: master


================================================
FILE: .gitignore
================================================
# Xcode
.DS_Store
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile
*.moved-aside
DerivedData
.idea/
/.swiftpm


================================================
FILE: .travis.yml
================================================
osx_image: xcode11.3
language: objective-c
sudo: required

cache:
    - bundler
    - cocoapods

before_install:
    - bundle install
    #- bundle exec danger

env:
    global:
    - LANG=en_US.UTF-8

    - WORKSPACE="DZNEmptyDataSet/DZNEmptyDataSet.xcworkspace"
    - IOS_SCHEME="DZNEmptyDataSet"
    - IOS_SDK="iphonesimulator13.3"

    matrix:
    - DESTINATION="OS=13.3,name=iPhone 8" SDK="$IOS_SDK" SCHEME="$IOS_SCHEME"

script:
    - xcodebuild clean build test -scheme "$SCHEME" -workspace "$WORKSPACE" SDK="$IOS_SDK" -destination "$DESTINATION" -configuration Debug GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES

after_success:
    - bash <(curl -s https://codecov.io/bash)


================================================
FILE: DZNEmptyDataSet/Applications/AppDelegate.h
================================================
//
//  AppDelegate.h
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end


================================================
FILE: DZNEmptyDataSet/Applications/AppDelegate.m
================================================
//
//  AppDelegate.m
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.backgroundColor = [UIColor whiteColor];
    
    return YES;
}

@end


================================================
FILE: DZNEmptyDataSet/Applications/Application.h
================================================
//
//  Application.h
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSUInteger, ApplicationType) {
    
    ApplicationTypeUndefined = 0,
    
    ApplicationType500px = 1,
    ApplicationTypeAirbnb,
    ApplicationTypeAppstore,
    ApplicationTypeCamera,
    ApplicationTypeDropbox,
    ApplicationTypeFacebook,
    ApplicationTypeFancy,
    ApplicationTypeFoursquare,
    ApplicationTypeiCloud,
    ApplicationTypeInstagram,
    ApplicationTypeiTunesConnect,
    ApplicationTypeKickstarter,
    ApplicationTypePath,
    ApplicationTypePinterest,
    ApplicationTypePhotos,
    ApplicationTypePodcasts,
    ApplicationTypeRemote,
    ApplicationTypeSafari,
    ApplicationTypeSkype,
    ApplicationTypeSlack,
    ApplicationTypeTumblr,
    ApplicationTypeTwitter,
    ApplicationTypeVideos,
    ApplicationTypeVesper,
    ApplicationTypeVine,
    ApplicationTypeWhatsapp,
    ApplicationTypeWWDC,
    
    ApplicationCount // Used for count (27)
};

@interface Application : NSObject
@property (nonatomic, strong) NSString *displayName;
@property (nonatomic, strong) NSString *developerName;
@property (nonatomic, strong) NSString *identifier;
@property (nonatomic, strong) NSString *iconName;
@property (nonatomic) ApplicationType type;

- (instancetype)initWithDictionary:(NSDictionary *)dict;

+ (NSArray *)applicationsFromJSONAtPath:(NSString *)path;
+ (NSArray *)applicationsFromJSON:(id)JSON;

@end


================================================
FILE: DZNEmptyDataSet/Applications/Application.m
================================================
//
//  Application.m
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "Application.h"

@implementation Application

- (instancetype)initWithDictionary:(NSDictionary *)dict
{
    self = [super init];
    if (self) {
        self.displayName = dict[@"display_name"];
        self.developerName = dict[@"developer_name"];
        self.identifier = dict[@"identifier"];
    }
    return self;
}

+ (NSArray *)applicationsFromJSONAtPath:(NSString *)path
{
    NSData *data = [NSData dataWithContentsOfFile:path];
    NSArray *JSON = [[NSJSONSerialization JSONObjectWithData:data options:kNilOptions|NSJSONWritingPrettyPrinted error:nil] mutableCopy];
    
    return [self applicationsFromJSON:JSON];
}

+ (NSArray *)applicationsFromJSON:(id)JSON
{
    NSMutableArray *objects = [NSMutableArray new];
    
    for (NSDictionary *dictionary in JSON) {
        Application *obj = [[Application alloc] initWithDictionary:dictionary];
        [objects addObject:obj];
    }
    
    return objects;
}

- (void)setDisplayName:(NSString *)displayName
{
    _displayName = displayName;
    
    self.iconName = [[[NSString stringWithFormat:@"icon_%@", self.displayName] lowercaseString] stringByReplacingOccurrencesOfString:@" " withString:@"_"];
    
    self.type = applicationTypeFromString(self.displayName) + 1;
}

ApplicationType applicationTypeFromString(NSString *string)
{
    NSArray *arr = @[
                     @"500px",
                     @"Airbnb",
                     @"AppStore",
                     @"Camera",
                     @"Dropbox",
                     @"Facebook",
                     @"Fancy",
                     @"Foursquare",
                     @"iCloud",
                     @"Instagram",
                     @"iTunes Connect",
                     @"Kickstarter",
                     @"Path",
                     @"Pinterest",
                     @"Photos",
                     @"Podcasts",
                     @"Remote",
                     @"Safari",
                     @"Skype",
                     @"Slack",
                     @"Tumblr",
                     @"Twitter",
                     @"Videos",
                     @"Vesper",
                     @"Vine",
                     @"WhatsApp",
                     @"WWDC"
                     ];
    return (ApplicationType)[arr indexOfObject:string];
}

@end


================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "3x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57.png",
      "scale" : "1x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@3x.png",
      "scale" : "3x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "idiom" : "ipad",
      "size" : "83.5x83.5",
      "scale" : "2x"
    },
    {
      "idiom" : "ios-marketing",
      "size" : "1024x1024",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/Contents.json
================================================
{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage-2.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage-3.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "Default-hd-plus@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "minimum-system-version" : "8.0",
      "subtype" : "736h",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "Default-hd@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "filename" : "Default@2x.png",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "retina4",
      "filename" : "Default-568h@2x.png",
      "minimum-system-version" : "7.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "filename" : "Default.png",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "filename" : "Default@2x-1.png",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "filename" : "Default-568h@2x-1.png",
      "extent" : "full-screen",
      "subtype" : "retina4",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_foursquare_highlight.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_foursquare_highlight.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_foursquare_highlight@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_foursquare_normal.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_foursquare_normal.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_foursquare_normal@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_icloud_highlight.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_icloud_highlight.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_icloud_highlight@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_icloud_normal.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_icloud_normal.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_icloud_normal@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_kickstarter_highlight.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_kickstarter_highlight.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_kickstarter_highlight@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/button_background_kickstarter_normal.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "button_background_kickstarter_normal.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "button_background_kickstarter_normal@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/header_pinterest.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "header_pinterest.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "header_pinterest@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/header_podcasts.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "header_podcasts.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "header_podcasts@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_500px.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_500px.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_500px@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_airbnb.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_airbnb.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_airbnb@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_appstore.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_appstore.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_appstore@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_camera.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_camera.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_camera@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_dropbox.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_dropbox.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_dropbox@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_facebook.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_facebook.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_facebook@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_fancy.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_fancy.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_fancy@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_foursquare.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_foursquare.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_foursquare@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_icloud.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_icloud.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_icloud@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_instagram.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_instagram.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_instagram@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_itunes_connect.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_itunesconnect.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_itunesconnect@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_kickstarter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_kickstarter.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_kickstarter@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_path.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_path.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_path@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_photos.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_photos.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_photos@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_pinterest.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_pinterest.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_pinterest@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_podcasts.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_podcasts.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_podcasts@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_remote.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_remote.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_remote@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_safari.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_safari.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_safari@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_skype.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_skype.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_skype@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_slack.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_slack.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_slack@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_tumblr.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_tumblr.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_tumblr@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_twitter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_twitter.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_twitter@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_vesper.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_vesper.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_vesper@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_videos.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_videos.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_videos@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_vine.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_vine.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_vine@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_whatsapp.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_whatsapp.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_whatsapp@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/icon_wwdc.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "icon_wwdc.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "icon_wwdc@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/loading_imgBlue_78x78.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "idiom" : "universal",
      "filename" : "loading_imgBlue_78x78@2x.png",
      "scale" : "2x"
    },
    {
      "idiom" : "universal",
      "filename" : "loading_imgBlue_78x78@3x.png",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_500px.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_500px.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_500px@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_airbnb.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_airbnb.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_airbnb@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_dropbox.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_dropbox.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_dropbox@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_facebook.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_facebook.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_facebook@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_fancy.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_fancy.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_fancy@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_foursquare.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_foursquare.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_foursquare@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_instagram.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_instagram.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_instagram@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_kickstarter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_kickstarter.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_kickstarter@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_path.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_path.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_path@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_pinterest.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_pinterest.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_pinterest@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_skype.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_skype.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_skype@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_slack.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_slack.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_slack@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_tumblr.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_tumblr.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_tumblr@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_twitter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_twitter.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_twitter@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_vesper.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_vesper.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_vesper@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/logo_vine.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "logo_vine.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "logo_vine@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_500px.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_500px.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_500px@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_airbnb.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_airbnb.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_airbnb@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_appstore.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_appstore.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_appstore@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_dropbox.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_dropbox.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_dropbox@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_facebook.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_facebook.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_facebook@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_fancy.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_fancy.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_fancy@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_foursquare.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_foursquare.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_foursquare@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_instagram.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_instagram.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_instagram@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_itunes_connect.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_itunes_connect.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_itunes_connect@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_kickstarter.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_kickstarter.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_kickstarter@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_path.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_path.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_path@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_remote.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_remote.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_remote@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_skype.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_skype.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_skype@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_slack.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_slack.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_slack@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_tumblr.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_tumblr.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_tumblr@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_vesper.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_vesper.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_vesper@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_videos.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_videos.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_videos@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_vine.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_vine.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_vine@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_whatsapp.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "placeholder_whatsapp.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "placeholder_whatsapp@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Applications/DetailViewController.h
================================================
//
//  DetailViewController.h
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "Application.h"

@interface DetailViewController : UITableViewController

@property (nonatomic, weak) NSArray *applications;
@property (nonatomic) BOOL allowShuffling;

- (instancetype)initWithApplication:(Application *)app;

@end


================================================
FILE: DZNEmptyDataSet/Applications/DetailViewController.m
================================================
//
//  DetailViewController.m
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "DetailViewController.h"
#import "UIColor+Hexadecimal.h"

#import <DZNEmptyDataSet/DZNEmptyDataSet.h>

@interface DetailViewController () <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
@property (nonatomic, strong) Application *application;
@property (nonatomic, getter=isLoading) BOOL loading;
@end

@implementation DetailViewController

- (instancetype)initWithApplication:(Application *)application
{
    self = [super initWithStyle:UITableViewStylePlain];
    if (self) {
        self.application = application;
        self.title = application.displayName;
    }
    return self;
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.edgesForExtendedLayout = UIRectEdgeNone;
    
    self.tableView.emptyDataSetSource = self;
    self.tableView.emptyDataSetDelegate = self;
    
    [self configureHeaderAndFooter];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    [self configureNavigationBar];
    
    [self setNeedsStatusBarAppearanceUpdate];
}


#pragma mark - Configuration and Event Methods

- (void)configureNavigationBar
{
    UIColor *barColor = nil;
    UIColor *tintColor = nil;
    
    self.navigationController.navigationBar.titleTextAttributes = nil;

    switch (self.application.type) {
        case ApplicationType500px:
        {
            barColor = [UIColor colorWithHex:@"242424"];
            tintColor = [UIColor colorWithHex:@"d7d7d7"];
            break;
        }
        case ApplicationTypeAirbnb:
        {
            barColor = [UIColor colorWithHex:@"f8f8f8"];
            tintColor = [UIColor colorWithHex:@"08aeff"];
            break;
        }
        case ApplicationTypeCamera:
        {
            barColor = [UIColor colorWithHex:@"595959"];
            tintColor = [UIColor whiteColor];
            self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: tintColor};
            break;
        }
        case ApplicationTypeDropbox:
        {
            barColor = [UIColor whiteColor];
            tintColor = [UIColor colorWithHex:@"007ee5"];
            break;
        }
        case ApplicationTypeFacebook:
        {
            barColor = [UIColor colorWithHex:@"506da8"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeFancy:
        {
            barColor = [UIColor colorWithHex:@"353b49"];
            tintColor = [UIColor colorWithHex:@"c4c7cb"];
            break;
        }
        case ApplicationTypeFoursquare:
        {
            barColor = [UIColor colorWithHex:@"00aeef"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeInstagram:
        {
            barColor = [UIColor colorWithHex:@"2e5e86"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeKickstarter:
        {
            barColor = [UIColor colorWithHex:@"f7f8f8"];
            tintColor = [UIColor colorWithHex:@"2bde73"];
            break;
        }
        case ApplicationTypePath:
        {
            barColor = [UIColor colorWithHex:@"544f49"];
            tintColor = [UIColor colorWithHex:@"fffff2"];
            break;
        }
        case ApplicationTypePinterest:
        {
            barColor = [UIColor colorWithHex:@"f4f4f4"];
            tintColor = [UIColor colorWithHex:@"cb2027"];
            break;
        }
        case ApplicationTypeSlack:
        {
            barColor = [UIColor colorWithHex:@"f4f5f6"];
            tintColor = [UIColor colorWithHex:@"3eba92"];
            break;
        }
        case ApplicationTypeSkype:
        {
            barColor = [UIColor colorWithHex:@"00aff0"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeTumblr:
        {
            barColor = [UIColor colorWithHex:@"2e3e53"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeTwitter:
        {
            barColor = [UIColor colorWithHex:@"58aef0"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeVesper:
        {
            barColor = [UIColor colorWithHex:@"5e7d9a"];
            tintColor = [UIColor colorWithHex:@"f8f8f8"];
            break;
        }
        case ApplicationTypeVideos:
        {
            barColor = [UIColor colorWithHex:@"4a4b4d"];
            tintColor = [UIColor blackColor];
            break;
        }
        case ApplicationTypeVine:
        {
            barColor = [UIColor colorWithHex:@"00bf8f"];
            tintColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeWWDC:
        {
            tintColor = [UIColor colorWithHex:@"fc6246"];
            break;
        }
        default:
            barColor = [UIColor colorWithHex:@"f8f8f8"];
            tintColor = [UIApplication sharedApplication].keyWindow.tintColor;
            break;
    }
    
    UIImage *logo = [UIImage imageNamed:[NSString stringWithFormat:@"logo_%@", [self.application.displayName lowercaseString]]];
    
    if (logo) {
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:logo];
    }
    else {
        self.navigationItem.titleView = nil;
        self.navigationItem.title = self.application.displayName;
    }
    
    self.navigationController.navigationBar.barTintColor = barColor;
    self.navigationController.navigationBar.tintColor = tintColor;
}

- (void)configureHeaderAndFooter
{
    NSString *imageName = nil;
    
    if (self.application.type == ApplicationTypePinterest) {
        imageName = @"header_pinterest";
    }
    if (self.application.type == ApplicationTypePodcasts) {
        imageName = @"header_podcasts";
    }
    
    if (imageName) {
        UIImage *image = [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        imageView.userInteractionEnabled = YES;

        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapHeaderView:)];
        [imageView addGestureRecognizer:tapGesture];

        CGRect frame = self.view.bounds;
        frame.size.height = image.size.height;
        UIView *headerView = [[UIView alloc] initWithFrame:frame];
        headerView.backgroundColor = [UIColor whiteColor];

        imageView.center = CGPointMake(frame.size.width/2.0, frame.size.height/2.0);
        [headerView addSubview:imageView];
        
        self.tableView.tableHeaderView = headerView;
    }
    else {
        self.tableView.tableHeaderView = [UIView new];
    }
    
    self.tableView.tableFooterView = [UIView new];
}

- (UIStatusBarStyle)preferredStatusBarStyle
{
    switch (self.application.type) {
        case ApplicationType500px:
        case ApplicationTypeCamera:
        case ApplicationTypeFacebook:
        case ApplicationTypeFancy:
        case ApplicationTypeFoursquare:
        case ApplicationTypeInstagram:
        case ApplicationTypePath:
        case ApplicationTypeSkype:
        case ApplicationTypeTumblr:
        case ApplicationTypeTwitter:
        case ApplicationTypeVesper:
        case ApplicationTypeVine:
            return UIStatusBarStyleLightContent;
        default:
            return UIStatusBarStyleDefault;
    }
}

- (void)setAllowShuffling:(BOOL)allow
{
    _allowShuffling = allow;
    
    UIBarButtonItem *rightItem = nil;
    
    if (allow) {
        rightItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(shuffle:)];
    }
    
    self.navigationItem.rightBarButtonItem = rightItem;
}

- (void)didTapHeaderView:(id)sender
{
    NSLog(@"%s",__FUNCTION__);
}

- (void)shuffle:(id)sender
{
    Application *randomApp = [self randomApplication];
    
    while ([randomApp.identifier isEqualToString:self.application.identifier] || randomApp.type == ApplicationTypeUndefined) {
        randomApp = [self randomApplication];
    }
    
    self.application = randomApp;
    
    [self configureHeaderAndFooter];
    [self configureNavigationBar];
    
    [self.tableView reloadEmptyDataSet];
}

- (Application *)randomApplication
{
    ApplicationType randomType = arc4random() % ApplicationCount;

    NSPredicate *query = [NSPredicate predicateWithFormat:@"type == %d", randomType];
    
    return [[self.applications filteredArrayUsingPredicate:query] firstObject];
}

- (void)setLoading:(BOOL)loading
{
    if (self.isLoading == loading) {
        return;
    }
    
    _loading = loading;
    
    [self.tableView reloadEmptyDataSet];
}


#pragma mark - UITableViewDataSource Methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 0;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *identifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
    }
    
    return cell;
}


#pragma mark - DZNEmptyDataSetSource Methods

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = nil;
    UIFont *font = nil;
    UIColor *textColor = nil;
    
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    
    switch (self.application.type) {
        case ApplicationType500px:
        {
            text = @"No Photos";
            font = [UIFont boldSystemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:@"545454"];
            break;
        }
        case ApplicationTypeAirbnb:
        {
            text = @"No Messages";
            font = [UIFont fontWithName:@"HelveticaNeue-Light" size:22.0];
            textColor = [UIColor colorWithHex:@"c9c9c9"];
            break;
        }
        case ApplicationTypeCamera:
        {
            text = @"Please Allow Photo Access";
            font = [UIFont boldSystemFontOfSize:18.0];
            textColor = [UIColor colorWithHex:@"5f6978"];
            break;
        }
        case ApplicationTypeDropbox:
        {
            text = @"Star Your Favorite Files";
            font = [UIFont boldSystemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:@"25282b"];
            break;
        }
        case ApplicationTypeFacebook:
        {
            text = @"No friends to show.";
            font = [UIFont boldSystemFontOfSize:22.0];
            textColor = [UIColor colorWithHex:@"acafbd"];
            
            NSShadow *shadow = [NSShadow new];
            shadow.shadowColor = [UIColor whiteColor];
            shadow.shadowOffset = CGSizeMake(0.0, 1.0);
            [attributes setObject:shadow forKey:NSShadowAttributeName];
            break;
        }
        case ApplicationTypeFancy:
        {
            text = @"No Owns yet";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"494c53"];
            break;
        }
        case ApplicationTypeiCloud:
        {
            text = @"iCloud Photo Sharing";
            break;
        }
        case ApplicationTypeInstagram:
        {
            text = @"Instagram Direct";
            font = [UIFont fontWithName:@"HelveticaNeue-Light" size:26.0];
            textColor = [UIColor colorWithHex:@"444444"];
            break;
        }
        case ApplicationTypeiTunesConnect:
        {
            text = @"No Favorites";
            font = [UIFont systemFontOfSize:22.0];
            break;
        }
        case ApplicationTypeKickstarter:
        {
            text = @"Activity empty";
            font = [UIFont boldSystemFontOfSize:16.0];
            textColor = [UIColor colorWithHex:@"828587"];
            [attributes setObject:@(-0.10) forKey:NSKernAttributeName];
            break;
        }
        case ApplicationTypePath:
        {
            text = @"Message Your Friends";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypePinterest:
        {
            text = @"No boards to display";
            font = [UIFont boldSystemFontOfSize:18.0];
            textColor = [UIColor colorWithHex:@"666666"];
            break;
        }
        case ApplicationTypePhotos:
        {
            text = @"No Photos or Videos";
            break;
        }
        case ApplicationTypePodcasts:
        {
            text = @"No Podcasts";
            break;
        }
        case ApplicationTypeRemote:
        {
            text = @"Cannot Connect to a Local Network";
            font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:18.0];
            textColor = [UIColor colorWithHex:@"555555"];
            break;
        }
        case ApplicationTypeTumblr:
        {
            text = @"This is your Dashboard.";
            font = [UIFont boldSystemFontOfSize:18.0];
            textColor = [UIColor colorWithHex:@"aab6c4"];
            break;
        }
        case ApplicationTypeTwitter:
        {
            text = @"No lists";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"292f33"];
            break;
        }
        case ApplicationTypeVesper:
        {
            text = @"No Notes";
            font = [UIFont fontWithName:@"IdealSans-Book-Pro" size:16.0];
            textColor = [UIColor colorWithHex:@"d9dce1"];
            break;
        }
        case ApplicationTypeVideos:
        {
            text = @"AirPlay";
            font = [UIFont systemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:@"414141"];
            break;
        }
        case ApplicationTypeVine:
        {
            text = @"Welcome to VMs";
            font = [UIFont boldSystemFontOfSize:22.0];
            textColor = [UIColor colorWithHex:@"595959"];
            [attributes setObject:@(0.45) forKey:NSKernAttributeName];
            break;
        }
        case ApplicationTypeWhatsapp:
        {
            text = @"No Media";
            font = [UIFont systemFontOfSize:20.0];
            textColor = [UIColor colorWithHex:@"808080"];
            break;
        }
        case ApplicationTypeWWDC:
        {
            text = @"No Favorites";
            font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:16.0];
            textColor = [UIColor colorWithHex:@"b9b9b9"];
            break;
        }
        default:
            return nil;
    }
    
    if (!text) {
        return nil;
    }
    
    if (font) [attributes setObject:font forKey:NSFontAttributeName];
    if (textColor) [attributes setObject:textColor forKey:NSForegroundColorAttributeName];
    
    return [[NSAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = nil;
    UIFont *font = nil;
    UIColor *textColor = nil;
    
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    
    NSMutableParagraphStyle *paragraph = [NSMutableParagraphStyle new];
    paragraph.lineBreakMode = NSLineBreakByWordWrapping;
    paragraph.alignment = NSTextAlignmentCenter;
    
    switch (self.application.type) {
        case ApplicationType500px:
        {
            text = @"Get started by uploading a photo.";
            font = [UIFont boldSystemFontOfSize:15.0];
            textColor = [UIColor colorWithHex:@"545454"];
            break;
        }
        case ApplicationTypeAirbnb:
        {
            text = @"When you have messages, you’ll see them here.";
            font = [UIFont systemFontOfSize:13.0];
            textColor = [UIColor colorWithHex:@"cfcfcf"];
            paragraph.lineSpacing = 4.0;
            break;
        }
        case ApplicationTypeAppstore:
        {
            text = @"There are no results for “wwdc2014”.";
            font = [UIFont systemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"333333"];
            break;
        }
        case ApplicationTypeCamera:
        {
            text = @"This allows you to share photos from your library and save photos to your camera roll.";
            font = [UIFont systemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"5f6978"];
            break;
        }
        case ApplicationTypeDropbox:
        {
            text = @"Favorites are saved for offline access.";
            font = [UIFont systemFontOfSize:14.5];
            textColor = [UIColor colorWithHex:@"7b8994"];
            break;
        }
        case ApplicationTypeFancy:
        {
            text = @"Tap Add to List and add things to Owns";
            font = [UIFont systemFontOfSize:13.0];
            textColor = [UIColor colorWithHex:@"7a7d83"];
            break;
        }
        case ApplicationTypeFoursquare:
        {
            text = @"Nobody has liked or commented on your check-ins yet.";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"cecbc6"];
            break;
        }
        case ApplicationTypeiCloud:
        {
            text = @"Share photos and videos with just the people you choose, and let them add photos, videos, and comments.";
            paragraph.lineSpacing = 2.0;
            break;
        }
        case ApplicationTypeInstagram:
        {
            text = @"Send photos and videos directly to your friends. Only the people you send to can see these posts.";
            font = [UIFont systemFontOfSize:16.0];
            textColor = [UIColor colorWithHex:@"444444"];
            paragraph.lineSpacing = 4.0;
            break;
        }
        case ApplicationTypeiTunesConnect:
        {
            text = @"To add a favorite, tap the star icon next to an App's name.";
            font = [UIFont systemFontOfSize:14.0];
            break;
        }
        case ApplicationTypeKickstarter:
        {
            text = @"When you back a project or follow a friend, their activity will show up here.";
            font = [UIFont systemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"828587"];
            break;
        }
        case ApplicationTypePath:
        {
            text = @"Send a message or create a group.";
            font = [UIFont systemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:@"a6978d"];
            break;
        }
        case ApplicationTypePhotos:
        {
            text = @"You can sync photos and videos onto your iPhone using iTunes.";
            break;
        }
        case ApplicationTypePodcasts:
        {
            text = @"You can subscribe to podcasts in Top Charts or Featured.";
            break;
        }
        case ApplicationTypeRemote:
        {
            text = @"You must connect to a Wi-Fi network to control iTunes or Apple TV";
            font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:11.75];
            textColor = [UIColor colorWithHex:@"555555"];
            break;
        }
        case ApplicationTypeSafari:
        {
            text = @"Safari cannot open the page because your iPhone is not connected to the Internet.";
            textColor = [UIColor colorWithHex:@"7d7f7f"];
            paragraph.lineSpacing = 2.0;
            break;
        }
        case ApplicationTypeSkype:
        {
            text = @"Keep all your favorite people together, add favorites.";
            font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17.75];
            textColor = [UIColor colorWithHex:@"a6c3d1"];
            paragraph.lineSpacing = 3.0;
            break;
        }
        case ApplicationTypeSlack:
        {
            text = @"You don't have any recent mentions";
            font = [UIFont fontWithName:@"Lato-Regular" size:19.0];
            textColor = [UIColor colorWithHex:@"d7d7d7"];
            break;
        }
        case ApplicationTypeTumblr:
        {
            text = @"When you follow some blogs, their latest posts will show up here!";
            font = [UIFont systemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:@"828e9c"];
            break;
        }
        case ApplicationTypeTwitter:
        {
            text = @"You aren’t subscribed to any lists yet.";
            font = [UIFont systemFontOfSize:12.0];
            textColor = [UIColor colorWithHex:@"8899a6"];
            break;
        }
        case ApplicationTypeVideos:
        {
            text = @"This video is playing on “Apple TV”.";
            font = [UIFont systemFontOfSize:12.0];
            textColor = [UIColor colorWithHex:@"737373"];
            break;
        }
        case ApplicationTypeVine:
        {
            text = @"This is where your private conversations will live";
            font = [UIFont systemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:@"a6a6a6"];
            break;
        }
        case ApplicationTypeWhatsapp:
        {
            text = @"You can exchange media with Ignacio by tapping on the Arrow Up icon in the conversation screen.";
            font = [UIFont systemFontOfSize:15.0];
            textColor = [UIColor colorWithHex:@"989898"];
            break;
        }
        case ApplicationTypeWWDC:
        {
            text = @"Favorites are only available to Registered Apple Developers.";
            font = [UIFont systemFontOfSize:16.0];
            textColor = [UIColor colorWithHex:@"b9b9b9"];
            break;
        }
        default:
            return nil;
    }
    
    if (!text) {
        return nil;
    }
    
    if (font) [attributes setObject:font forKey:NSFontAttributeName];
    if (textColor) [attributes setObject:textColor forKey:NSForegroundColorAttributeName];
    if (paragraph) [attributes setObject:paragraph forKey:NSParagraphStyleAttributeName];

    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
    
    switch (self.application.type) {
        case ApplicationTypeSkype:
            [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHex:@"00adf1"] range:[attributedString.string rangeOfString:@"add favorites"]];
            break;
            
        default:
            break;
    }
    
    return attributedString;
}

- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    if (self.isLoading) {
        return [UIImage imageNamed:@"loading_imgBlue_78x78" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
    }
    else {
        NSString *imageName = [[[NSString stringWithFormat:@"placeholder_%@", self.application.displayName] lowercaseString]
                               stringByReplacingOccurrencesOfString:@" " withString:@"_"];
        
        UIImage *image = [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];
        
        return image;
    }
}

- (CAAnimation *)imageAnimationForEmptyDataSet:(UIScrollView *)scrollView
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    animation.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
    animation.toValue = [NSValue valueWithCATransform3D: CATransform3DMakeRotation(M_PI_2, 0.0, 0.0, 1.0) ];
    animation.duration = 0.25;
    animation.cumulative = YES;
    animation.repeatCount = MAXFLOAT;
    
    return animation;
}

- (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    NSString *text = nil;
    UIFont *font = nil;
    UIColor *textColor = nil;
    
    switch (self.application.type) {
        case ApplicationTypeAirbnb:
        {
            text = @"Start Browsing";
            font = [UIFont boldSystemFontOfSize:16.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"05adff" : @"6bceff"];
            break;
        }
        case ApplicationTypeCamera:
        {
            text = @"Continue";
            font = [UIFont boldSystemFontOfSize:17.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"007ee5" : @"48a1ea"];
            break;
        }
        case ApplicationTypeDropbox:
        {
            text = @"Learn more";
            font = [UIFont systemFontOfSize:15.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"007ee5" : @"48a1ea"];
            break;
        }
        case ApplicationTypeFoursquare:
        {
            text = @"Add friends to get started!";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"00aeef" : @"ffffff"];
            break;
        }
        case ApplicationTypeiCloud:
        {
            text = @"Create New Stream";
            font = [UIFont systemFontOfSize:14.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"999999" : @"ebebeb"];
            break;
        }
        case ApplicationTypeKickstarter:
        {
            text = @"Discover projects";
            font = [UIFont boldSystemFontOfSize:14.0];
            textColor = [UIColor whiteColor];
            break;
        }
        case ApplicationTypeWWDC:
        {
            text = @"Sign In";
            font = [UIFont systemFontOfSize:16.0];
            textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"fc6246" : @"fdbbb2"];
            break;
        }
        default:
            return nil;
    }
    
    if (!text) {
        return nil;
    }
    
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    if (font) [attributes setObject:font forKey:NSFontAttributeName];
    if (textColor) [attributes setObject:textColor forKey:NSForegroundColorAttributeName];
    
    return [[NSAttributedString alloc] initWithString:text attributes:attributes];
}

- (UIImage *)buttonBackgroundImageForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    NSString *imageName = [[NSString stringWithFormat:@"button_background_%@", self.application.displayName] lowercaseString];
    
    if (state == UIControlStateNormal) imageName = [imageName stringByAppendingString:@"_normal"];
    if (state == UIControlStateHighlighted) imageName = [imageName stringByAppendingString:@"_highlight"];
    
    UIEdgeInsets capInsets = UIEdgeInsetsMake(10.0, 10.0, 10.0, 10.0);
    UIEdgeInsets rectInsets = UIEdgeInsetsZero;
    
    switch (self.application.type) {
        case ApplicationTypeFoursquare:
            capInsets = UIEdgeInsetsMake(25.0, 25.0, 25.0, 25.0);
            rectInsets = UIEdgeInsetsMake(0.0, 10, 0.0, 10);
            break;
        case ApplicationTypeiCloud:
            rectInsets = UIEdgeInsetsMake(-19.0, -61.0, -19.0, -61.0);
            break;
        case ApplicationTypeKickstarter:
            capInsets = UIEdgeInsetsMake(22.0, 22.0, 22.0, 22.0);
            rectInsets = UIEdgeInsetsMake(0.0, -20, 0.0, -20);
            break;
        default:
            break;
    }
    
    UIImage *image = [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil];

    return [[image resizableImageWithCapInsets:capInsets resizingMode:UIImageResizingModeStretch] imageWithAlignmentRectInsets:rectInsets];
}

- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView
{
    switch (self.application.type) {
        case ApplicationType500px:      return [UIColor blackColor];
        case ApplicationTypeAirbnb:     return [UIColor whiteColor];
        case ApplicationTypeDropbox:    return [UIColor colorWithHex:@"f0f3f5"];
        case ApplicationTypeFacebook:   return [UIColor colorWithHex:@"eceef7"];
        case ApplicationTypeFancy:      return [UIColor colorWithHex:@"f0f0f0"];
        case ApplicationTypeFoursquare: return [UIColor colorWithHex:@"fcfcfa"];
        case ApplicationTypeInstagram:  return [UIColor whiteColor];
        case ApplicationTypeKickstarter:return [UIColor colorWithHex:@"f7fafa"];
        case ApplicationTypePath:       return [UIColor colorWithHex:@"726d67"];
        case ApplicationTypePinterest:  return [UIColor colorWithHex:@"e1e1e1"];
        case ApplicationTypeSlack:      return [UIColor whiteColor];
        case ApplicationTypeTumblr:     return [UIColor colorWithHex:@"34465c"];
        case ApplicationTypeTwitter:    return [UIColor colorWithHex:@"f5f8fa"];
        case ApplicationTypeVesper:     return [UIColor colorWithHex:@"f8f8f8"];
        case ApplicationTypeVideos:     return [UIColor blackColor];
        case ApplicationTypeWhatsapp:   return [UIColor colorWithHex:@"f2f2f2"];
        default:                        return nil;
    }
}

- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    if (self.application.type == ApplicationTypeKickstarter) {
        CGFloat offset = CGRectGetHeight([UIApplication sharedApplication].statusBarFrame);
        offset += CGRectGetHeight(self.navigationController.navigationBar.frame);
        return -offset;
    }
    if (self.application.type == ApplicationTypeTwitter) {
        return -roundf(self.tableView.frame.size.height/2.5);
    }
    return 0.0;
}

- (CGFloat)spaceHeightForEmptyDataSet:(UIScrollView *)scrollView
{
    switch (self.application.type) {
        case ApplicationType500px:          return 9.0;
        case ApplicationTypeAirbnb:         return 24.0;
        case ApplicationTypeAppstore:       return 34.0;
        case ApplicationTypeFacebook:       return 30.0;
        case ApplicationTypeFancy:          return 1.0;
        case ApplicationTypeFoursquare:     return 9.0;
        case ApplicationTypeInstagram:      return 24.0;
        case ApplicationTypeiTunesConnect:  return 9.0;
        case ApplicationTypeKickstarter:    return 15.0;
        case ApplicationTypePath:           return 1.0;
        case ApplicationTypePodcasts:       return 35.0;
        case ApplicationTypeTumblr:         return 10.0;
        case ApplicationTypeTwitter:        return 0.1;
        case ApplicationTypeVesper:         return 22.0;
        case ApplicationTypeVideos:         return 0.1;
        case ApplicationTypeVine:           return 0.1;
        case ApplicationTypeWWDC:           return 18.0;
        default:                            return 0.0;
    }
}


#pragma mark - DZNEmptyDataSetDelegate Methods

- (BOOL)emptyDataSetShouldDisplay:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAnimateImageView:(UIScrollView *)scrollView
{
    return self.isLoading;
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{
    self.loading = YES;
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        self.loading = NO;
    });
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapButton:(UIButton *)button
{
    self.loading = YES;
    
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        self.loading = NO;
    });
}

@end


================================================
FILE: DZNEmptyDataSet/Applications/MainViewController.h
================================================
//
//  MainViewController.h
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "DetailViewController.h"
#import "Application.h"

@interface MainViewController : UITableViewController

@end


================================================
FILE: DZNEmptyDataSet/Applications/MainViewController.m
================================================
//
//  MainViewController.m
//  Applications
//
//  Created by Ignacio on 6/6/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "MainViewController.h"
#import "UIColor+Hexadecimal.h"

#import <DZNEmptyDataSet/DZNEmptyDataSet.h>

@interface MainViewController () <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
@property (nonatomic, strong) NSArray *applications;
@property (nonatomic, strong) UISearchController *searchController;
@end

@implementation MainViewController

- (void)awakeFromNib
{
    [super awakeFromNib];
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"applications" ofType:@"json"];
    self.applications = [Application applicationsFromJSONAtPath:path];
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.title = @"Applications";
    self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:NULL];
    
    self.tableView.tableFooterView = [UIView new];
    
    self.searchDisplayController.searchResultsTableView.emptyDataSetSource = self;
    self.searchDisplayController.searchResultsTableView.emptyDataSetDelegate = self;
    self.searchDisplayController.searchResultsTableView.tableFooterView = [UIView new];
    [self.searchDisplayController setValue:@"" forKey:@"noResultsMessage"];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    // Resets styling
    self.navigationController.navigationBar.titleTextAttributes = nil;
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithHex:@"f8f8f8"];;
    self.navigationController.navigationBar.translucent = NO;
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
}


#pragma mark - Getters

- (NSArray *)filteredApps
{
    UISearchBar *searchBar = self.searchDisplayController.searchBar;

    if ([searchBar isFirstResponder] && searchBar.text.length > 0)
    {
        NSPredicate *precidate = [NSPredicate predicateWithFormat:@"displayName CONTAINS[cd] %@", searchBar.text];
        return [self.applications filteredArrayUsingPredicate:precidate];
    }
    return self.applications;
}


#pragma mark - DZNEmptyDataSetSource Methods

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"No Application Found";
    return [[NSAttributedString alloc] initWithString:text attributes:nil];
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    UISearchBar *searchBar = self.searchDisplayController.searchBar;
    
    NSString *text = [NSString stringWithFormat:@"There are no empty dataset examples for \"%@\".", searchBar.text];
    NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:nil];
    
    [attributedString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:17.0] range:[attributedString.string rangeOfString:searchBar.text]];
    
    return attributedString;
}

- (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    NSString *text = @"Search on the App Store";
    UIFont *font = [UIFont systemFontOfSize:16.0];
    UIColor *textColor = [UIColor colorWithHex:(state == UIControlStateNormal) ? @"007aff" : @"c6def9"];
    
    NSMutableDictionary *attributes = [NSMutableDictionary new];
    [attributes setObject:font forKey:NSFontAttributeName];
    [attributes setObject:textColor forKey:NSForegroundColorAttributeName];
    
    return [[NSAttributedString alloc] initWithString:text attributes:attributes];
}

- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIColor whiteColor];
}

- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView
{
    return -64.0;
}

#pragma mark - DZNEmptyDataSetDelegate Methods

- (BOOL)emptyDataSetShouldDisplay:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{
    NSLog(@"%s",__FUNCTION__);
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapButton:(UIButton *)button
{

    UISearchBar *searchBar = self.searchDisplayController.searchBar;

    NSURL *URL = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.com/apps/%@", searchBar.text]];
    
    if ([[UIApplication sharedApplication] canOpenURL:URL]) {
        [[UIApplication sharedApplication] openURL:URL];
    }
}


#pragma mark - UITableViewDataSource Methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSInteger rowCount = [self filteredApps].count;

    return rowCount;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"app_cell_identifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    }
    
    Application *app = [[self filteredApps] objectAtIndex:indexPath.row];
    
    cell.textLabel.text = app.displayName;
    cell.detailTextLabel.text = app.developerName;
    
    UIImage *image = [UIImage imageNamed:app.iconName];
    cell.imageView.image = image;
    
    cell.imageView.layer.cornerRadius = image.size.width*0.2;
    cell.imageView.layer.masksToBounds = YES;
    cell.imageView.layer.borderColor = [UIColor colorWithWhite:0.0 alpha:0.2].CGColor;
    cell.imageView.layer.borderWidth = 0.5;
    
    cell.imageView.layer.shouldRasterize = YES;
    cell.imageView.layer.rasterizationScale = [UIScreen mainScreen].scale;
    
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 70.0;
}


#pragma mark - UITableViewDelegate Methods

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    Application *app = [[self filteredApps] objectAtIndex:indexPath.row];
    DetailViewController *controller = [[DetailViewController alloc] initWithApplication:app];
    controller.applications = self.applications;
    controller.allowShuffling = YES;
    
    if ([controller preferredStatusBarStyle] == UIStatusBarStyleLightContent) {
        self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    }
    
    [self.navigationController pushViewController:controller animated:YES];
}


#pragma mark - UISearchBarDelegate Methods

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    return YES;
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
{
    return YES;
}

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    // Do something
}

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
    // Do something
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    // Do something
}

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    // Do something
}

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    // Do something
}


#pragma mark - UISearchDisplayDelegate Methods

- (void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller
{
    // Do something
}

- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller
{
    // Do something
}

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView
{
    // Do something
}

- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView
{
    // Do something
}


#pragma mark - View Auto-Rotation

- (UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleDefault;
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate
{
    return YES;
}

@end


================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/Applications-Prefix.pch
================================================
//
//  Prefix header
//
//  The contents of this file are implicitly included at the beginning of every source file.
//

#import <Availability.h>

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif


================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
</document>


================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UIAppFonts</key>
	<array>
		<string>IdealSans-Book-Pro.otf</string>
		<string>Lato-Regular.ttf</string>
	</array>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Storyboard</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<true/>
</dict>
</plist>


================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/Storyboard.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" colorMatched="YES" initialViewController="5hR-C5-ClI">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--Main View Controller-->
        <scene sceneID="QIO-c6-OVa">
            <objects>
                <tableViewController id="yc9-fl-Ful" customClass="MainViewController" sceneMemberID="viewController">
                    <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="w0h-tk-9IJ">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <searchBar key="tableHeaderView" contentMode="redraw" searchBarStyle="minimal" text="" id="Zhb-Pe-mgA">
                            <rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                            <color key="tintColor" red="0.046561669559999998" green="0.41276246309999998" blue="0.99838423730000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                            <textInputTraits key="textInputTraits"/>
                            <connections>
                                <outlet property="delegate" destination="yc9-fl-Ful" id="zaQ-gD-UEr"/>
                            </connections>
                        </searchBar>
                        <prototypes>
                            <tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" reuseIdentifier="app_cell_identifier" textLabel="6Vv-GN-5Xv" detailTextLabel="S3O-x4-CqR" style="IBUITableViewCellStyleSubtitle" id="wII-9I-R71">
                                <rect key="frame" x="0.0" y="100" width="375" height="44"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wII-9I-R71" id="HKr-XI-q98">
                                    <rect key="frame" x="0.0" y="0.0" width="342" height="43"/>
                                    <autoresizingMask key="autoresizingMask"/>
                                    <subviews>
                                        <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="6Vv-GN-5Xv">
                                            <rect key="frame" x="15" y="3" width="36" height="22"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="18"/>
                                            <color key="textColor" red="0.33333333333333331" green="0.33333333333333331" blue="0.33333333333333331" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                        <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Subtitle" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="S3O-x4-CqR">
                                            <rect key="frame" x="15" y="25" width="44" height="15"/>
                                            <autoresizingMask key="autoresizingMask"/>
                                            <fontDescription key="fontDescription" type="system" pointSize="12"/>
                                            <color key="textColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                            <nil key="highlightedColor"/>
                                        </label>
                                    </subviews>
                                </tableViewCellContentView>
                            </tableViewCell>
                        </prototypes>
                        <connections>
                            <outlet property="dataSource" destination="yc9-fl-Ful" id="Rbj-3A-DjK"/>
                            <outlet property="delegate" destination="yc9-fl-Ful" id="BkI-um-zos"/>
                        </connections>
                    </tableView>
                    <navigationItem key="navigationItem" id="QaP-9K-ONU"/>
                    <connections>
                        <outlet property="searchDisplayController" destination="gJc-z6-kTf" id="gRd-M7-Kgm"/>
                    </connections>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="RNU-uT-Tld" userLabel="First Responder" sceneMemberID="firstResponder"/>
                <searchDisplayController id="gJc-z6-kTf">
                    <connections>
                        <outlet property="delegate" destination="yc9-fl-Ful" id="OBY-u9-oN4"/>
                        <outlet property="searchBar" destination="Zhb-Pe-mgA" id="OxP-qF-lEb"/>
                        <outlet property="searchContentsController" destination="yc9-fl-Ful" id="PKE-Ow-H68"/>
                        <outlet property="searchResultsDataSource" destination="yc9-fl-Ful" id="ztV-wH-YEt"/>
                        <outlet property="searchResultsDelegate" destination="yc9-fl-Ful" id="HLL-Wo-t5k"/>
                    </connections>
                </searchDisplayController>
            </objects>
            <point key="canvasLocation" x="835" y="62"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="tyj-Vt-Wfe">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="5hR-C5-ClI" sceneMemberID="viewController">
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="K1m-NK-JNR">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="yc9-fl-Ful" kind="relationship" relationship="rootViewController" id="bmn-0a-Qnp"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="rU3-kL-N3O" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="309" y="62"/>
        </scene>
    </scenes>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
    </simulatedMetricsContainer>
</document>


================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/en.lproj/InfoPlist.strings
================================================
/* Localized versions of Info.plist keys */



================================================
FILE: DZNEmptyDataSet/Applications/Supporting Files/main.m
================================================
//
//  main.m
//  Applications
//
//  Created by Ignacio Romero on 2/28/17.
//  Copyright © 2017 DZN. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


================================================
FILE: DZNEmptyDataSet/Applications/UIColor+Hexadecimal.h
================================================
//
//  UIColor+Hexadecimal.h
//  Applications
//
//  Created by Ignacio on 6/7/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIColor (Hexadecimal)

+ (UIColor *)colorWithHex:(NSString *)string;

@end


================================================
FILE: DZNEmptyDataSet/Applications/UIColor+Hexadecimal.m
================================================
//
//  UIColor+Hexadecimal.m
//  Applications
//
//  Created by Ignacio on 6/7/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "UIColor+Hexadecimal.h"

@implementation UIColor (Hexadecimal)

+ (UIColor *)colorWithHex:(NSString *)string
{
    NSString *cleanString = [string stringByReplacingOccurrencesOfString:@"#" withString:@""];
    if([cleanString length] == 3) {
        cleanString = [NSString stringWithFormat:@"%@%@%@%@%@%@",
                       [cleanString substringWithRange:NSMakeRange(0, 1)],[cleanString substringWithRange:NSMakeRange(0, 1)],
                       [cleanString substringWithRange:NSMakeRange(1, 1)],[cleanString substringWithRange:NSMakeRange(1, 1)],
                       [cleanString substringWithRange:NSMakeRange(2, 1)],[cleanString substringWithRange:NSMakeRange(2, 1)]];
    }
    if([cleanString length] == 6) {
        cleanString = [cleanString stringByAppendingString:@"ff"];
    }
    
    unsigned int baseValue;
    [[NSScanner scannerWithString:cleanString] scanHexInt:&baseValue];
    
    float red = ((baseValue >> 24) & 0xFF)/255.0f;
    float green = ((baseValue >> 16) & 0xFF)/255.0f;
    float blue = ((baseValue >> 8) & 0xFF)/255.0f;
    
    return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}

@end


================================================
FILE: DZNEmptyDataSet/Applications/applications.json
================================================
 [
  {
  "display_name": "500px",
  "developer_name": "500px",
  "identifier": "471965292"
  },
  {
  "display_name": "Airbnb",
  "developer_name": "Airbnb, Inc.",
  "identifier": "401626263"
  },
  {
  "display_name": "AppStore",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Camera",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Dropbox",
  "developer_name": "Dropbox, Inc.",
  "identifier": "327630330"
  },
  {
  "display_name": "Facebook",
  "developer_name": "Facebook, Inc.",
  "identifier": "284882215"
  },
  {
  "display_name": "Fancy",
  "developer_name": "Thing Daemon, Inc.",
  "identifier": "407324335"
  },
  {
  "display_name": "Foursquare",
  "developer_name": "Foursquare Labs",
  "identifier": "306934924"
  },
  {
  "display_name": "iCloud",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Instagram",
  "developer_name": "Instagram, Inc.",
  "identifier": "389801252"
  },
  {
  "display_name": "iTunes Connect",
  "developer_name": "Apple, Inc.",
  "identifier": "376771144"
  },
  {
  "display_name": "Kickstarter",
  "developer_name": "Kickstarter, Inc.",
  "identifier": "596961532"
  },
  {
  "display_name": "Path",
  "developer_name": "Path, Inc.",
  "identifier": "403639508"
  },
  {
  "display_name": "Pinterest",
  "developer_name": "Pinterest, Inc.",
  "identifier": "429047995"
  },
  {
  "display_name": "Photos",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Podcasts",
  "developer_name": "Apple, Inc.",
  "identifier": "525463029"
  },
  {
  "display_name": "Remote",
  "developer_name": "Apple, Inc.",
  "identifier": "284417350"
  },
  {
  "display_name": "Safari",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Skype",
  "developer_name": "Skype Communications S.a.r.l",
  "identifier": "304878510"
  },
  {
  "display_name": "Slack",
  "developer_name": "Tiny Speck, Inc.",
  "identifier": "618783545"
  },
  {
  "display_name": "Tumblr",
  "developer_name": "Tumblr, Inc.",
  "identifier": "305343404"
  },
  {
  "display_name": "Twitter",
  "developer_name": "Twitter, Inc.",
  "identifier": "333903271"
  },
  {
  "display_name": "Vesper",
  "developer_name": "Q Branch",
  "identifier": "655895325"
  },
  {
  "display_name": "Videos",
  "developer_name": "Apple, Inc.",
  "identifier": ""
  },
  {
  "display_name": "Vine",
  "developer_name": "Vine Labs, Inc.",
  "identifier": "592447445"
  },
  {
  "display_name": "WhatsApp",
  "developer_name": "WhatsApp, Inc.",
  "identifier": "310633997"
  },
  {
  "display_name": "WWDC",
  "developer_name": "Apple, Inc.",
  "identifier": "640199958"
  },
]

================================================
FILE: DZNEmptyDataSet/Colors/AppDelegate.h
================================================
//
//  AppDelegate.h
//  Colors
//
//  Created by Ignacio Romero Z. on 6/19/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end


================================================
FILE: DZNEmptyDataSet/Colors/AppDelegate.m
================================================
//
//  AppDelegate.m
//  Colors
//
//  Created by Ignacio Romero Z. on 6/19/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.backgroundColor = [UIColor whiteColor];
    
    return YES;
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "idiom" : "iphone",
      "size" : "20x20",
      "scale" : "3x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57.png",
      "scale" : "1x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@3x.png",
      "scale" : "3x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "1x"
    },
    {
      "idiom" : "ipad",
      "size" : "20x20",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "83.5x83.5",
      "idiom" : "ipad",
      "filename" : "icon-120~car.png",
      "scale" : "2x"
    },
    {
      "idiom" : "ios-marketing",
      "size" : "1024x1024",
      "scale" : "1x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Assets.xcassets/LaunchImage.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "Default-hd-plus@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "minimum-system-version" : "8.0",
      "subtype" : "736h",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "Default-hd@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "filename" : "Default@2x.png",
      "scale" : "2x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "retina4",
      "filename" : "Default-568h@2x.png",
      "minimum-system-version" : "7.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "subtype" : "retina4",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11134" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11106"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <layoutGuides>
                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
                    </layoutGuides>
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="53" y="375"/>
        </scene>
    </scenes>
</document>


================================================
FILE: DZNEmptyDataSet/Colors/CollectionViewController.h
================================================
//
//  CollectionViewController.h
//  Colors
//
//  Created by Ignacio Romero Z. on 6/19/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface CollectionViewController : UICollectionViewController

- (IBAction)refreshColors:(id)sender;
- (IBAction)removeColors:(id)sender;

@end


================================================
FILE: DZNEmptyDataSet/Colors/CollectionViewController.m
================================================
//
//  CollectionViewController.m
//  Colors
//
//  Created by Ignacio Romero Z. on 6/19/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "CollectionViewController.h"
#import "SearchViewController.h"
#import "Palette.h"
#import "Color.h"

#import <DZNEmptyDataSet/DZNEmptyDataSet.h>

#define kColumnCountMax 7
#define kColumnCountMin 5

static NSString *CellIdentifier = @"ColorViewCell";

@interface CollectionViewController () <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
@property (nonatomic) NSInteger columnCount;
@property (nonatomic, strong) NSMutableArray *filteredPalette;
@end

@implementation CollectionViewController

#pragma mark - View lifecycle

- (void)awakeFromNib
{
    [super awakeFromNib];
    
    self.title = @"Collection";
    self.tabBarItem = [[UITabBarItem alloc] initWithTitle:self.title image:[UIImage imageNamed:@"tab_collection"] tag:self.title.hash];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
        
    UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionViewLayout;
    layout.minimumLineSpacing = 2.0;
    layout.minimumInteritemSpacing = 2;
    layout.scrollDirection = UICollectionViewScrollDirectionVertical;

    CGFloat inset = layout.minimumLineSpacing*1.5;

    self.collectionView.contentInset = UIEdgeInsetsMake(inset, 0.0, inset, 0.0);
    self.collectionView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0);

    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:CellIdentifier];
    
    self.collectionView.emptyDataSetSource = self;
    self.collectionView.emptyDataSetDelegate = self;
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}


#pragma mark - Getters

- (NSInteger)columnCount
{
    return UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation) ? kColumnCountMax : kColumnCountMin;
}

- (CGSize)cellSize
{
    UICollectionViewFlowLayout *flowLayout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
    CGFloat size = (self.navigationController.view.bounds.size.width/self.columnCount) - flowLayout.minimumLineSpacing;
    return CGSizeMake(size, size);
}

- (NSMutableArray *)filteredPalette
{
    // Randomly filtered palette
    if (!_filteredPalette)
    {
        _filteredPalette = [[NSMutableArray alloc] initWithArray:[[Palette sharedPalette] colors]];
        
        for (NSInteger i = _filteredPalette.count-1; i > 0; i--) {
            [_filteredPalette exchangeObjectAtIndex:i withObjectAtIndex:arc4random_uniform(i+1.0)];
        }
    }
    return _filteredPalette;
}


#pragma mark - Actions

- (IBAction)refreshColors:(id)sender
{
    [[Palette sharedPalette] reloadAll];
    [self setFilteredPalette:nil];
    
    [self.collectionView reloadData];
}

- (IBAction)removeColors:(id)sender
{
    [[Palette sharedPalette] removeAll];
    [_filteredPalette removeAllObjects];
    
    [self.collectionView reloadData];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"collection_push_detail"])
    {
        SearchViewController *controller = [segue destinationViewController];
        controller.selectedColor = sender;
    }
}


#pragma mark - DZNEmptyDataSetSource Methods

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"No colors loaded";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:17.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"To show a list of random colors, tap on the refresh icon in the right top corner.\n\nTo clean the list, tap on the trash icon.";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:15.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    return nil;
}

- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIImage imageNamed:@"empty_placeholder"];
}

- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIColor whiteColor];
}

- (UIView *)customViewForEmptyDataSet:(UIScrollView *)scrollView
{
    return nil;
}

- (CGFloat)spaceHeightForEmptyDataSet:(UIScrollView *)scrollView
{
    return 0;
}


#pragma mark - DZNEmptyDataSetSource Methods

- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return YES;
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{

    NSLog(@"%s",__FUNCTION__);
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapButton:(UIButton *)button
{

    NSLog(@"%s",__FUNCTION__);
}


#pragma mark - UICollectionViewDataSource methods

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [self.filteredPalette count];
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    cell.selectedBackgroundView = [UIView new];
    cell.selectedBackgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.25];
    
    Color *color = self.filteredPalette[indexPath.row];
    cell.backgroundColor = color.color;

    return cell;
}


#pragma mark - UICollectionViewDataDelegate methods

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    Color *color = self.filteredPalette[indexPath.row];
    
    if ([self shouldPerformSegueWithIdentifier:@"collection_push_detail" sender:color]) {
        [self performSegueWithIdentifier:@"collection_push_detail" sender:color];
    }
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return [self cellSize];
}

- (BOOL)collectionView:(UICollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

- (BOOL)collectionView:(UICollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender
{
    if ([NSStringFromSelector(action) isEqualToString:@"copy:"]) {
        return YES;
    }
    return NO;
}

- (void)collectionView:(UICollectionView *)collectionView performAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
        
        if ([NSStringFromSelector(action) isEqualToString:@"copy:"]) {
            Color *color = self.filteredPalette[indexPath.row];
            if (color.hex.length > 0) [[UIPasteboard generalPasteboard] setString:color.hex];
        }
    });
}


#pragma mark - View Auto-Rotation

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (![UIInputViewController class]) {
        [self.collectionView reloadData];
    }
}

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    [self.collectionView reloadData];
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate
{
    return YES;
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/Colors/Colors-Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundleExecutable</key>
	<string>${EXECUTABLE_NAME}</string>
	<key>CFBundleIcons</key>
	<dict/>
	<key>CFBundleIcons~ipad</key>
	<dict/>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UIMainStoryboardFile</key>
	<string>Storyboard</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
</dict>
</plist>


================================================
FILE: DZNEmptyDataSet/Colors/Colors/Colors-Prefix.pch
================================================
//
//  Prefix header
//
//  The contents of this file are implicitly included at the beginning of every source file.
//

#import <Availability.h>

#ifndef __IPHONE_3_0
#warning "This project uses features only available in iOS SDK 3.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif


================================================
FILE: DZNEmptyDataSet/Colors/Colors/System.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "29x29",
      "idiom" : "iphone",
      "filename" : "icon-29@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "iphone",
      "filename" : "icon-40@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57.png",
      "scale" : "1x"
    },
    {
      "size" : "57x57",
      "idiom" : "iphone",
      "filename" : "icon-57@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@2x.png",
      "scale" : "2x"
    },
    {
      "size" : "60x60",
      "idiom" : "iphone",
      "filename" : "icon-60@3x.png",
      "scale" : "3x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "29x29",
      "idiom" : "ipad",
      "filename" : "icon-29@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "40x40",
      "idiom" : "ipad",
      "filename" : "icon-40@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "50x50",
      "idiom" : "ipad",
      "filename" : "icon-50@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "72x72",
      "idiom" : "ipad",
      "filename" : "icon-72@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76~ipad.png",
      "scale" : "1x"
    },
    {
      "size" : "76x76",
      "idiom" : "ipad",
      "filename" : "icon-76@2x~ipad.png",
      "scale" : "2x"
    },
    {
      "size" : "83.5x83.5",
      "idiom" : "ipad",
      "filename" : "icon-120~car.png",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Colors/System.xcassets/LaunchImage.launchimage/Contents.json
================================================
{
  "images" : [
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "Default-hd-plus@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "minimum-system-version" : "8.0",
      "subtype" : "736h",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "Default-hd@2x.png",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "filename" : "Default@2x.png",
      "scale" : "2x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "retina4",
      "filename" : "Default-568h@2x.png",
      "minimum-system-version" : "7.0",
      "orientation" : "portrait",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "minimum-system-version" : "7.0",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "iphone",
      "extent" : "full-screen",
      "subtype" : "retina4",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "1x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "1x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "portrait",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "to-status-bar",
      "scale" : "2x"
    },
    {
      "orientation" : "landscape",
      "idiom" : "ipad",
      "extent" : "full-screen",
      "scale" : "2x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Colors/en.lproj/InfoPlist.strings
================================================
/* Localized versions of Info.plist keys */



================================================
FILE: DZNEmptyDataSet/Colors/Colors/main.m
================================================
//
//  main.m
//  Colors
//
//  Created by Ignacio Romero Z. on 6/19/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

int main(int argc, char * argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/Color.h
================================================
//
//  Palette.h
//  Colors
//
//  Created by Ignacio Romero Z. on 7/4/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface Color : NSObject

@property (nonatomic, strong) NSString *hex;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *rgb;

@property (nonatomic, weak) UIColor *color;

- (instancetype)initWithDictionary:(NSDictionary *)dict;

+ (UIImage *)roundThumbWithColor:(UIColor *)color;
+ (UIImage *)roundImageForSize:(CGSize)size withColor:(UIColor *)color;

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/Color.m
================================================
//
//  Palette.m
//  Colors
//
//  Created by Ignacio Romero Z. on 7/4/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "Color.h"
#import "UIColor+Hex.h"

@implementation Color

- (instancetype)initWithDictionary:(NSDictionary *)dict
{
    if (!dict) {
        return nil;
    }
    
    self = [super init];
    if (self) {
        self.hex = [dict objectForKey:@"hex"];
        self.name = [dict objectForKey:@"name"];
        self.rgb = [dict objectForKey:@"rgb"];
    }
    return self;
}

- (UIColor *)color
{
    return [UIColor colorFromHex:self.hex];
}

+ (UIImage *)roundThumbWithColor:(UIColor *)color
{
    return [self roundImageForSize:CGSizeMake(32.0, 32.0) withColor:color];
}

+ (UIImage *)roundImageForSize:(CGSize)size withColor:(UIColor *)color
{
    if (!color) {
        return nil;
    }
    
    // Constants
    CGRect bounds = CGRectMake(0, 0, size.width, size.height);
    
    // Create the image context
    UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0);
    
    //// Oval Drawing
    UIBezierPath *ovalPath = [UIBezierPath bezierPathWithOvalInRect:bounds];
    [color setFill];
    [ovalPath fill];
    
    //Create the image using the current context.
    UIImage *_image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return _image;
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/Palette.h
================================================
//
//  ColorPalette.h
//  Colors
//
//  Created by Ignacio Romero Z. on 7/1/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@class Color;

@interface Palette : NSObject

@property (nonatomic, readonly) NSMutableArray *colors;

+ (instancetype)sharedPalette;

- (void)reloadAll;
- (void)removeColor:(Color *)color;
- (void)removeAll;

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/Palette.m
================================================
//
//  ColorSource.m
//  Colors
//
//  Created by Ignacio Romero Z. on 7/1/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "Palette.h"
#import "Color.h"

@interface Palette ()
@end

static Palette *_sharedPalette = nil;

@implementation Palette
@synthesize colors = _colors;

+ (instancetype)sharedPalette
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedPalette = [[Palette alloc] init];
        [_sharedPalette loadColors];
    });
    return _sharedPalette;
}

- (void)loadColors
{
    // A list of crayola colors in JSON by Jjdelc https://gist.github.com/jjdelc/1868136
    NSString *path = [[NSBundle mainBundle] pathForResource:@"colors" ofType:@"json"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    NSArray *objects = [[NSJSONSerialization JSONObjectWithData:data options:kNilOptions|NSJSONWritingPrettyPrinted error:nil] mutableCopy];
        
    _colors = [[NSMutableArray alloc] initWithCapacity:objects.count];
    
    for (NSDictionary *dictionary in objects) {
        Color *color = [[Color alloc] initWithDictionary:dictionary];
        [_colors addObject:color];
    }
}

- (void)reloadAll
{
    [self removeAll];
    [self loadColors];
}

- (void)removeColor:(Color *)color
{
    NSInteger idx = [_colors indexOfObject:color];
    
    if (idx >= 0 && idx < _colors.count) {
        [_colors removeObjectAtIndex:idx];
    }
}

- (void)removeAll
{
    [_colors removeAllObjects];
    _colors = nil;
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/UIColor+Hex.h
================================================
//
//  UIColor+Hex.h
//  Colors
//
//  Created by Ignacio Romero on 4/26/16.
//  Copyright © 2016 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIColor (Hex)

+ (UIColor *)colorFromHex:(NSString *)hex;

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/UIColor+Hex.m
================================================
//
//  UIColor+Hex.m
//  Colors
//
//  Created by Ignacio Romero on 4/26/16.
//  Copyright © 2016 DZN Labs. All rights reserved.
//

#import "UIColor+Hex.h"

@implementation UIColor (Hex)

+ (UIColor *)colorFromHex:(NSString *)hex
{
    return [self colorFromHex:hex alpha:1.0];
}

+ (UIColor *)colorFromHex:(NSString *)hex alpha:(CGFloat)alpha
{
    NSUInteger offset = 0;
    
    if ([hex hasPrefix:@"#"]) {
        offset = 1;
    }
    
    NSString *string = [hex substringFromIndex:offset];
    
    if (string.length == 3) {
        string = [NSString stringWithFormat:@"%@%@%@%@%@%@",
                  [string substringWithRange:NSMakeRange(0, 1)],
                  [string substringWithRange:NSMakeRange(0, 1)],
                  [string substringWithRange:NSMakeRange(1, 1)],
                  [string substringWithRange:NSMakeRange(1, 1)],
                  [string substringWithRange:NSMakeRange(2, 1)],
                  [string substringWithRange:NSMakeRange(2, 1)]];
    }
    
    if (string.length == 6) {
        string = [string stringByAppendingString:@"ff"];
    }
    
    if (string == nil) {
        return nil;
    }
    
    unsigned int baseValue;
    [[NSScanner scannerWithString:string] scanHexInt:&baseValue];
    
    float red = ((baseValue >> 24) & 0xFF)/255.0f;
    float green = ((baseValue >> 16) & 0xFF)/255.0f;
    float blue = ((baseValue >> 8) & 0xFF)/255.0f;
    
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/DataSource/colors.json
================================================
 [
  {
  "hex": "EFDECD",
  "name": "Almond",
  "rgb": "(239, 222, 205)"
  },
  {
  "hex": "CD9575",
  "name": "Antique Brass",
  "rgb": "(205, 149, 117)"
  },
  {
  "hex": "FDD9B5",
  "name": "Apricot",
  "rgb": "(253, 217, 181)"
  },
  {
  "hex": "78DBE2",
  "name": "Aquamarine",
  "rgb": "(120, 219, 226)"
  },
  {
  "hex": "87A96B",
  "name": "Asparagus",
  "rgb": "(135, 169, 107)"
  },
  {
  "hex": "FFA474",
  "name": "Atomic Tangerine",
  "rgb": "(255, 164, 116)"
  },
  {
  "hex": "FAE7B5",
  "name": "Banana Mania",
  "rgb": "(250, 231, 181)"
  },
  {
  "hex": "9F8170",
  "name": "Beaver",
  "rgb": "(159, 129, 112)"
  },
  {
  "hex": "FD7C6E",
  "name": "Bittersweet",
  "rgb": "(253, 124, 110)"
  },
  {
  "hex": "000000",
  "name": "Black",
  "rgb": "(0,0,0)"
  },
  {
  "hex": "ACE5EE",
  "name": "Blizzard Blue",
  "rgb": "(172, 229, 238)"
  },
  {
  "hex": "1F75FE",
  "name": "Blue",
  "rgb": "(31, 117, 254)"
  },
  {
  "hex": "A2A2D0",
  "name": "Blue Bell",
  "rgb": "(162, 162, 208)"
  },
  {
  "hex": "6699CC",
  "name": "Blue Gray",
  "rgb": "(102, 153, 204)"
  },
  {
  "hex": "0D98BA",
  "name": "Blue Green",
  "rgb": "(13, 152, 186)"
  },
  {
  "hex": "7366BD",
  "name": "Blue Violet",
  "rgb": "(115, 102, 189)"
  },
  {
  "hex": "DE5D83",
  "name": "Blush",
  "rgb": "(222, 93, 131)"
  },
  {
  "hex": "CB4154",
  "name": "Brick Red",
  "rgb": "(203, 65, 84)"
  },
  {
  "hex": "B4674D",
  "name": "Brown",
  "rgb": "(180, 103, 77)"
  },
  {
  "hex": "FF7F49",
  "name": "Burnt Orange",
  "rgb": "(255, 127, 73)"
  },
  {
  "hex": "EA7E5D",
  "name": "Burnt Sienna",
  "rgb": "(234, 126, 93)"
  },
  {
  "hex": "B0B7C6",
  "name": "Cadet Blue",
  "rgb": "(176, 183, 198)"
  },
  {
  "hex": "FFFF99",
  "name": "Canary",
  "rgb": "(255, 255, 153)"
  },
  {
  "hex": "1CD3A2",
  "name": "Caribbean Green",
  "rgb": "(28, 211, 162)"
  },
  {
  "hex": "FFAACC",
  "name": "Carnation Pink",
  "rgb": "(255, 170, 204)"
  },
  {
  "hex": "DD4492",
  "name": "Cerise",
  "rgb": "(221, 68, 146)"
  },
  {
  "hex": "1DACD6",
  "name": "Cerulean",
  "rgb": "(29, 172, 214)"
  },
  {
  "hex": "BC5D58",
  "name": "Chestnut",
  "rgb": "(188, 93, 88)"
  },
  {
  "hex": "DD9475",
  "name": "Copper",
  "rgb": "(221, 148, 117)"
  },
  {
  "hex": "9ACEEB",
  "name": "Cornflower",
  "rgb": "(154, 206, 235)"
  },
  {
  "hex": "FFBCD9",
  "name": "Cotton Candy",
  "rgb": "(255, 188, 217)"
  },
  {
  "hex": "FDDB6D",
  "name": "Dandelion",
  "rgb": "(253, 219, 109)"
  },
  {
  "hex": "2B6CC4",
  "name": "Denim",
  "rgb": "(43, 108, 196)"
  },
  {
  "hex": "EFCDB8",
  "name": "Desert Sand",
  "rgb": "(239, 205, 184)"
  },
  {
  "hex": "6E5160",
  "name": "Eggplant",
  "rgb": "(110, 81, 96)"
  },
  {
  "hex": "CEFF1D",
  "name": "Electric Lime",
  "rgb": "(206, 255, 29)"
  },
  {
  "hex": "71BC78",
  "name": "Fern",
  "rgb": "(113, 188, 120)"
  },
  {
  "hex": "6DAE81",
  "name": "Forest Green",
  "rgb": "(109, 174, 129)"
  },
  {
  "hex": "C364C5",
  "name": "Fuchsia",
  "rgb": "(195, 100, 197)"
  },
  {
  "hex": "CC6666",
  "name": "Fuzzy Wuzzy",
  "rgb": "(204, 102, 102)"
  },
  {
  "hex": "E7C697",
  "name": "Gold",
  "rgb": "(231, 198, 151)"
  },
  {
  "hex": "FCD975",
  "name": "Goldenrod",
  "rgb": "(252, 217, 117)"
  },
  {
  "hex": "A8E4A0",
  "name": "Granny Smith Apple",
  "rgb": "(168, 228, 160)"
  },
  {
  "hex": "95918C",
  "name": "Gray",
  "rgb": "(149, 145, 140)"
  },
  {
  "hex": "1CAC78",
  "name": "Green",
  "rgb": "(28, 172, 120)"
  },
  {
  "hex": "1164B4",
  "name": "Green Blue",
  "rgb": "(17, 100, 180)"
  },
  {
  "hex": "F0E891",
  "name": "Green Yellow",
  "rgb": "(240, 232, 145)"
  },
  {
  "hex": "FF1DCE",
  "name": "Hot Magenta",
  "rgb": "(255, 29, 206)"
  },
  {
  "hex": "B2EC5D",
  "name": "Inchworm",
  "rgb": "(178, 236, 93)"
  },
  {
  "hex": "5D76CB",
  "name": "Indigo",
  "rgb": "(93, 118, 203)"
  },
  {
  "hex": "CA3767",
  "name": "Jazzberry Jam",
  "rgb": "(202, 55, 103)"
  },
  {
  "hex": "3BB08F",
  "name": "Jungle Green",
  "rgb": "(59, 176, 143)"
  },
  {
  "hex": "FEFE22",
  "name": "Laser Lemon",
  "rgb": "(254, 254, 34)"
  },
  {
  "hex": "FCB4D5",
  "name": "Lavender",
  "rgb": "(252, 180, 213)"
  },
  {
  "hex": "FFF44F",
  "name": "Lemon Yellow",
  "rgb": "(255, 244, 79)"
  },
  {
  "hex": "FFBD88",
  "name": "Macaroni and Cheese",
  "rgb": "(255, 189, 136)"
  },
  {
  "hex": "F664AF",
  "name": "Magenta",
  "rgb": "(246, 100, 175)"
  },
  {
  "hex": "AAF0D1",
  "name": "Magic Mint",
  "rgb": "(170, 240, 209)"
  },
  {
  "hex": "CD4A4C",
  "name": "Mahogany",
  "rgb": "(205, 74, 76)"
  },
  {
  "hex": "EDD19C",
  "name": "Maize",
  "rgb": "(237, 209, 156)"
  },
  {
  "hex": "979AAA",
  "name": "Manatee",
  "rgb": "(151, 154, 170)"
  },
  {
  "hex": "FF8243",
  "name": "Mango Tango",
  "rgb": "(255, 130, 67)"
  },
  {
  "hex": "C8385A",
  "name": "Maroon",
  "rgb": "(200, 56, 90)"
  },
  {
  "hex": "EF98AA",
  "name": "Mauvelous",
  "rgb": "(239, 152, 170)"
  },
  {
  "hex": "FDBCB4",
  "name": "Melon",
  "rgb": "(253, 188, 180)"
  },
  {
  "hex": "1A4876",
  "name": "Midnight Blue",
  "rgb": "(26, 72, 118)"
  },
  {
  "hex": "30BA8F",
  "name": "Mountain Meadow",
  "rgb": "(48, 186, 143)"
  },
  {
  "hex": "C54B8C",
  "name": "Mulberry",
  "rgb": "(197, 75, 140)"
  },
  {
  "hex": "1974D2",
  "name": "Navy Blue",
  "rgb": "(25, 116, 210)"
  },
  {
  "hex": "FFA343",
  "name": "Neon Carrot",
  "rgb": "(255, 163, 67)"
  },
  {
  "hex": "BAB86C",
  "name": "Olive Green",
  "rgb": "(186, 184, 108)"
  },
  {
  "hex": "FF7538",
  "name": "Orange",
  "rgb": "(255, 117, 56)"
  },
  {
  "hex": "FF2B2B",
  "name": "Orange Red",
  "rgb": "(255, 43, 43)"
  },
  {
  "hex": "F8D568",
  "name": "Orange Yellow",
  "rgb": "(248, 213, 104)"
  },
  {
  "hex": "E6A8D7",
  "name": "Orchid",
  "rgb": "(230, 168, 215)"
  },
  {
  "hex": "414A4C",
  "name": "Outer Space",
  "rgb": "(65, 74, 76)"
  },
  {
  "hex": "FF6E4A",
  "name": "Outrageous Orange",
  "rgb": "(255, 110, 74)"
  },
  {
  "hex": "1CA9C9",
  "name": "Pacific Blue",
  "rgb": "(28, 169, 201)"
  },
  {
  "hex": "FFCFAB",
  "name": "Peach",
  "rgb": "(255, 207, 171)"
  },
  {
  "hex": "C5D0E6",
  "name": "Periwinkle",
  "rgb": "(197, 208, 230)"
  },
  {
  "hex": "FDDDE6",
  "name": "Piggy Pink",
  "rgb": "(253, 221, 230)"
  },
  {
  "hex": "158078",
  "name": "Pine Green",
  "rgb": "(21, 128, 120)"
  },
  {
  "hex": "FC74FD",
  "name": "Pink Flamingo",
  "rgb": "(252, 116, 253)"
  },
  {
  "hex": "F78FA7",
  "name": "Pink Sherbet",
  "rgb": "(247, 143, 167)"
  },
  {
  "hex": "8E4585",
  "name": "Plum",
  "rgb": "(142, 69, 133)"
  },
  {
  "hex": "7442C8",
  "name": "Purple Heart",
  "rgb": "(116, 66, 200)"
  },
  {
  "hex": "9D81BA",
  "name": "Purple Mountain's Majesty",
  "rgb": "(157, 129, 186)"
  },
  {
  "hex": "FE4EDA",
  "name": "Purple Pizzazz",
  "rgb": "(254, 78, 218)"
  },
  {
  "hex": "FF496C",
  "name": "Radical Red",
  "rgb": "(255, 73, 108)"
  },
  {
  "hex": "D68A59",
  "name": "Raw Sienna",
  "rgb": "(214, 138, 89)"
  },
  {
  "hex": "714B23",
  "name": "Raw Umber",
  "rgb": "(113, 75, 35)"
  },
  {
  "hex": "FF48D0",
  "name": "Razzle Dazzle Rose",
  "rgb": "(255, 72, 208)"
  },
  {
  "hex": "E3256B",
  "name": "Razzmatazz",
  "rgb": "(227, 37, 107)"
  },
  {
  "hex": "EE204D",
  "name": "Red",
  "rgb": "(238,32 ,77 )"
  },
  {
  "hex": "FF5349",
  "name": "Red Orange",
  "rgb": "(255, 83, 73)"
  },
  {
  "hex": "C0448F",
  "name": "Red Violet",
  "rgb": "(192, 68, 143)"
  },
  {
  "hex": "1FCECB",
  "name": "Robin's Egg Blue",
  "rgb": "(31, 206, 203)"
  },
  {
  "hex": "7851A9",
  "name": "Royal Purple",
  "rgb": "(120, 81, 169)"
  },
  {
  "hex": "FF9BAA",
  "name": "Salmon",
  "rgb": "(255, 155, 170)"
  },
  {
  "hex": "FC2847",
  "name": "Scarlet",
  "rgb": "(252, 40, 71)"
  },
  {
  "hex": "76FF7A",
  "name": "Screamin' Green",
  "rgb": "(118, 255, 122)"
  },
  {
  "hex": "9FE2BF",
  "name": "Sea Green",
  "rgb": "(159, 226, 191)"
  },
  {
  "hex": "A5694F",
  "name": "Sepia",
  "rgb": "(165, 105, 79)"
  },
  {
  "hex": "8A795D",
  "name": "Shadow",
  "rgb": "(138, 121, 93)"
  },
  {
  "hex": "45CEA2",
  "name": "Shamrock",
  "rgb": "(69, 206, 162)"
  },
  {
  "hex": "FB7EFD",
  "name": "Shocking Pink",
  "rgb": "(251, 126, 253)"
  },
  {
  "hex": "CDC5C2",
  "name": "Silver",
  "rgb": "(205, 197, 194)"
  },
  {
  "hex": "80DAEB",
  "name": "Sky Blue",
  "rgb": "(128, 218, 235)"
  },
  {
  "hex": "ECEABE",
  "name": "Spring Green",
  "rgb": "(236, 234, 190)"
  },
  {
  "hex": "FFCF48",
  "name": "Sunglow",
  "rgb": "(255, 207, 72)"
  },
  {
  "hex": "FD5E53",
  "name": "Sunset Orange",
  "rgb": "(253, 94, 83)"
  },
  {
  "hex": "FAA76C",
  "name": "Tan",
  "rgb": "(250, 167, 108)"
  },
  {
  "hex": "18A7B5",
  "name": "Teal Blue",
  "rgb": "(24, 167, 181)"
  },
  {
  "hex": "EBC7DF",
  "name": "Thistle",
  "rgb": "(235, 199, 223)"
  },
  {
  "hex": "FC89AC",
  "name": "Tickle Me Pink",
  "rgb": "(252, 137, 172)"
  },
  {
  "hex": "DBD7D2",
  "name": "Timberwolf",
  "rgb": "(219, 215, 210)"
  },
  {
  "hex": "17806D",
  "name": "Tropical Rain Forest",
  "rgb": "(23, 128, 109)"
  },
  {
  "hex": "DEAA88",
  "name": "Tumbleweed",
  "rgb": "(222, 170, 136)"
  },
  {
  "hex": "77DDE7",
  "name": "Turquoise Blue",
  "rgb": "(119, 221, 231)"
  },
  {
  "hex": "FFFF66",
  "name": "Unmellow Yellow",
  "rgb": "(255, 255, 102)"
  },
  {
  "hex": "926EAE",
  "name": "Violet (Purple)",
  "rgb": "(146, 110, 174)"
  },
  {
  "hex": "324AB2",
  "name": "Violet Blue",
  "rgb": "(50, 74, 178)"
  },
  {
  "hex": "F75394",
  "name": "Violet Red",
  "rgb": "(247, 83, 148)"
  },
  {
  "hex": "FFA089",
  "name": "Vivid Tangerine",
  "rgb": "(255, 160, 137)"
  },
  {
  "hex": "8F509D",
  "name": "Vivid Violet",
  "rgb": "(143, 80, 157)"
  },
  {
  "hex": "FFFFFF",
  "name": "White",
  "rgb": "(255, 255, 255)"
  },
  {
  "hex": "A2ADD0",
  "name": "Wild Blue Yonder",
  "rgb": "(162, 173, 208)"
  },
  {
  "hex": "FF43A4",
  "name": "Wild Strawberry",
  "rgb": "(255, 67, 164)"
  },
  {
  "hex": "FC6C85",
  "name": "Wild Watermelon",
  "rgb": "(252, 108, 133)"
  },
  {
  "hex": "CDA4DE",
  "name": "Wisteria",
  "rgb": "(205, 164, 222)"
  },
  {
  "hex": "FCE883",
  "name": "Yellow",
  "rgb": "(252, 232, 131)"
  },
  {
  "hex": "C5E384",
  "name": "Yellow Green",
  "rgb": "(197, 227, 132)"
  },
  {
  "hex": "FFAE42",
  "name": "Yellow Orange",
  "rgb": "(255, 174, 66)"
  }
  ]

================================================
FILE: DZNEmptyDataSet/Colors/Images.xcassets/empty_placeholder.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "empty_placeholder.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "empty_placeholder@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Images.xcassets/search_icon.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "search_icon.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "search_icon@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Images.xcassets/tab_collection.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "tab_collection.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "tab_collection@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Images.xcassets/tab_search.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "tab_search.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "tab_search@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Images.xcassets/tab_table.imageset/Contents.json
================================================
{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "tab_table.png"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "tab_table@2x.png"
    },
    {
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}

================================================
FILE: DZNEmptyDataSet/Colors/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Storyboard</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
</dict>
</plist>


================================================
FILE: DZNEmptyDataSet/Colors/SearchViewController.h
================================================
//
//  SearchViewController.h
//  Colors
//
//  Created by Ignacio Romero Z. on 7/4/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@class Color;

@interface SearchViewController : UIViewController <UISearchDisplayDelegate, UISearchBarDelegate>

@property (nonatomic, strong) Color *selectedColor;

@property (nonatomic, weak) IBOutlet UIImageView *colorView;
@property (nonatomic, weak) IBOutlet UILabel *nameLabel;
@property (nonatomic, weak) IBOutlet UILabel *hexLabel;
@property (nonatomic, weak) IBOutlet UILabel *rgbLabel;
@property (nonatomic, weak) IBOutlet UILabel *hexLegend;
@property (nonatomic, weak) IBOutlet UILabel *rgbLegend;

@end


================================================
FILE: DZNEmptyDataSet/Colors/SearchViewController.m
================================================
//
//  SearchViewController.m
//  Colors
//
//  Created by Ignacio Romero Z. on 7/4/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "SearchViewController.h"
#import "Palette.h"
#import "Color.h"

#import <DZNEmptyDataSet/DZNEmptyDataSet.h>

@interface SearchViewController () <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
@property (nonatomic, strong) NSArray *searchResult;
@property (nonatomic, getter = isShowingLandscape) BOOL showingLandscape;
@end

@implementation SearchViewController

#pragma mark - View lifecycle

- (void)awakeFromNib
{
    [super awakeFromNib];
    
    self.title = @"Search";
    self.tabBarItem = [[UITabBarItem alloc] initWithTitle:self.title image:[UIImage imageNamed:@"tab_search"] tag:self.title.hash];
}

- (void)loadView
{
    [super loadView];
    
    if ([self.navigationController.viewControllers count] == 1) {
        self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
    }
    else {
        self.title = @"Detail";
    }
    
    self.searchDisplayController.searchResultsTableView.emptyDataSetSource = self;
    self.searchDisplayController.searchResultsTableView.emptyDataSetDelegate = self;
    
    self.searchDisplayController.searchBar.placeholder = @"Search color";
    self.searchDisplayController.searchResultsTableView.tableFooterView = [UIView new];
    [self.searchDisplayController setValue:@"" forKey:@"_noResultsMessage"];
    
    for (UIView *subview in self.view.subviews) {
        subview.autoresizingMask = UIViewAutoresizingNone;
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.showingLandscape = UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation);
    [self updateLayoutAnimatedWithDuration:0.0];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    [self updateContent];
}


#pragma mark - Getters

- (NSArray *)searchResult
{
    if (_searchResult) {
        return _searchResult;
    }
    
    NSString *searchString = self.searchDisplayController.searchBar.text;
    
    if (searchString.length == 0) {
        return nil;
    }
    
    NSArray *colors = [[Palette sharedPalette] colors];
    NSPredicate *precidate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@ || hex CONTAINS[cd] %@", searchString, searchString];
    
    _searchResult = [colors filteredArrayUsingPredicate:precidate];
    
    return _searchResult;
}


#pragma mark - Actions

- (void)updateLayoutAnimatedWithDuration:(NSTimeInterval)duration
{
    [UIView beginAnimations:@"" context:nil];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationBeginsFromCurrentState:YES];
    
    if (self.showingLandscape) {
        self.colorView.frame = CGRectMake(45.0, 88.0, 160.0, 160.0);
        self.nameLabel.frame = CGRectMake(240.0, 114.0, 280.0, 35.0);
        self.hexLabel.frame = CGRectMake(300.0, 170.0, 140.0, 20.0);
        self.rgbLabel.frame = CGRectMake(300.0, 200.0, 140.0, 20.0);
        self.hexLegend.frame = CGRectMake(240.0, 170.0, 60.0, 20.0);
        self.rgbLegend.frame = CGRectMake(240.0, 200.0, 60.0, 20.0);
        
        self.nameLabel.textAlignment = NSTextAlignmentLeft;
    }
    else {
        self.colorView.frame = CGRectMake(60.0, 130.0, 200.0, 200.0);
        self.nameLabel.frame = CGRectMake(20.0, 350.0, 280.0, 35.0);
        self.hexLabel.frame = CGRectMake(120.0, 420.0, 140.0, 20.0);
        self.rgbLabel.frame = CGRectMake(120.0, 450.0, 140.0, 20.0);
        self.hexLegend.frame = CGRectMake(60.0, 420.0, 60.0, 20.0);
        self.rgbLegend.frame = CGRectMake(60.0, 450.0, 60.0, 20.0);
        
        self.nameLabel.textAlignment = NSTextAlignmentCenter;
    }
    
    [UIView commitAnimations];
}

- (void)updateContent
{
    BOOL hide = self.selectedColor ? NO : YES;
    
    self.colorView.hidden = hide;
    self.nameLabel.hidden = hide;
    self.hexLabel.hidden = hide;
    self.rgbLabel.hidden = hide;
    self.hexLegend.hidden = hide;
    self.rgbLegend.hidden = hide;
    
    self.colorView.image = [Color roundImageForSize:self.colorView.frame.size withColor:self.selectedColor.color];
    
    self.nameLabel.text = self.selectedColor.name;
    self.hexLabel.text = [NSString stringWithFormat:@"#%@", self.selectedColor.hex];
    self.rgbLabel.text = self.selectedColor.rgb;
}

- (void)adjustToDeviceOrientation
{
    self.showingLandscape = UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation);
    [self updateLayoutAnimatedWithDuration:0.25];
    
    [self.searchDisplayController.searchResultsTableView reloadEmptyDataSet];
}


#pragma mark - DZNEmptyDataSetSource Methods

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"No colors Found";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:17.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"Make sure that all words are\nspelled correctly.";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:15.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)buttonTitleForEmptyDataSet:(UIScrollView *)scrollView forState:(UIControlState)state
{
    NSString *text = @"Add a New Color";
    UIColor *color = nil;
    
    if (state == UIControlStateNormal) color = [UIColor colorWithRed:44/255.0 green:137/255.0 blue:202/255.0 alpha:1.0];
    if (state == UIControlStateHighlighted) color = [UIColor colorWithRed:106/255.0 green:187/255.0 blue:227/255.0 alpha:1.0];
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:14.0],
                                 NSForegroundColorAttributeName: color,
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
        return nil;
    }
    return [UIImage imageNamed:@"search_icon"];
}

- (UIColor *)imageTintColorForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIColor grayColor];
}

- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIColor whiteColor];
}

- (UIView *)customViewForEmptyDataSet:(UIScrollView *)scrollView
{
    return nil;
}


#pragma mark - DZNEmptyDataSetSource Methods

- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return NO;
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{

    [self.searchDisplayController setActive:NO animated:YES];
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapButton:(UIButton *)button
{
    NSLog(@"%s",__FUNCTION__);
}


#pragma mark - UITableViewDataSource Methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return self.searchResult.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        cell.selectionStyle = UITableViewCellSelectionStyleDefault;
        cell.selectedBackgroundView = [UIView new];
        cell.selectedBackgroundView.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0];
        cell.textLabel.textColor = [UIColor colorWithWhite:0.125 alpha:1.0];
        cell.detailTextLabel.textColor = [UIColor colorWithWhite:0.5 alpha:1.0];
    }
    
    Color *color = self.searchResult[indexPath.row];
    
    cell.textLabel.text = color.name;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"#%@", color.hex];
    
    cell.imageView.image = [Color roundThumbWithColor:color.color];
    
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 56.0;
}


#pragma mark - UITableViewDelegate Methods

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.selectedColor = self.searchResult[indexPath.row];
    [self updateContent];
    
    [self.searchDisplayController setActive:NO animated:YES];
}


#pragma mark - UISearchDisplayControllerDelegate Methods

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
    _searchResult = nil;
    
    return YES;
}

- (void)searchDisplayController:(UISearchDisplayController *)controller willShowSearchResultsTableView:(UITableView *)tableView
{
    // Do something
}

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView
{
    // Do something
}


#pragma mark - View Auto-Rotation

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (![self respondsToSelector:@selector(willTransitionToTraitCollection:withTransitionCoordinator:)]) {
        [self adjustToDeviceOrientation];
    }
}

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
    [self adjustToDeviceOrientation];
}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}

- (BOOL)shouldAutorotate
{
    return YES;
}

@end


================================================
FILE: DZNEmptyDataSet/Colors/Storyboard.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="11762" systemVersion="16C67" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" colorMatched="YES" initialViewController="GvD-b2-ath">
    <device id="retina4_7" orientation="portrait">
        <adaptation id="fullscreen"/>
    </device>
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11757"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--Tab Bar Controller-->
        <scene sceneID="J3f-YI-2gA">
            <objects>
                <tabBarController definesPresentationContext="YES" id="GvD-b2-ath" sceneMemberID="viewController">
                    <nil key="simulatedBottomBarMetrics"/>
                    <tabBar key="tabBar" contentMode="scaleToFill" translucent="NO" id="DIi-9k-WWV">
                        <rect key="frame" x="129" y="330" width="163" height="49"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                        <color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
                    </tabBar>
                    <connections>
                        <segue destination="Vm4-rk-YbM" kind="relationship" relationship="viewControllers" id="EKj-En-2wP"/>
                        <segue destination="9pz-r8-hDF" kind="relationship" relationship="viewControllers" id="v3g-2Z-FGF"/>
                        <segue destination="Y9X-ir-bVH" kind="relationship" relationship="viewControllers" id="Gew-wU-0v6"/>
                    </connections>
                </tabBarController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="mUj-rV-rIj" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="546" y="54"/>
        </scene>
        <!--Collection View Controller-->
        <scene sceneID="dqD-kU-Xrh">
            <objects>
                <collectionViewController autoresizesArchivedViewToFullSize="NO" id="Bwl-Kc-CEM" customClass="CollectionViewController" sceneMemberID="viewController">
                    <collectionView key="view" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" minimumZoomScale="0.0" maximumZoomScale="0.0" dataMode="prototypes" id="Sqf-PI-OWp">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="618"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="0.99997437000274658" blue="0.99999129772186279" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <collectionViewFlowLayout key="collectionViewLayout" minimumLineSpacing="10" minimumInteritemSpacing="10" id="tMx-xW-Vq7">
                            <size key="itemSize" width="50" height="50"/>
                            <size key="headerReferenceSize" width="0.0" height="0.0"/>
                            <size key="footerReferenceSize" width="0.0" height="0.0"/>
                            <inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
                        </collectionViewFlowLayout>
                        <cells/>
                        <connections>
                            <outlet property="dataSource" destination="Bwl-Kc-CEM" id="QaH-oL-krX"/>
                            <outlet property="delegate" destination="Bwl-Kc-CEM" id="Ykr-jN-BQe"/>
                        </connections>
                    </collectionView>
                    <navigationItem key="navigationItem" id="TH1-YO-7w8">
                        <barButtonItem key="leftBarButtonItem" systemItem="trash" id="4h6-eK-PJa">
                            <connections>
                                <action selector="removeColors:" destination="Bwl-Kc-CEM" id="5my-jF-cdc"/>
                            </connections>
                        </barButtonItem>
                        <barButtonItem key="rightBarButtonItem" systemItem="refresh" id="RvV-um-UeR">
                            <connections>
                                <action selector="refreshColors:" destination="Bwl-Kc-CEM" id="hyL-P1-15B"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                    <connections>
                        <segue destination="5wu-h0-UoY" kind="push" identifier="collection_push_detail" id="86S-EI-aCd"/>
                    </connections>
                </collectionViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="7eE-aJ-h11" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1653" y="-767"/>
        </scene>
        <!--Empty Data Set Delegate-->
        <scene sceneID="bz0-WM-7np">
            <objects>
                <tableViewController id="bxI-rv-q80" customClass="TableViewController" sceneMemberID="viewController">
                    <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="iz2-l0-vJh">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="618"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <connections>
                            <outlet property="dataSource" destination="bxI-rv-q80" id="Gzc-6q-fJy"/>
                            <outlet property="delegate" destination="bxI-rv-q80" id="Rzh-Mq-JCA"/>
                            <outlet property="emptyDataSetDelegate" destination="bxI-rv-q80" id="xfk-6m-ahr"/>
                            <outlet property="emptyDataSetSource" destination="bxI-rv-q80" id="qYo-WU-a3J"/>
                        </connections>
                    </tableView>
                    <navigationItem key="navigationItem" id="fD4-hx-v8N">
                        <barButtonItem key="leftBarButtonItem" systemItem="trash" id="aPM-sy-RLG">
                            <connections>
                                <action selector="removeColors:" destination="bxI-rv-q80" id="eTC-Qq-egA"/>
                            </connections>
                        </barButtonItem>
                        <barButtonItem key="rightBarButtonItem" systemItem="refresh" id="8Al-Hr-KLs">
                            <connections>
                                <action selector="refreshColors:" destination="bxI-rv-q80" id="l7v-Bf-pNY"/>
                            </connections>
                        </barButtonItem>
                    </navigationItem>
                    <connections>
                        <segue destination="5wu-h0-UoY" kind="push" identifier="table_push_detail" id="lgP-PJ-c6y"/>
                    </connections>
                </tableViewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="ym4-re-Gur" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1653" y="55"/>
        </scene>
        <!--Search View Controller-->
        <scene sceneID="JD3-Tp-FNl">
            <objects>
                <viewController id="5wu-h0-UoY" customClass="SearchViewController" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="fAe-Fg-YiM">
                        <rect key="frame" x="0.0" y="0.0" width="375" height="618"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" id="Ld4-sq-bbw">
                                <rect key="frame" x="60" y="130" width="255" height="250"/>
                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                            </imageView>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Name Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1st-If-rue">
                                <rect key="frame" x="20" y="350" width="280" height="35"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="boldSystem" pointSize="26"/>
                                <color key="textColor" red="0.25" green="0.25" blue="0.25" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hex Values" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="K0n-dL-Qbj">
                                <rect key="frame" x="119" y="424" width="142" height="21"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" red="0.25" green="0.25" blue="0.25" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Hex:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="lQU-rJ-iGN">
                                <rect key="frame" x="60" y="424" width="60" height="20"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RGB Values" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kM4-dp-Obh">
                                <rect key="frame" x="119" y="453" width="142" height="21"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" red="0.25" green="0.25" blue="0.25" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RGB:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0f2-z3-sTu">
                                <rect key="frame" x="60" y="453" width="60" height="20"/>
                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" red="0.5" green="0.5" blue="0.5" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                    </view>
                    <navigationItem key="navigationItem" id="I4p-J4-a4s"/>
                    <connections>
                        <outlet property="colorView" destination="Ld4-sq-bbw" id="e4b-RU-NIp"/>
                        <outlet property="hexLabel" destination="K0n-dL-Qbj" id="PtW-vg-a8h"/>
                        <outlet property="hexLegend" destination="lQU-rJ-iGN" id="6r1-EB-iRb"/>
                        <outlet property="nameLabel" destination="1st-If-rue" id="KLl-sN-BJL"/>
                        <outlet property="rgbLabel" destination="kM4-dp-Obh" id="7h0-6e-heT"/>
                        <outlet property="rgbLegend" destination="0f2-z3-sTu" id="J3Q-c8-lXp"/>
                        <outlet property="searchDisplayController" destination="Ncw-GN-vhc" id="cEV-GZ-OvY"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="mJm-fQ-CH7" userLabel="First Responder" sceneMemberID="firstResponder"/>
                <searchBar contentMode="redraw" searchBarStyle="minimal" id="sRh-vM-6tl">
                    <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <textInputTraits key="textInputTraits"/>
                    <connections>
                        <outlet property="delegate" destination="5wu-h0-UoY" id="Ije-vJ-IfC"/>
                    </connections>
                </searchBar>
                <searchDisplayController searchResultsTitle="" id="Ncw-GN-vhc">
                    <connections>
                        <outlet property="delegate" destination="5wu-h0-UoY" id="Fjt-wg-REW"/>
                        <outlet property="searchBar" destination="sRh-vM-6tl" id="rlI-1F-Yvh"/>
                        <outlet property="searchContentsController" destination="5wu-h0-UoY" id="aX1-pn-6Ko"/>
                        <outlet property="searchResultsDataSource" destination="5wu-h0-UoY" id="L3y-jb-uIc"/>
                        <outlet property="searchResultsDelegate" destination="5wu-h0-UoY" id="LH6-Zg-N4M"/>
                    </connections>
                </searchDisplayController>
            </objects>
            <point key="canvasLocation" x="2394" y="77"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="gO4-c2-dzl">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="Vm4-rk-YbM" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="" id="50p-7c-hHn"/>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="k1y-P9-4md">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="Bwl-Kc-CEM" kind="relationship" relationship="rootViewController" id="mG8-Zo-DJg"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="nNs-IS-EsX" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1127" y="-767"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="4wy-Pd-6BJ">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="9pz-r8-hDF" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="" id="CCe-ku-Koi"/>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="glF-Xa-MPy">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="bxI-rv-q80" kind="relationship" relationship="rootViewController" id="PN4-9Z-Hfm"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="9Vd-jD-D0F" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1127" y="55"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="T7l-uY-dTH">
            <objects>
                <navigationController automaticallyAdjustsScrollViewInsets="NO" id="Y9X-ir-bVH" sceneMemberID="viewController">
                    <tabBarItem key="tabBarItem" title="" id="LtO-g7-EVo"/>
                    <toolbarItems/>
                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="2So-DJ-26y">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="5wu-h0-UoY" kind="relationship" relationship="rootViewController" id="EsT-mj-1k6"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="VuG-WE-vm9" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="1127" y="891"/>
        </scene>
    </scenes>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4_7.fullscreen"/>
    </simulatedMetricsContainer>
    <inferredMetricsTieBreakers>
        <segue reference="86S-EI-aCd"/>
    </inferredMetricsTieBreakers>
</document>


================================================
FILE: DZNEmptyDataSet/Colors/TableViewController.h
================================================
//
//  TableViewController.h
//  Colors
//
//  Created by Ignacio Romero Z. on 6/29/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface TableViewController : UITableViewController

- (IBAction)refreshColors:(id)sender;
- (IBAction)removeColors:(id)sender;

@end


================================================
FILE: DZNEmptyDataSet/Colors/TableViewController.m
================================================
//
//  TableViewController.m
//  Colors
//
//  Created by Ignacio Romero Z. on 6/29/14.
//  Copyright (c) 2014 DZN Labs. All rights reserved.
//

#import "TableViewController.h"
#import "SearchViewController.h"
#import "Palette.h"
#import "Color.h"

#import <DZNEmptyDataSet/DZNEmptyDataSet.h>

@interface TableViewController () <DZNEmptyDataSetSource, DZNEmptyDataSetDelegate>
@end

@implementation TableViewController

#pragma mark - View lifecycle

- (void)awakeFromNib
{
    [super awakeFromNib];
    
    self.title = @"Table";
    self.tabBarItem = [[UITabBarItem alloc] initWithTitle:self.title image:[UIImage imageNamed:@"tab_table"] tag:self.title.hash];
}

- (void)loadView
{
    [super loadView];
    
    self.tableView.tableFooterView = [UIView new];
}

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    
    [self.tableView reloadData];
}


#pragma mark - Actions

- (IBAction)refreshColors:(id)sender
{
    [[Palette sharedPalette] reloadAll];
    
    [self.tableView reloadData];
}

- (IBAction)removeColors:(id)sender
{
    [[Palette sharedPalette] removeAll];
    
    [self.tableView reloadData];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"table_push_detail"]) {
        SearchViewController *controller = [segue destinationViewController];
        controller.selectedColor = sender;
	}
}


#pragma mark - DZNEmptyDataSetSource Methods

- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"No colors loaded";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont boldSystemFontOfSize:17.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (NSAttributedString *)descriptionForEmptyDataSet:(UIScrollView *)scrollView
{
    NSString *text = @"To show a list of random colors, tap on the refresh icon in the right top corner.\n\nTo clean the list, tap on the trash icon.";
    
    NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    paragraphStyle.alignment = NSTextAlignmentCenter;
    
    NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:15.0],
                                 NSForegroundColorAttributeName: [UIColor colorWithRed:170/255.0 green:171/255.0 blue:179/255.0 alpha:1.0],
                                 NSParagraphStyleAttributeName: paragraphStyle};
    
    return [[NSMutableAttributedString alloc] initWithString:text attributes:attributes];
}

- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIImage imageNamed:@"empty_placeholder"];
}

- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView
{
    return [UIColor whiteColor];
}

- (UIView *)customViewForEmptyDataSet:(UIScrollView *)scrollView
{
    return nil;
}

- (CGFloat)spaceHeightForEmptyDataSet:(UIScrollView *)scrollView
{
    return 0;
}


#pragma mark - DZNEmptyDataSetSource Methods

- (BOOL)emptyDataSetShouldAllowTouch:(UIScrollView *)scrollView
{
    return YES;
}

- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView
{
    return NO;
}

- (void)emptyDataSet:(UIScrollView *)scrollView didTapView:(UIView *)view
{

    NSLog(@"%s",__FUNCTION__);
}


#pragma mark - UITableViewDataSource Methods

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
	return [[Palette sharedPalette] colors].count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        cell.selectionStyle = UITableViewCellSelectionStyleDefault;
        cell.selectedBackgroundView = [UIView new];
        cell.selectedBackgroundView.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1.0];
        cell.textLabel.textColor = [UIColor colorWithWhite:0.125 alpha:1.0];
        cell.detailTextLabel.textColor = [UIColor colorWithWhite:0.5 alpha:1.0];
    }
    
    Color *color = [[Palette sharedPalette] colors][indexPath.row];
    
    cell.textLabel.text = color.name;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"#%@", color.hex];
	
    cell.imageView.image = [Color roundThumbWithColor:color.color];
    
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 56.0;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

- (void)tableView:(
Download .txt
gitextract_vznosu_2/

├── .codecov.yml
├── .gitignore
├── .travis.yml
├── DZNEmptyDataSet/
│   ├── Applications/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Application.h
│   │   ├── Application.m
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── LaunchImage-2.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage-3.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── LaunchImage.launchimage/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_foursquare_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_foursquare_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_icloud_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_icloud_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_kickstarter_highlight.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── button_background_kickstarter_normal.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── header_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── header_podcasts.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_appstore.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_camera.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_icloud.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_itunes_connect.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_photos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_podcasts.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_remote.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_safari.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_twitter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_videos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_whatsapp.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── icon_wwdc.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── loading_imgBlue_78x78.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_pinterest.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_twitter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── logo_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_500px.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_airbnb.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_appstore.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_dropbox.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_facebook.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_fancy.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_foursquare.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_instagram.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_itunes_connect.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_kickstarter.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_path.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_remote.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_skype.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_slack.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_tumblr.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_vesper.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_videos.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── placeholder_vine.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── placeholder_whatsapp.imageset/
│   │   │       └── Contents.json
│   │   ├── DetailViewController.h
│   │   ├── DetailViewController.m
│   │   ├── Fonts/
│   │   │   └── Ideal Sans/
│   │   │       └── IdealSans-Book-Pro.otf
│   │   ├── MainViewController.h
│   │   ├── MainViewController.m
│   │   ├── Supporting Files/
│   │   │   ├── Applications-Prefix.pch
│   │   │   ├── Base.lproj/
│   │   │   │   └── LaunchScreen.storyboard
│   │   │   ├── Info.plist
│   │   │   ├── Storyboard.storyboard
│   │   │   ├── en.lproj/
│   │   │   │   └── InfoPlist.strings
│   │   │   └── main.m
│   │   ├── UIColor+Hexadecimal.h
│   │   ├── UIColor+Hexadecimal.m
│   │   └── applications.json
│   ├── Colors/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── Assets.xcassets/
│   │   │   ├── AppIcon.appiconset/
│   │   │   │   └── Contents.json
│   │   │   └── LaunchImage.launchimage/
│   │   │       └── Contents.json
│   │   ├── Base.lproj/
│   │   │   └── LaunchScreen.storyboard
│   │   ├── CollectionViewController.h
│   │   ├── CollectionViewController.m
│   │   ├── Colors/
│   │   │   ├── Colors-Info.plist
│   │   │   ├── Colors-Prefix.pch
│   │   │   ├── System.xcassets/
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── LaunchImage.launchimage/
│   │   │   │       └── Contents.json
│   │   │   ├── en.lproj/
│   │   │   │   └── InfoPlist.strings
│   │   │   └── main.m
│   │   ├── DataSource/
│   │   │   ├── Color.h
│   │   │   ├── Color.m
│   │   │   ├── Palette.h
│   │   │   ├── Palette.m
│   │   │   ├── UIColor+Hex.h
│   │   │   ├── UIColor+Hex.m
│   │   │   └── colors.json
│   │   ├── Images.xcassets/
│   │   │   ├── empty_placeholder.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── search_icon.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── tab_collection.imageset/
│   │   │   │   └── Contents.json
│   │   │   ├── tab_search.imageset/
│   │   │   │   └── Contents.json
│   │   │   └── tab_table.imageset/
│   │   │       └── Contents.json
│   │   ├── Info.plist
│   │   ├── SearchViewController.h
│   │   ├── SearchViewController.m
│   │   ├── Storyboard.storyboard
│   │   ├── TableViewController.h
│   │   ├── TableViewController.m
│   │   └── main.m
│   ├── DZNEmptyDataSet/
│   │   ├── DZNEmptyDataSet.h
│   │   └── Info.plist
│   ├── DZNEmptyDataSet.xcodeproj/
│   │   ├── project.pbxproj
│   │   ├── project.xcworkspace/
│   │   │   └── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── xcschemes/
│   │           ├── DZNEmptyDataSet.xcscheme
│   │           └── DZNEmptyDataSetTests.xcscheme
│   ├── DZNEmptyDataSet.xcworkspace/
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata/
│   │       └── IDEWorkspaceChecks.plist
│   ├── DZNEmptyDataSetTests/
│   │   ├── ApplicationsSnapshotTests.m
│   │   └── Info.plist
│   ├── EmptyDataSetTests/
│   │   └── DZNEmptyDataSetTests-Bridging-Header.h
│   ├── Podfile
│   └── Pods/
│       ├── Pods.xcodeproj/
│       │   └── project.pbxproj
│       ├── Target Support Files/
│       │   ├── Pods-DZNEmptyDataSetTests/
│       │   │   ├── Pods-DZNEmptyDataSetTests-Info.plist
│       │   │   ├── Pods-DZNEmptyDataSetTests-acknowledgements.markdown
│       │   │   ├── Pods-DZNEmptyDataSetTests-acknowledgements.plist
│       │   │   ├── Pods-DZNEmptyDataSetTests-dummy.m
│       │   │   ├── Pods-DZNEmptyDataSetTests-frameworks.sh
│       │   │   ├── Pods-DZNEmptyDataSetTests-umbrella.h
│       │   │   ├── Pods-DZNEmptyDataSetTests.debug.xcconfig
│       │   │   ├── Pods-DZNEmptyDataSetTests.modulemap
│       │   │   └── Pods-DZNEmptyDataSetTests.release.xcconfig
│       │   ├── Pods-EmptyDataSetTests/
│       │   │   ├── Pods-EmptyDataSetTests-Info.plist
│       │   │   ├── Pods-EmptyDataSetTests-acknowledgements.markdown
│       │   │   ├── Pods-EmptyDataSetTests-acknowledgements.plist
│       │   │   ├── Pods-EmptyDataSetTests-dummy.m
│       │   │   ├── Pods-EmptyDataSetTests-frameworks.sh
│       │   │   ├── Pods-EmptyDataSetTests-umbrella.h
│       │   │   ├── Pods-EmptyDataSetTests.debug.xcconfig
│       │   │   ├── Pods-EmptyDataSetTests.modulemap
│       │   │   └── Pods-EmptyDataSetTests.release.xcconfig
│       │   └── iOSSnapshotTestCase/
│       │       ├── Info.plist
│       │       ├── iOSSnapshotTestCase-Info.plist
│       │       ├── iOSSnapshotTestCase-dummy.m
│       │       ├── iOSSnapshotTestCase-prefix.pch
│       │       ├── iOSSnapshotTestCase-umbrella.h
│       │       ├── iOSSnapshotTestCase.modulemap
│       │       └── iOSSnapshotTestCase.xcconfig
│       └── iOSSnapshotTestCase/
│           ├── FBSnapshotTestCase/
│           │   ├── Categories/
│           │   │   ├── UIImage+Compare.h
│           │   │   ├── UIImage+Compare.m
│           │   │   ├── UIImage+Diff.h
│           │   │   ├── UIImage+Diff.m
│           │   │   ├── UIImage+Snapshot.h
│           │   │   └── UIImage+Snapshot.m
│           │   ├── FBSnapshotTestCase.h
│           │   ├── FBSnapshotTestCase.m
│           │   ├── FBSnapshotTestCasePlatform.h
│           │   ├── FBSnapshotTestCasePlatform.m
│           │   ├── FBSnapshotTestController.h
│           │   ├── FBSnapshotTestController.m
│           │   └── SwiftSupport.swift
│           ├── LICENSE
│           └── README.md
├── DZNEmptyDataSet.podspec
├── Dangerfile
├── Gemfile
├── LICENSE
├── Package.swift
├── README.md
└── Source/
    ├── UIScrollView+EmptyDataSet.h
    └── UIScrollView+EmptyDataSet.m
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h
  function NS_ASSUME_NONNULL_BEGIN (line 16) | NS_ASSUME_NONNULL_BEGIN
Condensed preview — 190 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (527K chars).
[
  {
    "path": ".codecov.yml",
    "chars": 272,
    "preview": "codecov:\n    token: \n\ncoverage:\n  precision: 2\n  round: nearest\n  range: 70...100\n  ignore:\n    - ./DZNEmptyDataSet/.*\n\n"
  },
  {
    "path": ".gitignore",
    "chars": 207,
    "preview": "# Xcode\n.DS_Store\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev"
  },
  {
    "path": ".travis.yml",
    "chars": 711,
    "preview": "osx_image: xcode11.3\nlanguage: objective-c\nsudo: required\n\ncache:\n    - bundler\n    - cocoapods\n\nbefore_install:\n    - b"
  },
  {
    "path": "DZNEmptyDataSet/Applications/AppDelegate.h",
    "chars": 274,
    "preview": "//\n//  AppDelegate.h\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/AppDelegate.m",
    "chars": 414,
    "preview": "//\n//  AppDelegate.m\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Application.h",
    "chars": 1522,
    "preview": "//\n//  Application.h\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Application.m",
    "chars": 2437,
    "preview": "//\n//  Application.m\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2902,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\""
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/Contents.json",
    "chars": 62,
    "preview": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage-2.launchimage/Contents.json",
    "chars": 739,
    "preview": "{\n  \"images\" : [\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"full-screen\",\n      \""
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage-3.launchimage/Contents.json",
    "chars": 739,
    "preview": "{\n  \"images\" : [\n    {\n      \"orientation\" : \"portrait\",\n      \"idiom\" : \"ipad\",\n      \"extent\" : \"full-screen\",\n      \""
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/LaunchImage.launchimage/Contents.json",
    "chars": 3369,
    "preview": "{\n  \"images\" : [\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"736h\",\n      \"filena"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_foursquare_highlight.imageset/Contents.json",
    "chars": 403,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_foursqua"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_foursquare_normal.imageset/Contents.json",
    "chars": 397,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_foursqua"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_icloud_highlight.imageset/Contents.json",
    "chars": 395,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_icloud_h"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_icloud_normal.imageset/Contents.json",
    "chars": 389,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_icloud_n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_kickstarter_highlight.imageset/Contents.json",
    "chars": 405,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_kickstar"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/button_background_kickstarter_normal.imageset/Contents.json",
    "chars": 399,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"button_background_kickstar"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/header_pinterest.imageset/Contents.json",
    "chars": 359,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"header_pinterest.png\"\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/header_podcasts.imageset/Contents.json",
    "chars": 357,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"header_podcasts.png\"\n    }"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_500px.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_500px.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_airbnb.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_airbnb.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_appstore.imageset/Contents.json",
    "chars": 353,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_appstore.png\"\n    },\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_camera.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_camera.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_dropbox.imageset/Contents.json",
    "chars": 351,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_dropbox.png\"\n    },\n "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_facebook.imageset/Contents.json",
    "chars": 353,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_facebook.png\"\n    },\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_fancy.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_fancy.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_foursquare.imageset/Contents.json",
    "chars": 357,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_foursquare.png\"\n    }"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_icloud.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_icloud.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_instagram.imageset/Contents.json",
    "chars": 355,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_instagram.png\"\n    },"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_itunes_connect.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_itunesconnect.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_kickstarter.imageset/Contents.json",
    "chars": 359,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_kickstarter.png\"\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_path.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_path.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_photos.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_photos.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_pinterest.imageset/Contents.json",
    "chars": 355,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_pinterest.png\"\n    },"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_podcasts.imageset/Contents.json",
    "chars": 353,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_podcasts.png\"\n    },\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_remote.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_remote.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_safari.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_safari.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_skype.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_skype.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_slack.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_slack.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_tumblr.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_tumblr.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_twitter.imageset/Contents.json",
    "chars": 351,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_twitter.png\"\n    },\n "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_vesper.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_vesper.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_videos.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_videos.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_vine.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_vine.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_whatsapp.imageset/Contents.json",
    "chars": 353,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_whatsapp.png\"\n    },\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/icon_wwdc.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"icon_wwdc.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/loading_imgBlue_78x78.imageset/Contents.json",
    "chars": 372,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n     "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_500px.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_500px.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_airbnb.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_airbnb.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_dropbox.imageset/Contents.json",
    "chars": 351,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_dropbox.png\"\n    },\n "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_facebook.imageset/Contents.json",
    "chars": 353,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_facebook.png\"\n    },\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_fancy.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_fancy.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_foursquare.imageset/Contents.json",
    "chars": 357,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_foursquare.png\"\n    }"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_instagram.imageset/Contents.json",
    "chars": 355,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_instagram.png\"\n    },"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_kickstarter.imageset/Contents.json",
    "chars": 359,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_kickstarter.png\"\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_path.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_path.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_pinterest.imageset/Contents.json",
    "chars": 355,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_pinterest.png\"\n    },"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_skype.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_skype.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_slack.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_slack.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_tumblr.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_tumblr.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_twitter.imageset/Contents.json",
    "chars": 351,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_twitter.png\"\n    },\n "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_vesper.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_vesper.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/logo_vine.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"logo_vine.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_500px.imageset/Contents.json",
    "chars": 361,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_500px.png\"\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_airbnb.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_airbnb.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_appstore.imageset/Contents.json",
    "chars": 367,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_appstore.png\"\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_dropbox.imageset/Contents.json",
    "chars": 365,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_dropbox.png\"\n "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_facebook.imageset/Contents.json",
    "chars": 367,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_facebook.png\"\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_fancy.imageset/Contents.json",
    "chars": 361,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_fancy.png\"\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_foursquare.imageset/Contents.json",
    "chars": 371,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_foursquare.png"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_instagram.imageset/Contents.json",
    "chars": 369,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_instagram.png\""
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_itunes_connect.imageset/Contents.json",
    "chars": 379,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_itunes_connect"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_kickstarter.imageset/Contents.json",
    "chars": 373,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_kickstarter.pn"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_path.imageset/Contents.json",
    "chars": 359,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_path.png\"\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_remote.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_remote.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_skype.imageset/Contents.json",
    "chars": 361,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_skype.png\"\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_slack.imageset/Contents.json",
    "chars": 361,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_slack.png\"\n   "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_tumblr.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_tumblr.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_vesper.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_vesper.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_videos.imageset/Contents.json",
    "chars": 363,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_videos.png\"\n  "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_vine.imageset/Contents.json",
    "chars": 359,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_vine.png\"\n    "
  },
  {
    "path": "DZNEmptyDataSet/Applications/Assets.xcassets/placeholder_whatsapp.imageset/Contents.json",
    "chars": 367,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"placeholder_whatsapp.png\"\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/DetailViewController.h",
    "chars": 405,
    "preview": "//\n//  DetailViewController.h\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All"
  },
  {
    "path": "DZNEmptyDataSet/Applications/DetailViewController.m",
    "chars": 31905,
    "preview": "//\n//  DetailViewController.m\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All"
  },
  {
    "path": "DZNEmptyDataSet/Applications/MainViewController.h",
    "chars": 282,
    "preview": "//\n//  MainViewController.h\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/MainViewController.m",
    "chars": 8311,
    "preview": "//\n//  MainViewController.m\n//  Applications\n//\n//  Created by Ignacio on 6/6/14.\n//  Copyright (c) 2014 DZN Labs. All r"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/Applications-Prefix.pch",
    "chars": 344,
    "preview": "//\n//  Prefix header\n//\n//  The contents of this file are implicitly included at the beginning of every source file.\n//\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/Base.lproj/LaunchScreen.storyboard",
    "chars": 1740,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/Info.plist",
    "chars": 1340,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/Storyboard.storyboard",
    "chars": 8170,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/en.lproj/InfoPlist.strings",
    "chars": 45,
    "preview": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "DZNEmptyDataSet/Applications/Supporting Files/main.m",
    "chars": 334,
    "preview": "//\n//  main.m\n//  Applications\n//\n//  Created by Ignacio Romero on 2/28/17.\n//  Copyright © 2017 DZN. All rights reserve"
  },
  {
    "path": "DZNEmptyDataSet/Applications/UIColor+Hexadecimal.h",
    "chars": 252,
    "preview": "//\n//  UIColor+Hexadecimal.h\n//  Applications\n//\n//  Created by Ignacio on 6/7/14.\n//  Copyright (c) 2014 DZN Labs. All "
  },
  {
    "path": "DZNEmptyDataSet/Applications/UIColor+Hexadecimal.m",
    "chars": 1299,
    "preview": "//\n//  UIColor+Hexadecimal.m\n//  Applications\n//\n//  Created by Ignacio on 6/7/14.\n//  Copyright (c) 2014 DZN Labs. All "
  },
  {
    "path": "DZNEmptyDataSet/Applications/applications.json",
    "chars": 2726,
    "preview": " [\n  {\n  \"display_name\": \"500px\",\n  \"developer_name\": \"500px\",\n  \"identifier\": \"471965292\"\n  },\n  {\n  \"display_name\": \"A"
  },
  {
    "path": "DZNEmptyDataSet/Colors/AppDelegate.h",
    "chars": 279,
    "preview": "//\n//  AppDelegate.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/19/14.\n//  Copyright (c) 2014 DZN Labs. All rig"
  },
  {
    "path": "DZNEmptyDataSet/Colors/AppDelegate.m",
    "chars": 388,
    "preview": "//\n//  AppDelegate.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/19/14.\n//  Copyright (c) 2014 DZN Labs. All rig"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2941,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\""
  },
  {
    "path": "DZNEmptyDataSet/Colors/Assets.xcassets/LaunchImage.launchimage/Contents.json",
    "chars": 3252,
    "preview": "{\n  \"images\" : [\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"736h\",\n      \"filena"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Base.lproj/LaunchScreen.storyboard",
    "chars": 1740,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
  },
  {
    "path": "DZNEmptyDataSet/Colors/CollectionViewController.h",
    "chars": 323,
    "preview": "//\n//  CollectionViewController.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/19/14.\n//  Copyright (c) 2014 DZN "
  },
  {
    "path": "DZNEmptyDataSet/Colors/CollectionViewController.m",
    "chars": 8862,
    "preview": "//\n//  CollectionViewController.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/19/14.\n//  Copyright (c) 2014 DZN "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/Colors-Info.plist",
    "chars": 1288,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/Colors-Prefix.pch",
    "chars": 344,
    "preview": "//\n//  Prefix header\n//\n//  The contents of this file are implicitly included at the beginning of every source file.\n//\n"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/System.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 2514,
    "preview": "{\n  \"images\" : [\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"icon-29.png\",\n      \"scale\""
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/System.xcassets/LaunchImage.launchimage/Contents.json",
    "chars": 3252,
    "preview": "{\n  \"images\" : [\n    {\n      \"extent\" : \"full-screen\",\n      \"idiom\" : \"iphone\",\n      \"subtype\" : \"736h\",\n      \"filena"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/en.lproj/InfoPlist.strings",
    "chars": 45,
    "preview": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Colors/main.m",
    "chars": 339,
    "preview": "//\n//  main.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/19/14.\n//  Copyright (c) 2014 DZN Labs. All rights res"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/Color.h",
    "chars": 556,
    "preview": "//\n//  Palette.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/4/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/Color.m",
    "chars": 1350,
    "preview": "//\n//  Palette.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/4/14.\n//  Copyright (c) 2014 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/Palette.h",
    "chars": 378,
    "preview": "//\n//  ColorPalette.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/1/14.\n//  Copyright (c) 2014 DZN Labs. All rig"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/Palette.m",
    "chars": 1502,
    "preview": "//\n//  ColorSource.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/1/14.\n//  Copyright (c) 2014 DZN Labs. All righ"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/UIColor+Hex.h",
    "chars": 233,
    "preview": "//\n//  UIColor+Hex.h\n//  Colors\n//\n//  Created by Ignacio Romero on 4/26/16.\n//  Copyright © 2016 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/UIColor+Hex.m",
    "chars": 1490,
    "preview": "//\n//  UIColor+Hex.m\n//  Colors\n//\n//  Created by Ignacio Romero on 4/26/16.\n//  Copyright © 2016 DZN Labs. All rights r"
  },
  {
    "path": "DZNEmptyDataSet/Colors/DataSource/colors.json",
    "chars": 10431,
    "preview": " [\n  {\n  \"hex\": \"EFDECD\",\n  \"name\": \"Almond\",\n  \"rgb\": \"(239, 222, 205)\"\n  },\n  {\n  \"hex\": \"CD9575\",\n  \"name\": \"Antique "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Images.xcassets/empty_placeholder.imageset/Contents.json",
    "chars": 361,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"empty_placeholder.png\"\n   "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Images.xcassets/search_icon.imageset/Contents.json",
    "chars": 349,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"search_icon.png\"\n    },\n  "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Images.xcassets/tab_collection.imageset/Contents.json",
    "chars": 355,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"tab_collection.png\"\n    },"
  },
  {
    "path": "DZNEmptyDataSet/Colors/Images.xcassets/tab_search.imageset/Contents.json",
    "chars": 347,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"tab_search.png\"\n    },\n   "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Images.xcassets/tab_table.imageset/Contents.json",
    "chars": 345,
    "preview": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"scale\" : \"1x\",\n      \"filename\" : \"tab_table.png\"\n    },\n    "
  },
  {
    "path": "DZNEmptyDataSet/Colors/Info.plist",
    "chars": 1158,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Colors/SearchViewController.h",
    "chars": 688,
    "preview": "//\n//  SearchViewController.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/4/14.\n//  Copyright (c) 2014 DZN Labs."
  },
  {
    "path": "DZNEmptyDataSet/Colors/SearchViewController.m",
    "chars": 11047,
    "preview": "//\n//  SearchViewController.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 7/4/14.\n//  Copyright (c) 2014 DZN Labs."
  },
  {
    "path": "DZNEmptyDataSet/Colors/Storyboard.storyboard",
    "chars": 19401,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "DZNEmptyDataSet/Colors/TableViewController.h",
    "chars": 308,
    "preview": "//\n//  TableViewController.h\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/29/14.\n//  Copyright (c) 2014 DZN Labs."
  },
  {
    "path": "DZNEmptyDataSet/Colors/TableViewController.m",
    "chars": 7339,
    "preview": "//\n//  TableViewController.m\n//  Colors\n//\n//  Created by Ignacio Romero Z. on 6/29/14.\n//  Copyright (c) 2014 DZN Labs."
  },
  {
    "path": "DZNEmptyDataSet/Colors/main.m",
    "chars": 327,
    "preview": "//\n//  main.m\n//  Colors\n//\n//  Created by Ignacio Romero on 3/8/17.\n//  Copyright © 2017 DZN. All rights reserved.\n//\n\n"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet/DZNEmptyDataSet.h",
    "chars": 443,
    "preview": "//\n//  DZNEmptyDataSet.h\n//  DZNEmptyDataSet\n//\n//  Created by Ignacio Romero on 2/28/17.\n//  Copyright © 2017 DZN. All "
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet/Info.plist",
    "chars": 753,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcodeproj/project.pbxproj",
    "chars": 47417,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 160,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:DZNEmptyDataSet"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcodeproj/xcshareddata/xcschemes/DZNEmptyDataSet.xcscheme",
    "chars": 3657,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1130\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcodeproj/xcshareddata/xcschemes/DZNEmptyDataSetTests.xcscheme",
    "chars": 3257,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1130\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcworkspace/contents.xcworkspacedata",
    "chars": 707,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"group:DZNEmptyDataSe"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSet.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSetTests/ApplicationsSnapshotTests.m",
    "chars": 2532,
    "preview": "//\n//  DZNEmptyDataSetTests.m\n//  DZNEmptyDataSetTests\n//\n//  Created by Ignacio Romero on 2/28/17.\n//  Copyright © 2017"
  },
  {
    "path": "DZNEmptyDataSet/DZNEmptyDataSetTests/Info.plist",
    "chars": 742,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/EmptyDataSetTests/DZNEmptyDataSetTests-Bridging-Header.h",
    "chars": 131,
    "preview": "//\n//  Use this file to import your target's public headers that you would like to expose to Swift.\n//\n\n//#import \"Appli"
  },
  {
    "path": "DZNEmptyDataSet/Podfile",
    "chars": 170,
    "preview": "platform :ios, '10.0'\n\nuse_frameworks!\ninhibit_all_warnings!\n\nworkspace 'DZNEmptyDataSet.xcworkspace'\n\ntarget 'DZNEmptyD"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Pods.xcodeproj/project.pbxproj",
    "chars": 47008,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-Info.plist",
    "chars": 828,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-acknowledgements.markdown",
    "chars": 1285,
    "preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## iOSSnapshotTestCase\n\nMIT Licen"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-acknowledgements.plist",
    "chars": 2158,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-dummy.m",
    "chars": 154,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_DZNEmptyDataSetTests : NSObject\n@end\n@implementation PodsDum"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-frameworks.sh",
    "chars": 7915,
    "preview": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failur"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests-umbrella.h",
    "chars": 342,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests.debug.xcconfig",
    "chars": 1145,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Fra"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests.modulemap",
    "chars": 140,
    "preview": "framework module Pods_DZNEmptyDataSetTests {\n  umbrella header \"Pods-DZNEmptyDataSetTests-umbrella.h\"\n\n  export *\n  modu"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-DZNEmptyDataSetTests/Pods-DZNEmptyDataSetTests.release.xcconfig",
    "chars": 1145,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Fra"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-Info.plist",
    "chars": 828,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-acknowledgements.markdown",
    "chars": 1285,
    "preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## iOSSnapshotTestCase\n\nMIT Licen"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-acknowledgements.plist",
    "chars": 2158,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-dummy.m",
    "chars": 148,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_EmptyDataSetTests : NSObject\n@end\n@implementation PodsDummy_"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-frameworks.sh",
    "chars": 7915,
    "preview": "#!/bin/sh\nset -e\nset -u\nset -o pipefail\n\nfunction on_error {\n  echo \"$(realpath -mq \"${0}\"):$1: error: Unexpected failur"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests-umbrella.h",
    "chars": 336,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests.debug.xcconfig",
    "chars": 1145,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Fra"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests.modulemap",
    "chars": 134,
    "preview": "framework module Pods_EmptyDataSetTests {\n  umbrella header \"Pods-EmptyDataSetTests-umbrella.h\"\n\n  export *\n  module * {"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/Pods-EmptyDataSetTests/Pods-EmptyDataSetTests.release.xcconfig",
    "chars": 1145,
    "preview": "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES\nFRAMEWORK_SEARCH_PATHS = $(inherited) \"$(PLATFORM_DIR)/Developer/Library/Fra"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/Info.plist",
    "chars": 828,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-Info.plist",
    "chars": 828,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-dummy.m",
    "chars": 142,
    "preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_iOSSnapshotTestCase : NSObject\n@end\n@implementation PodsDummy_iOS"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-prefix.pch",
    "chars": 195,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-umbrella.h",
    "chars": 435,
    "preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#else\n#ifndef FOUNDATION_EXPORT\n#if defined(__cplusplus)\n#define FOUNDATION_EXPO"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.modulemap",
    "chars": 127,
    "preview": "framework module FBSnapshotTestCase {\n  umbrella header \"iOSSnapshotTestCase-umbrella.h\"\n\n  export *\n  module * { export"
  },
  {
    "path": "DZNEmptyDataSet/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.xcconfig",
    "chars": 766,
    "preview": "CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase\nENABLE_BITCODE = NO\nFRAMEWORK_SEARCH_PATHS"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.h",
    "chars": 2044,
    "preview": "//\n//  Created by Gabriel Handford on 3/1/09.\n//  Copyright 2009-2013. All rights reserved.\n//  Created by John Boiles o"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Compare.m",
    "chars": 8479,
    "preview": "//\n//  Created by Gabriel Handford on 3/1/09.\n//  Copyright 2009-2013. All rights reserved.\n//  Created by John Boiles o"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.h",
    "chars": 1519,
    "preview": "//\n//  Created by Gabriel Handford on 3/1/09.\n//  Copyright 2009-2013. All rights reserved.\n//  Created by John Boiles o"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Diff.m",
    "chars": 2416,
    "preview": "//\n//  Created by Gabriel Handford on 3/1/09.\n//  Copyright 2009-2013. All rights reserved.\n//  Created by John Boiles o"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.h",
    "chars": 749,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/Categories/UIImage+Snapshot.m",
    "chars": 2257,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.h",
    "chars": 18655,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCase.m",
    "chars": 11633,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.h",
    "chars": 2833,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestCasePlatform.m",
    "chars": 2333,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.h",
    "chars": 9683,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/FBSnapshotTestController.m",
    "chars": 17458,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/FBSnapshotTestCase/SwiftSupport.swift",
    "chars": 3983,
    "preview": "/*\n *  Copyright (c) 2017-2018, Uber Technologies, Inc.\n *  Copyright (c) 2015-2018, Facebook, Inc.\n *\n *  This source c"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/LICENSE",
    "chars": 1126,
    "preview": "MIT License\n\nCopyright (c) 2017-2018, Uber Technologies, Inc.\nCopyright (c) 2013-2018, Facebook, Inc.\n\nPermission is her"
  },
  {
    "path": "DZNEmptyDataSet/Pods/iOSSnapshotTestCase/README.md",
    "chars": 4759,
    "preview": "# iOSSnapshotTestCase (previously [FBSnapshotTestCase](https://github.com/facebookarchive/ios-snapshot-test-case))\n\n[![B"
  },
  {
    "path": "DZNEmptyDataSet.podspec",
    "chars": 957,
    "preview": "@version = \"1.8.1\"\n\nPod::Spec.new do |s|\n  s.name          = \"DZNEmptyDataSet\"\n  s.version       = @version\n  s.summary "
  },
  {
    "path": "Dangerfile",
    "chars": 474,
    "preview": "# The Dangerfile contains a collection of home-grown rules specific to your project.\n# http://danger.systems/\n\n# Warn ab"
  },
  {
    "path": "Gemfile",
    "chars": 86,
    "preview": "\nsource \"https://rubygems.org\"\n\ngem 'xcpretty'\ngem 'cocoapods'\n\ngem 'danger', '~> 4.0'"
  },
  {
    "path": "LICENSE",
    "chars": 1107,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 Ignacio Romero Zurbuchen iromero@dzen.cl\n\nPermission is hereby granted, free o"
  },
  {
    "path": "Package.swift",
    "chars": 1116,
    "preview": "// swift-tools-version:5.0\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
  },
  {
    "path": "README.md",
    "chars": 12385,
    "preview": "DZNEmptyDataSet\n=================\n\n[![Travis](https://travis-ci.org/dzenbot/DZNEmptyDataSet.svg?branch=master)](https://"
  },
  {
    "path": "Source/UIScrollView+EmptyDataSet.h",
    "chars": 10948,
    "preview": "//\n//  UIScrollView+EmptyDataSet.h\n//  DZNEmptyDataSet\n//  https://github.com/dzenbot/DZNEmptyDataSet\n//\n//  Created by "
  },
  {
    "path": "Source/UIScrollView+EmptyDataSet.m",
    "chars": 38065,
    "preview": "//\n//  UIScrollView+EmptyDataSet.m\n//  DZNEmptyDataSet\n//  https://github.com/dzenbot/DZNEmptyDataSet\n//\n//  Created by "
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the dzenbot/DZNEmptyDataSet GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 190 files (464.5 KB), approximately 137.8k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!