Latest 2.0.0
License MIT
Platforms ios 8.0, osx 10.9, watchos 2.0, tvos 9.0
Frameworks Foundation

Language Swift
Swift Package Manager compatible

SwiftySweetness is a list of extensions that provides extra functionality and syntactic sugar.

Version 2 Changes

As of version 2.0.0 all UIKit and AppKit extensions have been removed. They have been moved to HotCocoa.
This was done as this framework is meant to be a pure swift framework that should work cross platform without need for the Objective-C runtime.


Int & Double

Power operator **:

let power = 2 ** 4 // 16

Or assign the result to one of the variable arguments:

var num = 3
num **= 3 // 27

isNegative Bool property indicating whether or not the given number is negative:

if num.isNegative {


hasValue property to quickly check if the optional is nil or not:

var myOptional: Int? = nil
myOptional.hasValue // false


Use subscripts to get character at a given index:

let str = "Hello world!"
str[2] // 'l'

Or pass a range to get a substring:

str[2..<7] // "llo w"
str[2...7] // "llo wo"

trimmed returns a trimmed version of the string without leading or trailing whitespaces and newlines.

let str = "      nnMy Stringnn    n"
str.trimmed // "My String"

splitCamelCase() splits a camel cased string.

let str = "thisIsACamelCasedString"
str.splitCamelCase() // "this Is A Camel Cased String"

initials() returns the first letter of each word in the string.

let str = "Hello World"
str.initials() // "HW"

Encodable & Decodable

Swift 4 makes encoding and decoding JSON easy with the Encodable and Decodable protocols:

let json = JSONEncoder().encode(myStruct)
let decodedStruct = JSONDecoder().decode(MyStruct.self, from: json)

But SwiftySweetness makes this even easier:

let json = myStruct.encode(to: .json)
let decodedStruct = MyStruct.decode(from: json, ofType: .json)


The PropertyRepresentable allows any conforming type to generate an array containing all its properties.

struct Person: PropertyRepresentable {
    var name: String
    var age: Int

let person = Person(name: "John Doe", age: "20") // [(label: "name", value: "John Doe"), (label: "age", value: 20)]
person.propertyLabels() // ["name", "age"]
person.propertyValues() // ["John Doe", 20]
person.propertiesDictionary() // ["name": "John Doe", "age": 20]


SwiftySweetness offers multiple pipe operators. Piping is supported for all unary, binary, and ternary functions.
|> is the standard pipe operator. It will pipe the input on the left to the function on the right.

func add(_ x: Int, _ y: Int) -> Int {
    return x + y

let num = 4
num |> (add, -10) |> abs // 6

The |>? operator takes an optional and either pipes it to the given function if it has a value or returns nil if the value is nil. Note that the value returned is an optional.

let optional1: Int? = 4
optional1 |>? (add, 6) // 10 NOTE: This is of type Int?

let optional2: Int? = nil
optional2 |>? (add, 6) // nil

The |>! operator force-unwraps an optional and then pipes it to the given function. This should only be used when you are certain the value is not nil!

let optional1: Int? = 4
optional1 |>! (add, 6) // 10 NOTE: This is of type Int since the value was unwrapped

let optional2: Int? = nil
optional2 |>! (add, 6) // fatal error: unexpectedly found nil while unwrapping an Optional value

And much more!

Use it in a project to see what’s available.



  • iOS 8.0+
  • macOS 10.9+
  • tvOS 9.0+
  • watchOS 2.0+
  • Linux
  • Swift 4


SwiftySweetness is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod 'SwiftySweetness', '~> 1.4'

Swift Package Manager

SwiftySweetness is available through the Swift Package Manager
To install it, add the following to your Package.swift.

import PackageDescription

let package = Package(
    name: "MyProject",
    dependencies: [
        .package(url: "", from: "1.4.0")


Open an issue or submit a pull request.

Latest podspec

    "name": "SwiftySweetness",
    "version": "2.0.0",
    "summary": "Basic extensions to make Swift a little sweeter.",
    "description": "SwiftySweetness adds extensions to Swift to improve functionality and make tasks simpler.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Christopher Szatmary": "[email protected]"
    "source": {
        "git": "",
        "tag": "2.0.0"
    "platforms": {
        "ios": "8.0",
        "osx": "10.9",
        "watchos": "2.0",
        "tvos": "9.0"
    "source_files": "Sources/**/*.{swift}",
    "frameworks": "Foundation",
    "ios": {
        "frameworks": "UIKit"
    "osx": {
        "frameworks": "AppKit"

Pin It on Pinterest

Share This