This document summarizes a presentation about building backends with Swift. It discusses tools for Swift backend development like Emacs, iTerm, and tmux. It evaluates several Swift frameworks for building backends including Kitura, Perfect, Vapor, and Zewo. It describes implementing the architecture of a test app using concepts from clean architecture. The presentation concludes that Swift code on a Raspberry Pi has some issues but the domain logic can be shared between backend and other code, and building backends with Swift is worth investing in despite current immaturity of the development environment.
25. Kitura
★ Comes with everything and the kitchen
sink
★ Compiles flawlessly
★ Good documentation and tutorials
★ Failed to make libdispatch
for the Raspberry Pi
26. Perfect
★ Also quite complete
★ Excellent documentation & tutorials
★ Doesn’t fully compile in Raspberry Pi 3:
NetTCP.swift & NetTCPSSL.swift (solved)
★ Slack channel
★ Need more time
for the Raspberry Pi
27. Vapor
★ Worked without problems
★ Abundant documentation and tutorials
(vapor.university)
★ Less modular (HTTP server & router
provided by Application class)
for the Raspberry Pi
28. Zewo
★ More modular, from independent pieces
★ Uses libmill/co-routines
★ Failed at compiling OpenSSL (Int size)
★ Really helpful Slack channel (shares members
with Swift-arm channel)
★ Nice todo app example
★ My choice for this experiment
for the Raspberry Pi
35. Conclusions
★ Swift code in Raspberry Pi has some glitches
★ The domain logic can be in a package:
• Fully tested
• Independent of the rest
★ Use cases can be shared
• No asynchrony
• Some logic may be different
★ Worth the investment
36. Things I Would Like
★ JSON home page / JSONAPI
★ Better (Some) debugging
★ Better support for Raspberry Pi