COMPARAÇÃO E AVALIAÇÃO DE FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS HÍBRIDAS

Documentos relacionados
Comparação e Avaliação de Frameworks Mobile Multiplataforma

IF Sudeste MG Notícias IF Sudeste MG News

GERADOR DE INTERFACES GRÁFICAS PARA IOS GABRIEL SEBASTIAN RAMIREZ JOYCE MARTINS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Faculdade de Tecnologia "Dep. Júlio Julinho Marcondes de Moura" RELATÓRIO FINAL DE INICIAÇÃO CIENTÍFICA

Introdução à Programação para Dispositivos Móveis

Uso da plataforma Ionic para Desenvolvimento de Aplicativo Móvel

ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO DE APLICATIVOS MÓVEIS MULTIPLATAFORMA

DESENVOLVENDO APLICAÇÕES MULTIPLATAFORMA PARA DISPOSITIVOS MÓVEIS UTILIZANDO IONIC E PHONEGAP

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

DESENVOLVIMENTO DE APLICATIVOS HÍBRIDOS BENEFÍCIOS E PROBLEMAS ENCONTRADOS NA UTILIZAÇÃO DESSAS TECNOLOGIAS

Programação para dispositivos móveis. Cassio Diego cassiodiego.com/m

Cross-platform Mobile Development Approaches: A Systematic Review

Desenvolvimento de um aplicativo na plataforma Android para realização de fichamento bibliográfico em dispositivos móveis: resultados iniciais

Curso online de Aplicações. Híbridas. Plano de Estudo

PROGRAMA DE RESIDÊNCIA HP/C.E.S.A.R. Desenvolvimento de Aplicações para Windows 8

Curso online de Fundamentos em Android. Plano de Estudo

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 24/09/2010. Carlos Eugênio Torres Engenheiro de Informática

CRIAÇÃO DE UM APLICATIVO DA USESKILL PARA O AMBIENTE MOBILE

Avaliação de Plataformas Híbridas para Desenvolvimento de Aplicações para Dispositivos Móveis

ESTRATÉGIAS INTELIGENTES PARA DESENVOLVIMENTO DE APLICATIVOS MOBILE MULTIPLATAFORMA

Sistema colaborativo para monitoramento de focos de Aedes aegypti

Vitrine de Projetos Sociais: aplicação colaborativa baseada em React Native e Firebase

CIDADÃO FISCAL: APLICATIVO PARA A ABERTURA E ACOMPANHAMENTO DE PROCESSOS NO SETOR DE OUVIDORIA DA PREFEITURA MUNICIPAL DE BLUMENAU

FURBMOBILE: UMA APLICAÇÃO PARA VISUALIZAÇÃO E ACOMPANHAMENTO DA MATRIZ CURRICULAR

Sistema de Recomendação de frameworks para Desenvolvimento Multiplataforma em Dispositivos Móveis

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Sistemas de Informação (SI) Infraestrutra de Tecnologia da Informação (TI): Software

ESTUDO DE PLATAFORMAS PARA A CONSTRUÇÃO DE APLICAÇÕES MÓVEIS. Gabriel de Biasi¹; Nilton Cézar de Paula²

ANEXO 2. TÍTULO DO PROJETO: Abordagens multiplataforma para sistemas web responsivo com utilização de cache

DESENVOLVIMENTO DE UMA APLICAÇÃO IOS PARA MONITORAMENTO DE SUBESTAÇÕES DE ENERGIA ELÉTRICA 1. Daniel Lucas Huber 2, Paulo Sausen 3.

Primeiros Passos para o Desenvolvimento de Aplicações Móveis na Plataforma Android. Odette Mestrinho Christian Reis 1

Desenvolvimento de Aplicações Móveis Multiplataforma Utilizando Ionic 2

Introdução ao Desenvolvimento para Dispositivos Móveis

RELATÓRIO PARCIAL DE INICIAÇÃO CIENTÍFICA CAMPUS PIRACICABA MODELO DE RELATÓRIO DE INICIAÇÃO CIENTÍFICA

UNIVERSIDADE DE CAXIAS DO SUL CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO HELENA BASSOTTO

