Skip to content

Instantly share code, notes, and snippets.

@jhildensperger
jhildensperger / highlight-todos.sh
Last active December 31, 2015 21:09
Show TODO and FIXME as warnings from pre-build script
# Show TODO and FIXME as warnings
# ===============================
KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"
find "${SRCROOT}/${PROJECT_NAME}" "${SRCROOT}/${PROJECT_NAME}Tests" \( -name "*.h" -or -name "*.m" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
@jhildensperger
jhildensperger / pbxproj-sort.pl
Last active August 29, 2015 14:01
Apple's pbxproj file sorter
#!/usr/bin/perl -w
# Copyright (C) 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#/bin/bash
install() {
if [ -f "$SQLITEDBPATH" ]; then
cp -n "$SQLITEDBPATH" "$SQLITEDBPATH.charlesbackup"
sqlite3 "$SQLITEDBPATH" <<EOF
INSERT INTO "tsettings" VALUES(X'189B6E28D1635F3A8325E1E002180DBA2C02C241',X'3123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E6731243022060355040B0C1B687474703A2F2F636861726C657370726F78792E636F6D2F73736C3111300F060355040A0C08584B3732204C74643111300F06035504070C084175636B6C616E643111300F06035504080C084175636B6C616E64310B3009060355040613024E5A',X'3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E0A3C21444F435459504520706C697374205055424C494320222D2F2F4170706C652F2F44544420504C49535420312E302F2F454E222022687474703A2F2F7777772E6170706C652E636F6D2F445444732F50726F70657274794C6973742D312E302E647464223E0A3C706C6973742076657273696F6E3D22312E30223E0A3C61727261792F3E0A3C2F706C6973743E0A',X'3082045E30820346A003020102020101300D06092A864886F70D01010505003081913123302106035504030C1A436861726C65732050726F78792053534C2050726F7879696E67312430
@jhildensperger
jhildensperger / .gitignore
Created June 1, 2014 22:06
objective-c gitigore
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control?
#
Pods/
build/
*.pbxuser
@jhildensperger
jhildensperger / .LSOverride
Created June 9, 2014 22:55
Override launch service for xcworkspace or xcproject
/Applications/Xcode.App/
@jhildensperger
jhildensperger / shake.m
Created June 30, 2014 06:54
Method to shake a view with a completion block
- (void)shakeView:(UIView *)view completion:(void (^)(void))completion {
[UIView animateKeyframesWithDuration:.5 delay:0 options:UIViewKeyframeAnimationOptionBeginFromCurrentState animations:^{
[UIView addKeyframeWithRelativeStartTime:0 relativeDuration:.25 animations:^{
view.transform = CGAffineTransformMakeTranslation(-5, 0);
}];
[UIView addKeyframeWithRelativeStartTime:.25 relativeDuration:.25 animations:^{
view.transform = CGAffineTransformMakeTranslation(5, 0);
}];
@jhildensperger
jhildensperger / CAMediaTimingFunction+SwiftOut.m
Created July 13, 2014 20:35
Swift out as described by Google's design documentation
#import "CAMediaTimingFunction+SwiftOut.h"
@implementation CAMediaTimingFunction (SwiftOut)
+ (CAMediaTimingFunction *)swiftOut
{
CGPoint controlPoint1 = CGPointMake(0.4, 0.0);
CGPoint controlPoint2 = CGPointMake(0.2, 1.0);
return [self functionWithControlPoints:controlPoint1.x :controlPoint1.y :controlPoint2.x :controlPoint2.y];
}
@jhildensperger
jhildensperger / MenuButton.m
Created July 14, 2014 08:43
An old fashioned Objective-C implementation of this awesome swift hamburger button https://github.com/robb/hamburger-button
//
// MenuButton.m
//
// Created by James Hildensperger on 7/13/14.
// Copyright (c) 2014 Zymurgical. All rights reserved.
//
#import "MenuButton.h"
static CGFloat menuStrokeStart = 0.325;
@jhildensperger
jhildensperger / .open-github-branch.bash
Last active August 29, 2015 14:08
Open current branch on github compared to master
# add .open-github-branch.bash to ~/
# add commented code to your ~/.bash_profile
# restart terminal and enjoy!
#
# if [ -f ~/.open-github-branch.bash ]; then
# . ~/.open-github-branch.bash
# fi
#
# alias gpr='__open_github_branch'
@jhildensperger
jhildensperger / preintstall_hook
Created November 21, 2014 21:06
Podfile preinstall hook to enerate a header for all headers in Pods targer
pre_install do |installer_representation|
aggregate_target = installer_representation.installer.aggregate_targets.detect { |target| target.name == "Pods" }
pods = installer_representation.pods.select { |pod| aggregate_target.pod_targets.collect(&:pod_name).include?(pod.name) }
pod_names = ['AFNetworking']
File.open('PodHeaders.h', 'w') do |header|
pods.select {|pod| pod_names.include?(pod.name)}.each do |pod|
header.puts "\n#pragma mark - " + pod.name + "\n\n"
pod.source_files.select {|path| path.extname == ".h"}.each do |header_path|
header_file = header_path.basename.to_s
next if header_path =~ /Spec/