apps android e hibridas

105
Apps Android e Hibridas 16 horas de explanação, diálogo e prática Julho 2016 por Luiz Henrique Rauber Rodrigues [email protected] - fb.com/luizrauber Exceto onde tiver outra referência, este material é Creative Commons com Atribuição-CompartilhaIgual (CC BY-SA). Pode copiar, alterar e redistribuir à vontade, mesmo para fins comerciais, mas desde que me cite e licenciem as novas criações sob termos idênticos. Like Free Software :)

Upload: luiz-henrique-rauber-rodrigues

Post on 12-Apr-2017

111 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Apps Android e Hibridas

Apps Android e Hibridas16 horas de explanação, diálogo e prática

Julho 2016

por Luiz Henrique Rauber [email protected] - fb.com/luizrauber

Exceto onde tiver outra referência, este material é Creative Commons com Atribuição-CompartilhaIgual (CC BY-SA). Pode copiar, alterar e redistribuir à vontade, mesmo para fins comerciais, mas desde que me cite e

licenciem as novas criações sob termos idênticos. Like Free Software :)

Page 2: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 2/105

Mas primeiro….

Conselhos Richard Feynman (1918-1988), Nobel de Física em 19652 tipos de sabedoria: “Saber o nome de algo” e o “Saber algo”

1) Escolha um conceito; tema ou objetivo do que quer saber

2) Escreva-o como se estivesse ensinando uma criança; nada subentendido

3) Volte no tema e pesquise sobre ele; especifique o 1-2 da forma 2)

4) Revise e simplifique ainda mais; sem jargões e sabendo usar analogias

http://www.bbc.com/portuguese/geral-36750825

Page 3: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 3/105

Manifesto para o desenvolvimento ágil de software

Estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo. Através deste trabalho, passamos a valorizar:

Indivíduos e interação entre eles mais que processos e ferramentasSoftware em funcionamento mais que documentação abrangenteColaboração com o cliente mais que negociação de contratosResponder a mudanças mais que seguir um plano

Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os itens à esquerda.

http://www.manifestoagil.com.br/

Page 4: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 4/105

Coding Dojo - Turma 2015-2016 – Tec Informática Senac

Page 5: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 5/105

O quê?

Onde?

Como?

Page 6: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 6/105

Touchscreem Resistivo/ CapacitivoSensores internos e acopláveis

SO parcialmente opensource

Versões por Google e por fabricantes

Intergração serviços Google

“Apps” via Google Play/ Lojas Terceiros/ .apk numa sandbox

SDK padrão e com o QEMU

Page 7: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 7/105

Page 8: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 8/105

Page 9: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 9/105

Go https://www.android.com/intl/pt-BR_br/

Page 10: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 10/105

Aprofundando

SILBERCHATZ, 2013

Android/Linux

Java - JVM

Multithread

Sai swap entra application state

...

Page 11: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 11/105http://source.android.com/source/index.html

Page 12: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 12/105

Mais (ou menos) em https://www.android.com/intl/pt-BR_br/history/

Page 13: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 13/105

https://developer.android.com

Page 14: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 14/105

Page 15: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 15/105

Page 16: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 16/105

javac -version http://www.oracle.com/technetwork/java/javase/downloads/jdk8-

downloads-2133151.html

android-studio/bin/studio.shdependências lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

Bora instalar? (Enquanto isso, mais teoria)

Page 17: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 17/105

2005 – comprou startup Android, Inc. (SO para câmeras)

2006 – Protótipo “Sooner” mirando em BlackBerry

2007 – Mirarão no IPhone*