DESENVOLVIMENTO PARA MOODLE MOBILE UM ESTUDO DE CASO COM A ESCOLA VIRTUAL SOF

INFORMÁTICA (NCINF) SOFTWARE SISTEMAS OPERACIONAIS

Apresentação Introdução Ambiente de desenvolvimento Aplicativos. Minicurso Android. Dia 1. Adão Henrique R. Justo Filho UFC - DETI 16/10/2012

Requisitos do sistema para o Qlik Sense. Qlik Sense September 2017 Copyright QlikTech International AB. Todos os direitos reservados.

Desenvolvimento híbrido versus desenvolvimento nativo de aplicativos móveis

A UTILIZAÇÃO DE APLICATIVOS PARA O APRENDIZADO DA LÍNGUA INGLESA

Estratégias Móveis. O que toda empresa precisa saber

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan


Introdução a Teste de Software

RESULTADOS OBTIDOS CAPÍTULO

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL E WEB PARA GERENCIAMENTO DE PEDIDOS DE DELIVERY, ENTREGAS E PAGAMENTOS

UTILIZAÇÃO DE TECNOLOGIAS MODERNAS PARA CADASTRAMENTO DAS FAMÍLIAS DA ATENÇÃO BÁSICA DE SAÚDE DO MUNICÍPIO DE COARI

PhoneGap - Apache Cordova Mobile Framework

CLOUD COMPUTING: O USO DA PLATAFORMA AWS E ARMAZENAMENTO NO AMAZON S3.

O CENÁRIO DE TECNOLOGIAS CROSS-PLATFORM PARA APLICATIVOS MÓVEIS

Requisitos do sistema para o Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Todos os direitos reservados.

Histórico de alterações

Requisitos do sistema para o Qlik Sense. Qlik Sense 3.2 Copyright QlikTech International AB. Todos os direitos reservados.

Apps na prática 1 Aviso Legal: Este material foi produzido e desenvolvido pela Fábrica de Aplicativos S.A para o curso presencial e online.

Proposta de Trabalho de Conclusão de Curso

PARTE I. Introdução ao Desenvolvimento para Dispositivos Móveis

MAPEAMENTO COLABORATIVO DE EPIDEMIA

Fundamentos da Computação Móvel

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADO AO GERENCIAMENTO DE INFORMAÇÃO DE TRANSPORTE URBANO

9 Seminário de Extensão SIENA - SISTEMA DE INFORMAÇÃO PARA ANÁLISE DOS INDUCADORES DO ESTADO NUTRICIONAL E ALIMENTAR

SISTEMA PARA AUTOMATIZAÇÃO RESIDENCIAL CONTROLADO POR

Desenvolvedor Android: Avançado. Plano de Estudo

5 Implementação 5.1 Plataforma 5.2 Arquitetura

Estudo Comparativo de ferramentas online para desenvolvimento de aplicativos Android

Requisitos do sistema para o Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. Todos os direitos reservados.

Requisitos do sistema para o Qlik Sense. Qlik Sense 3.1 Copyright QlikTech International AB. Todos os direitos reservados.

Frameworks para criação de Web Apps para o Ensino Mobile

Documento de Projeto de Software

Avaliação das boas práticas Android para desempenho

APP WORK - SISTEMA DE GERENCIAMENTO DE HORÁRIO PONTO E GEOLOCALIZAÇÃO 1 APP WORK - POINT AND GEOLOCALIZATION SCHEME MANAGEMENT SYSTEM

Desenvolvimento de Aplicações Distribuídas

AULA 1 INTRODUÇÃO AO JAVA

VISEDU: JOGO DE REALIDADADE AUMENTADA DE LETRAS COM CONTEÚDO DINÂMICO

por parte dos usuários dos sistemas de computação se tornou menos necessária e a popularidade desse tipo de linguagem diminuiu. Mais recentemente, a

Introdução aos Sistemas Operacionais

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

Requisitos do sistema para o Qlik Sense. Qlik Sense June 2017 Copyright QlikTech International AB. Todos os direitos reservados.

DESENVOLVIMENTO BASEADO EM COMPONENTES

