View rocket.md

This document was originally posted on 8/1/2013.

Rocket is a technique for building real-time functionality on top of REST web services that leverages web standards like [Server-Sent Events][SSE] and [JSON Patch][RFC6902]. Most importantly, it fits comfortably with how you're already building applications.

A Tale of Two Paradigms

Just as light can act as both a particle and a wave, so information can be thought as both a document and a stream.

Each approach has its particular strengths and weaknesses:

View Regex.swift
1 2 3 4 5 6 7 8 9 10
struct Regex {
let pattern: String
let options: NSRegularExpressionOptions!
 
private var matcher: NSRegularExpression {
return NSRegularExpression(pattern: self.pattern, options: self.options, error: nil)
}
 
init(pattern: String, options: NSRegularExpressionOptions = nil) {
self.pattern = pattern
View CoreGraphics.swift
1 2 3 4 5 6 7 8 9
import CoreGraphics
 
infix operator |> { precedence 50 associativity left }
 
// MARK: CGPoint
 
func +(lhs: CGPoint, rhs: CGPoint) -> CGPoint {
return CGPoint(x: lhs.x + rhs.x, y: lhs.y + rhs.y)
}
View Calendar.swift
1 2 3 4 5 6 7 8 9 10
protocol Calendar {
typealias Unit: BidirectionalIndexType
 
typealias Era: Unit
typealias Year: Unit
typealias Month: Unit
typealias Week: Unit
typealias Day: Unit
typealias Weekday: Unit
typealias Hour: Unit
View URL.swift
1 2 3 4 5 6 7 8 9
struct URL {
var scheme: String?
var user: String?
var password: String?
var host: String?
var port: Int?
var path: String?
var query: String?
var fragment: String?
View Complex.swift
1 2 3 4 5 6 7 8
struct Complex<T: FloatLiteralConvertible> {
var real: T
var imaginary: T
}
 
func +(lhs: Complex<Double>, rhs: Complex<Double>) -> Complex<Double> {
return Complex<Double>(real: lhs.real + rhs.real, imaginary: lhs.imaginary + rhs.imaginary)
}
View random.swift
1 2 3 4 5 6 7 8 9 10
import Darwin
 
extension Int {
static func random() -> Int {
return Int(arc4random())
}
 
static func random(range: Range<Int>) -> Int {
return Int(arc4random_uniform(UInt32(range.endIndex - range.startIndex))) + range.startIndex
}
View NSDecimalNumber.swift
1 2 3 4 5 6 7 8 9
import Foundation
 
// MARK: - Comparable
 
extension NSDecimalNumber: Comparable {}
 
public func ==(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> Bool {
return lhs.compare(rhs) == .OrderedSame
}
View nshipster-new-years-2015.md

Season's Greetings, NSHipsters!

As the year winds down, and we take a moment to reflect on our experiences over the past months, one thing is clear: 2014 has been an incredible year professionally for Apple developers. So much has happened in such a short timespan, and yet it's hard to remember our relationship to Objective-C before Swift, or what APIs could have captivated our imagination as much as iOS 8 or WatchKit.

It's an NSHipster tradition to ask you, dear readers, to send in your favorite tips and tricks from the past year for publication over the New Year's holiday. This year, with the deluge of new developments—both from Cupertino and the community at large—there should be no shortage of interesting tidbits to share.

Submit your favorite piece of Swift or Objective-C trivia, framework arcana, hidden Xcode feature, or anything else you think is cool, and you could have it featured in the year-end blowout article. Just comment on this gist below!

If you're wondering about what to post, look to

View RecipePageRenderer.swift
1 2 3 4 5 6 7 8 9 10
//
// RecipePageRenderer.swift
// (c) 2014 Nate Cook, licensed under the MIT License
//
 
import UIKit
import AVFoundation
 
/// Units for printing content insets
let POINTS_PER_INCH: CGFloat = 72
Something went wrong with that request. Please try again.