Publicidade

Anuncios Google

sexta-feira, 19 de setembro de 2014

TchêLinux 2014 - Introdução a aplicativos híbridos com o Phonegap

Smatphones e Tablets:

Foto1142 (4).jpg
Foi apresentado uma introdução ao mundo dos aplicativos híbridos, onde vimos um exemplo de aplicativo, exemplo desenvolvido na plataforma Phonegap; Conversão monetária, que consulta diretamente a pagina do banco central. 


A tivemos uma base esclarecedora sobre as diferença dos aplicativos e aplicações em 


Nativas 

Server Side Web

Cliente Side Web

Hibridas



Abaixo vou tentar transmitir um pouco do que eu aprendi, do decorrer da palestra acrescentando uma pitadela de pesquisas feitas por mim na web.

Primeiro temos que entender que temos dois tipos de mobiles os Smarth Phones e Os Tablets beleza até ai tudo bem, mas esses dois produtos 


“Dispositivos” são fabricados por uma gama incontável de fabricantes desde de Apple, Samsung e Black Barry, que são as pioneiras na fabricação deste tipo de produto, que agora é desenvolvido até pela CCE, o que é um absurdo!!
Bom a partir dai temos que entender que alguns desses fabricantes tem seu próprio sistema operacional e outros não vamos começar por ai pelos sistemas 

operacionais mobiles e depois vamos nos aprofundar nos aplicativos para mobile. 




Atualmente, com o grande número de sistemas operacionais para dispositivos móveis, os desenvolvedores tem encontrado uma difícil decisão: construir aplicativos direcionados para um determinada plataforma ou construir aplicativos genéricos, na web, que podem ser utilizados por qualquer dispositivo. 

Ambas as abordagens possuem vantagens muito claras, e obviamente, desvantagens. 

O que o desenvolvedor precisa descobrir ainda na época de projeto, é como a aplicação irá ser desenvolvida, e, baseando-se nessas informações, tomar a melhor decisão de projeto. 

É importante notar que esse não é um debate sobre qual abordagem irá vencer, ou deverá vencer, a batalha pelo mercado. 

Sistemas operacionais disponíveis no mercado atualmente:

Mac OSX - iPhones
Symbian
Android
BlackBerry - RIM
Windows Mobile
Palm webOS
MeeGo
Brew MP
Firefox OS

Acabo de perceber que a matéria sobre, está palestra vai gerar uma outra matéria sobre sistemas operacionais para Dispositivos moveis.

Desenvolvimento para sistemas operacionais móveis
Esse termo, desenvolvimento para sistemas operacionais móveis, é muito comum de ser utilizado nos últimos tempos para aplicações nativas. 

Isso se dá porque não se trata de um sistema totalmente móvel, pelo fato de só funcionar em um tipo de dispositivo. Nos dias de hoje, as aplicações realmente móveis são construídas, geralmente, em um misto de HTML5, JavaScript e CSS, o que significa que são aplicações preparadas para serem executadas como uma página web.

Nos dias atuais, existem diversos sistemas operacionais para dispositivos móveis, com diferentes fatias de mercado e diferentes métodos de desenvolvimento. 

O principal deles é, sem dúvida, o Google Android, sistema de código aberto da Google que está presente em grande parte dos smartphones hoje em dia. 

Outro sistema operacional com uma fatia interessante do mercado é o iOS, da Apple. Porém para desenvolver para Apple você precisa de um certificado, um registro, uma chave key fornecida pela mesma, confirmando que você é um developper Apple, autorizado.

Por fim, é interessante destacar o Windows Phone, que vem tendo um crescimento constante nos últimos anos, e é a aposta da gigante Microsoft nessa briga dentro do mercado. Graças a aquisição da Nokia, convenhamos que o Windows Phone cumpre o seu propósito é um bom sistema operacional para Smarth Phone 


É interessante ressaltar que o crescimento do Windows Phone tem sido uma constante, e, como tal, sua fatia de mercado nos dias de hoje é muito maior.

Essa é uma informação para os desenvolvedores pensarem. 

Existem cerca de 18,1% de dispositivos que possuem sistemas operacionais não tão comuns, que fogem um pouco do mundo Android, iOS e Windows Phone. 

E a tendência futura, ainda, é que o número de SOs móveis aumente. 

