Este artigo trata-se da apresentação da utilização de estrutura de dados, como pilhas e filas, aplicado em programas de dispositivos móveis que contenham sistemas operacionais de última geração marcantes no mercado (Android, da Google e iOS, da Apple). Essa se dará pela explicação sucinta das principais estruturas utilizadas nesses ambientes, como citada anteriormente. Após isso, apresentar-se-á como esse conjunto é aplicado na arquitetura interna de um aplicativo e como ele interage com o sistema. Por fim, é feito uma análise sobre a pesquisa feita, fazendo uma correlação entre os sistemas.
Título original
A Utilização de Estrutura de Dados nas Arquiteturas de Aplicativos para Dispositivos Móveis de Última Geração
Este artigo trata-se da apresentação da utilização de estrutura de dados, como pilhas e filas, aplicado em programas de dispositivos móveis que contenham sistemas operacionais de última geração marcantes no mercado (Android, da Google e iOS, da Apple). Essa se dará pela explicação sucinta das principais estruturas utilizadas nesses ambientes, como citada anteriormente. Após isso, apresentar-se-á como esse conjunto é aplicado na arquitetura interna de um aplicativo e como ele interage com o sistema. Por fim, é feito uma análise sobre a pesquisa feita, fazendo uma correlação entre os sistemas.
Direitos autorais:
Attribution Non-Commercial No-Derivs (BY-NC-ND)
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia online no Scribd
Este artigo trata-se da apresentação da utilização de estrutura de dados, como pilhas e filas, aplicado em programas de dispositivos móveis que contenham sistemas operacionais de última geração marcantes no mercado (Android, da Google e iOS, da Apple). Essa se dará pela explicação sucinta das principais estruturas utilizadas nesses ambientes, como citada anteriormente. Após isso, apresentar-se-á como esse conjunto é aplicado na arquitetura interna de um aplicativo e como ele interage com o sistema. Por fim, é feito uma análise sobre a pesquisa feita, fazendo uma correlação entre os sistemas.
Direitos autorais:
Attribution Non-Commercial No-Derivs (BY-NC-ND)
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia online no Scribd
A UTILIZAO DE ESTRUTURA DE DADOS NAS ARQUITETURAS DE
APLICATIVOS PARA DISPOSITIVOS MVEIS DE LTIMA GERAO
Andr Philipe Martins Loureiro, Andr Schefer Moleiro e Felipe Gonalves da Rocha
Resumo
Este artigo trata-se da apresentao da utilizao de estrutura de dados, como pilhas e filas, aplicado em programas de dispositivos mveis que contenham sistemas operacionais de ltima gerao marcantes no mercado (Android, da Google e iOS, da Apple). Essa se dar pela explicao sucinta das principais estruturas utilizadas nesses ambientes, como citada anteriormente. Aps isso, apresentar-se- como esse conjunto aplicado na arquitetura interna de um aplicativo e como ele interage com o sistema. Por fim, feito uma anlise sobre a pesquisa feita, fazendo uma correlao entre os sistemas.
Palavras-chave: Aplicativos. Dispositivos Mveis. Estrutura de Dados.
Introduo
A correlao da teoria de estrutura de dados com a manipulao de diversas tecnologias, principalmente aquelas que envolvem Interfaces com o Usurio (IU), vista atravs da manipulao de dados, envio e recebimento de mensagens, entre os diversos momentos da interao entre o homem e o sistema, como Pilhas e Filas. Ento, a conceituao destes itens ser necessria para adentrar de como eles aparecem, virtualmente, nas arquiteturas dos aplicativos, neste caso, mveis. Assim, ser visto como essas estruturas so manipuladas no Android (Google) e iOS (Apple).
1. Estrutura de Dados O termo Estrutura de Dados na Cincia da Computao refere-se ao meio de organizar de dados (SCHILDT, 2004, p. 163), normalmente primitivos, dinamicamente, isto , que armazenam, de alguma forma, os variados tipos de dados. Os dados primitivos so aqueles que armazenam exatamente um valor de seu tipo declarado por vez (DEITEL; DEITEL, 2010, p. 67) e cada tipo tem caractersticas exclusivas (SCHILDT, 2004, p.24). E esses dados (...) correspondem a inteiros, caracteres, valores de ponto flutuante e valores booleanos (SHILDT, 2004, p. 24).
As estruturas de dados podem ser das mais simples (vetores e matrizes), passando pelas mais sofisticadas, como pilhas, filas e rvores. Essas estruturas podem exigir vrios tipos diferentes de operaes a serem executadas (CORMEN, 2002, p. 159), como, por exemplo, segundo Cormen (2002, p. 159), inserir elementos, (...) eliminar elementos, (...) e testar a pertinncia de elementos a um conjunto, como um dicionrio.
As pilhas (stacks, em ingls) so aluses a pilhas fsicas, como as pilhas de pratos usados em restaurantes (CORMEN, 2002, p. 163). A justificativa que a ordem em que os pratos so retirados da pilha o oposto da ordem em que eles so colocados sobre as pilhas e, como consequncia, apenas o prato do topo est acessvel, segundo Cormen (2002, p. 163). So estruturas do tipo Last-In, First-Out 1 (LIFO), como apresentam Deitel e Deitel (2010, p. 162). Uma aplicao prtica ocorre em clculos de calculadoras financeiras e/ou cientficas.
Por sua vez, as filas (queues, em ingls) so estruturas de dados que possuem a aluso da operao de uma fila de alunos: o prximo que chega, vai ao final da fila; o primeiro a sair aquele que est no comeo dela e que esperou mais tempo 2 , comenta Cormen (2002, p. 164). Desta maneira, esse arranjo do tipo First-In, First-Out 3
(FIFO) (Deitel; Deitel, 2010, p. 707). Uma aplicao mais usual deste tipo de tratamento aparece em filas de impresso de uma impressora compartilhada em rede em um escritrio, por exemplo.
2. Android O Android um sistema operacional (baseado em kernel 4 Linux) voltado para dispositivos mveis, criada pela Android Inc., segundo Bloomberg Businessweek (2013) (sendo comprada pela Google Inc. em 2005), sendo aplicado em centenas de
1 ltimo a entrar, Primeiro a sair (traduo nossa). 2 Talvez seja o meio mais democrtico de se tratar dados. 3 Primeiro a entrar, ltimo a sair (traduo nossa). 4 Kernel o componente central do sistema operacional da maioria dos computadores (WIKIPEDIA, 2013). milhares de equipamentos mveis em mais de 190 pases ao redor do mundo 5 , segundo Android Developers (2013). Atualmente na verso 4.4, batizada de Kit Kat 6 , lanado em Outubro de 2013, aparece com algumas novidades, como novo framework 7 para transies de interface e possibilidade de impresso por wireless.
Para explicar onde o assunto inserido neste texto, o conceito de Atividades (Activities, do ingls) tem que ser minimamente explanado. Desta maneira, Android Developers (2013) diz que
uma Atividade um componente de uma aplicao que prov uma tela com que o usurio possa interagir com o sistema para fazer algo, como discar o telefone, tirar uma foto, enviar um e-mail ou visualizar um mapa. Cada atividade mostrada em uma janela na qual desenhada na sua IU. A janela tipicamente preenche a tela, mas pode ser menor e, desta maneira, flutuar sobre outras janelas 8 .
E, segundo Android Developers (2013), uma aplicao pode ter vrias atividades nelas e que cada uma dessa (atividades) podem chamar as outras (ou outros aplicativos), atravs de um processo de invocao feita atravs dos intentos (intent, do ingls). Segundo Mednieks et al. (2010), uma intent representa uma descrio abstrata de uma operao que uma atividade requer que outra (...) desempenhe.
Portanto, quando uma atividade faz esta operao, a atividade que gera a interao entra em um estado chamado parado, empilhado na pilha de fundo (back stack, em ingls), cuja funo armazenar as atividades que o usurio deixou para trs, e a nova (aplicativo ou atividade) entra em operao, tornando-se o topo da pilha. Quando o usurio pressiona o boto Back 9 , esta atividade desempilhada e destruda, reanimando o novo elemento topo, restaurando o estado que ficou quando foi empilhada. E atividades que esto nesta pilha nunca so rearranjados, apenas
5 Android powers hundreds of millions of mobile devices in more than 190 countries around the world. (traduo nossa). 6 Como curiosidade, os codinomes dos SOs so nomes, em ordem alfabtica, de doces comuns aos americanos. Portanto, espera-se que o prximo sistema seja um doce comeado, em ingls, com a letra L (WIKIPEDIA, 2013). 7 Framework uma abstrao em que o programa prov funcionalidades genricas que podem ser seletivamente mudadas por cdigos adicionais, provendo aplicativos especficos (WIKIPEDIA, 2013). 8 An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map. Each activity is given a window in which to draw its user interface. The window typically fills the screen, but may be smaller than the screen and float on top of other windows (traduo nossa). 9 Padro em todos os dispositivos fabricados para o Android. empilhados ou desempilhados 10 (ANDROID DEVELOPERS, 2013), respeitando, desta maneira, as regras de uma estrutura de uma pilha. A figura a seguir mostra, no decorrer do tempo, o processo descrito.
Figura 1 - Linha do tempo de processos feitos na Pilha de Fundo. (ANDROID DEVELOPERS, 2013)
E, para finalizar este ponto, a pilha estar novamente vazia quando o usurio desempilhar todos os processos, isto , apertar o boto Back at chegar tela principal.
3. iOS O comportamento da estrutura de dados Pilha no iOS, sistema operacional da Apple, basicamente o mesmo de seus concorrentes Android e Windows Phone, respectivamente do Google e da Microsoft.
Tido por muitos como o melhor e mais seguro sistema operacional para dispositivos mveis, a primeira verso do iOS foi lanada com o primeiro smartphone da empresa: o iPhone. Uma das caractersticas que difere a segurana entre esta plataforma e seus concorrentes o rgido controle de contedo disponvel para download atravs de sua loja digital, a iTunes/Apple Store. Cada aplicativo submetido a testes pela prpria equipe da Apple, e s pode ser disponibilizado aps uma aprovao.
No terceiro trimestre de 2013, uma pesquisa realizada pela Strategy Analytics apontou que o iOS tem 13,4% do mercado de smartphones, ficando atrs apenas do Android, que lidera de maneira isolada com uma fatia de 81,3% do mercado mundial.
10 Activities in the stack are never rearranged, only pushed and popped from the stackpushed onto the stack when started by the current activity and popped off when the user leaves it using the Back button (Traduo nossa). A arquitetura dessas duas plataformas, tais como sua concorrente comum, Windows Phone, tambm baseada na estrutura de dados Pilha.
Quando um aplicativo iniciado, seu processo colocado no topo de pilha, e ele permanece visvel, significando que est em foco. Se outro processo iniciado, ele pausado e vai para o segundo lugar da pilha. Agora, se este segundo aplicativo ocupar a tela inteira do usurio, nosso primeiro processo perde o Foco ento ao invs de pausado, parado, mas permanecendo como o prximo item da pilha. Isto significa que se o segundo aplicativo for fechado pelo usurio, nosso primeiro aplicativo ser a primeira coisa a ser executada e exibida novamente na tela do celular.
Estes processos tm outras propriedades, mas esta rotina o que melhor ilustra o comportamento da estrutura de Pilha agindo no sistema operacional. E uma maneira fcil de visualizar essa estrutura se tornou possvel a partir da sexta verso do iOS atravs de um recurso que foi introduzido: o de visualizar todos os aplicativos sendo executados em segundo plano ao se pressionar e segurar a tecla Home (nico boto fsico da parte frontal dos dispositivos mveis da Apple). Isto gera uma interface grfica onde todos os aplicativos podem ser visualizados de maneira dinmica, seguindo aa ordem em que eles foram abertos. Porm, diferentemente do comportamento de uma Pilha, possvel fechar um aplicativo que esteja em uma posio diferente da "Prxima" clicando nele e o arrastando para a lixeira.
Consideraes Finais
A partir da anlise do uso de estruturas de dados, vimos que, embora concorrentes e com desenvolvimentos separados, os dois sistemas operacionais analisados (Android e iOS) compartilham, se no igual, a forma parecida de tratarem as transies de interface e passagem de dados entre aplicativos: as pilhas de fundo. Podemos perceber, tambm, que com a arquitetura parecida, o entendimento dos sistemas, com finalidade de desenvolvimento de aplicativos para os dois ecossistemas, torna-se facilitado. E, assim, podemos supor que outros sistemas baseados em IU assemelham-se em sua estrutura, j que consolidado o mtodo de tratamentos destes itens.
ANDROID DEVELOPERS (EUA). Android, the world's most popular mobile platform. Disponvel em: <http://developer.android.com/about/index.html>. Acesso em: 27 nov. 2013.
ANDROID DEVELOPERS (EUA). Tasks and Back Stack. Disponvel em: <http://developer.android.com/guide/components/tasks-and-back-stack.html>. Acesso em: 20 nov. 2013.
APPLE DEVELOPER (EUA). About the iOS Technologies. Disponvel em: <https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/iphoneoste choverview/Introduction/Introduction.html>. Acesso em: 29 nov. 2013.
BLOOMBERG BUSINESSWEEK (Nova Iorque). Google Buys Android for Its Mobile Arsenal. Disponvel em: <http://www.businessweek.com/stories/2005-08-16/google-buys- android-for-its-mobile-arsenal>. Acesso em: 29 nov. 2013.
CORMEN, Thomas H. et al. Algoritmos: Teoria e Prtica. 2. ed. Rio de Janeiro: Elsevier Editora Ltda., 2002. 916 p. Traduo de: Vandenberg D. de Souza.
DEITEL, Paul; DEITEL, Harvey. Java: Como Programar. 8. ed. So Paulo: Pearson Prentice Hall, 2010. 1144 p. Traduo de: Edson Furmankiewicz.
GURU DA NOTCIA (Brasil). Mercado mundial de smartphones, Android e iOS tm 92% da fatia. Disponvel em: <http://www.gurudanoticia.com.br/mercado-mundial-de- smartphones-android-e-ios-tem-92-da-fatia/>. Acesso em: 29 nov. 2013.
MEDNIEKS, Zigurd et al. Programando o Android. 2. ed. So Paulo: Novatec Editora, 2012. 576 p. Traduo de: Rafael Zanolli.
SCHILDT, Herbert. C++: Fundamentos e Prtica. Rio de Janeiro: Editora Alta Books, 2004. 289 p. Traduo de: Aldir Jos Coelho.
THE NEXT WEB (Holanda). Strategy Analytics: Android smartphone shipments up to 81.3% in Q3 2013, iOS down to 13.4%, Windows Phone at 4.1%. Disponvel em: <http://thenextweb.com/mobile/2013/10/31/strategy-analytics-android-smartphone- shipments-81-3-q3-2013-ios-13-4-windows-phone-4-1/>. Acesso em: 29 nov. 2013.
WIKIPEDIA (EUA). Android Version History. Disponvel em: <http://en.wikipedia.org/wiki/Android_version_history>. Acesso em: 29 nov. 2013.