Loiane Groner
@loiane
github.com/loiane
loiane.com
loiane.training
• 10+ XP TI
• Java, JavaScript, Sencha, Angular,
Phonegap/Ionic
• Blog: http://loiane.com
• Cursos: http://loiane.training
• Meus livros:
PRECISO DE UM APLICATIVO
Objective-C
Swift
Objective-C
Swift
Java
API Android
Objective-C
Swift
.NET
API WP
Java
API Android
Aplicativo
Híbrido
Seu Código
O QUE É UM APP HÍBRIDO?
Web View Nativa (Browser)
Seu Código
O QUE É UM APP HÍBRIDO?
APIs Nativas
Web View Nativa (Browser)
Seu Código
O QUE É UM APP HÍBRIDO?
App Nativa: .apk, .ipa, etc
APIs Nativas
Web View Nativa (Browser)
Seu Código
O QUE É UM APP HÍBRIDO?
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 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
▸ Suporte para Windows Phone 8 via template especial Visual
Studio
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óxima 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óxima 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óxima do nativo
▸Melhoria de performance
▸Suporte para iOS, Android e Windows
Phone 10
STACK / DEPENDÊNCIAS
O QUE É IONIC?
CSS + tags HTML do Ionic
O QUE É IONIC?
Base do código com Angular 2 +
TypeScript
CSS + tags HTML do Ionic
O QUE É IONIC?
Acesso APIs Nativas (plugins com
Apache Cordova: Ionic Native)
Base do código com Angular 2 +
TypeScript
CSS + tags HTML do Ionic
O QUE É IONIC?
Empacotamento do App Nativo (ipa, apk)
com Apache Cordova
Acesso APIs Nativas (plugins com
Apache Cordova: Ionic Native)
Base do código com Angular 2 +
TypeScript
CSS + tags HTML do Ionic
ANGULAR 2
▸WebComponents
▸Baseado em Componentes
▸TypeScript + Decorators
▸Components, Services + Observables,
Pipes, Directives
▸Usa imports do ES2015 (ES6)
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
▸ Não usa o roteamento do Angular 2
IONIC 2
▸ Dependência do Angular2 + TypeScript
▸ ES6 (ES2015) / ES7 (ES2016)
▸ Ionic Native entra no lugar no ngCordova
▸ Não usa o roteamento do Angular 2
▸ Navegação por stack (pilha)
COMPONENTES
▸ Action
Sheets
▸ Alerts
▸ Buttons
▸ Cards
▸ Icons
▸ Lists
▸ Search Bar
▸ Tabs
▸ Alert
▸ Modal
▸ IonRefresher
▸ Keyboard
▸ entre outros
https://nodejs.org
INSTALAÇÃO E USO
npm install -g ionic@latest
ionic start minhaApp --v2
CUSTOMIZAÇÃO CSS
▸ Baseado em Componente
▸ Baseado na App
▸ Baseado no Sistema
Operacional
DEMO
Decorator pra
indicar que é um
componente
Decorator pra
indicar que é um
componente
Seletor:
tag HTML que será
usada para usar esse
componente
Decorator pra
indicar que é um
componente
Seletor:
tag HTML que será
usada para usar esse
componente
Arquivo que
contém o template:
código HTML
Imports das classes
usadas
Construtor
com DI: Injeção de
Dependência
h2 | p: tags HTML
"normais"
h2 | p: tags HTML
"normais"
ion-componente
tags HTML do Ionic 2
Sistema de módulos do
Angular 2
E dá pra fazer app real?
na prática com Pokédex
Apps
instalados:
arquivos .ipa e .apk
Apps
instalados:
arquivos .ipa e .apk
Apps
instalados:
arquivos .ipa e .apk
Diferenças visuais
entre iOS e Android
Apps
instalados:
arquivos .ipa e .apk
Diferenças visuais
entre iOS e Android
PokemonList
PokemonList
PokemonListItem
PokemonList
PokemonList
Cada Item da
lista - loop
Ao clicar/tap
abre página de
detalhes
Ao clicar/tap
abre página de
detalhes
E passamos o
objeto pokemon
para o detalhe
Se existir tipos de
Pokemon - array tem
mais de 1 elemento
Loop for nos tipos do
Pokemon
E aplicamos CSS pra
ficar bonito!
Se o campo
de busca estiver vazio,
retorna a lista de
pokemons
Senão, filtramos os
pokemons que tem a string
de busca no nome
Criamos um serviço que irá
fornecer os dados (provider)
Criamos um serviço que irá
fornecer os dados (provider)
No Componente injetamos o
serviço no construtor
Programação reativa: fluxos:
.map
.do
.catch
Programação reativa: fluxos:
.map
.do
.catch
http://reactivex.io
Também pode cachear a
informação e retornar
Observable de variável
Fazemos a “inscrição" no
Observable pra receber o
resultado
Botão “Voltar" é
adicionado automaticamente
Botão “Voltar" é
adicionado automaticamente
Botão “Voltar" é
adicionado automaticamente
Stack
Pokemo
nList
Stack
PokemonLi
st
Push
PokemonDetail
Pilha
PokemonList
Pop
Botão Voltar
(Back)
(empilha)
(desempilha)
Cada seção dos
detalhes é um componente
auxiliar pra ajudar na
organização do projeto
ionic platform add ios
Projeto do Xcode
(IDE do iOS)
Nosso código
HTML + JS + CSS
Projeto do Xcode
(IDE do iOS)
https://github.com/loiane/ionic2-pokedex
Pokédex
PRA FINALIZAR…
IONIC NATIVE
▸ Plugins populares do Cordova distribuídos na lib do
Ionic:
▸ Camera
▸ Bluetooth
▸ SqLite
▸ Facebook
▸ Push
▸ entre outros
Imagem
sanitizada pelo
Angular 2 -
segurança
Opções da Foto: base64,
salvar no álbum e 90% de
qualidade
Atribui base64 à
variável imagem
O QUE PRECISO APRENDER PRA DESENVOLVER COM IONIC?
▸ Básico sobre Apache Cordova
▸ Para builds e uso de plugins nativos
▸ camera, geolocation, notificação push, etc
O QUE PRECISO APRENDER PRA DESENVOLVER COM IONIC?
▸ Básico sobre Apache Cordova
▸ Para builds e uso de plugins nativos
▸ camera, geolocation, notificação push, etc
▸ Angular 2 + TypeScript
▸ É a base de todo o código
▸ components, services, pipes, etc
O QUE PRECISO APRENDER PRA DESENVOLVER COM IONIC?
▸ Básico sobre Apache Cordova
▸ Para builds e uso de plugins nativos
▸ camera, geolocation, notificação push, etc
▸ Angular 2 + TypeScript
▸ É a base de todo o código
▸ components, services, pipes, etc
▸ Componentes Ionic
▸ Listas, botões, modais, etc
O QUE PRECISO APRENDER PRA DESENVOLVER COM IONIC?
▸ Básico sobre Apache Cordova
▸ Para builds e uso de plugins nativos
▸ camera, geolocation, notificação push, etc
▸ Angular 2 + TypeScript
▸ É a base de todo o código
▸ components, services, pipes, etc
▸ Componentes Ionic
▸ Listas, botões, modais, etc
Tem curso
grátis no meu canal
do YouTube
Tem curso
grátis no meu canal
do YouTube!
https://ionicframework.com/docs/v2
https://github.com/IonicBrazil/ionic2-docs
Quer aprender mais sobre Cordova e
Angular 2?
/loianegroner
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

Ionic 2 na pratica!