O que, para os desenvolvedores, significa uma tarefa um tanto quanto árdua de criação de dispositivos para tantas plataformas.
A grande vantagem das aplicações nativas de um sistema operacional é a capacidade que as mesmas possuem de se comunicar com os dispositivos do aparelho, como câmera, acelerômetro, entre outros. 

Isso faz com que a aplicação fique mais completa. Por isso que é importante saber de antemão tudo o que a sua aplicação irá utilizar. 

O planejamento, quando construímos uma aplicação móvel, é tão ou mais importante que o código que será utilizado pela mesma. Além desses detalhes, as aplicações móveis normalmente precisam lidar com questões de aproveitamento de energia, para não gastar muita bateria, e também com a potência, para que o aparelho não superaqueça.

Caso a decisão seja pela construção de uma aplicação móvel nativa para cada um dos sistemas operacionais, é preciso um pouco mais de estudo também. 

Isso se dá pelo fato de que cada um dos sistemas utilizam uma linguagem de programação diferente, bem como possuem um modelo diferente de exibição. 


O Windows Phone, por exemplo, utiliza aplicações Metro Style, um conceito criado pela Microsoft recentemente que foi a base para o Windows Phone e também para o Windows 8



Foto1145.jpg
Eduardo Erlo TchêLinux 2014
Para quem quer desenvolver aplicativos para dispositivos moveis tem que entender que são 4 categorias de aplicativos:

Nativas 
Server Side Web
Cliente Side Web
Hibridas




Vamos tentar conhecer uma pouco mais de cada uma:



Nativas 

Aplicativo Nativo

É a abordagem mais simples e direta: para cada plataforma é desenvolvida uma versão do aplicativo.

O grande benefício desta abordagem é a melhor experiência de interface e comportamento obtida. 

Os aplicativos móveis requerem excelentes experiências de uso na interface e comportamento para se destacarem e obterem a atenção do usuário. 

E a experiência de uso não é portável de uma plataforma para outra. 
Ela deve ser repensada e construída do zero a cada plataforma em que o aplicativo é criado. 

Um simples exemplo pode ser visto na posição das abas: no iOS, as abas se posicionam abaixo do conteúdo;  enquanto no Android, acima. 

Apresentando maior diferença, o Windows Phone as “abas” estão todas em um mesmo plano, sendo acessadas deslocando o conteúdo horizontalmente.
Cada uma das plataformas possui suas convenções sobre interfaces e comportamentos. Essas convenções auxiliam ao usuário a rapidamente compreender a utilização do aplicativo, já que ele é habituado com a plataforma onde todos os aplicativos seguem os mesmos padrões de interface e comportamento.

As capacidades de cada dispositivo e plataforma também são acessíveis sem restrições.  

A cada nova versão da plataforma, novas bibliotecas são adicionadas, tornando possível ou facilitando o desenvolvimento de vários recursos pelos aplicativos. 

Essas versões são liberadas em uma alta frequência, uma por ano ou mais, e geralmente coincidem com a chegada de novos aparelhos cujo hardware aproveita todos essas novas capacidades. 

Os usuários desses novos aparelhos requererão os novos recursos o mais breve possível, e utilizando o desenvolvimento nativo é possível satisfazemos mais facilmente  (versões betas são liberadas anteriormente para os desenvolvedores).

encarecendo projeto.bmp
O desenvolvimento nativo também conta com uma documentação mais abrangente e completa, e a busca por soluções ou resolução de problemas é facilitada, já que a maioria dos desenvolvedores opta por essa alternativa.

Apesar de todas as vantagens, essa abordagem pode ter um alto custo. 

Construir n versões do mesmo aplicativo para variadas plataformas geralmente multiplica o custo do projeto na mesma taxa. 















Os arquivos resultantes da compilação do aplicativo devem ser instalados diretamente no sistema operacional, tais como apresentação, processamento e armazenamento de dados.

É possível a manipulação de dados off-line, ou seja, armazenados em um banco de 
dados no próprio aparelho, o que permite ao software nativo continuar funcionando mesmo em localidades onde não há acesso a internet. 

O hardware presente no dispositivo pode ser melhor utilizado, como o telefone, câmera, microfone, bluetooth e acelerômetro, pode tornar-se mais útil, fácil e interativo com esses tipos de aplicativos. 

Outro ponto positivo é a melhor experiência com o usuário, ao se desenvolver nativamente pode-se explorar recursos mais avançados aos usuários, como a tela sensível ao multi-toque e efeitos visuais dos componentes da aplicação. 

Em geral os jogos para smartphones são desenvolvidos com esta finalidade.