2007 – Fundação Open Handset Alliance (Google, HTC, Dell, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG,

T-Mobile, Nvidia… https://pt.wikipedia.org/wiki/Open_Handset_Alliance)

2007 – Primeira SDK para desenvolver Android

2007 – Google registrou várias patentes sobre smartphone

Page 18: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 18/105

2008 – HTC Dream/ T-Mobile G/ G1 com Android

2010 – Linha Nexus (HTC, Samsung, LG, Asus, Motorola)

Page 19: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 19/105

http://www.androidpit.com.br/evolucao-dos-smartphones-a-linha-nexus

Page 20: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 20/105

Page 21: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 21/105

http://www.gadgetdetail.com/android-version-market-share-distribution/

Page 22: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 22/105

http://www.gadgetdetail.com/android-version-market-share-distribution/

Page 23: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 23/105

http://www.forbes.com/sites/eladnatanson/2016/06/06/breaking-the-android-ios-duopoly-will-android-and-ios-ever-get-a-serious-third-competitor/#e62c5104cad0

Page 24: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 24/105

http://www.forbes.com/sites/eladnatanson/2016/06/06/breaking-the-android-ios-duopoly-will-android-and-ios-ever-get-a-serious-third-competitor/#e62c5104cad0

Page 25: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 25/105

Page 26: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 26/105https://github.com/googlesamples/

Page 27: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 27/105

Page 28: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 28/105

Page 29: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 29/105

fonte: developer.android.com

Page 30: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 30/105

Resumo de https://developer.android.com/guide/components/fundamentals.html

Page 31: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 31/105

Os “aplicativos” são feitos na linguagem Java. Para desenvolver é necessário o SDK Android que compila e gera um Android Package

(.apk).

Page 32: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 32/105

Os “apps” são adaptáveis em “tempo de execução” a vários tamanhos de telas, se tiver vários XML de layout de tela, e

configurações de hardware (como presença/ ausência giroscópio, câmera, gps…).

Page 33: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 33/105

Cada “apps” rodando tem um ID de processo diferente sobre o Linux e um JVM própria, por isso isolando os componentes e evitando

conflito de apps (princípio do privilégio mínimo).

Page 34: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 34/105

Os “apps” são baseados e desenvolvidos orientados à “componentes”, definidos como subclasses, que podem trabalhar

individualmente ou em conjunto, e a conexão de componentes é por “intenção”.

Page 35: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 35/105

O sistema operacional e os padrões de desenvolvimento, idealizam o reaproveitamento de componentes, evitando redundância.

Page 36: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 36/105

Quando um aplicativo requer o uso de um recurso, e já existe um componente que pode entregar este recurso, o aplicativo, via

componente, envia uma intenção de uso ao Android solicitando o recurso de um outro componente, se havendo a possilibidade, o

recurso é entregue.

Page 37: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 37/105

As intenções por padrão são implícitas, sem definir qual mas sim quais tipos de componentes lhe são úteis. Assim se uma aplicação pede um recurso, e se existente mais de um componente que pode

entregar tal recurso, o usuário seleciona qual “aplicação” que irá usar pra entregar o recurso a aplicação inicial.

Page 38: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 38/105

As “comunicações” entre componentes são em “tempo de execução”, via processos individuais, e direcionadas a um

componente em específico ou só ao tipo dele via intenções.

+https://developer.android.com/guide/components/intents-filters.html

Page 39: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 39/105

4 tipos de componentes, sendo os 3 primeiros ativados por object intent, o outro pode ser 1 por aplicativo*

Page 40: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 40/105

4.1 Activity: foca na interação com o usuário, logo a interface de cada de ação. Um único app pode ter vários componentes de atividades, que

podem ser compartilhadas (entre sí ou outros apps).

Page 41: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 41/105

4.2Service: realiza a entrega para o usuário, sem a necessidade de

uma interface diretamente. Roda em background (segundo plano) podendo manter-se ou não vinculada a uma atividade e/ou se ligar a

outras que sejam iniciadas posteriormente.

+https://developer.android.com/guide/components/services.html

Page 42: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 42/105

4.3BroadcastReceiver: Fazem as notificações internamente no Android, enviando ou recebendo dados para uma mesma, ou outra aplicação, de acordo com alguma condição. Podem ou não, gerar notificação

para o usuário. Sempre vinculado a outros componentes.

Page 43: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 43/105

4.4ContentProvider: Compartilham e gerenciam o conteúdo do

aplicativo, lendo e gravando dados no local de persistência indicado (dado, SQLite, cartão, nuvem…)

+https://developer.android.com/guide/topics/providers/content-providers.html

Page 44: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 44/105

Todo aplicativo Android tem o AndroidManifest.xml, onde estão informados as compatibilidades de dispositivos, recursos externos necessários pra execução, definições e requisitos dos aplicativos

que também devem ser mencionados ao “publicar” algo em uma loja de aplicativos...

Page 45: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 45/105

… e lista todos os componentes necessários pra aplicação funcionar, indexando tipos, intenções e portanto é lido a cada chamada ao

aplicativo ou a um componente para verificar se o mesmo é necessário.

Page 46: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 46/105

Também lista e identifica: os usuários e permissões, as API e seus níveis (versões Android) com suas respectivas bibliotecas, os

recursos de hardware e software necessários, outras informações pertinentes como versão, desenvolver, licença…

Page 47: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 47/105

… e por fim

Escalonamento padrão é pilha, setado através das indentações nas Activities, sendo uma destas a “principal” que substitui a ideia de um

procedimento “main”.

Page 48: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 48/105

E ai do mundo

Atenção a API Level, tamanho de tela e recursos (hw, sw, língua)

Mesma aplicação pode dar suporte a estes tipos, reconhecendo em run-time as especificações do app, mas tem que estar res/

Ciclo de vida da atividade é importantehttps://developer.android.com/training/basics/activity-

lifecycle/index.html (tá pt_br)

Page 49: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 49/105

Ciclo de vida da atividade é importantehttps://developer.android.com/training/basics/activity-lifecycle/index.html (tá pt_br)

Page 50: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 50/105

Tutorial Introdução

https://developer.android.com/training/basics/firstapp/index.html

Page 51: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 51/105

Tutorial Fragmentos

https://developer.android.com/training/basics/fragments/index.html

Page 52: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 52/105

http://www.cyanogenmod.org/

+400 modeloshttps://wiki.cyanogenmod.org/w/About

https://wiki.cyanogenmod.org/w/Main_Page

Page 53: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 53/105

http://www.replicant.us/

Nexus S (I902x) Galaxy S (I9000) Galaxy S 2 (I9100) Galaxy Note (N7000) Galaxy Nexus (I9250) Galaxy S 3 (I9300) Galaxy Note

(N7000) Galaxy Note 2 (N7100) Galaxy Tab 2 10.1 (P51xx) Galaxy Tab 2 7.0 (P31xx) Galaxy Tab 2 10.1 (P51xx) Galaxy Tab 2 10.1

(P51xx) Uncompleted devices GTA04 Unmaintained devices Dream/Magic Nexus One

Page 54: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 54/105

https://www.tizen.org/

Mobile + Wearable + TV + IVI

https://source.tizen.org/https://www.tizen.org/about/about-linux-foundation

Android + HTLM5 +Jquery + Bada + Cordova + River Trail

Page 55: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 55/105

https://cordova.apache.org/Fonte: Loiane Groner

Page 56: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 56/105

Fonte: Loiane Groner

Page 57: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 57/105

Fonte: Loiane Groner

Page 58: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 58/105

Fonte: Loiane Groner

Page 59: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 59/105

Fonte: Loiane Groner

Page 60: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 60/105

Fonte: Loiane Groner

Page 61: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 61/105

Fonte: Loiane Groner

Page 62: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 62/105

Fonte: Loiane Groner

Page 63: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 63/105

https://cordova.apache.org/

Page 64: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 64/105

https://cordova.apache.org/

Page 65: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 65/105

https://cordova.apache.org/

Page 66: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 66/105

https://cordova.apache.org/

Page 67: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 67/105

https://cordova.apache.org/

Page 68: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 68/105

jQuery é uma biblioteca JavaScript cross-browser desenvolvida para simplificar os scripts client side que interagem com o HTML.[1] … Usada por cerca de 77% dos 10 mil sites mais visitados do

mundo, jQuery é a mais popular das bibliotecas JavaScript.[2] [3] ... A sintaxe do jQuery foi desenvolvida para tornar mais simples a navegação do documento HTML, a seleção de elementos DOM, criar animações, manipular eventos e

desenvolver aplicações AJAX. A biblioteca também oferece a possibilidade de criação de plugins sobre ela. Fazendo uso de tais

facilidades, os desenvolvedores podem criar camadas de abstração para interações de mais baixo nível, simplificando o

desenvolvimento de aplicações web dinâmicas de grande complexidade.

https://pt.wikipedia.org/wiki/AJAX_(programa%C3%A7%C3%A3o)

Page 69: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 69/105

Ajax (acrônimo em língua inglesa de Asynchronous Javascript and XML[1] , em português "Javascript e XML Assíncrono") é o uso

metodológico de tecnologias como Javascript e XML, providas por navegadores, para tornar páginas Web mais interativas com o

usuário, utilizando-se de solicitações assíncronas de informações. Foi inicialmente desenvolvida pelo estudioso Jessé James Garret

e mais tarde por diversas associações. Apesar do nome, a utilização de XML não é obrigatória (JSON é frequentemente

utilizado) e as solicitações também não necessitam ser assíncronas[2] .

https://pt.wikipedia.org/wiki/AJAX_(programa%C3%A7%C3%A3o)

Page 70: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 70/105

JSON (com a pronúncia ['d ejz n], J-son em inglês, (Jay-son)), um ʒ əacrônimo para "JavaScript Object Notation", é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da

notação de objeto de JavaScript, mas seu uso não requer JavaScript exclusivamente.[1] [2] O formato JSON foi originalmente criado por

Douglas Crockford e é descrito no RFC 4627. O media-type oficial do JSON é application/json e a extensão é .json.

A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX. Uma das

vantagens reivindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil

escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a

aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.https://pt.wikipedia.org/wiki/AJAX_(programa%C3%A7%C3%A3o)

Page 71: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 71/105

PhoneGap é uma plataforma para desenvolvimento de aplicativos móveis em código aberto. Ela se utiliza da tecnologia Apache Cordova

para acessar a funções dos aparelhos móveis como acelerômetro, câmera e geolocalização, e permite por meio de alguns que os

desenvolvedores criem aplicações utilizando HTML5, CSS3 e JavaScript sem a necessidade de depender de APIs específicas. Os aplicativos

criados são compatíveis com iOS, Windows Phone e Android.

https://pt.wikipedia.org/wiki/PhoneGap

Page 72: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 72/105

PhoneGap is Adobe’s productized version and ecosystem on top of Cordova. Like PhoneGap, many other tools and frameworks are also

built on top of Cordova, including Ionic,[8] Monaca, TACO, the Intel XDK,[9] and the Telerik Platform.[10] These tools use Cordova, and not

PhoneGap for their core tools.

Contributors to the Apache Cordova project include Adobe, BlackBerry, Google, IBM, Intel, Microsoft, Mozilla, and others.[11]

https://en.wikipedia.org/wiki/Apache_Cordova

Page 73: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 73/105

https://pt.wikipedia.org/wiki/PhoneGap

Page 74: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 74/105

Dá até pra transformar site html5 -> app html5 -> app nativo :D

Page 75: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 75/105

https://cordova.apache.org/docs/en/latest/config_ref/index.htmlapp/www/config.xml

Page 76: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 76/105

www/index.html

Page 77: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 77/105

apt-get install npn :)https://nodejs.org/en/download/

Page 78: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 78/105

apt-get install npn :)https://nodejs.org/en/download/

Fonte: Rodrigo Branas

Page 79: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 79/105

apt-get install npn :)https://nodejs.org/en/download/

