Skip to content

Instantly share code, notes, and snippets.

Avatar

Joshua Sullivan JoshuaSullivan

View GitHub Profile
@JoshuaSullivan
JoshuaSullivan / ColorAbsoluteDifference.txt
Created Oct 11, 2020
Enumerations of the 3 new CoreImage Filters in iOS 14.0
View ColorAbsoluteDifference.txt
=========================
Color Absolute Difference
=========================
[Availability]
iOS: 14
macOS: 11.0
[Categories]
Color Adjustment, Video, Interlaced, Non-Square Pixels, Still Image, Built-In
@JoshuaSullivan
JoshuaSullivan / CoreImageFilterEnumeration.swift
Created Oct 11, 2020
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
JoshuaSullivan / synonym-search.swift
Created Mar 30, 2020
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 `https://dictionaryapi.com` goes here.
//: THIS WON'T WORK UNLESS YOU GET A KEY.
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
JoshuaSullivan / display-link-combine-playground.swift
Created Nov 10, 2019
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
JoshuaSullivan / core-image-filters-ios-13.md
Last active Sep 24, 2020
An enumeration of iOS 13 Core Image filters.
View core-image-filters-ios-13.md

Core Image Filters

iOS 13 has 218 filters.

New Filters in iOS 13

  • CIDocumentEnhancer
  • CIGaborGradients
  • CIKeystoneCorrectionCombined
  • CIKeystoneCorrectionHorizontal
  • CIKeystoneCorrectionVertical
@JoshuaSullivan
JoshuaSullivan / core-image-filters.md
Last active Feb 5, 2019
Core Image Filter Details
View core-image-filters.md

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
JoshuaSullivan / AnalyticsBackEndProtocol.swift
Created Dec 18, 2018
A guide to mocking objects with static methods...
View AnalyticsBackEndProtocol.swift
protocol AnalyticsBackEnd {
static func log(_ name: String)
}
extension Analytics: AnalyticsBackEnd {}
@JoshuaSullivan
JoshuaSullivan / UIImage.Orientation+Correction.swift
Created Dec 3, 2018
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
JoshuaSullivan / natural-language-playground.swift
Last active Aug 2, 2018
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 = """
@JoshuaSullivan
JoshuaSullivan / swift4-kvo-playground.swift
Created May 11, 2018
Here is a playground demonstrating how to set up Swift 4 KVO.
View swift4-kvo-playground.swift
//: # Setting up Swift 4 KVO
import Foundation
//: This class has a pair of properties that can be observied by KVO.
//: - Note: This class *must* inheret from `NSObject` in order to posess the KVO functionality.
class ObservableClass: NSObject {
/// An observable string property. Note that it most be annotated with both "@objc" (expose the property to the
/// Objective-C runtime) and "dynamic" (enables KVO for the property).
@objc dynamic private(set) var stringProperty: String = "Starting string!"
You can’t perform that action at this time.