Skip to content

Instantly share code, notes, and snippets.

View ahcode0919's full-sized avatar
🏠
Working from home

A. Hinton ahcode0919

🏠
Working from home
  • Worldwide
View GitHub Profile
@ahcode0919
ahcode0919 / Swift-Codable.swift
Created June 6, 2017 22:53
Swift 4 Codable example (Type -> JSON)
//Simple Type - Person
struct Person: Codable {
let name: String
let age: Int
func getString() -> String {
return "Name: \(name), Age: \(age)"
}
}
@ahcode0919
ahcode0919 / dateHelpers.groovy
Last active May 4, 2017 16:31
Collection of Date/Time helpers
static boolean isBetween(String start, String end) {
def sdf = new SimpleDateFormat("HH:mm")
def startCalendar = Calendar.getInstance()
startCalendar.setTime(sdf.parse(start))
def endCalendar = Calendar.getInstance()
endCalendar.setTime(sdf.parse(end))
def currentCalendar = Calendar.getInstance()
@ahcode0919
ahcode0919 / Swift-Comments.swift
Created April 28, 2017 11:33
Comment formatting in Swift
import Foundation
/// General doc comment
struct SomeClass {
private static var count: Int = 0
let aString: String
// MARK: - Initializers
init(aString: String) {
@ahcode0919
ahcode0919 / DeviceCheck.swift
Created April 19, 2017 18:54
Check if Application is running on a simulator or physical iOS device
struct Device {
/// Detects if the current architecture is a Simulator
static let isSimulator: Bool = {
var isSim = false
#if arch(i386) || arch(x86_64)
isSim = true
#endif
return isSim
}()
@ahcode0919
ahcode0919 / swift-measurement.swift
Last active April 17, 2017 22:51
Example of Measurements and Units in Swift 3.0
extension String {
func getDecimalDigits(includeDecimal: Bool = true) -> String {
let set = includeDecimal ? "1234567890.": "1234567890"
return self.components(separatedBy: CharacterSet(charactersIn: set).inverted).joined()
}
func lettersOnly() -> String {
let characterSet = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").inverted
@ahcode0919
ahcode0919 / Swift-Operators.swift
Last active April 17, 2017 22:54
Creating custom operators in Swift
//Creating an operator
//prefix, postfix, infix
//https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html
//https://developer.apple.com/reference/swift/swift_standard_library_operators
postfix operator ***
///Cubes value
postfix func *** (_ input: Int) -> Int {
return input * input * input
@ahcode0919
ahcode0919 / swift-zip.swift
Last active April 17, 2017 22:54
Swift Zip function usage
//Zip function (Sequence)
// https://github.com/apple/swift/blob/master/stdlib/public/core/Zip.swift
// https://developer.apple.com/reference/swift/1541125-zip
// http://swiftdoc.org/v3.0/func/zip/
let array1 = ["one", "two", "three", "four", "five"]
let array2 = 1...5
let zipSequence = zip(array1, array2)
type(of: zipSequence) //Zip2Sequence<Array<String>, CountableClosedRange<Int>>.Type
@ahcode0919
ahcode0919 / swift-custom-maps.swift
Last active April 17, 2017 22:54
Custom Maps in Swift
//Custom Map functions
//Experimenting with making custom map functions
//Original Map implementation: https://github.com/apple/swift/blob/master/stdlib/public/core/Sequence.swift
extension Sequence {
func mapToDictionary<T>(_ transform: (Iterator.Element) throws -> (String, T)) rethrows -> [String: T] {
let initialCapacity = underestimatedCount
var result = [String: T]()
var iterator = self.makeIterator()
@ahcode0919
ahcode0919 / bridge-pattern.swift
Last active August 19, 2020 20:42
Example of the bridge pattern in Swift
// Bridge pattern (Structural)
//
// Decouples an abstraction from its implementation, so that the two can vary independently.
// Accomplished by seperating two interacting features and then creating a bridge type to
// handle where they overlap
protocol Database {
func closeConnection()
func openConnection()
func saveRecord(recordToSave: Record)
}
@ahcode0919
ahcode0919 / factory-pattern.swift
Last active April 17, 2017 22:56
Example of the factory pattern in Swift
//Factory Pattern (Creational)
//Allows logic of which type will be created to be handled by a method
protocol SimpleType {
var simpleName: String { get }
}
struct Type1: SimpleType {
var simpleName: String = "Type1"
}