quinta-feira, 4 de junho de 2015

Frameworks para Desenvolvimento

Segundo SMUTNÝ (2012), os frameworks de desenvolvimento móvel apresentam características em comum:
- Suporte a várias plataformas, que permite maior abrangência do aplicativo aos usuários;
- Aplicativos leves, devido à necessidade de transferência de dados via bandas de internet limitadas;
- Otimização para funcionalidade touchscreen, onde é necessário adaptar o design da aplicação para não considerar cursores de mouse, bem como tratar eventos especialmente para dispositivos móveis;
- Utilização de HTML5 e CSS3, pois são padrões compatíveis com a maioria dos navegadores móveis.

PhoneGap

PhoneGap, também conhecido como Cordova, é uma ferramenta open source para desenvolvimento multiplataforma baseada em HTML5, CSS3 e Javascript. Aplicativos móveis criados com esta ferramenta são executados simulando o ambiente nativo de cada plataforma. Esta funcionalidade deve-se à utilização de APIs que possibilitam o acesso aos recursos dos dispositivos. Para recursos específicos em certos dispositivos, que não são atendidos via APIs existentes, há a possibilidade de criação de plugins para comunicação entre a ferramenta e o componente nativo. Este encapsulamento das aplicações nos ambientes nativos possibilita também a distribuição dos aplicativos nas lojas virtuais.

O desenvolvimento de aplicativos utilizando o Cordova pode ser realizado em dois fluxos distintos de trabalho: centralizado em uma plataforma específica ou multiplataforma. O desenvolvimento centralizado é indicado quando o aplicativo necessita de codificação específica em funcionalidades da plataforma utilizada, tornando-se de baixo nível. Na grande maioria das vezes, esta codificação é realizada no próprio SDK da plataforma. O desenvolvimento multiplataforma não é indicado para este tipo de fluxo de trabalho, pois a codificação torna-se específica por plataforma. Neste caso seria necessária a criação de plugins para integração de cada plataforma, e a realização de compilações distintas.

Para o desenvolvimento multiplataforma, a ferramenta disponibiliza um utilitário chamado Cordova CLI. O CLI permite abstrair os comandos específicos para acesso aos recursos, tornando-se uma ferramenta de programação de alto nível. As customizações necessárias são realizadas automaticamente pelo CLI. Este utilitário copia os comandos padrões para pastas específicas criadas cada plataforma, ajusta a compatibilidade do código conforme a necessidade, e gera os respectivos arquivos para execução.

Para uma plataforma ser atendida pelo CLI, é necessário que seu respectivo SDK esteja instalado no computador em que será desenvolvido o aplicativo. É importante considerar que a compilação dos programas para algumas plataformas depende diretamente do SO instalado na máquina utilizada para o desenvolvimento.

Para utilização do CLI é necessária à instalação de dois outros programas: Node.js e um cliente Git (PHONEGAP, 2014). O Node.js é uma ferramenta baseada em Javascript, que permite a criação de conexões de rede não bloqueantes ao servidor. É orientada a eventos, o que a torna leve e eficiente, indicada para aplicações com grande quantidade de conexões simultâneas (NODE.JS, 2014). Git é um sistema para controle de versionamento de código.
Apresenta código aberto e é indicado para controle de projetos com grande velocidade (GIT, 2014).

Appcelerator

Appcelerator, também conhecido como Titanium, é uma ferramenta de desenvolvimento open source, que permite a criação de aplicativos móveis nativos e híbridos com a utilização de HTML5. Possui suporte para os ambientes iOS, Android e BlackBerry. (APPCELERATOR, 2014).

Adobe AIR

O Adobe AIR é formado pelo conjunto de duas outras ferramentas, Flex e Adobe Flash Builder, adaptadas para o desenvolvimento móvel. A programação é realizada em Flex e a depuração e o encapsulamento com o Flash Builder. É uma ferramenta paga e suporta as plataformas Android, iOS e BlackBerry Tablet OS (ADOBE, 2014).

Sencha

