SlideShare a Scribd company logo
1 of 57
Download to read offline
Loiane Groner
github.com/loiane
loiane.com
loiane.training
• 10+ XP TI
• Java, JavaScript, Sencha,
Phonegap/Ionic
• Blog: http://loiane.com
• Cursos: http://loiane.training
• Meus livros:
Seu Código
Web View Nativa (Browser)
Seu Código
APIs Nativas
Web View Nativa (Browser)
Seu Código
App Nativa: .apk, .ipa, etc
APIs Nativas
Web View Nativa (Browser)
Seu Código
IONIC 1
▸ Criado em 2013
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
▸ Fornece componentes e diretivas que parecem nativos
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
▸ Fornece componentes e diretivas que parecem nativos
▸ Organização de código com Angular 1
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
▸ Fornece componentes e diretivas que parecem nativos
▸ Organização de código com Angular 1
▸ Projeto base Cordova (Phonegap): acesso nativo
através de plugins e geração de executável para app
stores
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
▸ Fornece componentes e diretivas que parecem nativos
▸ Organização de código com Angular 1
▸ Projeto base Cordova (Phonegap): acesso nativo
através de plugins e geração de executável para app
stores
▸ Mais de 1 milhão de apps publicadas
IONIC 1
▸ Criado em 2013
▸ Bootstrap para apps mobile
▸ Fornece componentes e diretivas que parecem nativos
▸ Organização de código com Angular 1
▸ Projeto base Cordova (Phonegap): acesso nativo
através de plugins e geração de executável para app
stores
▸ Mais de 1 milhão de apps publicadas
▸ Suporte para iOS e Android
IONIC 2
▸Reescrita do Ionic 1
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
▸Mesmos componentes do Ionic 1
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
▸Mesmos componentes do Ionic 1
▸Experiência mais próximo do nativo
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
▸Mesmos componentes do Ionic 1
▸Experiência mais próximo do nativo
▸Melhoria de performance
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
▸Mesmos componentes do Ionic 1
▸Experiência mais próximo do nativo
▸Melhoria de performance
▸Suporte para iOS, Android e Windows Phone
IONIC 2
▸Reescrita do Ionic 1
▸Organização do código em Angular 2
▸Mesmos componentes do Ionic 1
▸Experiência mais próximo do nativo
▸Melhoria de performance
▸Suporte para iOS, Android e Windows Phone
▸Atualmente em Beta
IONIC 2
▸ Dependência do Angular2 + TypeScript
IONIC 2
▸ Dependência do Angular2 + TypeScript
▸ ES6 (ES2015) / ES7 (ES2016)
IONIC 2
▸ Dependência do Angular2 + TypeScript
▸ ES6 (ES2015) / ES7 (ES2016)
▸ Ionic Native entra no lugar no ngCordova
IONIC 2
▸ Dependência do Angular2 + TypeScript
▸ ES6 (ES2015) / ES7 (ES2016)
▸ Ionic Native entra no lugar no ngCordova
▸ Sem roteamento por padrão (mas pode usar o
ng2 router ou ui-router2)
IONIC 2
▸ Dependência do Angular2 + TypeScript
▸ ES6 (ES2015) / ES7 (ES2016)
▸ Ionic Native entra no lugar no ngCordova
▸ Sem roteamento por padrão (mas pode usar o
ng2 router ou ui-router2)
▸ Navegação por stack (pilha)
STACK / DEPENDÊNCIAS
ANGULAR 2
▸ Baseado em Componentes
▸ Decorators
▸ Usa imports do ES2016 (ES6)
▸ TypeScript
▸ RIP Controllers, Scope
COMPONENTES
▸ Action
Sheets
▸ Alerts
▸ Buttons
▸ Cards
▸ Icons
▸ Lists
▸ Search Bar
▸ Tabs
▸ Alert
▸ Modal
▸ IonRefresher
▸ Keyboard
<!-- Ionic 1 -->
<button class="button">Default</button>
<button class="button button-light">button-light</button>
<button class="button button-stable">button-stable</button>
<button class="button button-positive">button-positive</button>
<!-- Ionic 1 -->
<button class="button">Default</button>
<button class="button button-light">button-light</button>
<button class="button button-stable">button-stable</button>
<button class="button button-positive">button-positive</button>
<!-- Ionic 2 -->
<button light>Light</button>
<button>Primary</button>
<button secondary>Secondary</button>
<button danger>Danger</button>
<button dark>Dark</button>
<div class="tabs">
<a class="tab-item">
Home
</a>
<a class="tab-item">
Favorites
</a>
<a class="tab-item">
Settings
</a>
</div>
@Component({
template: `
<ion-tabs>
<ion-tab tabIcon="heart" [root]="tab1"></ion-tab>
<ion-tab tabIcon="star" [root]="tab2"></ion-tab>
</ion-tabs>`
})
class MyApp {
constructor() {
this.tab1 = Tab1;
this.tab2 = Tab2;
}
}
ionicBootstrap(MyApp);
@Component({
template: `
<ion-tabs>
<ion-tab tabIcon="heart" [root]="tab1"></ion-tab>
<ion-tab tabIcon="star" [root]="tab2"></ion-tab>
</ion-tabs>`
})
class MyApp {
constructor() {
this.tab1 = Tab1;
this.tab2 = Tab2;
}
}
ionicBootstrap(MyApp);
@Component({
template: `
<ion-navbar *navbar>
<ion-title>Heart</ion-title>
</ion-navbar>
<ion-content>Tab 1</ion-content>`
})
class Tab1 {}
@Component({
template: `
<ion-navbar *navbar>
<ion-title>Star</ion-title>
</ion-navbar>
<ion-content>Tab 2</ion-content>`
})
class Tab2 {}
IONIC NATIVE
▸ Plugins populares do Cordova distribuído na lib do
Ionic:
▸ Camera
▸ Bluetooth
▸ SqLite
▸ Facebook
▸ Push
▸ entre outros
NAVEGAÇÃO NO APP
//Ionic 1
var app = angular.module('myApp', ['ionic']);
app.config(function($stateProvider) {
$stateProvider
.state('index', {
url: '/',
templateUrl: 'home.html'
})
.state('music', {
url: '/music',
templateUrl: 'music.html'
});
});
//Ionic 2
@Component({
template: `
<ion-navbar *navbar>
<ion-title>Login</ion-title>
</ion-navbar>
<ion-content>
<button (click)="goToOtherPage()">
Go to OtherPage
</button>
</ion-content>`
})
export class StartPage {
constructor(private nav: NavController) {}
goToOtherPage(){
this.nav.push(OtherPage);
}
}
@Component({
template: `
<ion-content>
<button (click)="goBack()">
There's no place like home
</button>
</ion-content>`
})
class OtherPage {
constructor(private nav: NavController)
goBack() {
this.nav.pop();
}
//Ionic 2
@Component({
template: `
<ion-navbar *navbar>
<ion-title>Login</ion-title>
</ion-navbar>
<ion-content>
<button (click)="goToOtherPage()">
Go to OtherPage
</button>
</ion-content>`
})
export class StartPage {
constructor(private nav: NavController) {}
goToOtherPage(){
this.nav.push(OtherPage);
}
}
@Component({
template: `
<ion-content>
<button (click)="goBack()">
There's no place like home
</button>
</ion-content>`
})
class OtherPage {
constructor(private nav: NavController)
goBack() {
this.nav.pop();
}
CUSTOMIZAÇÃO CSS
▸ Baseado em Componente
▸ Baseado na App
▸ Baseado no Sistema
Operacional
INSTALAÇÃO E USO
npm install -g ionic@beta
ionic start minhaApp --v2
DEMO
https://github.com/loiane/ionic-sampajs-app
https://github.com/IonicBrazil/ionic2-docs
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

More Related Content

Viewers also liked

Angular 2 em 60 minutos
Angular 2 em 60 minutosAngular 2 em 60 minutos
Angular 2 em 60 minutosLoiane Groner
 
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobileJavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobileLoiane Groner
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutesLoiane Groner
 
[Curso Java Basico] Aula 65: Annotations (anotacoes)
[Curso Java Basico] Aula 65: Annotations (anotacoes)[Curso Java Basico] Aula 65: Annotations (anotacoes)
[Curso Java Basico] Aula 65: Annotations (anotacoes)Loiane Groner
 
[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de VariaveisLoiane Groner
 
[Curso Java Basico] Aula 62: Varargs
[Curso Java Basico] Aula 62: Varargs[Curso Java Basico] Aula 62: Varargs
[Curso Java Basico] Aula 62: VarargsLoiane Groner
 
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referenciaLoiane Groner
 
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)Loiane Groner
 
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e UnboxingLoiane Groner
 
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimasLoiane Groner
 
[Curso Java Basico] Aula 59: Importacao estatica (static import)
[Curso Java Basico] Aula 59: Importacao estatica (static import)[Curso Java Basico] Aula 59: Importacao estatica (static import)
[Curso Java Basico] Aula 59: Importacao estatica (static import)Loiane Groner
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printfLoiane Groner
 
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepLoiane Groner
 
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOfLoiane Groner
 
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivosLoiane Groner
 
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e joinLoiane Groner
 
[Curso Java Basico] Aula 68: Threads: Interface Runnable
[Curso Java Basico] Aula 68: Threads: Interface Runnable[Curso Java Basico] Aula 68: Threads: Interface Runnable
[Curso Java Basico] Aula 68: Threads: Interface RunnableLoiane Groner
 
[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratosLoiane Groner
 
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAllLoiane Groner
 
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...Loiane Groner
 

Viewers also liked (20)

Angular 2 em 60 minutos
Angular 2 em 60 minutosAngular 2 em 60 minutos
Angular 2 em 60 minutos
 
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobileJavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
JavaOne Brasil 2016: JavaEE e HTML5: da web/desktop ao mobile
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
 
[Curso Java Basico] Aula 65: Annotations (anotacoes)
[Curso Java Basico] Aula 65: Annotations (anotacoes)[Curso Java Basico] Aula 65: Annotations (anotacoes)
[Curso Java Basico] Aula 65: Annotations (anotacoes)
 
[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis[Curso Java Basico] Aula 60: Escopo de Variaveis
[Curso Java Basico] Aula 60: Escopo de Variaveis
 
[Curso Java Basico] Aula 62: Varargs
[Curso Java Basico] Aula 62: Varargs[Curso Java Basico] Aula 62: Varargs
[Curso Java Basico] Aula 62: Varargs
 
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia
[Curso Java Basico] Aula 61: Passagem de parametros por valor e referencia
 
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
 
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
 
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas
[Curso Java Basico] Aula 64: Classes aninhadas: internas, locais e anonimas
 
[Curso Java Basico] Aula 59: Importacao estatica (static import)
[Curso Java Basico] Aula 59: Importacao estatica (static import)[Curso Java Basico] Aula 59: Importacao estatica (static import)
[Curso Java Basico] Aula 59: Importacao estatica (static import)
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf
 
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
 
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
[Curso Java Basico] Aula 55: Enum: metodos value e valueOf
 
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
 
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join
[Curso Java Basico] Aula 69: Criando varias Threads + metodos isAlive e join
 
[Curso Java Basico] Aula 68: Threads: Interface Runnable
[Curso Java Basico] Aula 68: Threads: Interface Runnable[Curso Java Basico] Aula 68: Threads: Interface Runnable
[Curso Java Basico] Aula 68: Threads: Interface Runnable
 
[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos
 
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
 
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...
[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchro...
 

Similar to SampaJS 2016: Ionic 2

Mini curso: Ionic Framework
Mini curso: Ionic FrameworkMini curso: Ionic Framework
Mini curso: Ionic FrameworkLoiane Groner
 
Integrando WordPress com Ionic 3.
Integrando WordPress com Ionic 3.Integrando WordPress com Ionic 3.
Integrando WordPress com Ionic 3.Sinesio Bittencourt
 
Ionic 2 como ferramenta para desenvolvimento móvel
Ionic 2 como ferramenta para desenvolvimento móvelIonic 2 como ferramenta para desenvolvimento móvel
Ionic 2 como ferramenta para desenvolvimento móvelGustavo Costa
 
Sinesio bittencourt - Ionic framework {Aplicações móveis híbridas}
Sinesio bittencourt - Ionic framework  {Aplicações móveis híbridas}Sinesio bittencourt - Ionic framework  {Aplicações móveis híbridas}
Sinesio bittencourt - Ionic framework {Aplicações móveis híbridas}Sinesio Bittencourt
 
Ionic framework V2/3 {Aplicações móveis híbridas}
Ionic framework V2/3 {Aplicações móveis híbridas} Ionic framework V2/3 {Aplicações móveis híbridas}
Ionic framework V2/3 {Aplicações móveis híbridas} Sinesio Bittencourt
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Marcelo Marques Gonçalves
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicFelipe Blini
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressRômulo Zoch
 
FAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaFAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaLoiane Groner
 
Hybrid app phonegap angular ionic
Hybrid app   phonegap angular ionicHybrid app   phonegap angular ionic
Hybrid app phonegap angular ionicJoelmir Ribacki
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + FirebaseBruno Catão
 
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...Milton Camara Gomes
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Wennder Santos
 
Hello world hybrid apps oportunidades com ionic framework v2
Hello world hybrid apps  oportunidades com ionic framework v2Hello world hybrid apps  oportunidades com ionic framework v2
Hello world hybrid apps oportunidades com ionic framework v2Ricardo Netto - MCP, MSP
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalestdc-globalcode
 
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03Loiane Groner
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 

Similar to SampaJS 2016: Ionic 2 (20)

Mini curso: Ionic Framework
Mini curso: Ionic FrameworkMini curso: Ionic Framework
Mini curso: Ionic Framework
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
Integrando WordPress com Ionic 3.
Integrando WordPress com Ionic 3.Integrando WordPress com Ionic 3.
Integrando WordPress com Ionic 3.
 
Ionic 2 como ferramenta para desenvolvimento móvel
Ionic 2 como ferramenta para desenvolvimento móvelIonic 2 como ferramenta para desenvolvimento móvel
Ionic 2 como ferramenta para desenvolvimento móvel
 
Sinesio bittencourt - Ionic framework {Aplicações móveis híbridas}
Sinesio bittencourt - Ionic framework  {Aplicações móveis híbridas}Sinesio bittencourt - Ionic framework  {Aplicações móveis híbridas}
Sinesio bittencourt - Ionic framework {Aplicações móveis híbridas}
 
Ionic framework V2/3 {Aplicações móveis híbridas}
Ionic framework V2/3 {Aplicações móveis híbridas} Ionic framework V2/3 {Aplicações móveis híbridas}
Ionic framework V2/3 {Aplicações móveis híbridas}
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
 
Setup.docx
Setup.docxSetup.docx
Setup.docx
 
Palestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPressPalestra UFPR - Intro Ionic framework + WordPress
Palestra UFPR - Intro Ionic framework + WordPress
 
FAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e CordovaFAESA Computação Móvel: Introducao a Phonegap e Cordova
FAESA Computação Móvel: Introducao a Phonegap e Cordova
 
Hybrid app phonegap angular ionic
Hybrid app   phonegap angular ionicHybrid app   phonegap angular ionic
Hybrid app phonegap angular ionic
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + Firebase
 
Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5Angular 4 Ionic 3 Cordova 5
Angular 4 Ionic 3 Cordova 5
 
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
Iniciando o desenvolvimento de aplicativos híbridos com VS Code + Ionic + Typ...
 
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
 
Hello world hybrid apps oportunidades com ionic framework v2
Hello world hybrid apps  oportunidades com ionic framework v2Hello world hybrid apps  oportunidades com ionic framework v2
Hello world hybrid apps oportunidades com ionic framework v2
 
TDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scalesTDC2016POA | Trilha Web - Front-end that scales
TDC2016POA | Trilha Web - Front-end that scales
 
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03
Curso Sencha Touch 2 - Aula 04: Curso Sencha Touch 2 - Aula 03
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 

Recently uploaded

ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Recently uploaded (9)

ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

SampaJS 2016: Ionic 2

  • 2. • 10+ XP TI • Java, JavaScript, Sencha, Phonegap/Ionic • Blog: http://loiane.com • Cursos: http://loiane.training
  • 5. Web View Nativa (Browser) Seu Código
  • 6. APIs Nativas Web View Nativa (Browser) Seu Código
  • 7. App Nativa: .apk, .ipa, etc APIs Nativas Web View Nativa (Browser) Seu Código
  • 9. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile
  • 10. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile ▸ Fornece componentes e diretivas que parecem nativos
  • 11. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile ▸ Fornece componentes e diretivas que parecem nativos ▸ Organização de código com Angular 1
  • 12. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile ▸ Fornece componentes e diretivas que parecem nativos ▸ Organização de código com Angular 1 ▸ Projeto base Cordova (Phonegap): acesso nativo através de plugins e geração de executável para app stores
  • 13. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile ▸ Fornece componentes e diretivas que parecem nativos ▸ Organização de código com Angular 1 ▸ Projeto base Cordova (Phonegap): acesso nativo através de plugins e geração de executável para app stores ▸ Mais de 1 milhão de apps publicadas
  • 14. IONIC 1 ▸ Criado em 2013 ▸ Bootstrap para apps mobile ▸ Fornece componentes e diretivas que parecem nativos ▸ Organização de código com Angular 1 ▸ Projeto base Cordova (Phonegap): acesso nativo através de plugins e geração de executável para app stores ▸ Mais de 1 milhão de apps publicadas ▸ Suporte para iOS e Android
  • 16. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2
  • 17. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2 ▸Mesmos componentes do Ionic 1
  • 18. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2 ▸Mesmos componentes do Ionic 1 ▸Experiência mais próximo do nativo
  • 19. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2 ▸Mesmos componentes do Ionic 1 ▸Experiência mais próximo do nativo ▸Melhoria de performance
  • 20. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2 ▸Mesmos componentes do Ionic 1 ▸Experiência mais próximo do nativo ▸Melhoria de performance ▸Suporte para iOS, Android e Windows Phone
  • 21. IONIC 2 ▸Reescrita do Ionic 1 ▸Organização do código em Angular 2 ▸Mesmos componentes do Ionic 1 ▸Experiência mais próximo do nativo ▸Melhoria de performance ▸Suporte para iOS, Android e Windows Phone ▸Atualmente em Beta
  • 22.
  • 23. IONIC 2 ▸ Dependência do Angular2 + TypeScript
  • 24. IONIC 2 ▸ Dependência do Angular2 + TypeScript ▸ ES6 (ES2015) / ES7 (ES2016)
  • 25. IONIC 2 ▸ Dependência do Angular2 + TypeScript ▸ ES6 (ES2015) / ES7 (ES2016) ▸ Ionic Native entra no lugar no ngCordova
  • 26. IONIC 2 ▸ Dependência do Angular2 + TypeScript ▸ ES6 (ES2015) / ES7 (ES2016) ▸ Ionic Native entra no lugar no ngCordova ▸ Sem roteamento por padrão (mas pode usar o ng2 router ou ui-router2)
  • 27. IONIC 2 ▸ Dependência do Angular2 + TypeScript ▸ ES6 (ES2015) / ES7 (ES2016) ▸ Ionic Native entra no lugar no ngCordova ▸ Sem roteamento por padrão (mas pode usar o ng2 router ou ui-router2) ▸ Navegação por stack (pilha)
  • 29. ANGULAR 2 ▸ Baseado em Componentes ▸ Decorators ▸ Usa imports do ES2016 (ES6) ▸ TypeScript ▸ RIP Controllers, Scope
  • 30.
  • 31. COMPONENTES ▸ Action Sheets ▸ Alerts ▸ Buttons ▸ Cards ▸ Icons ▸ Lists ▸ Search Bar ▸ Tabs ▸ Alert ▸ Modal ▸ IonRefresher ▸ Keyboard
  • 32. <!-- Ionic 1 --> <button class="button">Default</button> <button class="button button-light">button-light</button> <button class="button button-stable">button-stable</button> <button class="button button-positive">button-positive</button>
  • 33. <!-- Ionic 1 --> <button class="button">Default</button> <button class="button button-light">button-light</button> <button class="button button-stable">button-stable</button> <button class="button button-positive">button-positive</button> <!-- Ionic 2 --> <button light>Light</button> <button>Primary</button> <button secondary>Secondary</button> <button danger>Danger</button> <button dark>Dark</button>
  • 34. <div class="tabs"> <a class="tab-item"> Home </a> <a class="tab-item"> Favorites </a> <a class="tab-item"> Settings </a> </div>
  • 35. @Component({ template: ` <ion-tabs> <ion-tab tabIcon="heart" [root]="tab1"></ion-tab> <ion-tab tabIcon="star" [root]="tab2"></ion-tab> </ion-tabs>` }) class MyApp { constructor() { this.tab1 = Tab1; this.tab2 = Tab2; } } ionicBootstrap(MyApp);
  • 36. @Component({ template: ` <ion-tabs> <ion-tab tabIcon="heart" [root]="tab1"></ion-tab> <ion-tab tabIcon="star" [root]="tab2"></ion-tab> </ion-tabs>` }) class MyApp { constructor() { this.tab1 = Tab1; this.tab2 = Tab2; } } ionicBootstrap(MyApp); @Component({ template: ` <ion-navbar *navbar> <ion-title>Heart</ion-title> </ion-navbar> <ion-content>Tab 1</ion-content>` }) class Tab1 {} @Component({ template: ` <ion-navbar *navbar> <ion-title>Star</ion-title> </ion-navbar> <ion-content>Tab 2</ion-content>` }) class Tab2 {}
  • 37. IONIC NATIVE ▸ Plugins populares do Cordova distribuído na lib do Ionic: ▸ Camera ▸ Bluetooth ▸ SqLite ▸ Facebook ▸ Push ▸ entre outros
  • 39. //Ionic 1 var app = angular.module('myApp', ['ionic']); app.config(function($stateProvider) { $stateProvider .state('index', { url: '/', templateUrl: 'home.html' }) .state('music', { url: '/music', templateUrl: 'music.html' }); });
  • 40. //Ionic 2 @Component({ template: ` <ion-navbar *navbar> <ion-title>Login</ion-title> </ion-navbar> <ion-content> <button (click)="goToOtherPage()"> Go to OtherPage </button> </ion-content>` }) export class StartPage { constructor(private nav: NavController) {} goToOtherPage(){ this.nav.push(OtherPage); } } @Component({ template: ` <ion-content> <button (click)="goBack()"> There's no place like home </button> </ion-content>` }) class OtherPage { constructor(private nav: NavController) goBack() { this.nav.pop(); }
  • 41. //Ionic 2 @Component({ template: ` <ion-navbar *navbar> <ion-title>Login</ion-title> </ion-navbar> <ion-content> <button (click)="goToOtherPage()"> Go to OtherPage </button> </ion-content>` }) export class StartPage { constructor(private nav: NavController) {} goToOtherPage(){ this.nav.push(OtherPage); } } @Component({ template: ` <ion-content> <button (click)="goBack()"> There's no place like home </button> </ion-content>` }) class OtherPage { constructor(private nav: NavController) goBack() { this.nav.pop(); }
  • 42. CUSTOMIZAÇÃO CSS ▸ Baseado em Componente ▸ Baseado na App ▸ Baseado no Sistema Operacional
  • 43. INSTALAÇÃO E USO npm install -g ionic@beta ionic start minhaApp --v2
  • 44.
  • 45. DEMO
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 56.