# Ionic 4 course
## Trainer: Mohammed H. TAFISH
## Description
Ionic is one of the most exciting technologies you can learn at the moment - it enables you to use one codebase (written in HTML, JS and CSS) to build and ship apps as normal (progressive) web apps as well as real native mobile apps for iOS and Android. This course teaches you the latest version of Ionic from scratch with no prior knowledge about it assumed.
## Who this course is for
1. This course is for students who want to use their Angular knowledge to build native mobile apps & web apps with one codebase
1. This course is for everyone interested in diving into the development of native mobile apps for iOS and Android
## Requirements
1. Angular fundamentals are required, though a brief refresher is also provided in the course
1. Basic HTML, JS and CSS knowledge is required
1. NO advanced Angular knowledge is required
## Course content
### Getting Started
1. Course Introduction
1. What Is Ionic?
1. What is Angular?
1. Our First Ionic App!
1. The History of Ionic
1. Ionic 4+ vs Ionic 3
1. How to Build Native Mobile Apps with Ionic
1. Comparing Ionic to Alternatives
1. Course Outline
### Angular Refresher
1. What is Angular?
1. Angular SPAs & Ionic
1. Understanding Components
1. Installing Angular with the CLI
1. Installing the IDE
1. Understanding the Folder Structure
1. The App Component
1. Creating Our First Component
1. Cross Component Communication with Property Binding
1. Handling User Input
1. Understanding Event Binding
1. Understanding Two-Way-Binding
1. Implementing Routing
1. Setting Up Services
1. Using Services with Dependency Injection
1. Working with Angular Lifecycle Hooks
1. Adding a Person with Services
1. Navigating between Components
1. Sending Http Requests
### Angular + Ionic
1. Creating a New Ionic Angular Project
1. Analyzing the Created Project
1. How Angular & Ionic Work Together
1. Adding & Loading a New Page
1. Using Angular Features on Ionic Components
1. Setting Up Angular Routes
1. Managing State with Services
1. Extracting and Displaying Route Param Data
1. Navigating Between Pages
1. Injecting Ionic Controllers
1. Angular Components vs Ionic Components
### Ionic Components Overview
1. Ionic Grid Basics
1. ion-list vs ion-grid
1. ion-label & ion-item
1. ion-text
1. Swipeable List Items
1. Swipeable Bookings
1. Implementing Virtual Scrolling
1. Adding Image Elements
1. Segmented Buttons
1. Adding a Spinner
1. Using the Loading Controller
1. Using the ActionSheet Controller
### Sending Http Requests
1. How To Connect to a Backend
1. Setting Up Firebase
1. Sending Data via Http
1. Using Response Data
1. Fetching & Displaying Data
1. Error Handling
### Publishing the Apps
1. Preparing App Configs
1. Custom Icons & Splash Screens
1. Android Deployment
1. iOS Deployment
1. Web Development