
Domains
Agile Management
Master Agile methodologies for efficient and timely project delivery.
View All Agile Management Coursesicon-refresh-cwCertifications
Scrum Alliance
16 Hours
Best Seller
Certified ScrumMaster (CSM) CertificationScrum Alliance
16 Hours
Best Seller
Certified Scrum Product Owner (CSPO) CertificationScaled Agile
16 Hours
Trending
Leading SAFe 6.0 CertificationScrum.org
16 Hours
Professional Scrum Master (PSM) CertificationScaled Agile
16 Hours
SAFe 6.0 Scrum Master (SSM) CertificationAdvanced Certifications
Scaled Agile, Inc.
32 Hours
Recommended
Implementing SAFe 6.0 (SPC) CertificationScaled Agile, Inc.
24 Hours
SAFe 6.0 Release Train Engineer (RTE) CertificationScaled Agile, Inc.
16 Hours
Trending
SAFe® 6.0 Product Owner/Product Manager (POPM)IC Agile
24 Hours
ICP Agile Certified Coaching (ICP-ACC)Scrum.org
16 Hours
Professional Scrum Product Owner I (PSPO I) TrainingMasters
32 Hours
Trending
Agile Management Master's Program32 Hours
Agile Excellence Master's ProgramOn-Demand Courses
Agile and ScrumRoles
Scrum MasterTech Courses and Bootcamps
Full Stack Developer BootcampAccreditation Bodies
Scrum AllianceTop Resources
Scrum TutorialProject Management
Gain expert skills to lead projects to success and timely completion.
View All Project Management Coursesicon-standCertifications
PMI
36 Hours
Best Seller
Project Management Professional (PMP) CertificationAxelos
32 Hours
PRINCE2 Foundation & Practitioner CertificationAxelos
16 Hours
PRINCE2 Foundation CertificationAxelos
16 Hours
PRINCE2 Practitioner CertificationSkills
Change ManagementMasters
Job Oriented
45 Hours
Trending
Project Management Master's ProgramUniversity Programs
45 Hours
Trending
Project Management Master's ProgramOn-Demand Courses
PRINCE2 Practitioner CourseRoles
Project ManagerAccreditation Bodies
PMITop Resources
Theories of MotivationCloud Computing
Learn to harness the cloud to deliver computing resources efficiently.
View All Cloud Computing Coursesicon-cloud-snowingCertifications
AWS
32 Hours
Best Seller
AWS Certified Solutions Architect - AssociateAWS
32 Hours
AWS Cloud Practitioner CertificationAWS
24 Hours
AWS DevOps CertificationMicrosoft
16 Hours
Azure Fundamentals CertificationMicrosoft
24 Hours
Best Seller
Azure Administrator CertificationMicrosoft
45 Hours
Recommended
Azure Data Engineer CertificationMicrosoft
32 Hours
Azure Solution Architect CertificationMicrosoft
40 Hours
Azure DevOps CertificationAWS
24 Hours
Systems Operations on AWS Certification TrainingAWS
24 Hours
Developing on AWSMasters
Job Oriented
48 Hours
New
AWS Cloud Architect Masters ProgramBootcamps
Career Kickstarter
100 Hours
Trending
Cloud Engineer BootcampRoles
Cloud EngineerOn-Demand Courses
AWS Certified Developer Associate - Complete GuideAuthorized Partners of
AWSTop Resources
Scrum TutorialIT Service Management
Understand how to plan, design, and optimize IT services efficiently.
View All DevOps Coursesicon-git-commitCertifications
Axelos
16 Hours
Best Seller
ITIL 4 Foundation CertificationAxelos
16 Hours
ITIL Practitioner CertificationPeopleCert
16 Hours
ISO 14001 Foundation CertificationPeopleCert
16 Hours
ISO 20000 CertificationPeopleCert
24 Hours
ISO 27000 Foundation CertificationAxelos
24 Hours
ITIL 4 Specialist: Create, Deliver and Support TrainingAxelos
24 Hours
ITIL 4 Specialist: Drive Stakeholder Value TrainingAxelos
16 Hours
ITIL 4 Strategist Direct, Plan and Improve TrainingOn-Demand Courses
ITIL 4 Specialist: Create, Deliver and Support ExamTop Resources
ITIL Practice TestData Science
Unlock valuable insights from data with advanced analytics.
View All Data Science Coursesicon-dataBootcamps
Job Oriented
6 Months
Trending
Data Science BootcampJob Oriented
289 Hours
Data Engineer BootcampJob Oriented
6 Months
Data Analyst BootcampJob Oriented
288 Hours
New
AI Engineer BootcampSkills
Data Science with PythonRoles
Data ScientistOn-Demand Courses
Data Analysis Using ExcelTop Resources
Machine Learning TutorialDevOps
Automate and streamline the delivery of products and services.
View All DevOps Coursesicon-terminal-squareCertifications
DevOps Institute
16 Hours
Best Seller
DevOps Foundation CertificationCNCF
32 Hours
New
Certified Kubernetes AdministratorDevops Institute
16 Hours
Devops LeaderSkills
KubernetesRoles
DevOps EngineerOn-Demand Courses
CI/CD with Jenkins XGlobal Accreditations
DevOps InstituteTop Resources
Top DevOps ProjectsBI And Visualization
Understand how to transform data into actionable, measurable insights.
View All BI And Visualization Coursesicon-microscopeBI and Visualization Tools
Certification
24 Hours
Recommended
Tableau CertificationCertification
24 Hours
Data Visualization with Tableau CertificationMicrosoft
24 Hours
Best Seller
Microsoft Power BI CertificationTIBCO
36 Hours
TIBCO Spotfire TrainingCertification
30 Hours
Data Visualization with QlikView CertificationCertification
16 Hours
Sisense BI CertificationOn-Demand Courses
Data Visualization Using Tableau TrainingTop Resources
Python Data Viz LibsCyber Security
Understand how to protect data and systems from threats or disasters.
View All Cyber Security Coursesicon-refresh-cwCertifications
CompTIA
40 Hours
Best Seller
CompTIA Security+EC-Council
40 Hours
Certified Ethical Hacker (CEH v12) CertificationISACA
22 Hours
Certified Information Systems Auditor (CISA) CertificationISACA
40 Hours
Certified Information Security Manager (CISM) Certification(ISC)²
40 Hours
Certified Information Systems Security Professional (CISSP)(ISC)²
40 Hours
Certified Cloud Security Professional (CCSP) Certification16 Hours
Certified Information Privacy Professional - Europe (CIPP-E) CertificationISACA
16 Hours
COBIT5 Foundation16 Hours
Payment Card Industry Security Standards (PCI-DSS) CertificationOn-Demand Courses
CISSPTop Resources
Laptops for IT SecurityWeb Development
Learn to create user-friendly, fast, and dynamic web applications.
View All Web Development Coursesicon-codeBootcamps
Career Kickstarter
6 Months
Best Seller
Full-Stack Developer BootcampJob Oriented
3 Months
Best Seller
UI/UX Design BootcampEnterprise Recommended
6 Months
Java Full Stack Developer BootcampCareer Kickstarter
490+ Hours
Front-End Development BootcampCareer Accelerator
4 Months
Backend Development Bootcamp (Node JS)Skills
ReactOn-Demand Courses
Angular TrainingTop Resources
Top HTML ProjectsBlockchain
Understand how transactions and databases work in blockchain technology.
View All Blockchain Coursesicon-stop-squareBlockchain Certifications
40 Hours
Blockchain Professional Certification32 Hours
Blockchain Solutions Architect Certification32 Hours
Blockchain Security Engineer Certification24 Hours
Blockchain Quality Engineer Certification5+ Hours
Blockchain 101 CertificationOn-Demand Courses
NFT Essentials 101: A Beginner's GuideTop Resources
Blockchain Interview QsProgramming
Learn to code efficiently and design software that solves problems.
View All Programming Coursesicon-codeSkills
Python CertificationInterview Prep
Career Accelerator
3 Months
Software Engineer Interview PrepOn-Demand Courses
Data Structures and Algorithms with JavaScriptTop Resources
Python TutorialThe purpose of Ionic is to build hybrid apps. We build mobile apps using HTML, CSS & JavaScript. In contrast to Swift of Java/Android, we leverage Angular to build scalable, interactive web apps when we build apps using Ionic. We do not need to know Swift, Java or Android. Building on the basic knowledge gained in the previous sections, you can build a full blown mobile app which looks like and performs exactly like a native app.
Assuming you already have node installed, getting started with Ionic is very similar to getting started with typescript or Angular. All you need to do is “npm install”.

