Apparently, it’s that time of the year when the stream of new content related to server-side Swift is slowing down. Because of that I’m considering a switch to a fortnightly or monthly schedule for the newsletter.
In other news, Package Manager Version Pinning Swift evolution proposal was revised and returned for review, while a new Package Manager Product Definitions was submitted for review as well. You will also be able to use nested generics in Swift 3.1. Lastly, improved JSON serialization performance on Linux was recently merged.
Links
Protocol Oriented Programming is Not a Silver Bullet by Chris Eidhof
Interesting overview of sometimes overlooked alternatives to protocols. It seems that after introduction of protocol extensions in Swift 2.0, protocol-oriented programming was somewhat overhyped. The bottom line is that you should use a tool that fits your problem.
Serverless Swift by Claus Höfele
While I mentioned AlexaSkillsKit in one of the previous issues, in this article Claus presents a step-by-step guide on running your Swift code on AWS Lambda.
Transition to Server-Side Swift With BluePic by Taylor Franklin
IBM open-source BluePic, a photo and image sharing sample application that has a server component written in Swift with Kitura. Source code is available on GitHub.
Composite Validators by Scott Robbins
If you’ve ever written password or email validation, you might be interested in how to write validation in a modular and composable way.
Functional Programming With Swift 3 by Mislav Javor
With regards to modularity and composability, functional programming allows you to achieve a lot with a few simple concepts. The article provides descriptions with examples for such concepts as first-class and higher order functions, functional purity and currying.
Vapor: Deploying to Heroku
Vapor: Basic Controllers
Vapor: RESTful Controllers by Ray Wenderlich
Three new screencasts on Vapor, this time about deployment and controllers. Here links to previous videos about getting started, templating, database configuration, models and CRUD.
The RawRepresentable Protocol in Swift by Ole Begemann
Turns out, enums with a backing type are actually syntactic sugar that
automatically adds conformance to RawRepresentable
protocol. Follow the link
to discover how you can add complex raw values to any type and also more details
on OptionSet
protocol.
Swift by Emoji: A Considered Approach by Erica Sadun
We’re not too far away from visual programming with this…
Code
Edge – A Swift Multiplatform Web and Networking Framework by Tyler Cloutier
Edge is an HTTP Server and TCP Client/Server framework written in Swift and inspired by Node.js. It runs on both OS X and Linux. Like Node.js, Edge uses an event-driven, non-blocking I/O model. In the same way that Node.js uses libuv to implement this model, Edge uses libdispatch.