SERVER-SIDE SWIFT

TAKE SWIFT TO THE SERVER

Building web apps in Swift 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.


100% SWIFT 3

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.

WHAT'S IN THE COURSE


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:

  • Million Hairs: Get started coding server-side Swift by making a website using templates and routing.
  • CouchDB Poll: Learn how to build a voting API using CouchDB and JSON.
  • Routing: Route web requests the smart way, with route chaining and regular expressions.
  • Swift Fan Club: Build your own forum website while learning about CouchDB views, sessions, and encryption.
  • Meme Machine: Learn how to process image uploads and work with the filesystem.
  • Templates: Take a tour around the advanced features of the Stencil template engine.
  • Barkr: Build a microblogging API using MySQL and token-based authentication.
  • ASCII art: Learn to fetch and manipulate remote data, and serve the results using ajax.
  • Databases: Discover how MySQL can help keep your data organized, efficient, and safe.
  • Instant Coder: Add GitHub authentication to your site and let Kitura do all the hard work.
  • AppleFanatic: Build your own CMS with multiple Kitura servers, Markdown support, and more.
  • 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, using CouchDB and MySQL.
  • 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.
  • You'll also learn some HTML, JavaScript, and SQL along the way, as part of the Swift projects.

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.

Now for the answer to a question you've probably been asking: the book uses IBM's Kitura framework for server-side Swift. That's not an accident:

  • Apple introduced Kitura at WWDC 2016. It's rare to see third parties speak at WWDC, but IBM and Apple formed a close partnership to help drive Swift adoption forward and Kitura is part of that.
  • IBM is putting huge resources behind the platform, and probably has the highest concentration of Swift developers outside of Cupertino.
  • Kitura out-performs Vapor in benchmarks, including having significantly lower memory usage and latency.
  • Most importantly, Kitura is very similar to Express.js, which is a massively popular development framework for JavaScript. This lets existing web developers migrate to Swift more easily.

Even if Kitura isn't your preferred choice, the Swift Server APIs work group are looking at ways to build shared APIs for standard server functionality, so hopefully you'll learn lots of transferrable skills.