Fonte: Rodrigo Branas

Page 80: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 80/105

npm install -g cordovacordova create hello com.example.hello HelloWorld

cordova platform add ios --savecordova platform add android --save

cordova platform lscordova requirements

cordova buildcordova build ios

cordova build androidcordova emulate android

cordova run android

Page 81: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 81/105

https://cordova.apache.org/plugins/ (1382 result(s) found)cordova plugin search camera

cordova plugin add cordova-plugin-camera

Page 82: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 82/105

https://cordova.apache.org/docs/en/latest/plugin_ref/plugman.htmlnpm install -g plugman

plugman install --platform <ios|android|blackberry10|wp8> --project <directory> --plugin <name|url|path> [--plugins_dir <directory>] [--www

<directory>] [--variable <name>=<value> [--variable <name>=<value> ...]]

Page 83: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 83/105

https://netbeans.org/kb/docs/webclient/html5-gettingstarted_pt_BR.html

https://netbeans.org/kb/docs/webclient/cordova-gettingstarted_pt_BR.html

Page 84: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 84/105

npm install -g ionic

ionic start appnome blank

http://tableless.com.br/tutorial-ionic-meu-primeiro-app/

Page 85: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 85/105

http://www.cssreflex.com/2015/11/xamarin-vs-cordova-main-counterpoints.html/