This should install Ionic and we are good to start building Ionic apps. A point to be noted in the context of creating an Ionic 3 app is that, at the time of writing this, Ionic 4 is the latest version of Ionic. In order to generate an Ionic 3 app, you have to specify “--type=Ionic-Angular” when starting a project.

Blank will create an empty project with no pages in it. We will do just that and take a look at what files are generated.

You are immediately given instructions on what to do next. Cd into the newly created folder Ionic3Project.

And type Ionic serve. This should open the app on the browser.

As you can see, the app opens on the browser and does not look like a mobile app. To get it looking right, click on Chrome’s utility menu and click on More Tools> Developer Tools.

You will see that the following tabs open up.

Click on the second icon on the top left.

The other way of looking at your app will be to type localhost:8100/Ionic-lab on your browser, and you can view the app as it would appear in each of the platforms that Ionic supports - iOS, Android and Windows.

You can use the pull down menu in the top right to enable/disable different platforms.

The Ionic start command on the Ionic cli creates folders and files in a similar fashion to the Angular CLI. In the tutorials we will use Ionic-lab to preview our code. We will also look at how the app can be run on Android and Apple devices, and also emulators that Xcode and Android studio have to offer. But for now, we will jump straight into building apps using Ionic. We will explore the files generated when the app is first created and then we’ll look at the basic components that can be used in a page.

App.html loads up the page “home”, which is an Angular component with its own html, CSS and ts. In this case the styles are managed through Sass rather than CSS. Hence the file extension, scss. Scss gives finer control on styles and theming.