PARCERIA TÉCNICA IDEAL

Estratégias para o Desenvolvimento de Aplicações Móveis HP Enterprise Services CMT - Cloud, Mobility and Transformation Março, 2013

Relatório - Aplicativo SOS Chuva

5 Infraestrutura de TI

Versão: 1.0 Doc Manager

Um guia passo a passo para colocar aplicativos COBOL na nuvem. Implante em ambientes virtuais e na nuvem com o Visual COBOL

PROGRAMAÇÃO PARA INTERNET RICA RICH INTERNET APPLICATIONS

APLICATIVO MÓVEL PARA TREINAMENTO AUDITIVO PARA IDENTIFICAÇÃO DE ALTERAÇÕES DE FALA DECORRENTES DA FISSURA LABIOPALATINA

SELFCONTROL FERRAMENTA PARA GERENCIAMENTO FINANCEIRO PESSOAL UTILIZANDO DISPOSITIVOS

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

2º/3º Ciência da Computação (CC)

SISTEMAS DE INFORMAÇÃO ARMANDO LINS CHAVES NETO AFSCOUT: APLICATIVO ESTATÍSTICO PARA FUTEBOL AMERICANO

26 a 29 de novembro de 2013 Campus de Palmas

Transcrição:

COMPARAÇÃO E AVALIAÇÃO DE FRAMEWORKS PARA DESENVOLVIMENTO DE APLICAÇÕES MÓVEIS HÍBRIDAS Douglas da Cruz Cerqueira 1 ; Roberto Almeida Bittencourt 2 1. Bolsista PIBIC/FAPESB, Graduando em Engenharia da Computação, Universidade Estadual de Feira de Santana, email: douglasdacruzz@gmail.com 2. Orientador, Departamento de Exatas (DEXA), Universidade Estadual de Feira de Santana, email: roberto@ecomp.uefs.br PALAVRAS-CHAVE: engenharia de software, aplicações mobile, multiplataforma 1. INTRODUÇÃO O mercado de aplicações móveis está cada vez mais movimentado, sendo um dos mercados que mais cresce na atualidade. Quatro gigantes da tecnologia dominam o mercado de aplicações móveis (ver Tabela 1): Apple, Google, Microsoft e Rim. Cada uma delas distribui seu próprio sistema operacional móvel: ios, Android, Windows Phone e BlackBerry, respectivamente. Tabela 1. Cenário atual de plataformas móveis. Distribuidor Sistema Linguagem de Operacional Programação Apple ios Objective-C e Swift Xcode Google Android Java Ambiente de Desenvolvimento Eclipse e Android Studio Microsoft Windows Phone Visual C#/ C++ Visual Studio RIM BlackBerry Java Eclipse O desenvolvimento de uma aplicação móvel torna-se complexo quando um mesmo aplicativo necessita ser desenvolvido para os vários SOs citados, já que o mercado não se concentra apenas em uma plataforma. Dehlinger e Dixon, em 2011, listaram como desafio para a criação de aplicações móveis o reuso de software para as plataformas, e a criação de uma interface de usuário universal [1]. Esse desafio existe justamente pela variedade de plataformas no mercado. Frameworks móveis foram desenvolvidos para facilitar a criação de aplicativos móveis, e tentar uniformizar as experiências de usuário em todas as plataformas. Com estes frameworks, um único código pode ser escrito para diversas plataformas, uma forma de equilibrar e acelerar a maneira como são desenvolvidas aplicações móveis. Uma variedade de frameworks está disponível na atualidade, e alguns se adaptam melhor a determinada necessidade. Escolher o framework que melhor se encaixe às necessidades de uma equipe de desenvolvimento pode tornar o processo mais ágil e evitar gasto de tempo e esforços desnecessários. Algumas aplicações podem precisar de mais poder de processamento que outras, ou o projeto e a equipe são extensos e necessitam organizar o que está sendo feito. Assim, não há solução trivial para a escolha d melhor ferramenta. Outros estudos e avaliações de frameworks para aplicações móveis já foram feitas, porém com objetivos diferentes. Alguns estudam as diferentes arquiteturas que um aplicativo gerado por estes frameworks podem ter. O primeiro estuda quatro possíveis arquiteturas para os aplicativos [4]. O segundo, as arquiteturas de cada framework individualmente, embora não deixe claro o comportamento do framework quando utilizado. Por outro, Dalmasso et al. efetua um estudo mais próximo da aplicação final, gerando aplicações com cada framework ou combinações entre eles, apesar de um framework não se resumir ao resultado entregue ao final do desenvolvimento [2].