Page 86: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 86/105

Publicando Google Play

Criar e validar uma conta de desenvolvedor

https://play.google.com/apps/publish/signup/Login com tua conta Google

Concordar e estar disposto a associar o meu registo de conta ao Contrato de Distribuição para Programadores do Google Play.

Pagar 25 dolares

Enviarhttps://play.google.com/apps/publish/ "Produção", "Beta" ou "Alfa"

Page 87: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 87/105

Configurar testes Alfa/Beta na Google Play Developer ConsoleEnviar APK como Teste e vai pra testadores (até 20 listas de 2 mil)

As versões Beta abertas e fechadas do seu app não terão avaliações públicas.

Google recomenda um Alfa fechado e um Beta aberto.Fechado vai link via Google (CSV ou manual), Aberto na Google Play

“O relatório de pré-lançamento no seu Google Play Developer Console identifica falhas, problemas de exibição e vulnerabilidades de

segurança.”

Versões novas em teste não derrubam a de produção.

Ainda tem lançamento gradual, via porcentagem aleatória

Page 88: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 88/105

Fonte: Loiane groner

Page 89: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 89/105

Facilitando

http://fabricadeaplicativos.com.br/

http://www.appmachine.com/pt-pt/

http://www.apps-builder.com/pt/home

http://pt.goodbarber.com/

