ANEXO 2 INSTITUCIONAL/IFSP PROJETO DE PESQUISA TÍTULO DO PROJETO: Abordagens multiplataforma para sistemas web responsivo com utilização de cache Área do Conhecimento (Tabela do CNPq): 1 . 0 3 . 0 3 . 0 1 1. RESUMO Os softwares se tornarão uma ferramenta fundamental nas atividades das pessoas e empresas ao longo dos anos. A possibilidade de acesso fácil viabilizado pela popularização da plataforma web no primeiro momento seguido pela plataforma móvel está modificando a necessidade de acesso e processamento de informações das pessoas. A plataforma móvel estendeu o acesso aos softwares, reduzindo ainda mais a limitação geográfica e possibilitando o seu uso em locais com difícil acesso. Diante desse cenário, o desenvolvimento de softwares ganha mais um desafio, além da exigência por qualidade e produtividade, em muitos casos ele deve ser multiplataforma, isto é, ser compatível com os diversos dispositivos utilizados pelos usuários, seja eles móveis ou não. Entre as abordagens para desenvolvimento de softwares multiplataforma a baseada em web possui vantagens por permitir a utilização do software em computadores desktop e dispositivos móveis desde que sejam responsivos. Porém, na maior parte dos softwares desenvolvidos baseado em web, é necessária conexão com a internet para possibilitar o uso de todas as suas funcionalidades. Esse fato ocorre devido a impossibilidade de ser operado sem rede, diferenciando de softwares desenvolvidos de forma nativa ou hibrida para dispositivos móveis. Motivados por essas ideias esse projeto visa o estudo de abordagens para desenvolvimento de softwares baseado em web que utilizem mecanismos que explorem os sistemas de cache possível devido aos novos recursos do HTML5. A utilização de design responsivo junto com sistemas de cache possibilita a utilização de softwares baseados em web de forma similar aos instalados de forma nativa ou híbrida, contribuindo para a produtividade e manutenção de softwares multiplataforma. 2. FUNDAMENTAÇÃO TEÓRICA Atualmente existe uma grande necessidade do uso de aplicativos conectados a internet, essa necessidade contribui para o surgimento de diversos tipos de dispositivos, permitindo o uso dos aplicativos em locais de difícil acesso. Embora, o desenvolvimento de aplicativos para dispositivos móveis vem sendo explorados a mais de 10 anos, em 2008 começou uma grande expansão no desenvolvimento desses aplicativos, influenciada pela abertura da AppleStore. Após essa data várias outras empresas acompanharam o lançamento da Apple, com lojas de aplicativos para dispositivos móveis equipados com diferentes sistemas operacionais, como: Android, BlackBerry, Nokia Ovi, Windows Phone, entre outros. Dessa forma, a ampliação do uso de dispositivos impactou na necessidade do desenvolvimento de - 4 aplicativos e adaptações de versões de sistemas para essas novas plataformas. Entre os dispositivos disponíveis, os mais utilizados são: smartphones, tablets, computadores pessoais (pc), centrais multimídia e agora mais recente os smartwatch, todos eles com acesso a internet e sistemas operacionais que permitem a instalação de aplicativos. Para o desenvolvimento desses aplicativos deve ser considerado as características especificas de cada dispositivo, tais como: tipos e versões dos sistemas operacionais, disponibilidade de acesso a internet, recursos disponíveis (GPS, Câmera, Armazenamento, etc), tamanho de telas, entre outros. Todas essas características impactam diretamente na produtividade, manutenção e qualidade dos aplicativos, uma vez que a equipe de desenvolvimento possui retrabalho na geração de versões para cada sistema operacional (Wasserman 2010). Diante do número de sistemas operacionais e dispositivos disponíveis, o desenvolvimento para múltiplas plataformas se tornou uma tarefa complexa. Cada sistema operacional possui uma linguagem padrão para desenvolvimento, denominado desenvolvimento nativo, as versões dos aplicativos para cada sistema operacional são desenvolvidas de forma individual. Para aumentar a produtividade e deixar o aplicativo viável no modo de desenvolvimento nativo algumas organizações pode produzir o aplicativo para as plataformas com maior número de usuários, deixando as plataformas com uma quantidade menor de usuários sem uma versão do aplicativo. Além da preocupação com as plataformas e características de cada dispositivo, os desenvolvedores tem que se preocupar com as versões dos sistemas operacionais, alguns aplicativos são projetados para rodar a partir de uma determinada versão, incompatibilizando o aplicativo para versões inferiores. A escolha de uma plataforma especifica para o desenvolvimento pode reduzir o público alvo dos aplicativos, visto que existe uma disputa acirrada de números de usuários por sistema operacional (IDC2014). A falta de versões para os sistemas operacionais mais utilizados, podem representar redução de mercado e desvantagem competitiva em relação aos concorrentes. Essa questão técnica que envolve produtividade e manutenção dos aplicativos, junto com questões comerciais contribuíram para o surgimento de alternativas a forma nativa de desenvolvimento, que garantisse maior produtividade e abrangência de plataformas com menor esforço (Heitkotter2013). Uma dessas alternativas é o desenvolvimento hibrido, essa forma de desenvolvimento utiliza tecnologias web: HTML5, CSS e JavaScript para confeccionar aplicativos para vários sistemas operacionais. Existem uma série de frameworks que suportam o desenvolvimento hibrido, através desses frameworks é possível desenvolver aplicativos utilizando uma única tecnologia para as várias plataformas, aumentando assim a produtividade. Entre esses frameworks multiplataforma podemos citar o Cordova (Cordova), PhoneGap (PhoneGap) (baseado no Cordova), Intel XDK (IntelXDK), Titanium SDK (Titanium), entre outros. Cada framework possui suas características especificas de desenvolvimento, como IDE (Integrated Development Environment) especifica, arquitetura de desenvolvimento destinto, permição para uso de API´s, entre outras. Porém todas elas utilizam tecnologia web e podem ser distribuídos de forma similar ao desenvolvimento nativo, isto é, através das lojas de aplicativos (app store) na internet de cada sistema operacional. Essa forma de distribuição de aplicativo possui preferência pelos usuários em relação a acessos realizados através de navegadores, em geral, somente vinte porcento do tempo gasto com o dispositivo é utilizando o navegador (BusinessInside), o restante é utilizando aplicativos instalados, mostrando vantagem competitiva em relação aos navegadores. Uma vez instalado no dispositivo o aplicativo opera através de um navegador nativo (webview) presente na maior parte dos dispositivos móveis, que interpreta as tecnologias web, tornando transparente ao usuário a origem do desenvolvimento (hernandez2009war). O desenvolvimento baseado em Web também pode ser considerado uma outra alternativa para a construção de aplicativos, assim como os aplicativos híbridos, podem ser construídos utilizando tecnologias web: HTML5, CSS e JavaScript (amatya2014cross). Os aplicativos web também são conhecidos como aplicativos HTML5, e se diferem dos aplicativos híbridos em alguns pontos, uma das principais diferenças é a distribuição que não é feita através das app stores, os usuários precisam digitar no navegador do dispositivo a URL (Uniform Resource Locator) do aplicativo. Outro detalhe se refere ao desenvolvimento, que não necessita obrigatoriamente de um framework especifico como no caso dos aplicativos híbridos, através de parâmetros do HTML5 para controle do viewport é possível preparar o aplicativo para diferentes tamanhos de tela, permitindo com que o usuário utilize o aplicativo em um desktop ou em um dispositivo móvel. Essa característica se torna uma vantagem para os aplicativos web, uma vez que o usuário pode escolher onde vai operar o aplicativo, em situações onde será utilizado grandes volumes de dados é conveniente a operação em um desktop, para casos com um volume de dados menor ou realização de consultas, pode ser operado através de um dispositivo móvel. O termo usado para a adaptação de aplicativos web para os diferentes tamanhos de tela e orientação de tela é web responsivo (koneckimobile). Para o desenvolvimento web responsivo é necessário a utilização de quatro técnicas fundamentais: o tamanho dos elementos e as imagens que compõem o software é dado em porcentagem, componentes Media Query no servidor que permitem apresentação de layouts em diferentes tamanhos de tela. Além do design responsivo, um software multiplataforma baseado em web pode utilizar os conceitos de cache para ter o comportamento similar aos aplicativos nativos e híbridos. Sistemas de cache são repositórios contidos nos navegadores que visam reduzir o trafego de dados na rede, reduzir a carga de processamento dos servidores, uma vez que parte do software pode ser processado no cliente e permite com que o software baseado em web possa ser operado sem a necessidade de internet. Uma vez acessado, o software armazena as principais funções no dispositivo móvel ou desktop e permite a utilização pelo usuário da mesma forma que um aplicativo instalado local. O recurso de cache está sendo aperfeiçoado pelo HTML5 e os principais navegadores do mercado, liberando mais espaço em disco para esse tipo de recurso, por se tratar de um recurso recente poucas aplicações exploram essa tecnologia. Portanto o objetivo desse trabalho é desenvolver softwares que explorem essa tecnologia e permitam a utilização sem a necessidade de rede a todo momento, um mecanismo de sincronização presente no HTML5 consegue identificar a presença de internet para completar uma operação de forma transparente ao usuário sempre que isso for necessário (Mehta e Jha 2014). 3. OBJETIVOS O projeto visa a pesquisa de softwares multiplataforma baseado em web que utilize os recursos de cache do navegador. Estudos comparativos com aplicativos híbridos que operam sem rede será conduzida para verificar o desempenho da tecnologia de cache para software baseado em web. Sistemas de cache presentes em navegadores para desktop e dispositivos móveis pode oferecer grande vantagem competitiva para o desenvolvimento web em relação ao desenvolvimento nativo e hibrido. Sistemas web permitem a utilização de desktop quando as operações realizadas no software são muito complexas ou necessitem de grande volume de dados. E permitem a utilização de dispositivos móveis, reduzindo a limitação geográfica de acesso e manipulação de dados do software. Por se tratar de um único sistema, essa forma de desenvolvimento aumenta a produtividade e manutenção em relação a aplicativos híbridos e nativos, uma vez que os mesmos necessitem de um sistema web desenvolvimento a parte para a utilização de desktop. Um estudo comparativo sobre a eficiência de aplicativos híbridos e web referente a questão de operação sem rede será conduzida para validar a utilização de cache para softwares baseados em web. 4. MATERIAIS E MÉTODOS O software multiplataforma resultado do projeto será testado através do uso de diferentes dispositivos móveis e desktop. Será analisado o nível de satisfação através da aparência, comportamento e eficiência da operação do software sem e com internet. O projeto será desenvolvido utilizando a metodologia Ágil. Após a definição da equipe de desenvolvedores e do domínio do software, a aplicação será modelada e os testes da tecnologia serão conduzidos. A princípio será realizada uma pesquisa detalhando os recursos disponíveis para a geração de softwares responsivos. Será desenvolvido uma aplicação e testado sua responsividade, caso o resultado seja satisfatório, estudos sobre aplicações utilizando cache será realizado. Estudos sobre formas e recursos para utilização de cache serão essenciais para análise de todo potencial desse recurso atualmente. Formas de sincronização e identificação da rede de forma automática também integrará o estudo. Após a fase de teste e estudos iniciais, o software em questão começara a ser produzido e testado nos diferentes dispositivos disponíveis no mercado. Simuladores de dispositivos também serão utilizados para validação dos experimentos. 5. PLANO DE TRABALHO Tabela 5.1 Metas estabelecidas para a pesquisa. METAS DESCRIÇÃO 1 Definição e modelagem do domínio do software que será validado no projeto. 2 3 4 5 6 7 8 9 Estudo sobre responsividade e sistemas de cache para aplicativos web. Estudo sobre responsividade e sistemas de cache para aplicativos web. Desenvolvimento de software utilizando os conceitos discutidos no projeto. Entrega do Relatório Parcial- até 15/07/15 Teste de software nas principais plataformas e dispositivos existentes no mercado ou através de simuladores. Pesquisa comparativa entre softwares que rodem de modo nativo, hibrido e web sem a necessidade de internet. Preparação da documentação e pôster final do projeto. Entrega do Relatório Final – até 30/11/2015 Tabela 5.2 Cronograma proposta para cumprimento das metas. MESES METAS MAR ABR MAI JUN JUL AGO SET 1 -----2 -----3 -----4 ------ -----5 -----6 ----------7 -----8 9 OUT NOV ----------- 6. VIABILIDADE DE EXECUÇÃO A pesquisa será realizada nos laboratórios do IFSP campus Piracicaba e será utilizado computadores pessoais ou fornecidos pelo IFSP de acordo com a preferência do bolsista. 7. RESULTADOS ESPERADOS E DISSEMINAÇÃO A investigação de metodologias utilizadas no mercado possui grande importância como guia da pesquisa e trabalhos futuros para essa área de pesquisa na instituição. Serão avaliados os resultados do andamento do projeto em detrimento com aquilo que foi previsto no cronograma, isto é, relatórios mensais e acompanhamento da evolução do projeto de forma semanal. A entrega dos relatórios será utilizada para compor o relatório parcial e final previsto no cronograma do projeto. O resultado final do projeto será um relatório comparativo entre as abordagens multiplataforma existentes no mercado, os programas desenvolvidos como testes para validar as abordagens e a escrita de um pôster para apresentação do projeto. REFERÊNCIAS BIBLIOGRÁFICAS Amatya, Suyesh e Arianit Kurti (2014). “Cross-platform mobile development: challenges and opportunities”. Em:ICT Innovations 2013. Springer, pp. 219–229 ver p.4). Ballve, Marcelo (2013). The Future Of Mobile Development: HTML5 Vs. Native Apps.url:http://www.businessinsider.com/html5-vs-native-apps-for-mobile2013-6?op=1(ver p.6). BARBOSA, A. Efeitos de Transientes na Perda de Carga no Escoamento Óleo – pesado em Regime Anular em Duto Metálico. 2004. 120 f. Dissertação (Mestrado em Ciências e Engenharia de Petróleo) - Instituto de Geociências, Universidade Estadual de Campinas, Campinas, 2004. CHISHOLM, D. Two-phase flow in pipelines and heat exchangers. Pitman Press Ltd, 1983. Cordova. url:http://cordova.apache.org/(ver pp.4,5,11,14). DOS REIS, E.; GOLDSTEIN JR, L. Characterization of slug flows in horizontal piping from signal analysis of a capacitive probe. Flow Measurement and Instrumentation, v. 21, n. 3, p. 347-355, 2010. Heitkötter, Henning, Sebastian Hanschke e Tim A Majchrzak (2013). “COMPARING CROSS-PLATFORM DEVELOPMENT APPROACHES FOR MOBILE APPLICATIONS”. Em: Web Information Systems and Technologies140, pp. 120–138 (ver pp.4,5). Konecki, Mario. “MOBILE AND RESPONSIVE WEB APPLICATIONS”. Em: (ver p.4). Mehta, Kushal e Jasmine Jha (2014). “Web Cache Technique Responsive Web Design”.Em: (ver p.4). PhoneGap.PhoneGap 6,11, 14). Titanium.Titanium pp.4,5). Documentation.url:http://docs.phonegap.com/en(ver pp. Mobile.url:http://www.appcelerator.com/titanium/(ver Wasserman, Anthony I. (2010). “Software engineering issues for mobile application development”. Em: Proceedings of the FSE/SDP workshop on Future of software engineering research - FoSER ’10978-1-4503.6, pp. 397– 400.doi:10.1145/1882362.1882443.url:http://portal.acm.org/citation.cfm?doid=1 882362.1882443(ver p.3).