Contudo, a avaliação de um framework não se resume a arquiteturas ou aplicativos gerados: um framework deve dar suporte às principais necessidades de um desenvolvedor. Estas necessidades podem ser avaliadas através de dimensões que englobam todo desenvolvimento de aplicações. Assim, pode-se avaliar quão completo é um framework móvel. Foi o que fizemos neste trabalho, que será melhor explicitado nas seções a seguir. 2. METODOLOGIA Em resumo, a metodologia de pesquisa utilizada neste trabalho é a de pesquisa tecnológica comparativa, onde se avaliam diferentes artefatos através de comparações em diferentes dimensões. Primeiro, selecionamos as dimensões de interesse. Em seguida determinamos o desempeno de cada framework para cada dimensão. Finalmente, uma comparação é traçada através de uma discussão. Primeiramente determinamos quais critérios um framework móvel deve dar suporte para desenvolver um aplicativo de forma completa. Os critérios de comparação escolhidos foram: Plataforma: Sistemas operacionais para os quais o framework é capaz de gerar uma aplicação; Alvo: Arquitetura do aplicativo gerado: web, híbrido ou nativo; Linguagem de Desenvolvimento: Linguagens com suporte pelo framework; Hardware com Suporte: Sensores que a API do framework suporte; Segurança: Nível de segurança que o aplicativo gerado possui; SDK: Grupo de ferramentas de desenvolvimento fornecidas; Padrões de Projeto Utilizados: Práticas que visam facilitar o desenvolvimento e a manutenção de um código disponíveis no framework; Antes de iniciarmos a análise e classificação dos frameworks, foi necessário estabelecermos uma linha divisória. Há diversos tipos de frameworks e diversas classificações, que nem sempre são compatíveis entre si. Para definir como trabalharíamos, necessitamos decidir como classificar os frameworks, qual classificação seguir. Portanto, definimos a seguinte classificação: Frameworks web: Ferramentas de desenvolvimento sem suporte a sensores dos dispositivos mobile; Frameworks híbridos: Ferramentas que facilitam o desenvolvimento, dão suporte ao hardware do dispositivo e geram aplicações para plataformas variadas; Frameworks nativos: Ambientes fornecidos pelos desenvolvedores de cada plataforma, que não permitem o reuso da aplicação em outras plataformas; Em seguida, passou-se à fase de seleção dos frameworks. Buscamos escolher frameworks com suporte à maioria dos critérios escolhidos. Além disso, aliamos os critérios de comparação a avaliações já existentes, de forma que pudéssemos comparar e reavaliar alguns frameworks. Por fim, decidimos focar o trabalho em frameworks híbridos, por já terem sido previamente estudados, além de serem bastante usados para desenvolvimento. Desta forma, os frameworks escolhidos foram: MoSync;

