Year 2 Issue 11

Express

This new web framework developed by Crossroad Labs in inspired by Node.js Express and provide the same simplicity. You can easily define a new endpoint like this:

app.get("/hello") { request in
    // ...
}

In the body of the closure you can do all sorts of computation, and return the result as a JSON content or as an instruction to render HTML, with support out of the box for the Stencil template language.

Have a look at the project’s roadmap and see if you can contribute

NetworkKit

A simple “all-in-one” networking and parsing framework:

NKHTTPRequest.GET(
  "https://hacker-news.firebaseio.com/v0/item/11245652.json",
  auth: NKOauth(consumerKey: "consumerKey", consumerSecret: "consumerSecret"),
  params: ["print": "pretty"],
  success: { data in
      var item: NKEItem?
      item <-- data
  },
  failure: { error in
      print(error.message)
  })

I am personally not a fan of tools that do too much for me, but one thing is for sure, once you buy into their way of doing things you can achieve great results with very little code and setup.

This UINavigationController subclass features a visualisation of its navigation stack as a stack of the individual screens, very similar to the iOS app switcher.

demo

Log

A Swift “logging” framework with customizable themes and formatters, and different logging levels.

Log.trace("Called!!!")
Log.debug("Who is self:", self)
Log.info(some, objects, here)
Log.warning(one, two, three, separator: " - ")
Log.error(error, terminator: "😱😱😱\n")

demo

SubtleVolume

This little library allows you replace the built-in volume popup with a more subtle way to display the volume when the user changes it with the volume rocker.

demo

Fuzzer

The project’s README is not very clear about the purpose of this tool, but once you read the companion blogpost everything makes sense.

This tool is meant to help building applications that are robust against unstable web APIs. We’ve all been in a project where the API payload changed on us, without anyone being notified about it, and with the app crashing or misbehaving. Fuzzer provides a way to mutate the dictionaries received from the network and fed to your parsing logic, so that you can write unit tests to validate how robust your app is when the API responses are not what’s expected.

This library is an example of “mutation testing” something I consider very interesting, and wish more team setup in their CIs as nightly jobs.

GoOutside

An Xcode plugin to track how much time you have spent waiting for Xcode to build 😁.

demo

Cichlid

Another Xcode plugin, this one will automatically delete the derived data folder when cleaning, as opposed to manually do it with the “Clean Build Folder” command Shift Alt Cmd K.

GrandCentralBoard

A configurable dashboard app for your Apple TV.

demo