hugodeiro.com
/hugodeiro
/hdeiro
/hdeiro
hugodeiro@gmail.com
/hdeiro
O smartphone é algo essencial para o nosso cotidiano.
Com ele, nos informamos, trocamos mensagens, nos divertimos, trabalhamos e realizamos mil e uma outras atividades.
Você já parou pra pensar que sua mãe e seu pai (talvez até seus avós) tem WhatsApp?
Detalhe: Esse print da matéria da Exame é de jun/2017. Ou seja, esse número provavelmente já aumentou muito.
É por consequência desse uso massivo que é necessário auxiliar o usuário na realização de suas tarefas.
É aí que entram os famigerados aplicativos
Nativo
WebApp
Híbrido
Um aplicativo nativo é aquele que é dedicado a um sistema operacional específico
Apesar da vantagem de ser mais performático, um app nativo só funcionará única e exclusivamente na plataforma para a qual ele foi desenvolvido
Hoje em dia, as plataformas mais famosas e utilizadas são Android e iOS
Uma WebApp não é um aplicativo real e não estará disponível nas lojas de aplicativos. Uma WebApp é, na realidade, um website que assume características e capabilities de um aplicativo
Apesar de serem um pouco menos performáticas que a aplicações nativas, as WebApps oferecem uma boa experiência ao usuário, sendo uma excelente opção para desenvolver um aplicativo por serem mais baratos e fáceis de desenvolver
Com os Progressive Web Apps (PWA), este tipo de aplicativo tem ganhado cada vez mais adeptos
Aplicativos Híbridos, como o nome sugere, são aplicativos que:
Na maioria das vezes, um aplicativo híbrido não é tão performático quanto o nativo, porém pode ser muito mais simples de desenvolver e manter.
Em contrapartida, aplicativos híbridos normalmente demandam o uso de frameworks, o que já tornam seu desenvolvimento um pouco mais complexo do que os WebApps.
Alguns exemplos de frameworks para o desenvolvimento de aplicativos híbridos:
O Apache Cordova é um framework open source que permite a criação de aplicativos móveis para múltiplas plataformas utilizando basicamente código HTML, CSS e JavaSCript
Ha, ha... Windows phone...
Originalmente, o framework foi originado a partir de uma outra ferramenta chamada Phonegap, criada pela Nitobi.
A Nitobi foi comprada pela Adobe em 2011. Algum tempo após a transação, a Adobe disponibilizou o código do Phonegap para a Apache Foundation, que, por sua vez, criou o Apache Cordova.
O Cordova foi desenvolvido utilizando JavaScript, Java, Objective C, C++, C# e Node.JS
Já houveram mais de 130 releases e o framework encontra-se na versão 8.x.x (estável) até o momento em que esta apresentação foi construída
Seu código fonte está disponível nos repositórios da Apache Foundation no Github
O funcionamento do Cordova se dá a partir da renderização do código-fonte produzido em HTML, CSS e JavaScript em uma WebView nativa que se comunica com recursos de hardware (câmera, bateria etc) a partir de plugins nativos
O framework segue um estilo arquitetural de Virtual Machine, onde há uma abstração dos componentes do Sistema Operacional e do próprio Cordova que podem se conectar das mais diversas formas
Criei um aplicativo para demonstração de algumas capabilities do Apache Cordova. Ele está disponível na Google Play
Todo seu código-fonte está disponível no Github
A entrega de push notification pode ser feita através de serviços como o OneSignal, que disponibilizam uma SDK para este fim
const facebookButton = $('#fb');
facebookButton.addEventListener('click', event => {
facebookConnectPlugin.login(
['email', 'public_profile'],
success => {
facebookConnectPlugin.api(
`/me?fields=email,name&access_token=${success.authResponse.accessToken}`,
null,
success => {
$('#fbResponse').innerHTML = `${JSON.stringify(success)}<img src="http://graph.facebook.com/${success.id}/picture?type=large" style="width:100%;">`;
body.classList.add('facebook-logged');
},
error => console.log(error)
);
},
error => console.log(error)
);
});
const facebookShareButton = $('#fbshare');
facebookShareButton.addEventListener('click', event => {
facebookConnectPlugin.showDialog({
method: "share",
href:'https://sdtimes.com/wp-content/uploads/2015/10/1001.sdt-apache-cordova.png',
name:'Testing post on facebook from Cordova App (name)',
message:'Testing post on facebook from Cordova App (message)',
caption: 'Testing post on facebook from Cordova App (caption)',
description: 'Testing post on facebook from Cordova App (description)'
}, function (response) {
console.log(response)
}, function (response) {
console.log(response)
});
});
const facebookLogoutButton = $('#fblogout');
facebookLogoutButton.addEventListener('click', event => {
facebookConnectPlugin.logout(success => {
console.log(success);
body.classList.remove('facebook-logged');
$('#fbResponse').innerHTML = ``;
}, error => {
console.log(error);
});
});
É possível integrar seu aplicativo Cordova com outros aplicativos instalados no seu celular.
Essa integração acontece através de plugins que viabilizam esta comunicação
Alguns exemplos:
cordova-facebook4
InAppBrowser
Uber-Cordova-Plugin
É possível acessar dados locais, como contatos registrados no celular, por exemplo. Vale lembrar que o exemplo abaixo utiliza o cordova-plugin-contacts
Plugin: phonegap-nfc
Plugin: cordova-plugin-bluetooth-serial
A apache disponibilizou uma série de plugins chamada "Cordova Core Plugins", que fazem as mais diversas funções, com acessar câmera, contatos, sensores, entre outros.
Além dos Core Plugins, existem vários outros feitos na comunidade (vale lembrar que Cordova é Software Livre). Porém, estes plugins não tem que obrigatoriamente funcionar em todas plataformas.
Vale tomar cuidado com a interface e em como se dá a interação com o usuário. Se você provê uma experiência ruim, não importa o quão bom seja seu app, na prática ele vai ser ruim.
Para quem não manja muito de design e tudo o mais, sugere-se seguir o Material Design e/ou o iOS Human Interface Guidelines
Dependendo do porte da aplicação, compensa bastante utilizar algum SPA-Framework como Angular em conjunto com o Cordova para facilitar um pouco o desenvolvimento e manutenção do app
Depois me digam o que acharam
hugodeiro.com
/hugodeiro
/hdeiro
/hdeiro
hugodeiro@gmail.com
/hdeiro