Skip to content

Instantly share code, notes, and snippets.

View Pretz's full-sized avatar

Alex Pretzlav Pretz

View GitHub Profile
+ (NSDateFormatter *)dateFormatter {
return [[ISO8601DateFormatter alloc] init];
}
+ (NSValueTransformer *)jsonDateValueTransformer {
return [MTLValueTransformer reversibleTransformerWithForwardBlock:^(NSString *str) {
return [self.dateFormatter dateFromString:str];
} reverseBlock:^(NSDate *date) {
return [self.dateFormatter stringFromDate:date];
}];
@Pretz
Pretz / bluetoot.py
Last active December 24, 2015 08:49
Reads the blutooth link key from the windows registry for a given paired bluetooth device (specified via MAC). Useful for multi-pairing with OS X and Loonix.
import winreg
import itertools
import binascii
import array
def hexlify(_bytes, reverse=True):
a = array.array('b', _bytes)
if swap:
a.reverse()
return binascii.hexlify(a.tobytes()).decode('utf-8')
@Pretz
Pretz / static_const.m
Created October 9, 2013 22:33
C macro for creating handy static constants in obj-c. Is this a bad or good idea?
#define STATIC_CONST(name) static NSString * const name = @#name;
STATIC_CONST(LearningNavRestorationIdentifier)
STATIC_CONST(ProfileNavRestorationIdentifier)
STATIC_CONST(ReservationsNavRestorationIdentifier)
#undef STATIC_CONST
// Becomes:
@Pretz
Pretz / state_restoration.m
Created November 11, 2013 16:31
NSFetchedResultsController backed UITableViewController with State Restoration
#pragma mark - State Restoration
- (NSString *)modelIdentifierForElementAtIndexPath:(NSIndexPath *)idx inView:(UIView *)view {
if (idx && self.fetchedResultsController) {
NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:idx];
return object.objectID.URIRepresentation.absoluteString;
}
return nil;
}
@Pretz
Pretz / parameterized_enum.swift
Created July 10, 2014 22:38
parameterized enums in swift that don't crash xcode
// Playground - noun: a place where people can play
import Foundation
struct ResultType<T: NSObject> {
var _value: [T]
var value: T {
get {
return _value[0]
@Pretz
Pretz / install-charles-ca-cert-for-iphone-simulator.command
Created July 22, 2014 17:42
Charles Proxy for iOS Simulator Xcode 6
#/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
// Playground - noun: a place where people can play
import Foundation
extension NSTimeInterval {
var seconds: NSTimeInterval {
return self
}
var minutes: NSTimeInterval {
@Pretz
Pretz / components.md
Created September 24, 2014 17:57
iOS Calendar UI Components

I went searching for a UI component that shows a single month at a time and allows switching between months. I decided to roll my own, but here's the projects I looked at, ordered by github stars:

  1. https://github.com/devinross/tapkulibrary (3492)
  2. https://github.com/square/objc-TimesSquare (1366)
  3. https://github.com/klazuka/Kal (1259)
  4. https://github.com/min/MNCalendarView (317)
  5. https://github.com/PeteC/DSLCalendarView (290)
  6. https://github.com/MosheBerman/MBCalendarKit (287)
  7. https://github.com/phaibin/Kal (64)
@Pretz
Pretz / retina_wrap.swift
Last active November 14, 2017 22:13
Render a view at 2x scale factor in an Xcode playground
func retinaWrap(view: UIView, scaleFactor: CGFloat = 2.0) -> UIView {
let scaleTransform = CGAffineTransformMakeScale(scaleFactor, scaleFactor)
let scaledView = UIView(frame: CGRectMake(0, 0, view.bounds.width * scaleFactor, view.bounds.height * scaleFactor))
view.transform = scaleTransform
view.center = CGPoint(x: scaledView.frame.width / 2, y: scaledView.frame.height / 2)
scaledView.addSubview(view)
return scaledView
}
// Playground - noun: a place where people can play
import UIKit
struct ApiResponse {
let success: Bool
let values: [[NSObject: AnyObject]]
}
class BaseModel: NSObject {