Skip to content

Instantly share code, notes, and snippets.

View feighter09's full-sized avatar

Austin Feight feighter09

View GitHub Profile
import UIKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
convenience init() { self.init(nibName: "ViewController", bundle: nil) }
@IBOutlet weak var label: UILabel!
var networkClient: NetworkClientType = NetworkClient()
import Alamofire
import SwiftyJSON
import UIKit
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 {
@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()
-- 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 / 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 }
}
@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 / 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>
{
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 / 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)
}