
Explore server-side swift with Vapor 3, from installation to hello world. Build a complete crud web api using json, futures, and controllers, and connect to an iPhone app.
Explore how server side Swift powers cloud-backed apps by serving data from a server and APIs, avoiding device storage limits and enabling data sharing.
Explore server-side swift frameworks, comparing performance benchmarks and API design, and note the vibrant Vapor community and its active help chatroom as decisive for choosing the right framework.
Use the exercise files, with start and end folders, for each lecture. Run Vapor Xcode to refresh the Vapor project and map paths to your directory structure.
Visit vapor.codes and follow the getting started guide to install vapor. Update Xcode via the Mac App Store, verify Swift, then brew tap vapor and install vapor.
Create a brand new Vapor project and open it in Xcode. Run the server on your Mac and verify the hello route returns hello world.
Master how to create and manage nested routes in Vapor 3 using router.get, mapping paths like /movies and /movies/action with dynamic genre and year parameters.
Learn to organize Vapor 3 routes by grouping under API/movies, then define subpaths like comedy and romance to prevent repetition and enable single-point updates.
Learn to define and access route parameters in Vapor 3 by building dynamic movie routes with string and integer parameters, using request.parameters.next to retrieve genre and year.
Access and parse query string parameters in Vapor 3 using request.query to extract search term, page, and thought in the movies route, with string.self and Decodable.
Download a single project file that bundles the five section files for this section. Explore the nested roots, grouping parameters, and strings within this consolidated Vapor 3 project.
Shows how to create a dish model conforming to Content and return it as JSON via a route in Vapor 3.
Return an array of dishes by changing the route to serve multiple items, and implement a portable, JSON-encodable model using the content protocol so server responses encode and decode smoothly.
Post json data to a vapor 3 server by defining a dish model, mapping posted json to dish and ingredients via the content protocol, and returning an asynchronous future.
Understand futures and asynchronous patterns in Vapor 3, enabling non blocking requests for stock quotes, files, a user profile, and an e-mail page, with responses delivered when ready.
Explore how to implement futures in Vapor 3 using map and flatMap to return asynchronous responses without blocking, with hello and customers routes.
Build Nilus Got Web API with Vapor 3 by defining routes to fetch all dishes, fetch by id, create post, filter by course using safe entrees, and delete by id.
Create a new vapor app named Nilus Garden API, generate an Xcode project for macOS, and configure Eskil Light to use a file-based Nilus Garden CircuLite database.
Create a dish model in vapor using the fluent light model with id, title, description, price, and image, and configure a migration for the dishes table.
Implement a post route to save a new dish in a Vapor 3 app, mapping the dish content and persisting it to the database.
Retrieve all dishes as an array via the /api/dishes endpoint in Vapor 3, using a future of array of dish.
Fetch a dish by id and list dishes by course using Vapor 3 and the parameter protocol. Implement restful requests, return arrays of dishes, lowercase inputs, and test with Postman.
Delete a dish via a Vapor 3 api route using the dish id to delete the Fluent model from the database and verify by fetching all dishes.
Learn to organize Vapor 3 apps by introducing controllers that map routes to actions, querying the dishes data from the fluid database and returning results.
Learn to use route groups in Vapor 3 to organize api endpoints for dishes, including get all, get by id, create dish, and delete routes.
Explore the Nilus Garden home screen, view two items, cheesecake and stepladder, and learn to add, delete, filter, and populate items via UI placeholders.
Learn to post a new dish to the Nilus Garden Web API using Vapor 3, encoding the dish to JSON, and update the UI after starting the server.
Fetch all dishes from the Vapor 3 web API with a get request, decode JSON into a dish array, and display them on the iPhone app’s main-thread table view.
Implement a delete dish endpoint in Vapor 3, using the dish ID in the URL, return the deleted dish, and verify the deletion via the app and Postman.
Filter the dishes by the selected course via the API, fetch and decode results, and wire the segmented control to trigger the filter while aligning server and client expectations.
Install PostgreSQL with the Postgres app, create and connect to a new database, and prepare your Vapor 3 application to use that database.
Create a Vapor project, generate an Xcode workspace, and configure fluent PostgreSQL with a database. Define a dish model and migration, then run the server to create the dish table.
Rename the dish table to dishes, add price and image fields, and refresh the schema by dropping and recreating tables to demonstrate updates without migrations.
Learn to update table structures with migrations, add a description column to the dishes table without dropping tables, and implement prepare and revert in Fluent migrations.
Learn to implement full CRUD for a dish model with Vapor 3 and FluentPostgreSQL, including create, read all and by id, update, and delete, with price stored as double.
Explore Leaf templates to render server side pages, where data is injected on the server and delivered as a completed page to the client.
Learn to configure leaf templates in a vapor 3 app by creating a project, adding the leaf package, updating dependencies, and registering the leaf provider with a leaf renderer.
Configure a real resources/views folder, create an index.leaf, and wire a hello route to render that leaf, enabling server-side pages with vapor and leaf templates.
Learn how to pass data to Leaf templates in Vapor by building a welcome route with a context, rendering views, and displaying a list of dishes through a for loop.
Learn how to use a base template in Leaf templating to centralize menus and page chrome, inject content into placeholders, and maintain consistency across pages with a single update.
Create a Vapor 3 project named Nilus Gardam, add leaf templates and PostgreSQL dependencies, and set up the Xcode workflow to build and connect to the database.
Define a dish model in Vapor using Fluent PostgreSQL with id, name, course, price, image URL, and description, mapped to the dishes table and migrated to the database.
Create and implement a base leaf template for a Vapor app, including header, footer, and content injection for Nilus Garden, then wire templates and run the server to verify.
Configure leaf templates in Vapor 3 by registering the leaf provider, enabling the leaf renderer, organizing templates under resources/views, creating an index.leaf, and rendering it at the app root.
Add a new dish via a post form in vapor 3, with fields name, price, course, image URL, and description, then redirect to the index.
Fetch all dishes from the PostgreSQL database, pass them to the index context, and render the home screen showing each dish’s image, id, and price.
Delete a dish from the database using a vapor leaf delete route and a delete request carrying the dish ID.
Implement an update workflow for a dish by building a dish details form, rendering with vapor leaf templates, and wiring a post update route that updates the database.
Are you interested in learning how to write a complete backend API using Swift?
Swift on the server is the future of iOS development. And now you can learn it from the comfort of your home.. in your own time.. without having to attend class.
My name is Mohammad Azam, creator of many popular online courses including Mastering MapKit in iOS Using Swift and Creating Stickers and iMessages Applications in iOS 10 Using Swift 3.
I have created over 2 dozens apps and some of my apps were even featured by Apple on the App Store. I have worked with fortune 500 companies as a lead iOS developer and helped them grow their business ten folds. At present I am a full time iOS Instructor at DigitalCrafts where I teach users how to create amazing iOS applications.
What’s stopping you from signing up to today?
Here are some of the reviews from our previous courses:
"His course is AWESOME very detail instructions."
"Mohammad Azam has an excellent teaching style which makes it easy & fun to comprehend these Swift features in such a short course & he explains the concepts in more detail & clarity than most instructors. Plus, his videos are well prepared & he's very articulate. I hope he will create more courses."
"Excellent teaching. Just perfect!!!"
Buy this course today and this is what you’ll get.
Firstly, I am using Xcode 9.3 with Swift 4.0 for this course. I will show you how to build real apps that consume the Vapor backend service.
The course is accompanied with all the code sample files.
You will also receive a UNLIMITED support on Udemy forums. I am very active on forums and make sure that every questions is answered.
Can you believe you get all this (and more) for just $195?
"Awesome class for really learning how to setup and implement MapKit in your iOS apps using swift. Def. one of the best classes I've taken on Udemy. Looking forward to more classes offered by Mohammad Azam. A++ class"
Why learn Server Side Swift?
Who is this for?
This course is for anyone who wants to take their skills to the next level. Server side Swift is a new technology and companies will be jumping on it in the future to create their backend systems. Server side Swift can also help you to earn higher salary since now you know how to write a complete backend from scratch.
Is this course right for me?
Look: if you are still not convinced then I urge you to check out my 5 star reviews in other courses. I am a well known developer in the iOS community with a large following. I do a lot of speaking engagements in which I spread knowledge and education.
I am confident that you will enjoy the course and you will utilize the knowledge you learned in this course in your future applications.
What are the requirements?
What am I going to get from this course?
Who is the target audience?