http://www.shoutem.com/

https://www.easyeasyapps.net/

http://webrobotapps.com/

Page 90: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 90/105

Mais links

http://appinventor.mit.edu/explore/

http://zeptojs.com/

http://handlebarsjs.com/

https://software.intel.com/pt-br/intel-xdk

Page 91: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 91/105

Detalhes de divulgação da Google Play X Apple AppStore

Avaliações de todas as versões X Avaliações do app, atualizou zerouTítulo com 30 caracteres X Título com 255 | keywords ambos

8 screenshots atualizáveis aloca X 5 screenshots só em nova versãoMais texto e vídeo de minutos X Menores e 100 palavras chave

Pagou entrou X Pagou, revisam e ai entram~Maioria grátis X ~Maioria pago (90% entre US$ 0,99 e 1,99)

Maioria usuários BRICS X Maioria USMais downloads X Mais rentabilidade

Page 92: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 92/105

http://corporate.canaltech.com.br/noticia/desenvolvedores/quanto-os-desenvolvedores-ganham-por-cada-aplicativo-criado-9931/

Page 93: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 93/105

http://www.w3schools.com/html/html5_intro.asp

HTML5 API's (Application Programming Interfaces) HTML Geolocation HTML Drag and Drop HTML Local Storage HTML Application Cache HTML Web Workers HTML SSE

HTML5 Elementssemantic elements like <header>, <footer>, <article>, and <section>.form control attributes like number, date, time, calendar, and range.graphic elements: <svg> and <canvas>.multimedia elements: <audio> and <video>.

Page 94: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 94/105

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Title of the document</title></head>

<body>Content of the document......</body>

</html>

