Angular
on cross platforms

github.com/SeijiV13

seijivillafranca.com
fb.com/seiji.villafranca


Seiji Villafranca
github.com/SeijiV13


Senior Developer, Wypoon Technologies Netherlands
Microsoft MVP
Auth0 Ambassador
Community Lead, AngularPH,
Author
seijivillafranca.com


Talks
















What we will know today
Basics and fundamentals of Angular
Creating Angular using Angular CLI
Cloud Deployment
Cross Platform Deployment

What the hell is Angular?

Front End Framework
Single Page Application
Typescript Based
Component Based




Just some History
2010: Angular JS was born

meant for internal projects for faster development
released as an open source project for frontend web applications
Ionic supported AngularJS for Mobile
2014 - 2015: The Great Rewrite
AngularJS is left with JavaScript advancements
Switched into a totally new pattern (from Controllers to Component Based)
Angular 2+
2018 - Present

The Basics

let's learn angular first
Prerequisites
npm install –g @angular/cli
https://nodejs.org/en/
Check npm verision
Check npm verision
npm -v
ng --version
Good to go?
Install Angular CLI
Install Node JS



ng new <project-name>
Create your Angular Project


Angular
Module
Component
Service
Collection of Components, Services, Directives, and also Modules
Can be imported into multiple Modules
A piece of code that defines the view with custom behaviors
Cannot be imported into multiple modules
Lets think of this one as a customized HTML Element with customized attributes
Used to communicate with endpoints
Used by components by dependency injection
Can also be injected by services

Module
Component
Service
@NgModule
@Component
@Injectable
Using Angular Decorators @
@NgModule({
declarations: [
…components,
directives
],
imports: [
… modules
],
providers: [
…services
]
})
export class CoreModule {
}
@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.scss"]
})
export class AppComponent
implements OnInit {
}
@Injectable({ providedIn: "root" })
export class AwesomeService {
}

Angular
Module
Component
Service
ng generate module <module-name>
ng generate component <component-name>
ng generate service <service-name>
Shortcut: ng g m <module-name>
Shortcut: ng g c <component-name>
Shortcut: ng g s <service-name>
@NgModule
@Component
@Injectable

Flow

Component Life cycle hooks


Metadatas
Configuration for the component
selector: Tag name for the component
templateUrl : Path for the html file
styleUrls: Path/s for the CSS file


We use the selector to use components
Component Rendering

How does components communicate?
Component Interaction



@Input and @Output Property
Component Interaction


@Input decorator allows parent to pass data to child

parent.component.html
<child-component-two [chocolates]=“chocolates”/>
<button (click)=“sendChocolate()”/>
child.component.ts
parent.component.html
@Input() chocolates: number;
@Input and @Output Property
Component Interaction

@Output decorator allows child to pass to parent

parent.component.html
<child-component-two
(emitChocolates)=“getSentChocolates()”
[chocolates]=“chocolates”/>
child.component.ts
parent.component.html
@Input() chocolates: number;
@Output() emitChocolates: new EventEmitter();

Component Interaction

Other Ways for Components to communicate
Services
Subjects
State Management




Routing

Configuring routes
Routing is also a module
Configured as a JSON data


Routing

Configuring routes
Pages are components
Does not retrieve the pages from server (Single Page Application)
Transferring from one route removes the component from DOM







Is angular only for web?
Angular on cross platforms







Open source UI toolkit for building native and web apps using HTML CSS and JavaScript
Can be integrated with Angular, React and Vue

Ionic doesn’t use native components at all and renders everything in HTML and CSS

open source framework to build truly native mobile app
directly communicates with the Native APIs, injects IOS and Android APIs into Javascript Virtual Machines
NativeScript UI is stored in XML files with CSS styling, logic stays on Typescript/JavScript files


website with all the benefits of an app
web application that can be “installed” on your system. It works offline when you don't have an internet connection


Service Workers!

Build you PWA app for Microsoft store and play store!
open source framework for building desktop applications
Can also be integrated with
Angular, React and Vuew


Built with Chromium and Node.js so you can build your app with HTML, CSS, and JavaScript.

What to else to learn?
other Angular features (directives, pipes, forms, subject etc.)
firebase authentications
ionic, nativescript, electorn etc.
https://www.facebook.com/groups/1133816916630570
AngularPH
https://www.facebook.com/Angular-PH-113942453649977

Group
Facebook Page
Facebook Page
Website
https://angularph.org
Hey I'm a Mentor!
github.com/SeijiV13

seijivillafranca.com
fb.com/seiji.villafranca



Thank you
and happy coding!

Angular on cross platforms
By Seiji Ralph Villafranca
Angular on cross platforms
- 74