Skip to content
UdemyReact NativePaid courseIntermediate levelCertificate

React Native: Create an Unbeatable & Multiplayer Tic-Tac-Toe (Udemy.com)

Create, Publish & Monetize a Single Player Bot & Multiplayer Tic-Tac-Toe with Expo, Typescript & AWS Amplify GraphQL API

Created by: Ali Alaa

Last updated January 2022

icon
What you will learn

  • Learn About Typescript & What's its purpose.
  • Learn About Expo & the Difference between Expo & Vanilla React Native.
  • Install & Run an Expo Application on a Physical Device, Android Emulator & iOS Simulator.
  • Learn How to Use Typescript with Expo.
  • Integrate ESLint, Prettier & Husky for a Better Workflow.
  • Using React Navigation Efficiently with Typescript Integration.
  • Create a Single Player Tic Tac Toe Game.
  • Implement the Minimax Algorithm to Create a Tic Tac Toe Bot with Different Difficulties (From Easy to Unbeatable).
  • Use Sound Effects and Haptics Feedback in Our Game.
  • Create Custom React Hooks for Code Re-usability.
  • Create Simple Animations Using the Animated API
  • Creating Persistent App Settings Using React Context & AsyncStorage.
  • Learn About AWS Amplify & its Purpose.

How it compares

Against the other 51 rated Udemy courses in React Native on CourseDuck:

  • Rating4.6 out of 5higher than 82% of them
  • Reviews117#35 of 52 by number of reviews
  • Length23.1 hourslonger than 90% of them
  • Last updatedJanuary 2022earlier than 56% of them

icon
Course Description

In this course we are going to create a Tic-Tac-Toe game using React Native (Expo). Although the Tic Tac Toe game is simple, our project won't be very simple. We are going to use Typescript in the project. Typescript is a tool that adds types of the JavaScript language. Having types allows us to avoid certain bugs in our code in addition to many other benefits.

Our app will contain a single player game. For that we are going to use an algorithm called the Minimax Algorithm in order to create a bot with different difficulties. In addition to that, we will also have a multiplayer game. In the multiplayer game we are going to create an API and manage Authentication using a service called AWS Amplify. AWS Amplify allows us to easily build a GraphQL API that we will use in our game.


Let's breakdown what will be discussed in each section:

Section 1

This is an optional section for students without or with limited Typescript knowledge. We are going to have a very quick introduction to Typescript. We will discuss things like basic types, types, interfaces and generics.


Section 2

In this course we are going to use a tool called expo. Expo is a tool that simplifies building apps using React Native. We will see what is the difference between expo and normal React Native. And then we will install expo, create a new expo project and run it on a physical device, Android emulator and the iOS simulator.


Section 3

In this section we are going to setup some tools that will be very helpful in our workflow. First we will install Typescript for type checking. Then we will use Prettier to automate formatting our code. We will also use ESLint to enforce JavaScript rules. Husky to make sure we run all these tools before committing our code to git. And we will finally install a module resolver to make importing files and components in our project a lot easier.


Section 4

In this section we are going to do some general setup for our application. Including loading fonts, creating a custom text component, setting up navigation and more.


Section 5

In this section we will build our single player game. This includes the UI, the bot player, adding sounds and haptics, creating a settings page to choose difficulty and other options and persisting the settings on the phone using react context and AsyncStorage.


Section 6

This section will just be an introduction to AWS Amplify and some AWS concepts like IAM. We will also install amplify and set it up in our project.


Section 7

Here we will use AWS Cognito which is a service that comes with Amplify to add authentication in our app. This includes login, register, otp confirmation, resend password, reset password, forget password and more.


Section 8

This section will cover creating a GraphQL API using Amplify for the multiplayer game. We are going to learn how to create a model in our database and add authorization rules for this model to restrict its access by the API depending on authorization methods. We are going to create models for our players and our game and connect these models together. In addition to that, we will create multiple lambda functions that will handle different parts in the game like starting a new game and playing a move and we will see how to trigger these functions using our API. We will also create the necessary GraphQL subscription to listen for changes for each game so that we can have a real time experience.


Section 9

After completing the API for the multiplayer game, here we will start building our UI. This includes listing games, paginating games, searching for players, starting a new game and handling updating the game in real time. When consuming our API, we will learn how to use amplify to generate typescript types for our queries, mutations and subscription for a great development experience.


Section 10

This section is entirely dedicated to sending push notifications with expo. Sending notification may seem simple; however there are a lot of stuff that need to be handled that we will discover in this section. Eventually we will be able to send a notification to a player when he is invited to a new game.


Section 11

This short section will show you how simple it is to add ads in your game using AdMob which is integrated in expo.


Section 12

In this final section we will discover how smooth building and publishing your app with expo is. We will build our apps for Android and iOS and publish the builds to the App and Play stores.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Ali Alaa

Hey there! I am Ali Alaa. Years ago I discovered my interest in web development, especially the front-end side. I started exploring the field from HTML/CSS/JS to WordPress theming and JS frameworks. I have been working as a web developer for more than 10 years. After all these years, I decided to start creating on udemy and share my knowledge with you.

icon
More courses by Ali Alaa

$10.99

$11.99

$79.99

icon
More React Native courses

$189.99

$44.99

$12.99

$129.99

$99.99

$79.99

icon
Reviews

4.6

117 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Hiep Huynh on 5/31/2023

I would like to raise, with you an issue in this lecture, so It's about the OTP input view dependency, so the latest expo version does not work properly with the latest OTP input latest version, so that I have to downgrade the version to @1.3.7,

By Rafael on 5/17/2023

So far I concluded 70 out of 140 and despite of being outdated it is an excellent course. If you replace the legacy code with the new correspondent version you'll be good to go.

By David Jerabek on 5/17/2023

The content is very outdated right now, there were breaking changes in almost all the modules and systems used in this course, so it was impossible to follow just by watching the course and figuring it out, I had to study all the new documentations and make sense of the entirely new UI of AWS. I also didn't like the way in which the author writes code and uses TypeScript, there were many bad practices in my opinion, but as this is a course for advanced developers and this wasn't the point of it, I didn't include that in my rating. The pace of the course and the amount and depth of explanations were just right and the course made sense as a whole, so in case it had been up-to-date I would have given it at least 4 stars.

By Rj on 6/23/2022

This truly is the best course I've taken on Udemy. Most other courses don't go through best practices like this course does. Really hope he continues to make quality content like this!

By Renan Vechini Momesso on 4/27/2022

This is the best course of react native you will have on Udemy ! Every content is very well explained with alot of useful contents!! You won't find any course like this on udemy!!

By Igor Belem on 4/19/2022

Course material is really good. Some nitpicks: There are some slightly outdated steps in Amplify setup(API key/AppSync) part, though this shouldn't prevent you from progressing. Also a bummer that resolution is only 720p

By Patani Jignesh on 3/31/2022

Loved it. Ali not only teaches you about React Native & Amplify but also teaches best practices. The course is really easy to follow. This is one of the courses that I have actually completed :D Looking forward to more React Native courses from Ali (☞゚ヮ゚)☞

By Ernesto Diaz on 2/18/2022

Awesome material. Covers many aspects that would take time to find out somewhere else, AWS docs can be overwhelming so this simply is a great guide about how to use it. Great work!

By Dave Pickut on 7/26/2021

This is an excellent intermediate-level course. Ali explains things well and demonstrates lots of best practices in his coding and in the project structure.

By MICHAEL TYISKA on 4/25/2021

I'm only half way through the course but this is a really good course to learn some best practices when working with React Native and Amplify. I have prior experience with both RN and Amplify but it is always good to learn from others in this space. Excellent job

Showing all 10 reviews on CourseDuck

Read all 117 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 92 / 100