Server-Side Swift: Vapor Edition
Hacking with Swift
This book can be downloaded and read in Apple Books on your Mac or iOS device.
Building web apps using Swift and Vapor 3 lets you re-use the skills you've already mastered, while being faster and safer than other languages. This course teaches you everything you need to craft your own server-side APIs and websites, all using Swift and Vapor 3.
100% Swift 4.2: Don't waste time with out of date tutorials – here you can learn smart, powerful, and expressive Swift the way it was meant to be written.
100% Practical: You learn Swift while you make real web apps, which means you get to apply your new skills immediately and see them work in context.
100% Coverage: Master sessions, databases, logging, templating, user authentication, and more – everything you need to build your own web apps.
100% Proven: I've taught thousands of people to build iOS apps, and I'll help you transfer your skills to the web and unleash Swift on your server.
Server-Side Swift teaches you Swift and web development through real-world projects. There's a comprehensive Swift introduction for beginners, but the rest of the book is focused on building real web apps and websites using Swift.
Server-Side Swift includes 12 projects in total: eight apps, and four technique projects that focus on specific APIs. The projects are:
1. Million Hairs: Get started coding server-side Swift by making a website using templates and routing.
2. JSON Poll: Learn how databases can help you load and save user data quickly, then use that new-found knowledge to build your own custom voting API using JSON.
3. Routing: Routing requests lies at the heart of any web app, and this technique project teaches you how to structure your web routes in powerful, expressive ways.
4. Swift Fan Club: Build a database-backed messageboard, that uses sessions, encrypted login credentials, templates, and Bootstrap to let users write and reply to forum posts.
5. Meme Machine: Learn how to process image uploads and work with the filesystem.
6. Templates: Template engines are packed with features, and in this technique project we look at conditions, loops, and comments, as well a how to write your own custom tags.
7. Barkr: Build a microblogging platform aimed at animal lovers that brings together JSON input and output plus token-based user authentication for extra security.
8. ASCII art: Learn to fetch and manipulate remote data, and serve the results using ajax.
9. Databases: Dive deep into advanced SQL techniques and learn how indexing, normalization, referential integrity, and transactions can help you build faster, safer databases.
10. Instant Coder: Learn how to block access to sensitive areas of your website based on user authentication, then mix in sessions and tabbed navigation using Bootstrap.
11. AppleFanatic: Build your own website content management system split into front-end and back-end services, then render articles for end users by transforming Markdown into HTML.
12. Testing: Learn how XCTest can help validate your back-end APIs in seconds.
While building projects, you'll learn all this and more:
- How to transfer your existing Swift knowledge to the server.
- Connecting to databases to read and write data.
- Creating server-side sessions for temporary storage.
- Building re-usable templates to separate your presentation from your logic.
- How to design, build, and test web APIs for your Swift apps.
- Authenticating users to create login screens.
Server-Side Swift follows the same approach I used with Hacking with Swift: small, standalone projects that teach individual techniques starting from scratch, so you end up with a huge library of finished projects you can develop further or use as the base for something entirely new.
I found this book on iBooks. I’m about a third of the way through the book. So far, it’s very well written. Unfortunately, there are accompanying program files which you do not get with the iBook. On the book’s website, they are called “Bonus Material”. However, I’m now finding out they aren’t bonus, they’re required. The author uses bookstrap to format the presentation and tells you to copy the files from the accompanying program files. You can’t proceed without doing that. I’ve looked through the website for the book and through the author’s github repository where he makes the files for some of his other books available and I can’t find them. I’ve emailed the author at the address on the website, and have not received a reply. If you are interested in this book, you need to buy it from the author’s website to get the files you need.