Apps Híbridos com
Ionic Framework
Cícero Viana
Desenvolvedor web
@cicerohen
Estudante de análise de sistemas pela Estácio FIC.
Desenvolvedor web há 7 anos e atualmente entusiasta de MEAN, apps híbridos e Python.
DEV I/O FOR
Comunidade de desenvolvedores de Fortaleza
NUG-CE
Comunidade de usuários NodeJS do Ceará
Plataforma construída em cima da Chrome's V8 JavaScript engine com modelo de I/O não bloqueante e orientado a eventos.
Engine(em C++) criada para aumentar a performance na execução do JavaScript.
Usada tanto no client side(Google Chrome) quanto no server side(NodeJS)
Usa o modelo JIT(Just In Time)
Não produz bytecodes ou qualquer outro código intermediário
Uma chamada de operação bloqueia o fluxo do sistema até que a mesma seja concluída.
Mais threads(sub-processos) podem ser criadas pra dar suporte a mais requisições
Uma chamada de operação não bloqueia o fluxo do sistema.
Quando a operação precisa acessar uma base de dados, por exemplo, ela faz a requisição, sem no entanto bloquear o fluxo. Quando os dados solicitados à base estiverem prontos, a operação os recebe para que sejam usados.
npm install [modulo] --save
npm uninstall [modulo] --save
bower install [componente] --save
bower uninstall [componente] --save
Framework client-side MV*(whatever), feito em JavaScript e usado para criação de Single Page Applications(SPA)
Técnica que mantém a sincronia entre os dados. Alterações no model são propagadadas para a view. Alterações na view são propagadas para o model.
Elo de ligação entre a view e o model
Diretivas são extensões da linguagem HTML que permitem a implementação de novos comportamentos de forma declarativa.
<tabs>
<tab-item title="Aba 1">Conteúdo da Aba 1</tab-item>
<tab-item title="Aba 2">Conteúdo da Aba 2</tab-item>
<tab-item title="Aba 3">Conteúdo da Aba 3</tab-item>
</tabs><ul class="nav nav-tabs">
<li>
<a href="#">Aba 1</a>
</li>
<li>
<a href="#">Aba 2</a>
</li>
<li>
<a href="#">Aba 2</a>
</li>
</ul>
<div class="tab-content">
<div style="" class="tab-pane">
<span class="ng-scope">Conteúdo Aba 1</span>
</div>
<div class="tab-pane">
<span class="ng-scope">Conteúdo Aba 2</span>
</div>
<div class="tab-pane">
<span class="ng-scope">Conteúdo Aba 3</span>
</div>
</div>Aba 1
Aba 2
Aba 3
Conteúdo Aba 2
Aplicações que carregam um único arquivo HTML e o atualiza dinâmicamente à medida que o usuário interage com a aplicação
index.html
page1-tpl.html
ponto de carregamento
page2-tpl.html
page3-tpl.html
{ page1-data }
{ page2-data }
{ page3-data }
Web
Pré-processdores são ferramentas que extendem a capacidade do CSS.
$site-bg: blue;
body {
background-color: $site-bg;
}
//CSS Processado
body {
background-color: blue;
}@function my-calculation-function($some-number, $another-number){
@return $some-number + $another-number
}
.my-module {
padding: my-calculation-function(10px, 5px);
}
//CSS processado
.my-module {
padding:15px;
}Conjunto de APIs que dão acesso aos recursos nativos do dispositivo.
O Apache Cordova surgiu da doação do source code do Phonegap(projeto criado pela Nitobi Software) para a Apache Software Foundation, durante a compra da Nitobi pela Adobe. Após a doação o projeto foi renomeado para Apache Callback, e logo em seguida definitivamente nomeado como Apache Cordova.
Phonegap é um distribuição do Apache Cordova, com funcionalidades/plugins mantidos pela Adobe. O Phonegap é para o Cordova, o que o Ubuntu é para o Debian.
Estrutura básica de um projeto Cordova/Phonegap
/** Project Scaffold */
cordova-app/
hooks/
platforms/
android/
plugins/
www/
config.xml
/* hooks directory */
/*Ações "ganchos" que podem ser inseridas em certos
pontos no processo de build do Cordova.
/*
/* platforms directory */
/* Diretório onde ficam as plataformas adicionadas ao projeto.
Ex: Android, WP8, iOS
*/
/* plugins directory */
/* Diretórios para plugins usados no seu projeto Cordova.
Ex: Plugin para oauth com Facebook.
*/
/* www directory */
/* Diretório onde ficam os source codes do projeto.
No processo de build, os arquivos deste diretório são processados e
inseridos dentro do diretório das plataformas escolhidas para o build.
*/
/* config.xml file */
/* Arquivo comum que guardam informações sobre o projeto e especifica
parâmetros que afetam a forma de trabalhar do aplicativo,
como por exemplo, podemos especificar se o aplicativo responde a orientação de tela.
*/
SPA (Single Page Application)
Touch Events
CSS Transitions
CSS Sprites
"Canivete suiço" para desenvolvimento de aplicativos usando tecnologias web
SDK
Ionic Creator
Ionic Market
Ionic Play
Ionic View
Ionic Showcase
NgCordova
Ionic Learn
Ionicons