Skip to content

Instantly share code, notes, and snippets.


Joshua Sullivan JoshuaSullivan

View GitHub Profile
JoshuaSullivan / DataParser.swift
Last active November 21, 2020 17:13
A helper for translating Advent of Code puzzle input into usable values.
View DataParser.swift
import Foundation
/// A type that can be initialized from a string value.
public protocol StringInitable {
/// Initialize the object with a string.
/// - Note: This operation can fail if the string is not valid for this object type.
init?(_ string: String)
JoshuaSullivan / ColorAbsoluteDifference.txt
Created October 11, 2020 22:44
Enumerations of the 3 new CoreImage Filters in iOS 14.0
View ColorAbsoluteDifference.txt
Color Absolute Difference
iOS: 14
macOS: 11.0
Color Adjustment, Video, Interlaced, Non-Square Pixels, Still Image, Built-In
JoshuaSullivan / CoreImageFilterEnumeration.swift
Created October 11, 2020 22:35
A Swift Playground that will enumerate the properties of all of the CoreImage filters.
View CoreImageFilterEnumeration.swift
import Foundation
import CoreImage
struct FilterInput {
struct ValueRange {
let minValue: Float
let maxValue: Float
let sliderMin: Float?
let sliderMax: Float?
JoshuaSullivan / synonym-search.swift
Created March 30, 2020 22:21
Uses the NaturalLanguage framework combined with a thesaurus API to replace adjectives in a sentence with synonyms. This is designed to be run in a Swift Playground.
View synonym-search.swift
import UIKit
import NaturalLanguage
import PlaygroundSupport
//: Your secret API key from `` goes here.
let thesaurusKey = ""
//: The string you want to work on.
var testString = "The bright sun set behind the green hills. Thin clouds streaked the red sky."
JoshuaSullivan / display-link-combine-playground.swift
Created November 10, 2019 00:14
This gist demonstrates how we can wrap CADisplayLink to get frame refresh events via a published stream rather than the traditional `target:selector:` methodology.
View display-link-combine-playground.swift
JoshuaSullivan /
Last active January 23, 2023 16:45
An enumeration of iOS 13 Core Image filters.

Core Image Filters

iOS 13 has 218 filters.

New Filters in iOS 13

  • CIDocumentEnhancer
  • CIGaborGradients
  • CIKeystoneCorrectionCombined
  • CIKeystoneCorrectionHorizontal
  • CIKeystoneCorrectionVertical
JoshuaSullivan /
Last active October 14, 2022 15:41
Core Image Filter Details

Core Image Filters

iOS 12.2 has 207 filters.

Accordion Fold Transition (CIAccordionFoldTransition)

First available: iOS 8

Transitions from one image to another of a differing dimensions by unfolding.

JoshuaSullivan / AnalyticsBackEndProtocol.swift
Created December 18, 2018 21:17
A guide to mocking objects with static methods...
View AnalyticsBackEndProtocol.swift
protocol AnalyticsBackEnd {
static func log(_ name: String)
extension Analytics: AnalyticsBackEnd {}
JoshuaSullivan / UIImage.Orientation+Correction.swift
Created December 3, 2018 17:32
An extension on `UIImage.Orientation` to convert it to the corresponding `CGImagePropertyOrientation` case.
View UIImage.Orientation+Correction.swift
extension UIImage.Orientation {
/// Get the equivalent `CGImagePropertyOrientation` enum case.
var cgOrientation: CGImagePropertyOrientation {
switch self {
case .up: return .up
case .down: return .down
case .left: return .left
case .right: return .right
case .upMirrored: return .upMirrored
case .downMirrored: return .downMirrored
JoshuaSullivan / natural-language-playground.swift
Last active August 2, 2018 03:22
This playground demonstrates several features of the NaturalLanguage framework that's new in iOS 12.
View natural-language-playground.swift
//: # Natural Language Framework
//: by Josh Sullivan
import Swift
import NaturalLanguage
//: Create a short string to test.
let str = "I am the very model of a modern major general! 😎"
//: And a longer one. Yay, multi-line String literals!
let longStr = """