Server-Side Swift is an amazing new opportunity for coders to build fast, safe, and scalable back-end applications. This new open-source framework has enabled developers to use the Swift language on major servers, so nothing can stand between you and effectively creating your backend.
In Austin-Michael Komatz’s Lightning Talk session, we will be uncovering the following topics:
- What Is Swift?
- Introducing Vapor
- Test Your Skills
- Closing Thoughts
What is Swift?
In the simplest of terms, Swift functions as a general-purpose programming language – meaning, it can be used in any environment for a variety of applications.
Swift has a number of unique features that make it a versatile language to have in your personal “programmer’s tool box”:
- As open source software (OSS), Swift is a coding language that can be seen, modified, and distributed by anyone
- At its core, Swift is written in C++. C++ is an object-oriented programming (OOP) language that is one of the best sources for creating large-scale applications
The primary win associated with Swift, is that it’s not a language for only making iOS apps – but instead it can be applied seamlessly to a number of applications – making it an immeasurable advantage to implement into your industry practice.
Vapor is more than just a web framework. The project includes over a hundred official and community maintained server-first Swift packages. Vapor is a framework for writing HTTP server applications, front end websites, backends, and APIs in Swift.
Vapor has a unique set of properties that set it apart from other frameworks:
- It is 100% written in Swift
- It is a non-blocking, event-driven architecture built on top of Apple’s SwiftNIO
- With a protocol orientation, it allows Vapor to be scalable, modular, and a type-safe network
Vapor allows you to create complex, full-featured applications that can power mobile applications or stand on their own.
Example: The below Vapor code base represents the unique “package manager” the platform utilizes in order to easily implement code cross-functionally.
Vapor offers many features, some of the most important and widely used ones include:
Databases allow data to be persisted and stored for later. This data can then be read back at any time. Vapor provides an ORM for working easily with a variety of databases. This allows developers to easily access their database without having to write custom queries.
Vapor allows you to easily create and manage RDS and Aurora Serverless databases directly from the Vapor UI or while using the Vapor CLI. Database backups are automatically performed and you may restore a database to any point in time (down to the second) within the backup retention window.
Vapor supports a number of commonly used databases, including (but not limited to):
Vapor supports HTTP/1, HTTP/2, and protocol upgrades like WebSockets. The server also supports Transport Layer Security (TLS).
Authentication is the process of transforming a unique token (identifier) to actual user data. This can be a cookie with a session identifier stored in a browser, or in this case a JWT (JSON Web Token), but based on this ID the backend can retrieve the associated user object.
The end user signs in using a login form on a website (or an API endpoint), and sends the usual credentials (email, password) to the backend. If those credentials were valid, then the server will return a (randomly generated) identifier to the client.
WebSockets allow for two-way communication between a client and server. Unlike HTTP, which has a request and response pattern, WebSocket peers can send an arbitrary number of messages in either direction. Vapor’s WebSocket API allows you to create both clients and servers that handle messages asynchronously.
Testing Your Skills
You’ve unpacked quite a few primary principles of the Server-Side Swift backend approach… But the best way to learn is through practical and tangible demonstration.
Austin-Michael Komatz has crafted an intuitive demonstration to help guide you through these principles in practicum:
Using a coded chat application, Vapor is able to connect the two threads via a websocket to allow for real-time communications.
Why do you want to use Vapor as a backend engineer? The simple answer is– it uses Swift! It’s an ultra-modern language that is leading architecture use cases in the industry right now.
The longer answer… the abundance of functional benefits put it ahead of the industry curve in terms of speed, stability, and passionate community interactions.
Vapor is an optimistic look to the future for backend engineers, ensuring and maintaining a bigger and better future!
To learn more about the introduction of Server-Side Swift in Vapor and to experience Austin-Michael Komatz’s full Lightning Talk session, watch here.