Skip to content

Instantly share code, notes, and snippets.

View feighter09's full-sized avatar

Austin Feight feighter09

View GitHub Profile
@feighter09
feighter09 / ParseColumnAdder
Last active August 29, 2015 14:10
Add many Parse columns at once
// Populate the array with subarrays of [ColumnName, ColumnType]
// where columnType is one of: ["String", "Number", "Boolean", "Date", "File", "GeoPoint", "Array", "Object", "Pointer", "Relation"]
// Then, navigate to your Parse data class, copy paste this code into the console and hit enter
// populating this list will be very tedious if you do not take advantage of an awesome text editor like Sublime Text
var array = [["pooper", "String"], ["poopsToday", "Number"]]
var i = 0
function addColumn()
{
@feighter09
feighter09 / Fonts.swift
Last active June 25, 2021 19:24
Set global font for iOS app in one place
// MARK: - Swizzling
extension UIFont {
class var defaultFontFamily: String { return "Georgia" }
override public class func initialize()
{
if self == UIFont.self {
swizzleSystemFont()
}
}
@feighter09
feighter09 / changeKeyboardDoneColor.swift
Last active July 25, 2022 06:10
Change the keyboard "Done" button color to match the rest of your app! This is a total hack though and is likely to get flagged during app review. If so, try obfuscating =)
class Utilities {
class func subviewsOfView(view: UIView, withType type: String) -> [UIView]
{
let prefix = "<\(type)"
var subviewArray = view.subviews.flatMap { subview in subviewsOfView(subview, withType: type) }
if view.description.hasPrefix(prefix) {
subviewArray.append(view)
}
struct Regex {
let pattern: String
let options: NSRegularExpressionOptions
private var matcher: NSRegularExpression {
return try! NSRegularExpression(pattern: pattern, options: options)
}
init(pattern: String, options: NSRegularExpressionOptions! = nil)
{
@feighter09
feighter09 / FunctionalViewControllers.swift
Last active May 18, 2017 08:51
Functional View Controllers from Chris Eidhof's talk @ FunSwiftConf 2015
import UIKit
// MARK: - Building Blocks
struct Screen<A> {
let run: (A -> Void) -> UIViewController
}
extension Screen {
func map<B>(f: A -> B) -> Screen<B>
{
@feighter09
feighter09 / mapFTW.swift
Last active March 31, 2016 02:08
A Functional Approach to Optionals
// Scenario: Parsing a JSON object that represents an item in a store
// JSON: { "name": "Bucket", "price": "19.95" }
// The following functions take in a price as a string, and output the result as an Int of cents
// cause I don't trust floating point operations when dealing with other people's money
struct Item {
let name: String
let price: Int
@feighter09
feighter09 / ViewUtilities.swift
Created April 28, 2016 04:34
IBInspectable UIView Extensions for Fun and Profit
extension UIView {
@IBInspectable var borderColor: UIColor? {
get { return layer.borderColor.map(UIColor.init) }
set { layer.borderColor = newValue?.CGColor }
}
@IBInspectable var borderWidth: CGFloat {
get { return layer.borderWidth }
set { layer.borderWidth = newValue }
}
-- original
getBody :: ServerPart L.ByteString
parseBody :: FromJSON a => ServerPart (Maybe a)
parseBody = getBody >>= (return . A.decode)
-- attempt
parseBody :: FromJSON a => MaybeT (ServerPartT IO) a
parseBody = lift $ getBody >>= (return . A.decode)
-- Error
@feighter09
feighter09 / NetworkingEvolution_ViewController_1.swift
Last active August 12, 2016 05:07
First time networking in iOS
import UIKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
convenience init() { self.init(nibName: "ViewController", bundle: nil) }
@IBOutlet weak var label: UILabel!
override func viewDidLoad()
import Alamofire
import SwiftyJSON
struct NetworkClient {
static func makeRequest(url: String,
params: [String : AnyObject],
callback: (JSON?, ErrorType?) -> Void)
{
request(.POST, url, parameters: params).response { _, _, data, error in
if let jsonData = data where error == nil {