Sencha Touch é uma ferramenta para desenvolvimento móvel baseado em HTML5, CSS3 e Javascript, que possui suporte às plataformas Android, iOS, Windows Phone, Microsoft Surface Pro e RT, e BlackBerry.

Permite o desenvolvimento de aplicativos que respondam às requisições do usuário e trocas de layout de forma instantânea. O tratamento visual dos aplicativos conta com animações e rolagem de tela suaves, com alta precisão de imagem. Para cada dispositivo, o framework seleciona a melhor forma de rolagem da tela, ampliando a experiência do usuário na utilização dos aplicativos. Estão disponíveis também, temas pré-definidos para utilização nas plataformas iOS, Android, BlackBerry e Windows Phone.

Juntamente com a utilização da ferramenta, programas complementares necessitam ser instalados, atendendo assim todas as funcionalidades possíveis. São necessários o Sencha Cmd, disponibilizado pela mesma empresa, o Java Runtime Environment (JRE) para a execução do Sencha Cmd, e o Ruby para compilar informações CSS utilizadas. Quando realizado um aplicativo Android em Windows, também é necessária a instalação do Java SDK.

Sencha Cmd é uma ferramenta de linha de comando multiplataforma que fornece tarefas automatizadas e recursos para economia de tempo de desenvolvimento em aplicações criadas pelo Sencha Touch. Alguns exemplos de recursos disponíveis são: ferramenta de geração de código, servidor Web para manter dos arquivos do localhost e encapsulamento nativo, para as aplicações possuírem acesso aos recursos dos dispositivos e distribuição nas lojas virtuais. Sua utilização está disponível para Windows, Mac OS X e Linux.

Ao compilar e empacotar aplicativos desenvolvidos com o Sencha Touch há possibilidade de escolha do método mais adequado. No modo padrão da ferramenta, há a opção de compilação e criação de somente um pacote contendo os arquivos de todas as plataformas atendidas, ou realizar o processo separadamente para cada ambiente. Outra opção é a compilação e empacotamento compatíveis com os ambientes nativos, que fornece também o carregamento do simulador apropriado. O empacotamento nativo está disponível a partir da inicialização do PhoneGap ou Apache Cordova na execução do Sencha Touch.

Apache Cordova permite que sejam utilizados os recursos nativos e empacotamento para as plataformas Android, iOS, BlackBerry e Windows Phone. É a base para a criação do PhoneGap, estendendo suas funcionalidades ao framework (SENCHA TOUCH, 2014)

Qt

Qt disponibiliza ferramenta específica para desenvolvimento mobile, o Qt Mobile. É uma ferramenta para desenvolvimento de aplicativos nativos multiplataforma, baseada em C++. Atende somente as plataformas iOS e Android, e possui licenciamento pago (QT DIGIA, 2014).

Unity

Unity é uma ferramenta especializada em desenvolvimento de aplicativos 2D e 3D, mais especificamente jogos. Possui suporte para aplicativos desktop, Web, Android, iOS, Windows Phone 8 e BlackBerry 10 (UNITY, 2014). É uma ferramenta paga.

Corona

Ferramenta indicada para o desenvolvimento de aplicativos na área de jogos 2D, educação, negócios e eBooks. Utiliza como padrão, a linguagem Lua. Suporta as plataformas iOS e Android. O suporte à plataforma Windows Phone está em construção. É uma ferramenta paga (CORONA, 2014).

Mono

Mono é uma versão open source do framework .NET da Microsoft. Apresenta a linguagem C# para desenvolvimento e tem recebido apoio dos entusiastas da área para tornar-se a principal ferramenta para o desenvolvimento de aplicações Linux. Suporta as plataformas Android e iOS. Não disponibiliza encapsulamento para tornar os aplicativos híbridos (MONO, 2014).

Marmalade

Formado por um conjunto de ferramentas para desenvolvimento móvel que permitem o desenvolvimento de aplicativos, incluindo jogos, utilizando a linguagem C/C++. Possibilita a criação de aplicativos multiplataforma para dispositivos móveis, desktop, e Smart TV. Aplicativos híbridos escritos em HTML5, CSS3 e Javascript podem ser criados utilizando uma ferramenta em específico do pacote, a Web Marmalade. O framework possui suporte as plataformas Android, iOS e Windows Phone 8, entre outros. É uma ferramenta paga (MARMALADE, 2014).