Na maioria das vezes o poder de processamento dos aparelhos móveis são bem utilizados em aplicações específicas para a plataforma, permitindo assim a um rápido tempo de resposta levando a mais agilidade no uso destes aplicativos. 

Também é possível o acesso aos dados presentes no aparelho, como por exemplo: a agenda telefônica, câmera e outros aplicativos, possibilitando a integração entre as aplicações existentes no aparelho.
Desenvolver software específico requer linguagem de programação específica como 
Objective-C na plataforma iOS da Apple, Java na plataforma Android do Google ou C# na plataforma Windows Phone da Microsoft, o que pode tornar o investimento mais alto no início do projeto por exigir treinamento para as plataformas selecionadas e a consequente duplicação da mesma aplicação em ambas plataformas. 



Outro exemplo de dificuldade em se desenvolver este tipo de aplicativo está relacionada com a distribuição entre os usuários e as atualizações de versões. 

Mobile Application Development

De modo a compreendermos a arquitectura multiplataformas temos que primeiro compreender os tipos de estratégias usadas no desenvolvimento de aplicações para dispositivos móveis.


Native Apps


Aplicações desenvolvidas que são específicas de uma determinada plataforma. Estas aplicações são desenvolvidas usando código nativo “sdks” e terão um código muito relacionado com a plataforma sobre a qual foram escritas.

Aplicativos Nativos: Isso pode entregar um desempenho melhor, mas requer uma versão diferente (cara) para cada S.O.







Server Side Web

Linguagem server-side

A linguagem de servidor, ou Server-side scripting, é a linguagem que vai rodar "por trás dos panos", fornecendo a lógica principal da aplicação. 

Funciona da seguinte maneira: sempre que o usuário faz um HTTP request (entra numa página, clica num link, etc), o pedido é enviado para o servidor. 

A linguagem server-side recebe o requerimento (Request) e faz o processamento. 

Depois, transforma o resultado final em um XHTML e envia para o navegador. 


É a linguagem server-side que vai verificar se o usuário está logado, vai buscar informações no banco de dados e

Como a linguagem server-side processa as requisições antes de enviar para o navegador, isso significa que uma vez que a página foi enviada ao navegador do usuário, não há mais nada que a linguagem server-side possa fazer até que um novo "Request"seja enviado. 


Ou seja, não é possível usar estas linguagens para manipular a página do usuário em tempo real. Para o usuário, a linguagem server-side não importa, e ele nem tem como descobrir qual linguagem está sendo usada.
Exemplos de Linguagens Server-Side
PHP
ASP
.NET
Oracle
Perl
Java
Aptana
Django
Ruby on Rails
Smalltalk
ColdFusion
Lotus Domino
Websphere


Leia a 2ª parte da matéria clicando aqui




Links Fontes:

http://www.devmedia.com.br/aplicacoes-moveis-nativas-ou-web/30392 

http://www.teclogica.com.br/blog/desenvolvimento-para-dispositivos-moveis-nativo-x-cross-platform/ 

http://www.cpgls.ucg.br/7mostra/Artigos/AGRARIAS%20EXATAS%20E%20DA%20TERRA/Desenvolvimento%20em%20Smartphones%20-%20Aplicativos%20Nativos%20e%20Web.pdf 

http://developer.nokia.com/community/wiki/Arquitetura_de_aplica%C3%A7%C3%B5es_multiplataforma_para_dispositivos_m%C3%B3veis http://www-03.ibm.com/software/products/pt/category/mobile-application-development http://www.cin.ufpe.br/~tg/2003-1/vaab.PDF 

http://www.devmedia.com.br/turbinando-aplicacoes-com-rest-e-backbone-js/29692 

http://pt.wikipedia.org/wiki/Linguagem_server-side http://tecnologia.terra.com.br/internet/quotnosso-maior-erro-foi-apostar-em-html5quot-diz-zuckerberg,4b98201fd70ea310VgnCLD200000bbcceb0aRCRD.html 

http://www.midiatismo.com.br/midias-sociais/mark-zuckerberg-fala-sobre-erros-acertos-e-rumores-no-techcrunch-disrupt-sf-2012 http://pt.stackoverflow.com/questions/1630/afinal-phonegap-apache-cordova-realmente-compila-as-aplica%C3%A7%C3%B5es-em-puro-c%C3%B3digo 

http://pt.wikipedia.org/wiki/GitHub

Nenhum comentário:

Postar um comentário