Phonegap; RhoMobile; Sencha Touch; Titanium Mobile; Após a escolha dos frameworks para avaliação, entramos na fase de análise dos frameworks. Nesta fase, cada ferramenta foi analisada individualmente, com informações obtidas a partir de experiências de uso e informações disponibilizadas pelos proprietários das ferramentas. As ferramentas foram observadas e analisadas desde sua instalação até o uso propriamente dito. A última etapa para conclusão do estudo foi a comparação dos frameworks. A proposta inicial era que fosse possível indicar ferramentas para finalidades específicas. Para isso, a comparação dos frameworks baseou-se nos critérios citados anteriormente. Em cada critério colocamos os frameworks lado a lado, assim pudemos evidenciar suas diferenças e exaltar os aspectos positivos de cada um deles em cada critério. Por último, aplicações foram geradas com cada framework. Isso nos permitiu ter uma noção de desempenho e facilidade de uso que cada um deles fornece. Os resultados buscam facilitar a escolha de um framework móvel diante da enorme variedade presentemente disponível. 3. RESULTADOS Como resultado, obtivemos a classificação dos frameworks para cada dimensão de classificação levantada. A seguir, apresentamos sete avaliações isoladas, uma para cada dimensão de classificação. Para cada avaliação, conseguimos definir os prós e contras dos frameworks, além de determinar os que se destacam em dada dimensão. Em algumas dessas dimensões, algumas ferramentas possuem as mesmas características. Essa semelhança dificultou o processo final de determinar ferramentas para cada finalidade. Na Tabela 2 apresentamos o resultado de quatro critérios. Tabela 2. Critérios com resultado comum a todas as ferramentas. Critério Plataforma Alvo Linguagem de Desenvolvimento Hardware com Suporte Resultado Todos dão suporte às principais plataformas do mercado Todos com foco em aplicações híbridas Apesar de usarem linguagens específicas, todos dão suporte ao desenvolvimento web Com exceção do Near Field Communication (NFC), todos os sensores dos dispositivos tem suporte em todos os frameworks Dado o exposto, entendemos que a seleção de um framework fica nos detalhes e diferenças que cada um oferece (Tabela 3). As diferenças variam desde o suporte a diversas linguagens de desenvolvimento até ambientes de trabalho próprios. Ferramentas capazes de

gerar aplicativos para as diversas plataformas de uma só vez, como RhoHub e Adobe PhoneGap Build, se sobressaem dentre as várias características. Tabela 3. Singularidades das ferramentas estudadas Framework MoSync PhoneGap Rhodes Mobile Sencha Touch Titanium Mobile Destaque Mesmo apresentando uma interface própria para testes da aplicação, que pode auxiliar o desenvolvimento, não é algo de destaque, visto que outros frameworks também a possui. Adobe PhoneGap Build, citado anteriormente, facilita o processo de gerar as diversas versões de uma mesma aplicação. Suporte ao padrão Model View Controller (MVC) e RhoHub, que possui a mesma funcionalidade do Adobe PhoneGap Build. Apesar de utilizar apenas linguagem web apresenta uma estrutura MVC bem definida, sendo um destaque se comparado ao PhoneGap. Ainda que também apresente uma interface própria para testes da aplicação, outros recursos, como MVC necessitam de recursos adicionais. 4. CONSIDERAÇÕES FINAIS Este trabalho avaliou ferramentas que buscam facilitar o desenvolvimento de aplicações mobile. Duas avaliações foram feitas, um estudo isolado de cada framework e uma comparação abrangendo ambas ao mesmo tempo. A partir dos dados extraídos, tanto de documentações fornecidas pelos desenvolvedores destes frameworks, quando pelos testes feitos, notou-se grande semelhança entre eles. Dessa forma, fizemos uma indicação de possíveis usos de cada framework, baseado naquilo que cada um apresenta de diferente. Em um estudo posterior nessa mesma linha de avaliação, análise de desempenho de cada critério pode ser feito de forma mais detalhada, analisando uso de CPU, memória e consumo de energia. Essa análise irá permitir a avaliação dos frameworks de forma mais próxima ao usuário final. 5. REFERÊNCIAS [1] DEHLINGER,Josh e DIXON, Jeremy. Mobile Application Software Engineering: Challenges and Research Directions. Departament of Computer and Information Sciences, Towson University (2011). [2] DALMASSO, Isabelle, DATTA, Soumya Kanti, BONNET Christian e NIKAEIN, Navid. Survey, Comparison and Evaluation of Cross Platform Mobile Application Development Tools. Mobile Communication Department, EURECOM (2013). [3] SINGH, Inderjeet e PALMIERI, Manuel. Comparison of Cross-Platform Mobile Development Tools. Mälardalen University, Innovation, Development and Technology (2012). [4] C.P, Rahul Raj e TOLETY, Seshu Babu. A Study on Approaches to Build Cross-Platform Mobile

Applications and Criteria to Select Appropriate Approach. Siemens Technology and Services Pvt Ltd, Bangalore, India (2012).