The package.json contains all the dependencies the project needs and running “npm install” will download the dependencies into the node_modules folder. The Ionic.config.json contains instructions for build and test.
We’ll now look at specific files. We already know about app.ts (app.component.ts in Angular) and app.module.ts. And you may already know what to expect in those files - the ng-modules that Ionic needs to run the app will get imported and put into the metadata of the Angular app. Yes, we should remember that Ionic app is an Angular app that can use all the features of Angular in the mobile app.
We will now look at app.module.ts which bootstraps the app.

The browserModule allows the app to run in the browser.
NgModule bootstraps Angular as we have seen before. The Ionic module bootstraps the Ionic application.
By default, the “entryComponents are MyApp and the HomePage".
Further to this an Ionic native Status Bar and SplashScreen are loaded.

App.component.ts is the first component to be bootstrapped. Here is where the splashscreen is loaded. We will see native features in the next chapter.
For now, the constructor loads all the native components and the Platform object. The Platform object is used to get information about the current platform loaded - iOS/Android. We will see this as well in the next chapter.

You will also notice a folder called Pages. This is where the code for each page in the mobile app is put. By default there is a page called home, which again is an Angular component.

This component is referenced in the app.component.ts in the variable rootPage

In app.html. It is loaded.

At a basic level, a navigation controller is an array of pages representing a particular history (of a Tab for example). This array can be manipulated to navigate throughout an app by pushing and popping pages or inserting and removing them at arbitrary locations in history.
The current page is the last one in the array, or the top of the stack if we think of it that way. Pushing a new page onto the top of the navigation stack causes the new page to be animated in, while popping the current page will navigate to the previous page in the stack.
Nav is a standalone component for loading arbitrary components and pushing to new components on to the stack. Meaning that if we load a Nav component, and push other components to the stack, they will not affect the apps overall router. This fits use cases where you could have a modal, which needs its own sub-navigation, but not make it tied to the apps URL.
The home page html has the html for what you see when you run Ionic serve.


In Summary, the app.module.ts bootstraps the application and loads appComponent. The nav in the app component loads the home page.
Starters
We just used the Ionic blank starter. Ionic 3 comes with three more starters - one with tabs, one with a left nav and another with Google maps. In this tutorial we will be using tabs to build a basic learning management system app where there will be a home page which will list courses. You can enroll for them and they appear in my enrollments.
Ion tabs
Now we already know how to generate a component in Angular. In a similar fashion, generate a page called Course. (In this page, we will list the courses in a learning management system as we proceed through this tutorial).
To create a project with tabs we issue the following command.

By cd-ing into the Ionic3Tabs and running Ionic serve, we get this:

Under the pages folder, you will find 3 pages created.

Pay attention to the html of tabs.

The variables tab1Root, tab2Root and tab3Root are declared in pages/tabs/tabs.ts

On clicking on each of these tabs, navigation will shift to the respective page.
If you take a look at the directive <ion-tab> it comes with properties root title and icon. The root refers to the component that will get loaded when the tab is clicked. Title is the title that will be displayed and Icon is the icon that will be displayed.
All the available icons can be accessed from https://Ionicframework.com/docs/v3/Ionicons/
In this section, we will use the tabs we just looked at along with a few more Ionic components to display an array of courses along with an “enroll” button. We will add a page and display courses that the current user has enrolled.
Then, we will create a popup to view course modules and content and allow the user to mark each item as complete.
We will finally add a contact form, so that the user can write a message to the LMS administrator.
First, we change the theme of the default app by changing the values of sass variables in themes/variables.css.

We then change the background color of the toolbar to the primary color by assigning it to the CSS element toolbar-background.
The variables can be accessed from any CSS file like this:
color($colors, primary, base)
Now we set the background of the toolbar to the base color, using the CSS element toolbar-background in app.scss

Instantly the colors of the tab buttons and the toolbar changes.

We change the background to grey and remove the text from the template.
In home.css

In home.html


We first design a card to display a course, and then put it in an array and display it.

The code for the card is as below.

Since this is an overlay we add additional CSS to display it accordingly. You can pick this up from the Ionic documentation for card.

The ion grid uses flex to lay out the elements on the screen.

We will now put this in a slider so that the user can slide the course categories.

The slider allows the user to slide horizontally through content. The property slidesPerView allows the user to partially see the next slider, encouraging him/her to slide further.


We will next, list the featured courses in a similar fashion.


So now, we have a decent landing page, we’ll go ahead and create a page that lists the courses the user has enrolled for.
For this, we need to generate a page and add a menu item for the same. We will then use an ion-list to list the courses the user has enrolled for.
First, we generate the page:

By using no-module, Ionic will not create a lazy-loaded page. We will see this later.
This command generates a page like this:

This then needs to be included in app.module:


And needs to be included as a tab in tabs/tabs.html:

And in tabs.ts we declare the variable tabsRoot:

We can now see the My Enrollments tab:

And on clicking on it the myEnrollments page loads up:

We then use the ion-list to display the details:

