This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| // UIWindow+AppSwitchScrollStopper.h | |
| // Created by Tim Johnsen on 3/27/16. | |
| #import <UIKit/UIKit.h> | |
| @interface UIWindow (AppSwitchScrollStopper) | |
| /// Call this early on in your app's lifecycle to avoid | |
| /// scroll-related flashing when your app resumes from the background | |
| - (void)installAppSwitchScrollStopper; |
| #!/usr/bin/env bash | |
| # nuke-certs | |
| # | |
| # | |
| # This script has been reported to help with errors like | |
| # | |
| # this: | |
| # + xcodebuild -exportArchive -exportOptionsPlist /var/folders/rj/8lnf662s3mlgzv5mcq2r2fnc0000gn/T/gym20160216-41694-14bt0ur_config.plist -archivePath '/Users/pe/Library/Developer/Xcode/Archives/2016-02-16/016-02-16 12.09.02.xcarchive' -exportPath /var/folders/rj/8lnf662s3mlgzv5mcq2r2fnc0000gn/T/gym20160216-41694-17mfck9.gym_output | |
| # 2016-02-16 12:10:03.004 xcodebuild[43629:464102] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/rj/8lnf662s3mlgzv5mcq2r2fnc0000gn/T/016-02-16_12-10-03.003.xcdistributionlogs'. |
| import UIKit | |
| import MapKit | |
| /** | |
| * Define behaviour of app through its lifetime | |
| */ | |
| @UIApplicationMain | |
| class AppDelegate: UIResponder, UIApplicationDelegate { | |
| var window: UIWindow? |
| - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { | |
| UITableViewRowAction *moreAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"More" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){ | |
| // maybe show an action sheet with more options | |
| [self.tableView setEditing:NO]; | |
| }]; | |
| moreAction.backgroundColor = [UIColor lightGrayColor]; | |
| UITableViewRowAction *blurAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"Blur" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){ | |
| [self.tableView setEditing:NO]; | |
| }]; |
| #import <Foundation/Foundation.h> | |
| @interface NSFileManager (WhereFromXAttr) | |
| /// Returns the value of a given file's com.apple.metadata:kMDItemWhereFroms extended attribute. | |
| - (NSArray *)valueForWhereFromExtendedAttributeOfFile:(NSString *)path; | |
| @end |
| #define MSDesignatedInitializer(__SEL__) __attribute__((unavailable("Invoke the designated initializer `" # __SEL__ "` instead."))) | |
| // Sample usage: | |
| - (instancetype)initWithObject:(id)object; | |
| - (instancetype)init MSDesignatedInitializer(initWithObject:); // <- This even gets auto-complete. | |
| // Now calling init on this class would throw a warning. |
| // | |
| // UIImage+Additions.h | |
| // Sparrow | |
| // | |
| // Created by Shilo White on 10/16/11. | |
| // Copyright 2011 Shilocity Productions. All rights reserved. | |
| // | |
| #define COLOR_PART_RED(color) (((color) >> 16) & 0xff) | |
| #define COLOR_PART_GREEN(color) (((color) >> 8) & 0xff) |