MoSync

MoSync é uma ferramenta open source para desenvolvimento de aplicativos multiplataforma. Está dividido em duas funcionalidades: MoSync SDK e MoSync Reload. Apresenta licenciamento gratuito, com a condição que os aplicativos distribuídos sejam disponibilizados para os demais usuários MoSync, com abertura de código. Para os desenvolvedores/empresas que não desejam tornar público seu código, há a opção de aquisição de licenças anuais para distribuição dos aplicativos.

MoSync SDK é uma IDE para desenvolvimento nas linguagens C/C++ ou HTML5/ Javascript, ou uma combinação das duas. Suporta nove plataformas, entre elas, Android, iOS e Windows Phone, permitindo que o código seja escrito somente uma vez e empacotado no formato de cada plataforma. A utilização de APIs permite que sejam acessados recursos nativos dos dispositivos, como gráficos, localização e câmera, entre outros.

Para aplicativos escritos em HTML5, juntamente com Javascript e CSS, a ferramenta disponibiliza emuladores para as plataformas Android e Windows Phone, onde é necessária a instalação e seus respectivos SDKs. Para o iOS, é disponibilizado um simulador que deve ser utilizado no sistema operacional OS X, com o Xcode instalado.

O MoSync Reload permite que aplicativos em HTML5, Javascript e CSS escritos em qualquer IDE ou editor de texto sejam recarregados de forma instantânea em todos os emuladores ou dispositivos em que estejam vinculados. Possui compatibilidade com as plataformas Android, iOS e Windows Phone 7. É formado pelo Reload Server, que deve ser executado na máquina em que as aplicações serão salvas, tornando-se o servidor dos aplicativos; Reload Client, um cliente que deve ser instalado em todos os emuladores e dispositivos que estarão vinculados ao servidor; e por fim o Reload Development UI, que é a interface instalada juntamente com o Reload Server, para controle das aplicações instaladas (MOSYNC, 2014).


Fontes:

ADOBE. Disponível em: <http://www.adobe.com/devnet/devices/mobile-apps.html>. Acesso em 08/06/2015.

APPCELERATOR. Disponível em: <http://www.appcelerator.com/titanium/>. Acesso em 08/06/2015.

BASSOTTO, Helena. DESENVOLVIMENTO DE UM PROTÓTIPO DE APLICATIVO MÓVEL UTILIZANDO FERRAMENTA MULTIPLATAFORMA. Trabalho de Conclusão de Curso - Curso de Ciências da Computação, Universidade de Caxias do Sul, Caxias do Sul

CORONA. Disponível em: <http://coronalabs.com/>. Acesso em 08/06/2015.

GIT. Disponível em: <http://git-scm.com/>. Acesso em 08/06/2015.

SENCHA TOUCH. Disponível em: <http://www.sencha.com/products/touch/>. Acesso em 08/06/2015.

MARMALADE. Disponível em: <https://www.madewithmarmalade.com/>. Acesso em 08/06/2015.

MONO. Disponível em: <http://mono-project.com/Main_Page>. Acesso em 08/06/2015.

MOSYNC. Disponível em: <http://www.mosync.com/>. Acesso em 08/06/2015.

PHONEGAP. Disponível em: <http://phonegap.com/>. Acesso em 08/06/2015.

QT DIGIA. Disponível em: <http://qt.digia.com/>. Acesso em 08/06/2015.

SMUTNÝ, Pavel. Mobile development tools and cross-platform solutions in 13th International Carpathian Control Conference (ICCC), 2012.

UNIT. Disponível em: <http://unity3d.com/>. Acesso em 08/06/2015.




Um comentário:

  1. Eu conheço o Unity e acho uma baita ferramenta, o unico problema é que ela possui uma curva grande de aprendizado por conta da parte de modelagem/animação, tanto 2D quanto 3D.
    Só ressaltar que ela possui uma versão gratuita.

    Thales Pandolphi.

    ResponderExcluir