fonte: loiane groner

Page 95: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 95/105

<!DOCTYPE html><html><head> <script>document.createElement("myHero")</script> <style> myHero { display: block; background-color: #dddddd; padding: 50px; font-size: 30px; } </style></head><body><h1>A Heading</h1><p>A paragraph.</p><myHero>My Hero Element</myHero></body></html>

fonte: loiane groner

Page 96: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 96/105

Accelerationfunction onSuccess(acceleration) { alert('Acceleration X: ' + acceleration.x + '\n' + 'Acceleration Y: ' + acceleration.y + '\n' + 'Acceleration Z: ' + acceleration.z + '\n' + 'Timestamp: ' + acceleration.timestamp + '\n');};!function onError() { alert('onError!');};!navigator.accelerometer.getCurrentAcceleration(onSuccess,onError);

fonte: loiane groner

Page 97: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 97/105

Capturar Fotofunction capturePhoto() {navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,destinationType: destinationType.DATA_URL });}

Capturar Foto com Ediçãofunction capturePhotoEdit() {navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 20,allowEdit: true,destinationType: destinationType.DATA_URL });}

Busca Foto do Dispositivofunction getPhoto(source) {navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,destinationType: destinationType.FILE_URI,sourceType: source });}<button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">Biblioteca</button><br><button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">Album de Fotos</button>

fonte: loiane groner

Page 98: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 98/105

Compass/Bússulafunction onSuccess(heading) {alert('Heading: ' + heading.magneticHeading);};!function onError(error) {alert('CompassError: ' + error.code);};!navigator.compass.getCurrentHeading(onSuccess, onError);

fonte: loiane groner

Page 99: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 99/105

Conexãofunction checkConnection() {var networkState = navigator.connection.type;!var states = {};states[Connection.UNKNOWN] = 'Unknown connection';states[Connection.ETHERNET] = 'Ethernet connection';states[Connection.WIFI] = 'WiFi connection';states[Connection.CELL_2G] = 'Cell 2G connection';states[Connection.CELL_3G] = 'Cell 3G connection';states[Connection.CELL_4G] = 'Cell 4G connection';states[Connection.NONE] = 'No network connection';!alert('Connection type: ' + states[networkState]);}!checkConnection();

fonte: loiane groner

Page 100: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 100/105

Propriedades do Dispositivofunction onDeviceReady() {var element = document.getElementById('deviceProperties');!element.innerHTML = 'Device Name: ' + device.name + '<br />' +'Device Cordova: ' + device.cordova + '<br />' +'Device Platform: ' + device.platform + '<br />' +'Device UUID: ' + device.uuid + '<br />' +'Device Model: ' + device.model + '<br />' +'Device Version: ' + device.version + '<br />';}

fonte: loiane groner

Page 101: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 101/105

In App Browservar ref = window.open('http://loiane.com', '_blank', 'location=yes');ref.addEventListener('loadstart', function() { alert('start: ' + event.url); });ref.addEventListener('loadstop', function() { alert('stop: ' + event.url); });ref.addEventListener('exit', function() { alert(event.type); });

fonte: loiane groner

Page 102: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 102/105

Notification - Alertnavigator.notification.alert('Alerta!', // messagealertDismissed,// callback'Titulo',// title'Botão'// buttonName);

fonte: loiane groner

Page 103: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 103/105

Notification - Confirmfunction showConfirm() {navigator.notification.confirm('Confirmar?', // messageonConfirm,// callback to invoke with index of button pressed'Titulo',// title'OK,Cancel'// buttonLabels);}

fonte: loiane groner

Page 104: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 104/105

Notification - Beep// Beepa 3 vezesfunction playBeep() {navigator.notification.beep(3);}Não funciona no iOS

fonte: loiane groner

Page 105: Apps Android e Hibridas

CC BY-SA [email protected] || fb.com/luizrauber 105/105

Notification - Vibrar// Vibra por 2 segundosfunction vibrate() {navigator.notification.vibrate(2000);}

fonte: loiane groner