Udemy

Platform

English

Language

Mobile Apps

Category

GraphQL with iOS and SwiftUI: The Complete Developers Guide

Build GraphQL Apps in SwiftUI Using Apollo, NodeJS and MVVM Design Pattern

4.88 (18 reviews)

Students

7.5 hours

Content

Jul 2021

Last Update
Regular Price


What you will learn

GraphQL structured query language

Integrating GraphQL in iOS applications using Apollo Framework

Creating their own custom server, which serves GraphQL queries and mutations

MVVM Design Pattern in SwiftUI Apps


Description

GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. GraphQL is gaining popularity at a very fast pace and more and more companies are exposing their data using GraphQL. Some are even saying that GraphQL is the new REST and in a span of few years, it will become the default way for implementing APIs.

Check out the contents of the course:


Understanding GraphQL

In this section, you will learn the concepts behind GraphQL technology and how it is different from REST. You will learn about queries, mutations, fragments and subscriptions.


Countries App

In this section, you will learn how to consume Countries GraphQL API. You will learn how to integrate the Apollo framework with your iOS application, download schema, generate models and then finally display them in your SwiftUI application.


Understanding MVVM Design Pattern

In this section, you will learn the concepts behind the MVVM Design Pattern. You will learn the purpose of each component and how it fits in with the MVVM pattern.


Countries App - Building Using MVVM Pattern

In this section, you will revisit the Countries App and reimplement it using the principles of MVVM Design Pattern. You will learn how to implement container view models, read only view models in SwiftUI application.


Weather App

In this section, you will learn how to implement a Weather App in SwiftUI using GraphQL weather API. You will also implement the city search capability, which will allow you to search weather for a city by name.


GitHub App

In this section, you will learn how to consume the GitHub GraphQL API. You will start by getting comfortable with the GitHub GraphQL API using their build-in explorer. Next, you will integrate it with your SwiftUI application. You will allow the user to list their ten most recent repositories, as well as top starred repositories. Finally, you will implement the mutation, so users can add new repositories to their GitHub profile from right within the iOS application.


Getting Started with Apollo Server

In this section, you will learn how to implement a custom Apollo Server using NodeJS and JavaScript. You will learn about the GraphQL type system, schemas and how resolvers can be used to resolve the queries.


Movies App

In this section, you are going to implement a complete Movies App. You will learn to construct a custom GraphQL server using the Apollo framework and then you will make the iOS client in SwiftUI framework.


Requirements

1) Knowledge of Swift Language is recommended

2) Knowledge of SwiftUI is recommended

3) Some knowledge of NodeJS and JavaScript is recommended but not required


By the end of this course, you will be comfortable using GraphQL with your iOS applications.


Hope you enjoy the course!


Screenshots

GraphQL with iOS and SwiftUI: The Complete Developers Guide
GraphQL with iOS and SwiftUI: The Complete Developers Guide
GraphQL with iOS and SwiftUI: The Complete Developers Guide
GraphQL with iOS and SwiftUI: The Complete Developers Guide

Content

Introduction

Introduction

About the Instructor

Prerequisites

Exercise Files

Understanding GraphQL

What is GraphQL?

GraphQL vs REST

Core Concepts

Queries

Resources: Queries

Mutations

Resources: Mutations

Fragments

Resources: Fragments

Subscriptions

Resources: Subscriptions

Country App

What we will be building?

What is Apollo for GraphQL?

Installing Apollo CLI

Resources - Installing Apollo CLI

Adding Apollo Package to the SwiftUI App

Resource: Adding Apollo Package to the SwiftUI App

Downloading Schema and Adding Code Generation Script

Resource: Downloading Schema and Adding Code Generation

Fetching All Countries

Displaying Countries in SwiftUI List

Implementing GetCountryByCode Query in GraphQL

Displaying Country Info

Understanding MVVM Design Pattern

What are Design Patterns?

What is MVVM?

Why MVVM?

MVVM Architecture and Web APIs

Difference Between ViewModel and Model

Countries App - MVVM Design Pattern

Agenda

Implementing CountryListViewModel and CountryViewModel

Displaying Countries on Screen Using CountryListViewModel

Implementing CountryDetailViewModel

Displaying Country Details on the Screen

Weather App

What we will be building?

Resource

Tour of the App

Constructing GraphQL Query to Get Weather By City

Implementing WeatherViewModel

Fetching the Weather

Displaying Weather on Screen

GitHub App - Setup

What we will be building?

Understanding GitHub GraphQL API

Resource: GitHub GraphQL API

Tour of the Starter Project

GitHub App - Fetching and Displaying Latest Repositories

Constructing GetAllRepositoriesForUser GraphQL Query

Generating GitHub Personal Access Token

Sending Access Code with GraphQL Request in Headers

Implementing RepositoryListViewModel and RepositoryViewModel

Displaying List of All Latest Repositories

Resources

GitHub App - Mutations

Constructing the Create Repository Mutation Query

Testing CreateRepository Mutation Query

Resource: Mutation Query and Query Variables

Implementing AddRepositoryViewModel

Integrating AddRepositoryScreen with AddRepositoryViewModel

SOLUTION: Integrating AddRepositoryScreen with AddRepositoryViewModel

GitHub App - Fetching and Displaying Top Repositories

Constructing GraphQL Query for Top Repositories

Implementing getTopRepositoriesForUser in RepositoryListViewModel

Implementing RepositoryNode Protocol

Switching Views Between Latest Repositories and Top Repositories

Getting Started with Apollo Server

Understanding the Apollo Server

Exercise Files

Installing Node and Required GraphQL Packages

Fetching All Books (Query)

Fetch Book by Id (Query)

Automatically Restarting Server Using Nodemon

Adding New Book (Mutation)

Resources

Schema Basics

Schema Definition Language

Supported Types

Query Driven Schema Design

Movies App - Displaying Movies

What we will be building?

Tour of the Starter Project

NOTE: Running the Apollo Server Using NodeJS

Constructing GetAllMovies Query

Implementing MovieListViewModel and MovieViewModel

Displaying Movies on the Screen

Constructing GetAllMovies Query with Filter

Constructing GetAllGenres GraphQL Query

Implementing GenreListViewModel and GenreViewModel

Implementing GenreSelectionView

Filtering and Displaying Movies on the Screen

Movies App - Adding New Movies

Constructing Mutation to Add a New Movie

Implementing AddMovieViewModel

Ignoring All Option in GenreSelectionView

Registering with OMDB API

Implementing Webservice to Fetch Movies by Name

Displaying Posters in LazyVStack

Saving New Movies to the GraphQL Server

Constructing GraphQL Query to Delete a Movie

Deleting Movie

Deploying GraphQL Server to Heroku

Conclusion

Next Steps

Bonus Lecture


Reviews

D
David10 August 2021

It was a great pleasure for me to take this course and learn everything about GraphQL. Now I have a solid knowledge of what it can be built on. Many Thanks


4040130

Udemy ID

5/10/2021

Course created date

6/5/2021

Course Indexed date
Bot
Course Submitted by