Year 1 Issue 28

Hello friends, hope you had a great weekend, and are ready to start the week energized and fresh.

As you might know The iOS Advent Calendar project is still going on, with daily bite sized tutorials on open source Swift libraries. You’ll find the list of last week’s tutorials in this email, and remember that you can always subscribe to receive them daily, just click here.

Laurine

Laurine provides a CLI that will generates a Localizations Swift struct with nested structs for each string in your project localisation file.

// From
let s = NSLocalizedString("some_key_for_your_string", "comment")

// To
Localizations.SomeKeyForYourString

I’m a big fan of this kind of approach, and I would definitely recommend having a look at the repo. There are also detailed instructions on how to integrate it as a build phase.

Crayons

This Xcode plugin aims to improve dealing with color in Xcode projects. It allows you to share palettes of colors from your source files, and use them directly in Interface Builder, without having to manually recreate them in the Color Picker, that’s pretty handy! There are many more features in the pipeline so checkout the Upcoming Features.

KZLinkedConsole

Speaking of handy features and Xcode plugins, this new plugin adds clickable links next to the console logs, that will jump you to the line of code that logged it.

focus

An open source Safari content blocker written by the Firefox team.

Chocolat

A Swift CLI to generate a CocoaPods .podspecs from a Package.swift file. The author Boris Bügling also provides another tool to the inverse conversion, generate a .podspec from Package.swift: Schoutedenapus. Fun fact, the name looks like its been chosen by its cat walking on the keyboard, but it is actually the name of a genus of swift in the Apodidae family.

swiftra

Sinatra-like DSL for developing web apps in Swift. Now that Swift is open source I’m expecting to see many more of such projects. You can make a web server as simply as this:

import swiftra

get("/hello") { req in
    return "Hello, world!"
}

post("/form") { req in
    return "Hello: \(req.bodyString)"
}

get("/404") { req in
    return Response(.NotFound)
}

serve(8080)

The iOS Advent Calendar 🎅 - Days 7 to 13

  1. Quick and Nimble, write descriptive unit test in Swift.
  2. Regex, a more Swifty way to write Regular Expressions.
  3. JSONCodable, Swift 2 style JSON decoding and encoding library.
  4. Cartography, write Auto Layout constraints in code with ease.
  5. SwiftGen, collection of tools to generate enums for all the string identified resource in your projects.
  6. Prephirences, abstraction layer to manage multiple preferences stores in the same way.
  7. PermissionScope, library to present unified permission request alerts, and manage authorisation states.

Other Interesting Projects