Build web and native mobile applications with Ionic whilst learning modern reactive development with Angular
A complete text-based guide to Ionic and Angular from beginner level through to building professional grade applications. Concepts are taught from scratch, but the content will be valuable to intermediate - and even advanced - Angular developers.
Created by Josh Morony β Ionic Developer Expert and Google Developer Expert for Angular
Learn Angular the way highly skilled professionals build apps today π
It was years into my Angular journey before I discovered how to go about building Angular applications the right way.
π€ The problem is that the "right" way is quite drastically different to the "easy" way...
The different approaches β which can loosely be summarised as imperative vs declarative/reactive β involve drastically different skills and ways to think about the structure of your application.
If you go down the "easy" path initially, it isn't then an easy switch to the "right" way later. It's like trying to learn an instrument, or sport, or some other skill the "right" way when you have already picked up bad habits.
π€·ββοΈ The "right" way?
Claiming something is the "right" way to do something is pretty bold, and kind of dismissive of other styles. There is never any one true way to code. So, please don't take this phrasing too literally.
But, let me explain why I came to think of the style we will be using in this course as "the right way".
The concepts used in this course are the approaches that are used by software engineers at the best Angular companies like Nrwl β the company that created Nx and was founded by two former Googlers that worked on Angular.
Also at companies like Cisco who are one of the biggest hirers of top Angular developers.
And the style of coding used in this book is also the approach that is generally advocated for among top Angular developers and Google Developer Experts for Angular .
π¨βπ» But, most importantly...
The main reason this feels like the "right" way to me is because I started to find coding with Angular to be way more efficient, way less error-prone, and just way more fun once I switched to this style.
It requires a bit more of a learning investment in the beginning, but it pays off big time .
No shortcuts, we are going to build like the pros π¦ΈββοΈ
The key philosophy of this course is to make it as approachable as possible to people of different skill levels, without cutting corners that will come back to bite you later for the sake of making things easier.
As you may expect, we will be covering all of the Ionic and Angular concepts you will need to build great apps.
But, on top of that, the real secret sauce of this course is that throughout our learning journey we are going to pay special attention to incorporating the following concepts:
- SOLID programming principles
- OnPush change detection
- Reactive/Declarative coding with RxJS
- Smart/Dumb component architecture
- Single Component Angular Modules/Standalone components
- Co-locating code
If all of those words mean nothing to you right now, don't worry! We will cover this all in detail in the course, but these are the ingredients required for what I think is the "right" way to build modern Angular applications.
You and this course will be friends for a long time π
This course is not designed to be completed in a week or two and then you move on. This is something that you will be able to use and refer back to throughout much of your career.
The course is structured in a way that you can, and should, follow it from start-to-finish in a way where concepts are slowly built up over time. But there is a mind boggling amount of content here, and so many useful examples and scenarios covered.
I would recommend progressing your way through the entire course and then - over the following weeks, months, and even years - continue to refer back to it as you or your team are undertaking your own projects.
Prerequisites π
We begin our journey in this course with learning Angular from scratch, so no prerequisite knowledge of Ionic or Angular is required.
However, general knowledge of programming and web development is assumed. You do not strictly need all of these before beginning, but you may need to seek additional learning resources along the way if you are unfamiliar with the following topics:
- A general understanding of HTML, CSS, and JavaScript
- General programming concepts for JavaScript (scope, loops, arrays, conditionals, functions, and so on)
- Basic terminal usage for running commands
- A general understanding of the role of npm and installing packages
In other words, if you already have some modern web development skills but you do not know anything about Ionic or Angular, then you likely have all the pre-requisite knowledge you need.
Not sure yet? π€
If you're not sure if this course is for you yet or not, you can preview some of the modules below to get a taste for what the course is like!