Year 2 Issue 4

ReSwift

In the past weeks I linked both Swift-Flow and ReduxKit. Now the two projects have merged into ReSwift, and I can’t wait to see where the development will go. I feel there’s a lot of potential in this kind of application architecture, and it has been proven to be quite effective for the web. Looking forward to see real app examples, not just TODO lists built with ReSwift. Maybe you should build one and send me the link?

If you want to know more I recommend this talk by one of the authors.

MMNumberKeyboard

A great looking and simple to setup numeric keyboard for iPhone and iPad apps, with optional decimal point. Many app’s UX would benefit from a clearer numeric keyboard, I am going to use this library very soon.

Reusable

A Swift mixin to dequeue UITableViewCells and UICollectionViewCells in a type-safe way, without the need to manipulate their String-typed reuseIdentifiers. Simply conform to Reusable or NibReusable.

I never liked having to define the resueIdentifiers, specially when the string had to be duplicated between Storyboard and code. Reusable is going to be one of the few libraries I add to my projects by default.

More info about this library in this dedicated post written by its author.

vapor

A Laravel inspired web framework written in Swift.

Start a server like this:

import Vapor

let server = Server()
server.run()

Server pages like this:

Route.get("/") { request in
    return View(path: "index.html")
}

Route.get("/issues", closure: IssueController().index)

Knuff

An open source Mac App to debug Push Notifications.

Knuff allows you to send push notifications by writing or loading JSON payloads from a file, grabs the push certificates from the keychain, automatically recognises whether you are in Debug or Production, and much more. Legend.

MenuItemKit simplifies the setup work for UIMenuItems by adding two convenience init allowing us to generates items with a string name or an image, and using a closure as the target action. Neat.

Zip

A framework for zipping and unzipping files. It aims to be simple and quick to use, and is built on top of minizip.

import Zip

do {
    let filePath = NSBundle.mainBundle().URLForResource("file", withExtension: "zip")!
    let unzipDirectory = try Zip.quickUnzipFile(filePath) // Unzip
    let zipFilePath = try Zip.quickZipFiles([filePath], fileName: "archive") // Zip
}
catch {
  print("Something went wrong")
}

FolioReaderKit

An ePub reader and parser framework for iOS. It comes with a lot of features from such as custom font and text size support, highlighting, themes, audio playback sync, and more… You can basically build an open source iBooks or Kindle with this library.

SwiftSafe

A library to simplify thread synchronization in Swift. At the moment two models are supported: CREW - Concurrent Read, Exclusive Write and EREW - Exclusive Read, Exclusive Write.

It might be that thread synchronization is not you bigger problem at the moment. Nevertheless it’s always good to be aware of the possible issue, so I’d recommend at least having a read through the README of project 😎

Other Interesting Projects