80
UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Alexandre Araújo e Silva Um Aplicativo Android para o Wiki Disciplinas do DCC/UFBA Salvador 2011 Alexandre Araújo e Silva

UNIVERSIDADE FEDERAL DA BAHIA - homes.dcc.ufba.brfrieda/monografiaALEXANDRE.pdf · Iphone Operating System Java 2 Micro Edition Máquina Virtual Java ... habitante do planeta. Os

Embed Size (px)

Citation preview

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Alexandre Araújo e Silva

Um Aplicativo Android para o Wiki Disciplinas do DCC/UFBA

Salvador 2011

Alexandre Araújo e Silva

UM APLICATIVO ANDROID PARA O WIKI DISCIPLINAS DO DCC/UFBA

Monografia apresentada ao Curso de Graduação de Ciência da Computação, Departamento de Ciência da Computação, Instituto de Matemática, Universidade Federal da Bahia, como requisito para a obtenção do grau de Bacharel em Ciência da Computação.

Orientador: Prof. Anna Friedericka Schwarzmuller

Salvador 2011

Dedico este estudo a minha mãe, Dona Nara, minha maior incentivadora, meu maior

exemplo e maior responsável por todas minhas realizações e conquistas. Gostaria de agradecer, primeiramente a Deus, e a todos que contribuíram para a

realização deste trabalho, especialmente professora Frieda, pela orientação e por acreditar no sucesso do trabalho.

RESUMO

Este trabalho apresenta o protótipo de uma aplicação móvel que traz os benefícios da mobilidade, para que docentes e discentes do Departamento de Ciências da Computação da Universidade Federal da Bahia (DCC/UFBA) tenham acesso às informações do wiki de disciplinas através de um dispositivo móvel com a plataforma Android. O wiki de disciplinas do DCC/UFBA é uma ferramenta de colaboração, utilizada por alunos e professores para acessar informações sobre as disciplinas do departamento, projetada para o ambiente web. O Android é um sistema operacional para dispositivos móveis desenvolvido pela Google e outras grandes empresas de telefonia celular. Devido à necessidade de disponibilizar o conteúdo do wiki a todos em qualquer lugar onde estiverem, de uma maneira prática e fácil de visualizar, através de um dispositivo móvel, foi projetado e desenvolvido um protótipo de aplicativo móvel para acessar estas informações.

Palavras-chave: Android, computação móvel, dispositivos móveis, wiki.

ABSTRACT This paper presents the prototype of a mobile application that brings the benefits of mobility, so that teachers and students of Department of Computer Science of Federal University of Bahia (DCC/UFBA) have access to wiki disciplines information through a mobile device with Android platform. The wiki DCC/UFBA disciplines is a collaboration tool, used by students and teachers to access information about the department disciplines, designed for web environment. Android is an operating system for mobile devices developed by Google and other major cell phone companies. Because of the need to provide the wiki content to all everywhere they are, in a practical and easy to view through a mobile device, was designed and developed a mobile application prototype to access this information.

Key words: Android, mobile computing, mobile devices, wiki

Índice de Figuras

Figura 1 - Logo do Android ........................................................................................ 31

Figura 2 - Arquitetura do Android .............................................................................. 34

Figura 3 - Emulador do Android ................................................................................ 39

Figura 4 - Versões do Android ................................................................................... 40

Figura 5 - Ciclo de vida de uma activity ..................................................................... 42

Figura 6 - Exemplo de Activity ................................................................................... 44

Figura 7 - Exemplo BroadcastReceiver ..................................................................... 45

Figura 8 - Hierarquia de nós View e ViewGroup na interface gráfica ........................ 46

Figura 9 - Arquivo XML de layout .............................................................................. 47

Figura 10 – Exemplo de permissão ........................................................................... 49

Figura 11 - Estrutura do AndroidManifest.xml ........................................................... 50

Figura 12 - Tela inicial do Android Market ................................................................. 52

Figura 13 - Tela de instalação de um aplicativo ........................................................ 53

Figura 14 - Disciplinas.dcc.ufba.br ............................................................................ 57

Figura 15 - Diagrama de Casos de Uso .................................................................... 58

Figura 16 - Diagrama de sequência Buscar Disciplina .............................................. 59

Figura 17 - Diagrama de sequência Listar Disciplinas .............................................. 60

Figura 18 - Arquitetura da aplicação ......................................................................... 61

Figura 19 – Conexão com a página do wiki .............................................................. 61

Figura 20 - IDE Eclipse ............................................................................................. 62

Figura 21 - Tela de edição do XML Layout ............................................................... 63

Figura 22 - Tela inicial do aplicativo .......................................................................... 63

Figura 23 - XML de layout da Activity principal.......................................................... 64

Figura 24 - Parte do código da Activity Principal DisciplinasDCC ............................ 65

Figura 25 - Tela de Pesquisa por Disciplinas ............................................................ 65

Figura 26 - Tela Lista de Disciplinas ......................................................................... 66

Figura 27 - Tela de Seleção de Disciplinas ............................................................... 66

Figura 28 - Tela de exibição da disciplina ................................................................. 67

Figura 29 - Opções da Tela de Disciplinas ................................................................ 68

Figura 30 - Wiki acessado pelo aplicativo ................................................................. 68

SIGLAS E SÍMBOLOS

3G 4G AAC ADT API BSD CDMA CSS DCC DDMS GPS GSM HTML IDE IOS J2ME JVM MMS MP3 OHA PC PDAs RIM SDK SMS TDMA UID UFBA WAP WMA XML

Terceira Geração de Celulares Quarta Geração de Celulares Advanced Audio Coding Android Development Tools Interface de Programação de Aplicações Berkeley Software Distribution Acesso Múltiplo por Divisão de Código Cascading Style Sheets Departamento de Ciências da Computação Dalvik Debug Monitor Service Sistema de Posicionamento Global Sistema Global para Comunicações Móveis HyperText Markup Language Integrated Development Environments Iphone Operating System Java 2 Micro Edition Máquina Virtual Java Serviço de Mensagens Multimídia MPEG-1/2 Audio Layer 3 Open Headset Alliance Computador Pessoal Personal Digital Assistants Research In Motion Software Development Kit Serviço de Mensagens Curtas Acesso Múltiplo por Divisão de Tempo Unix User Identification Universidade Federal da Bahia Protocolo para Aplicações Sem Fio Windows Media Audio Extensible Markup Language

SUMÁRIO 1 INTRODUÇÃO ................................................................................................... 10

2 DISPOSITIVOS E APLICAÇÕES MÓVEIS .................. ..................................... 13

2.1 COMPUTAÇÃO MÓVEL ............................................................................. 14

2.2 DISPOSITIVOS MÓVEIS ............................................................................ 19

2.3 PLATAFORMAS E LINGUAGENS .............................................................. 23

2.4 APLICATIVOS MÓVEIS .............................................................................. 26

2.5 MOBILIDADE, USABILIDADE E EFICIÊNCIA ............................................ 27

2.6 SEGURANÇA ............................................................................................. 29

3 A PLATAFORMA ANDROID .............................. ............................................... 31

3.1 ARQUITETURA DO ANDROID ................................................................... 34

3.2 MÁQUINA VIRTUAL DALVIK ...................................................................... 38

3.3 ANDROID SDK ........................................................................................... 38

3.4 VERSÕES DO ANDROID ........................................................................... 39

3.5 COMPONENTES DA APLICAÇÃO ............................................................. 40

3.6 INTERFACE GRÁFICA ............................................................................... 46

3.7 SEGURANÇA E PERMISSÕES .................................................................. 48

3.8 ANDROID MANIFEST ................................................................................. 49

3.9 COMUNICAÇÃO COM UM SERVIDOR ...................................................... 51

3.10 ANDROID MARKET .................................................................................... 52

4 TRABALHO DESENVOLVIDO ............................. ............................................. 54

4.1 QUESTIONÁRIO DE PESQUISA ................................................................ 54

4.2 WIKI DISCIPLINAS DO DCC....................................................................... 55

4.3 O PROJETO DA APLICAÇÃO .................................................................... 57

4.4 PROTÓTIPO DA APLICAÇÃO .................................................................... 61

5 CONCLUSÃO ......................................... ........................................................... 70

REFERÊNCIAS ......................................................................................................... 72

APÊNDICE 1 - QUESTIONÁRIO ......................... ..................................................... 75

10

1 INTRODUÇÃO

Num mundo em que o fluxo de informações cresce de forma acelerada, manter-se

atualizado é uma necessidade para todos. Estar o tempo todo conectado e ter

sempre à sua disposição todos os recursos e informações necessárias à realização

de suas tarefas são formas de alcançar este objetivo.

O avanço da tecnologia tornou isso perfeitamente possível. A computação

móvel trouxe a proliferação dos dispositivos móveis de diferentes formatos e

capacidades que, aliados ao aperfeiçoamento das redes sem fio e telefonia celular,

garantem a mobilidade aos seus usuários (INTEL, 2007).

Não existe invenção que tenha avançado tanto no mundo quanto o celular. O

aparelho passou por um processo de evolução, e deixou de ter apenas a função de

servir como comunicador de voz, adquirindo ao longo do tempo novas

funcionalidades e recursos, e originando novos dispositivos que chegam a possuir a

capacidade de um computador pessoal. Hoje o número de aparelhos celulares já

passou dos 5 bilhões, próximo de atingir a incrível média de um aparelho para cada

habitante do planeta.

Os usuários têm a necessidade de ter recursos como Sistema de

Posicionamento Global (GPS), câmera, músicas, acesso à Internet, entre outros. A

evolução dos dispositivos trouxe tudo isso e mais um pouco. Os principais recursos

dos dispositivos móveis são as aplicações móveis, ou aplicativos, que vão desde

simples ferramentas de produção pessoal até sistemas de contas de banco.

Existem diversas plataformas móveis, cada uma com particularidades,

vantagens e desvantagens. O objetivo principal das empresas desenvolvedoras é

construir plataformas modernas e ágeis, que deixem seus usuários satisfeitos.

Grandes empresas têm travado uma enorme disputa para se manter a frente do

mercado consumidor.

Visando este mercado em expansão, a Google, gigante da internet,

juntamente com um grupo de grandes empresas de telefonia móvel, chamado Open

Headset Alliance (OHA), criou o Android, uma plataforma de desenvolvimento para

11

aplicativos móveis, baseada no sistema operacional Linux. A plataforma apresenta

uma interface visual rica, GPS, diversas aplicações já instaladas e ainda um

ambiente de desenvolvimento bastante poderoso, inovador e flexível (LECHETA,

2010). Além disso, o Android é uma plataforma de código aberto e bastante flexível

em relação a mudanças desejadas pelos desenvolvedores.

O wiki Disciplinas do Departamento de Ciências da Computação da

Universidade Federal da Bahia (DCC/UFBA) é uma ferramenta de colaboração

coletiva onde alunos e professores do departamento compartilham informações

sobre as disciplinas através de uma página web.

No wiki é possível encontrar diversas informações sobre as disciplinas, como

conteúdo programático, notas de aula, exercícios, assim como dados do semestre

atual, como calendário com datas de provas e trabalhos, metodologia e notas dos

trabalhos, entre outros. Dessa forma, alunos e professores se mantém sempre

atualizados do que acontece nas disciplinas.

Por isso, existe a necessidade de deixar estas informações disponíveis a

todos em qualquer lugar que estiverem, de uma maneira prática e fácil de visualizar,

através de um dispositivo móvel.

Este trabalho tem como objetivo apresentar um protótipo de aplicativo móvel

que traz os benefícios da mobilidade, aliado às facilidades de desenvolvimento

oferecidas pela plataforma Android, para que docentes e discentes tenham acesso

às informações do wiki de disciplinas.

O tema e o objetivo do trabalho foram definidos devido ao desejo do autor de

aprender novas tecnologias, que apresentassem uma tendência de crescimento no

mercado tecnológico, e de desenvolver uma ferramenta útil para docentes e

discentes do DCC. A escolha de desenvolver um aplicativo pra o Android se deu

por conta da flexibilidade e das facilidades oferecidas por esta plataforma de

desenvolvimento.

Primeiramente, foi realizada uma pesquisa online com alunos e professores

do DCC, cujo objetivo era medir a utilização de dispositivos móveis e do wiki de

disciplinas, e o impacto que um aplicativo móvel para acessar as informações do wiki

iria causar e se seria utilizado.

12

Os resultados da pesquisa mostraram a grande utilização de dispositivos

móveis dentro do departamento e a tendência do número de adoções aumentar.

Além disso, a maioria dos respondentes afirmou que utilizaria o aplicativo móvel

para acessar o wiki de disciplinas.

Como o resultado da pesquisa se mostrou positivo para o desenvolvimento do

aplicativo, foi elaborado um projeto, onde os requisitos foram levantados e as

funcionalidades da aplicação apresentadas. Após o projeto, foi construído um

protótipo da aplicação, que simula o funcionamento do aplicativo real.

Este trabalho está estruturado da seguinte maneira: introdução ao conteúdo

abordado no texto, que é este primeiro capítulo.

O segundo capítulo aborda os conceitos de dispositivos e aplicações móveis,

traçando um histórico da computação móvel, descrevendo as principais plataformas

e destacando as principais características desta tecnologia.

No terceiro capítulo é descrita a plataforma Android, seu funcionamento e

suas características.

O trabalho desenvolvido é apresentado no quarto capítulo, dividido em três

etapas: uma pesquisa entre alunos e professores do DCC/UFBA para avaliar a

importância do aplicativo móvel a ser desenvolvido dentro do departamento; o

projeto da aplicação, onde é descrito o funcionamento do aplicativo e, por último, o

protótipo da aplicação, com detalhes sobre sua implementação.

No quinto e último capítulo, são apresentadas as conclusões sobre o trabalho

e os futuros trabalhos a serem desenvolvidos baseados neste estudo.

13

2 DISPOSITIVOS E APLICAÇÕES MÓVEIS

O mercado de celulares e dispositivos móveis vem crescendo cada vez mais. De

acordo com estudos, hoje existem mais de cinco bilhões de celulares no mundo, o

que corresponde a quase um aparelho para cada pessoa da população.

Os usuários modernos buscam cada vez mais celulares que possuam

diversos recursos como câmeras, músicas, bluetooth, ótima interface visual, jogos,

GPS, acesso a internet e e-mails, televisão digital, etc. O mercado corporativo

também vê oportunidade nesse segmento, ao incorporar aplicações móveis no seu

dia-a-dia trazendo mais agilidade para seus negócios e integrando-as com seus

sistemas de back-end. Assim, como as empresas buscam lucros e mais lucros,

celulares e smartphones podem se encaixar perfeitamente num espaço onde

“mobilidade” é uma palavra cada vez com mais evidência. (LECHETA, 2010)

A mobilidade remete os softwares de volta à arquitetura baseada em cliente-

servidor. Esta arquitetura era dominante há alguns anos atrás, antes que os

aplicativos web, baseados em um cliente central (o navegador web), tomassem

conta do mercado devido à explosão da internet. É a constante transformação do

mundo tecnológico (NUNES, 2011).

Nunes (2011) diz que o mundo móvel é muito mais híbrido e

“despadronizado” que o mundo web, no qual a diferença se localiza basicamente

nos navegadores, onde Internet Explorer e Firefox exercem certo domínio, e

apresentam apenas pequenas diferenças na exibição de sistemas web. No mundo

móvel, existe uma grande variedade de fabricantes de aparelhos e sistemas

operacionais.

Além disso, dispositivos móveis exigem que suas aplicações apresentem uma

experiência de usuário muito mais simplificada que aquelas projetadas para

ambiente web, exibidas em computadores pessoais (PCs). O motivo disto é que

existe uma enorme diferença entre o tamanho de tela e a resolução de um

14

smartphone comum e o menor monitor de PC com resolução de 1024 por 768 pixels.

Ou seja, não é muito provável que uma interface projetada para web se

redimensione bem quando acessada em um dispositivo móvel. (NILSEN et al.,

2007)

São diversas as plataformas móveis, Java Micro Edition (J2ME), Iphone,

Symbian, Blackberry, Android e Windows Mobile (agora Windows Phone), citando

apenas as principais, cada qual com suas particularidades. Cada aparelho também

tem suas características de hardware específicas, como câmera, GPS, tipo de

teclado, tamanho e resolução de tela.

Neste contexto, empresas e desenvolvedores buscam uma plataforma de

desenvolvimento que seja moderna e ágil. Já os usuários necessitam de celulares

com muitos recursos, que tenham visual elegante e moderno, e que sejam de fácil

navegação.

Grandes empresas têm disputado uma grande corrida para ter a preferência

dos usuários neste nicho de mercado. Para ocupar este espaço, a Google, junto

com grandes empresas do mercado de telefonia celular, formou a OHA, e criou o

Android, plataforma de desenvolvimento para aplicativos móveis baseada no

sistema operacional Linux, com diversas aplicações previamente instaladas e um

ambiente de desenvolvimento com muitos recursos (LECHETA, 2010).

2.1 COMPUTAÇÃO MÓVEL

Jhonson (2007) levanta um questionamento sobre o que se movimenta dentro do

conceito da Computação Móvel, o dispositivo (junto com o usuário) ou o código. De

acordo com o autor, “existe uma definição que diz que computação móvel permite

que usuários tenham acesso a serviços independente de sua localização”.

Para que este objetivo seja alcançado deve existir então uma infra-estrutura

de comunicações sem fio, além de suporte à mobilidade. Assim, usuário e

dispositivo se movimentam, o que não impede que o código também se movimente

(entre dispositivos e servidores), conceito conhecido como “código móvel”.

15

Existe uma gama de serviços que podem ser implementados para

computação móvel. Trocas de mensagens – Serviço de Mensagens Curtas (SMS) e

Serviço de Mensagens Multimídia (MMS), serviço de e-mail, chat, são apenas alguns

exemplos. Hoje em dia, o segmento que mais cresce nessa área são os aplicativos

móveis, que oferecem diversos serviços, desde consultas bancárias ou marcações

de consultas médicas até localização geográfica.

Tudo isso só é possível devido à disponibilidade de acesso à comunicação. A

utilização de serviços móveis só está disponível para o usuário por causa da

existência das redes de telefonia celular e das redes sem fio. Os principais padrões

de rede sem fio atualmente são as tecnologias bluetooth, WiFi, WiMax e 3G.

A história do celular se inicia através de uma atriz, a austríaca Hedwig Kiesler.

Kiesler era casada com um austríaco nazista fabricante de armas, e se mudou para

os Estados Unidos em ocasião da segunda guerra mundial. Lá, ficou sabendo que

alguns torpedos teleguiados da marinha americana haviam sido interceptados por

inimigos. Então, empenhou-se na criação de um sistema em que duas pessoas se

comunicassem mudando o canal, para que a conversa não fosse interceptada. Essa

foi a primeira concepção do celular, patenteada em 19401.

Em 1947, um grupo de engenheiros teve a idéia de criar um sistema que fosse

capaz de realizar a comunicação entre dois telefones sem fio. Então, começou a ser

desenvolvido no laboratório Bell, nos Estados Unidos, um sistema telefônico de alta

capacidade interligado por diversas antenas, sendo que cada antena era

considerada uma célula. Por isso o nome de celular. Inicialmente, as idéias não

passaram muito da teoria e pouco se pôs em prática (JORDÃO, 2009).

Entre 1947 e 1973, muitos fabricantes fizeram testes, mas o primeiro celular a ser

desenvolvido foi o Ericson MTA, da Ericson, que pesava cerca de 40 quilogramas e

seria instalado em porta-malas de carros (WIKIPEDIA, 2011).

Porém, tudo começou de verdade em 1973, quando foi efetuada a primeira

chamada de um telefone móvel para um telefone fixo. A partir deste fato pôde-se

1 Extraído de História de Tudo (História do Celular). Disponível em http://www.historiadetudo.com/celular.html

16

comprovar que o celular funcionaria perfeitamente e que a rede de telefonia

projetada em 1947 tinha sido idealizada corretamente.

Em 3 de abril de 1973, a Motorola se tornou a primeira empresa a mostrar um

aparelho em funcionamento. O aparelho se chamava Dynatac e era apenas um

protótipo, portanto não estava a venda ao público. Foi com ele que ocorreu a

primeira ligação de um aparelho celular. Ele tinha 25 centímetros de comprimento,

sete centímetros de largura e pesava cerca de um quilograma. Porém, o primeiro

modelo só foi liberado comercialmente nos Estados Unidos apenas em 1983. Outras

marcas já tinham iniciado suas operações no Japão e na Escandinávia, em 1979.

Os primeiros aparelhos não eram tão portáteis e chegavam a pesar em média um

quilograma e tinham quase 30 centímetros de altura. A maioria era desenvolvida

para ser instalada em carros, e seu preço era astronômico, portanto apenas uma

pequeníssima parte da população tinha acesso aos aparelhos.

No início, os assinantes tinham que pagar 20 mil dólares para possuir um

sistema telefônico deste tipo. Naquela época, consultorias contratadas para analisar

as perspectivas do celular para investidores, concluíram que os celulares não eram

um bom negócio e não vingariam, não alcançando mais do que 15% da população

dos Estados Unidos ao final de 20 anos. Na análise, portanto, não foram levados em

conta dois fatores essenciais: o impacto da miniaturização e a revolução da

digitalização nas telecomunicações e na eletrônica em geral. Trinta anos depois, os

consultores puderam comprovar o erro que cometeram em suas previsões.

Nas décadas de 70 e 80, Japão e Suécia efetivaram tecnologias próprias. No

final da década de 80, a tecnologia já estava desenvolvida em quase todos os

países. Só em 1990, o primeiro celular foi lançado no Brasil, no Rio de Janeiro, e em

seguida, em Uberlândia (WIKIPEDIA, 2011).

A segunda geração de celulares chegou logo no início dos anos 90 e, além de

novos aparelhos com tamanho e peso aceitáveis, também aderiu a novos padrões

de comunicação. Acesso Múltiplo por Divisão de Tempo (TDMA), Acesso Múltiplo

por Divisão de Código (CDMA) e Sistema Global para Comunicações Móveis (GSM)

eram as três tecnologias de comunicação que imperavam naquela época. Esta

geração perdurou até a virada do milênio e trouxe novidades como:

17

• O serviço de mensagem de texto (SMS): na época era pouco utilizado, pois

as mensagens eram limitadas a poucos caracteres e não permitiam o uso de

caracteres especiais. Além disso, era necessário que o celular do destinatário

fosse compatível com o do remetente. Geralmente, um teclado alfanumérico

estava presente nos celulares capazes de enviar mensagens de texto;

• Toques monofônicos e polifônicos: com o avanço da tecnologia, surgiram

para substituir as campanhias um tanto quanto irritantes dos celulares mais

antigos;

• Displays coloridos: os dispositivos monocromáticos não transmitiam tudo que

os olhos podiam perceber. Logo, as fabricantes introduziram visores com

escalas de cinza, recurso que permitia as pessoas distinguir imagens. Mas

ninguém estava muito satisfeito ainda, pois tudo parecia muito irreal. Foi um

grande susto quando surgiu o primeiro celular com quatro mil cores, uma

tecnologia incrível para um aparelho tão pequeno. A partir daí, surgiram os

aparelhos com 64 mil cores e, logo depois, com 256 mil cores – agora as

imagens já podiam ser vistas como no mundo real e não se percebia mais a

falta de cores. A evolução continuou e hoje os aparelhos possuem 16 milhões

de cores, recurso fundamental em aparelhos de alta resolução;

• Mensagens multimídia e Internet: com o advento das imagens coloridas, logo

veio um novo recurso que possibilitava a troca de imagens entre celulares.

Eram as mensagens multimídia, as famosas MMS. Com a evolução do

serviço, tornou-se possível também o envio de vídeos. Mas o que as pessoas

esperavam mesmo estava finalmente disponível nos celulares: a Internet.

Evidentemente, ela não se parecia nem um pouco com a que era acessada

através dos computadores pessoais. Havia a necessidade dos portais criarem

páginas personalizadas para celular (páginas WAP), com conteúdo reduzido

e poucos detalhes. Mas isso certamente iria evoluir muito em breve.

Novos serviços eram implantados pelas operadoras de telefonia móvel e novas

funções apareciam nos celulares. A geração 2,5G, não reconhecida oficialmente, foi

marcada pelo aumento significativo da velocidade de acesso à Internet, pelas novas

características dos aparelhos e por apresentar um novo conceito de celular aos

usuários.

18

A implementação da câmera nos celulares foi um fato revolucionário. Apesar

de até hoje a maioria dos celulares não possuir uma câmera de boa qualidade,

naquela época foi uma grande novidade para os usuários um aparelho cuja função

principal era a comunicação, trazer consigo este recurso.

Uma função que se tornou um dos grandes atrativos nos celulares foi o suporte

a reprodução de arquivos MPEG-1/2 Audio Layer 3 (MP3). O que hoje é comum, um

dia já foi um grande luxo. Mesmo antes da existência desses arquivos, as

fabricantes já cogitavam a idéia de reproduzir musicas no aparelho. O suporte a

reprodução não se restringiu apenas a MP3, mas também a outros arquivos de

áudio – como o Advanced Audio Coding (AAC) e o Windows Media Audio (WMA),

entre outros. Além disso, muitos fabricantes adicionaram equalizador, suporte a

listas de reprodução, visualizações, entre outros.

Hoje já não se fala muito em celular. O assunto predominante são os

smartphones, termo que foi adotado devido à utilização de um sistema operacional

nos celulares. Além do sistema operacional, estão incluídos nos smartphones redes

sem fio (WiFi), câmera de qualidade razoável, bluetooth, memória interna com muito

espaço – ou espaço para cartão externo -, funções aprimoradas, suporte a redes de

terceira geração (3G) e muito mais.

Assim, a terceira geração de celulares chegou e trouxe com ela vantagens

como videochamada, conexão de internet de alta velocidade, economia de energia

nos aparelhos e funcionalidade de internet sem a necessidade de um aparelho

celular (é possível utilizar a rede de internet 3G em Modems). Os dispositivos móveis

evoluíram e de aparelhos sem fio destinados a comunicação com voz, com

funcionalidades estáticas e codificadas em hardware, transformaram-se em

dispositivos extensíveis, capazes de se conectar a Internet, transmitir dados e utilizar

softwares avançados (MATTOS, 2005).

A evolução continua e já se discutem idéias de como será a quarta geração de

telefonia celular, apesar de que, como a 3G, ela demore algum tempo para chegar e

se estabelecer. A quarta geração de celulares (4G) deve continuar investindo no

avanço da transmissão de dados. É provável que os novos aparelhos comecem a

trabalhar com o protocolo IP e sejam compatíveis com as redes de computador,

tornando-se assim pequenos computadores.

19

2.2 DISPOSITIVOS MÓVEIS

Estima-se que em 2020 o mundo terá cerca de 55 bilhões de dispositivos móveis,

dentre os quais estarão celulares comuns, smartphones, Ipods, tablets e aqueles

dispositivos que farão a comunicação entre máquinas. Isto sugere que a mobilidade

irá superar largamente os limites atuais da telefonia celular móvel (SIQUEIRA,

2011).

Nenhuma outra invenção se expandiu e alcançou tanto as pessoas em tão

pouco tempo quanto o celular. O celular alcançou, em 30 anos, 5,3 bilhões de

pessoas, numa população que se aproxima de 6,9 bilhões de habitantes.

A previsão diz que, ao final de 2011, o mundo ultrapassará a marca dos seis

bilhões de celulares. Televisão, rádio, computador pessoal e Internet, juntos,

superam em apenas um bilhão a quantidade de usuários comparados aos de

celulares.

Quando se fala em dispositivo móvel, é comum pensar primeiramente em

smartphone. Ambos viraram sinônimos. Porém, a variedade de dispositivos não se

resume apenas aos smartphones. O número de novos dispositivos cresceu

largamente na última década, com os laptops e seus modems 3G, netbooks e,

ultimamente, os tablets. A tendência é que nos próximos dez anos estes dispositivos

se multipliquem, num cenário em que a comunicação máquina-máquina deverá

superar largamente a comunicação entre seres humanos.

Do lado do usuário, haverá uma grande expansão na utilização da

computação móvel, comercio móvel, videoconferência, televisão móvel e muitas

outras aplicações da internet de banda larga móvel. O elemento de desequilíbrio

deste cenário poderá ser o tablet, especialmente se for utilizado para recepção

móvel de televisão, filmes, shows, revistas e livros, além de todas as outras funções

hoje vistas nos smartphones.

De acordo com dados revelados pela Wireless Intelligence2, no Mobile World

Congress 2011, maior evento sobre dispositivos móveis do mundo, realizado em

2 http://www.wirelessintelligence.com/

20

Barcelona no início de 2011, já existem países em que o número de celulares

ultrapassa o número de habitantes. Na Europa, Itália (155), Portugal (140), Rússia

(132), Alemanha (131), Espanha (128), Reino Unido (123), Ucrânia (120), Finlândia

e todos os países escandinavos têm mais de 115 celulares por 100 habitantes.

Na Ásia, a grande surpresa é a liderança do Vietnã, com 144 celulares por

100 habitantes. Em 2º lugar, vem o Japão, com 94 celulares em cada 100 pessoas.

China e Índia são os dois maiores mercados do mundo. As estatísticas da China são

surpreendentes. Em 10 anos, o número de celulares pulou de seis milhões para

atuais 842 milhões. A China Mobile é a maior operadora do mundo, com mais de

600 milhões de assinantes.

Na América Latina, a Argentina tem densidade expressiva de 133 celulares

por 100 habitantes. No Brasil, a penetração já supera os 107%. Os países

emergentes ocupam uma posição de destaque na expansão do celular no mundo.

Nos países do BRIC (Brasil, Rússia, Índia e China) foram instalados 250 milhões dos

600 milhões de celulares postos em serviço no mundo inteiro em 2010.

Devido ao fato de ter sido o continente em que a comunicação móvel chegou

mais recentemente, a África apresenta o maior ritmo de crescimento. No Oriente

Médio, a maior utilização se dá na Arábia Saudita (140 celulares a cada 100

pessoas) e em Israel (128 celulares a cada 100 pessoas).

O Brasil disputa hoje com a Indonésia o quinto lugar entre os maiores

mercados de telefonia do mundo. A Tabela 1 mostra o ranking com os sete países

que lideram este mercado em número de celulares.

Tabela 1 - Maiores mercados de telefonia do mundo

País Número de celulares China 842 Índia 757 Estados Unidos 304 Rússia 220 Indonésia 209 Brasil 206 Japão 122

Fonte: SIQUEIRA, 2011

21

Como já se pode perceber, existem diversas categorias de dispositivos

móveis. Estes grupos estão divididos por características como capacidade

computacional, capacidade de armazenamento de dados, funcionalidades, recursos

e tamanho.

No primeiro grupo estão os laptops, notebooks e netbooks. Estes dispositivos

são computadores portáteis, leves, que foram desenvolvidos para serem

transportados e utilizados em qualquer lugar com facilidade. Possuem capacidade

computacional equivalente a um desktop.

No segundo grupo estão os Personal Digital Assistants (PDAs). Hoje já

defasados, os PDAs possuem telas pequenas, mas tem um poder de

processamento mais alto que o de telefones celulares, porém baixo se comparado à

capacidade dos notebooks. Os PDAs suportam aplicativos desenvolvidos em

linguagens de programação de alto nível, recursos multimídia, entre outros. Já foram

bastante úteis na realização de tarefas simples. Seus aplicativos se propunham a

gerenciar contatos, manejar despesas e organizar a agenda. Eram muito úteis na

época dos monitores de tubo. Começaram a entrar em decadência quando surgiram

os primeiros celulares com recursos parecidos. Hoje em dia, um aparelho que se

assemelha aos PDAs antigos é o Ipod Touch (INFOWORLD/EUA, 2010)

No terceiro grupo, estão os celulares e smartphones. Antes, estes aparelhos

possuíam telas minúsculas e quase nenhum recurso. Porém, aparelhos com estas

características já estão quase em desuso atualmente. Devido ao avanço

tecnológico, a capacidade de memória destes dispositivos foi expandida, assim

como o acesso a redes sem fio e o suporte a tecnologias avançadas, como o Java.

Estes avançados aparelhos, conhecidos como smartphones, agora detém a maior

fatia do mercado de celulares. Além de servir como telefone, estes aparelhos

possuem recursos equivalentes ou até mais avançados que os existentes nos PDAs.

São diversas marcas e modelos disponíveis, cada um com recursos, além de

sistema operacional e poder de computação próprios. Os smartphones, com seus

diversos recursos, colocaram em decadência pelo menos 10 gadgets que há algum

tempo atrás ocupavam posição de destaque no mercado. Entre eles pode-se citar

MP3 Players, consoles de videogame portátil, câmeras digitais, vídeo players,

22

gravador de voz, GPS, PDA, relógios de pulso, guia de ruas e televisores portáteis

(BERTOLUCCI, 2011).

No grupo mais recente, estão incluídos os leitores digitais, ou tablets.

Inicialmente criados apenas para servirem como leitores de livros digitais, hoje

funcionam como mini-computadores. Suas características se assemelham ao de

PDAs e smartphones, porém com telas maiores, e mais recursos disponíveis. O

tablet é um dispositivo móvel em forma de prancheta, que pode ser utilizado para

acessar a Internet, visualizar fotos, ler livros, jornais e revistas, além de possuir

recursos para organização pessoal e entretenimento com jogos de terceira

dimensão (3D). A tela de touchscreen é o principal dispositivo de entrada, e suas

funcionalidades podem ser acionadas pela ponta do dedo ou por uma caneta.

Possui diversas funcionalidades semelhantes às de computadores completos e

smartphones. Existem também os leitores de livros eletrônicos, que possuem

recursos mais limitados que os tablets, e como o próprio nome já diz, servem para a

leitura de livros em formato eletrônico.

Como existem vários dispositivos numa mesma categoria, com características

comuns e também diferentes, o desenvolvimento de aplicativos para dispositivos da

mesma categoria pode variar. A forma de desenvolver uma aplicação, assim como a

linguagem de programação utilizada irá depender do hardware e dos recursos

disponíveis em cada aparelho.

Durante o Mobile World Congress, o Iphone 4 foi escolhido o melhor dispositivo

móvel da atualidade. Concorrendo com modelos lançados em 2010, como o

Samsung Galaxy S, o HTC Desire e o LG Optimus 7, o aparelho foi escolhido pelo

júri devido a fatores como design, qualidade da tela e “ecossistema fenomenal”

(VEJA, 2011).

A HTC foi escolhida a melhor fabricante do mundo, sendo considerado o seu

rápido avanço no mercado, com um “ótimo” portfólio de produtos disponíveis em

diversas plataformas (ver seção 3.4) – como as desenvolvidas por Google e

Microsoft.

23

2.3 PLATAFORMAS E LINGUAGENS

Existem vários sistemas operacionais para dispositivos moveis. Todos eles possuem

plataformas para desenvolvimento e execução de seus aplicativos. Cada plataforma

possui suas particularidades tais como linguagens suportadas (uma plataforma pode

suportar mais de uma linguagem de programação, a exemplo do Symbian, que

suporta as linguagens J2ME, Symbian C++ e Python, entre outras), recursos

mínimos e aparelhos compatíveis. Isto significa que uma aplicação desenvolvida

para uma plataforma não funcionará em outro.

O primeiro sistema operacional para dispositivos móveis a se popularizar foi o

PalmOS (MENDONÇA, 2007). Desenvolvido há quase 10 anos, chegou a atingir

quase 90% do mercado mundial de palmtops nos tempos áureos. O sistema

realizava tarefas simples muito bem, mas deixava a desejar em questões mais

sofisticadas, como multitarefa ou recursos de segurança. Apesar de limitado, era

surpreendentemente rápido e responsível. O desenvolvimento do PalmOS parou já

há alguns anos, e foi substituído por uma nova plataforma, um sistema multitarefa

chamado WebOS, baseado em Linux, destinado a smartphones.

Além do Android, que será abordado logo mais, existem outras cinco plataformas

mais fortes no mercado atualmente. É provável que, em alguns anos, algumas delas

já não existam mais, com duas ou três dominando o mercado.

• Java 2 Micro Edition (J2ME): criada pela Sun e atualmente mantida pela

Oracle (após esta ter adquirido a Sun) é a plataforma Java voltada para

dispositivos com recursos de hardware e software ilimitados. Pelo fato de

necessitar-se apenas de uma máquina virtual (JVM – Java Virtual Machine)

para executar aplicativos na linguagem J2ME, é suportada por um grande

número de aparelhos. É uma plataforma gratuita, com diversas Integrated

Development Environments (IDEs) disponíveis, sendo a maior comunidade de

desenvolvedores móveis. Os sistemas operacionais que dão suporte a ela

são: Symbian (UIQ, S30, S40, S60, S80, S90), Palm Os, Linux, Brew,

BlackBerry e Microsoft Windows Mobile. A desvantagem do J2ME é estar

muito desatualizado. Mesmo sendo a plataforma mais popular e utilizada, sua

última especificação foi feita em 2002, quando os aparelhos ainda não

24

possuíam tantos recursos como os de hoje. Como conseqüência, o destino do

J2ME é perder espaço e entrar em desuso, devido à ascensão de plataformas

mais novas e atualizadas, como o Android e o Iphone. A linguagem Java é

também utilizada em outras plataformas, como o BlackBerry e o Android, que

veremos a seguir. É provável que, se não for lançada uma nova versão da

plataforma (3.0) brevemente, o J2ME deixe de ser adotado.

• Iphone Operating System (IOS): mantido pela Apple, possui sua própria

plataforma de desenvolvimento e suporta aplicativos desenvolvidos apenas

na linguagem Objective C através da ferramenta Iphone Software

Development Kit (SDK). O Iphone SDK possui versões para Linux e Windows,

por isso é necessário ter um computador com o sistema MAC OS instalado.

Apesar do alto custo para iniciar o desenvolvimento e do grande número de

aplicativos já existentes, a demanda por estes continua a crescer, sendo o

Iphone uma das plataformas com maior índice de crescimento.

• BlackBerry: os aparelhos são desenvolvidos pela Research in Motion (RIM) e

possuem sistema operacional próprio, o BlackBerry OS. Possui sua própria

linguagem de desenvolvimento, uma Interface de Programação de Aplicações

(API) Java criada pela RIM, que oferece diversos recursos para que o

desenvolvedor explore melhor o aparelho. O BlackBerry suporta também

aplicativos desenvolvidos em J2ME, porém sem acesso a recursos que a API

juntamente com a ferramenta BlackBerry JDE possibilitam a utilização. O

BlackBerry já foi líder no mercado de smartphones, mas nos últimos anos

perdeu algum espaço para Iphone e Android, porém continua entre os

dispositivos mais utilizados. A plataforma tem popularidade destacável

principalmente no mercado corporativo. Desenvolver para BlackBerry é difícil,

pois apesar de utilizar Java, sua API possui particularidades que dificultam o

processo e a base de conhecimento não é muito difundida. Somente agora,

após perder espaço no mercado, é que a RIM tem visado facilitar o

desenvolvimento, lançando novas versões da sua plataforma.

• Symbian: é o sistema operacional utilizado pela maioria dos aparelhos de

hoje, já foi mantido por um consórcio de diversos fabricantes, como Nokia,

Siemens, Samsung, Ericsson, Sony Ericsson e Panasonic. Atualmente

25

pertence à Nokia, que adquiriu quase a totalidade de suas ações no final de

2008. A grande preocupação do Symbian é evitar ao máximo o desperdício

dos recursos do celular, como bateria e memória. É um sistema totalmente

modular, o que permite cada empresa criar sua própria interface. Devido a

sua versatilidade, permite o desenvolvimento de aplicativos em diversas

linguagens, como Symbian C/C++, Java ME, FlashLite, HyperText Markup

Language (HTML) 5, Perl, Python, Ruby, Lua, Acelerômeter e QT. A Nokia

oferece uma IDE gratuita para desenvolvimento, a Carbide C++, baseada no

Eclipse. O Symbian é utilizado na Series 60, atualmente a maior plataforma

para smartphones, desenvolvida pela Nokia e utilizada também pela Ericsson

(WIKIPEDIA, 2011).

• Windows Mobile/Windows Phone: é o sistema operacional móvel da

Microsoft. Inicialmente conhecido como Pocket PC, ganhou o nome de

Windows Mobile quando passou para uma versão que servia tanto para

palmtops (Pocket PCs) quanto para celulares (smartphones) e também em

outros aparelhos de multimídia em geral. Assim, as aplicações rodavam em

ambos os dispositivos, sem alteração alguma. O Windows Mobile foi

projetado para realizar boa parte do que é possível na versão do Windows

para computadores pessoais, vindo com um conjunto de aplicações básicas

bastante conhecidas no mundo do PC, como o Word, Excel, PowerPoint e

Windows Media Player Pocket. O Windows Mobile foi sucedido pelo Windows

Phone 7, lançado no final de 2010. O Windows Phone 7 foi totalmente

reescrito, não sendo baseado nas versões anteriores do Windows Mobile,

apresentando uma interface gráfica totalmente nova, não permitindo a

personalização das interfaces e controlando rigorosamente todo o hardware

do sistema operacional (WIKIPEDIA, 2011).

Existem outras plataformas menos utilizados no mercado, como o Bada e o

MeeGo, ambos baseados em Linux e de código aberto. O primeiro foi projetado

exclusivamente para celulares Samsung. O segundo surgiu de uma parceria entre

Nokia e Intel, que tem como foco levar o MeeGo além dos celulares e expandi-lo

para netbooks,TVs, PDAs, GPS e tablets, realizando a integração entre todos os

dispositivos onde estiver instalado, facilitando a comunicação entre os usuários

desses aparelhos (CAMARGO, 2010).

26

2.4 APLICATIVOS MÓVEIS

Milhares de aplicações móveis surgem todos os dias e exploram as diversas

potencialidades das novas tecnologias de comunicação. Os aplicativos móveis são

programas produzidos para dispositivos móveis como celulares, pagers,

smartphones, tablets e alguns tipos de netbooks. Hoje em dia, mesmo os celulares

mais simples possuem diversos aplicativos e ainda há a possibilidade de instalar

novos aplicativos.

Um estudo realizado pela Nokia, em parceria com um renomado professor da

universidade americana Cornell University, mostrou que 55% dos usuários de

smartphones acreditam que os aplicativos móveis influenciam beneficamente suas

vidas. (CONVERGÊNCIA DIGITAL, 2011)

Os smartphones, celulares com características que podem se comparar a

computadores pessoais, como capacidade e funcionalidades, abriram caminho para

o desenvolvimento do mercado de aplicativos móveis.

Existe uma grande diferença entre os aplicativos móveis e as aplicações

baseadas em web. Enquanto estas têm sua arquitetura baseada em um cliente

central, que é o navegador web, as aplicações móveis tem arquitetura baseada em

cliente-servidor, adotada pelos softwares que dominavam o mercado antes que a

Internet explodisse no mundo da tecnologia. Essa pequena diferença impacta

bastante no desempenho e na usabilidade das aplicações, o que será tratado na

seção posterior.

Os aplicativos podem ser utilizados com diferentes objetivos, tanto para

aplicações pessoais quanto comerciais. Inicialmente, os aplicativos eram

simplesmente ferramentas de escritório, como agenda, calendário, entre outros.

Com o avanço dos recursos disponíveis nos dispositivos, abriu-se um leque de

oportunidades a serem exploradas pelos desenvolvedores.

27

Existem infinitas possibilidades para o mercado de aplicativos móveis:

informação, entretenimento ou serviço (PAPERCLIQ, 2009). De acordo com o

estudo da Nokia, a coleção de aplicativos que uma pessoa possui em seu dispositivo

demonstra suas necessidades, personalidade e interesses. Aplicativos de grande

sucesso hoje em dia são os que permitem acesso, mesmo que muitas vezes

limitado, a determinadas funcionalidades de redes sociais, mantendo o usuário

conectado a sua rede de contatos em qualquer lugar que estiver.

Cada plataforma possui um repositório próprio para que os desenvolvedores

disponibilizem suas aplicações. Cada uma possui um conjunto de regras próprio

para o compartilhamento dessas aplicações, assim como uma política de vendas e

downloads. Tais repositórios são conhecidos como lojas de aplicativos, e as mais

importantes são a Apple App Store, a Blackberry App World (RIM), a Ovi Store

(Nokia) e o Android Market.

A receita global das lojas virtuais de aplicativos para smartphones cresceu

160,2% em 2010, movimentando US$2,2 bilhões, mais que o dobro em relação aos

US$828 milhões registrados em 2009, segundo pesquisa da IHS iSuppli.

Líder absoluta do segmento, a Apple App Store respondeu por 82% do total

das vendas. Em segundo lugar, apareceu a loja de aplicativos do BlackBerry, da

RIM. O avanço mais expressivo se deu por parte da Android Market, da Google, que

pulou para 4,7% crescimento de 3,3% em relação a 2009, e se aproximou da Ovi

Store, loja de aplicativos da Nokia, atual terceira colocada. (TI INSIDE, 2011)

Em termos de número de downloads, a IDC prevê que ele cresça de 10,9

bilhões em 2010 para 76,9 bilhões em 2014. Assim, acredita-se que o faturamento

do setor ultrapasse US$35 bilhões até 2014. (IMASTERS, 2010)

2.5 MOBILIDADE, USABILIDADE E EFICIÊNCIA

Geralmente, o objetivo dos usuários ao acessar websites ou aplicativos móveis é

obter informações imediatas. Por isso, é de grande importância que a forma de

28

apresentação e a interface do dispositivo sejam adequadas para atender tais

necessidades.

O tipo de arquitetura utilizado pelas aplicações móveis pode causar grande

impacto no desempenho e na usabilidade do aplicativo. São dois os tipos de

arquitetura mais comuns, via web (HTML) ou com clientes específicos para cada

plataforma (cliente-servidor).

Nos aplicativos cliente, boa parte do conteúdo já está presente no aparelho:

camada visual, tabelas, imagens, textos-padrão, entre outros. O que trafega pela

rede são basicamente as informações necessárias para popular o aplicativo, que

geralmente são textos simples e trafegam rapidamente pela rede. Na abordagem

web, todo o conteúdo tem de ser carregado do servidor para o dispositivo, sendo

necessário fazer o download de tudo a cada requisição. Além de ser mais lento, sai

mais caro para o usuário, que precisa pagar pelo tráfego de dados.

Além disso, a usabilidade das aplicações web é limitada pelo conjunto de

recursos da linguagem HTML, mesmo que os navegadores móveis estejam

evoluindo. Ainda são poucos os elementos de interface disponíveis para

interatividade, como caixas de seleção e escolha, pop-ups, alertas, tabelas e alguns

outros.

Mesmo com as facilidades de acesso à Internet pelo celular, a experiência de

uso das interfaces ainda carece de melhorias. Pesquisas e estudos apontam alguns

problemas e motivos para a insatisfação dos usuários (AVELLAR E DUARTE, 2010):

• A velocidade das conexões impede que os sites carreguem mais rápido;

• Dificuldade de configuração dos serviços pelos usuários;

• Programas simples como uma agenda de manuseio complicado, devido ao

design inadequado do hardware;

• Informações e conteúdo aproveitados diretamente de websites planejados

para PCs, pouco adaptados para o ambiente móvel.

Uma aplicação deve ser projetada e planejada para que funcione sem

problemas no dispositivo móvel desejado. É necessário que o projeto tenha em vista

29

o tamanho reduzido das telas, para que a exibição do conteúdo não sofra nenhum

distúrbio.

Além disso, em termos de eficiência na utilização dos recursos, o ideal é usar

somente o necessário. Assim, evita-se o processamento exagerado no dispositivo e,

em conseqüência, o consumo alto de memória, o que poderia causar travamentos,

além de outros problemas.

A simplicidade e a facilidade de uso são extremamente importantes, pois

fazem com que o usuário realize as tarefas desejadas correta e rapidamente. Se o

usuário encontrar alguma dificuldade na primeira tentativa de uso, é provável que ele

não use mais o aplicativo (NUNES, 2011).

Projetar a aplicação para executar apenas tarefas simples ou em um servidor

remoto são alternativas para alcançar essa simplicidade. Planejar com cuidado a

aplicação é o ponto mais importante. O conserto de um aplicativo já pronto, para

caber na memória do dispositivo, por exemplo, pode dar muito mais trabalho do que

tomar precauções para que esses erros muito comuns sejam evitados.

2.6 SEGURANÇA

Os dispositivos móveis armazenam muitas informações importantes, como números

de telefone, endereços pessoais, oportunidades de negócios, senhas e documentos.

Além disso, estes aparelhos estão cada vez mais conectados à internet, seja através

de 3G ou Wifi, além de aplicações que permitem ao usuário visualizar e manipular

contas financeiras, cotações de leilão e contas de compras com cartão de crédito

estarem se tornando cada vez mais comuns.

Por isso, os dispositivos móveis também estão vulneráveis a ataques

maliciosos provocados por malware instalados nos mesmos. O número destes

ataques aumentou mais de 45% em 2010, e a falta de conhecimento sobre as

ameaças móveis por parte dos usuários e a falta de segurança dos dispositivos, faz

com que a vulnerabilidade aumente (KATKAR, 2011).

30

A maioria das pessoas desconhece que as mesmas práticas que as deixam

vulneráveis, como abrir links desconhecidos ou instalar programas pouco confiáveis,

ou as protegem, como utilizar um antivírus, em seus computadores pessoais

também são aplicados aos seus aparelhos portáteis.

Existem diversos motivos que deixam os dispositivos móveis suscetíveis a

ataques. Dentre eles está a distribuição de aplicativos através de lojas de terceiros,

onde não há regras de certificação de aplicações. O uso regular do e-mail e as

limitações atuais dos browsers móveis tornam mais difícil a identificação de

mensagens e sites fraudulentos.

Para melhorar este cenário, seria interessante adotar uma cultura de

segurança móvel. A primeira medida que o usuário deve tomar é utilizar sempre a

última versão do sistema disponível para o seu aparelho, estando sempre atento às

atualizações.

Outra postura que deve ser mantida é instalar apenas aplicativos

disponibilizados por alguém confiável, de preferência apenas aqueles que estão na

loja oficial do sistema.

Os antivírus também já fazem parte do cenário dos dispositivos móveis.

Mesmo mais leves que aqueles utilizados nos computadores, eles estão presentes

rodando em background e analisando todo arquivo que o usuário tente abrir (Tech

Dreams Brasil, 2011).

31

3 A PLATAFORMA ANDROID

Visando ocupar um lugar de destaque também neste nicho de mercado, a Google,

empresa que provocou uma grande revolução na internet nos últimos anos, juntou-

se a empresas do mercado de telefonia celular e criou um grupo chamado de Open

Handset Alliance (OHA), com o objetivo de criar uma plataforma única e aberta para

celulares que trouxesse maior satisfação dos consumidores para com o produto

final.

Fonte: SILVEIRA, 2010

Figura 1 - Logo do Android

A esta nova plataforma de desenvolvimento para aplicativos móveis foi dado o

nome de Android. Ela é baseada em um sistema operacional Linux, com diversas

aplicações já instaladas e ainda, um ambiente de desenvolvimento bastante

poderoso, ousado e flexível. Além disso, utiliza-se a linguagem Java para

desenvolver as aplicações, podendo ser usados todos os recursos que ela oferece

(LECHETA, 2010).

O anúncio do Android, no início de novembro de 2007, atraiu grande atenção,

pelo motivo de seu desenvolvimento estar sendo liderado pelo grande nome da

Internet atualmente, a Google e, além dele, grandes outras empresas como a HTC,

32

LG, Motorola, Samsung, Sony Ericsson, Toshiba, Sprint Nextel, China Mobile, T-

Mobile, ASUS, Intel, Garmin e muitas outras3, que formam a OHA.

Antes do anúncio do Android, especulava-se que a Google iria lançar um

aparelho (hardware), como o Iphone, intitulado Gphone. Mas o que se viu foi o

lançamento de uma nova plataforma (software). Sendo um software, o Android está

ao alcance de todos, podendo rodar em qualquer aparelho móvel, não importando a

marca. É como o Microsoft Windows, que pode rodar em qualquer computador

pessoal (LIMA, 2007).

A vantagem do Android para os fabricantes de celulares é a existência de

uma plataforma única e consolidada e, além disso, livre e de código aberto4. Sua

licença flexível permite que cada fabricante realize modificações no código-fonte de

acordo com suas necessidades e objetivos, sem a necessidade de compartilhá-las e

sem precisar pagar nada pela utilização da plataforma.

Também pelo fato de ser de código aberto, o Android pode ser aperfeiçoado

por desenvolvedores de todo o mundo, que podem contribuir para seu código-fonte,

corrigindo falhas e criando novas funcionalidades.

Uma grande característica, se não a maior, do Android é possuir uma

arquitetura bastante flexível, focada na integração de aplicações. Não há diferença

entre uma aplicação nativa e outra desenvolvida por uma pessoa ou empresa. Isso

significa que aplicações nativas podem ser integradas com “novas” aplicações, ou

até mesmo substituídas pelas criadas. Isso é bastante interessante para operadoras

e fabricantes de celulares, que tem a possibilidade de trocar telas e funcionalidades

do celular de acordo com seu plano de marketing.

A Motorola, por exemplo, desenvolveu o MotoBlur, uma repaginação do

Android, que integra a plataforma com um conjunto de serviços que agrega redes

sociais, e-mail e outros serviços da nuvem (AURICCHIO, 2009).

3 A lista completa dos integrantes do grupo pode ser vista em

http://www.openhandsetalliance.com/oha_members.html

4 O download do código-fonte do Android pode ser feito no site: http://source.android.com/

33

Durante a operação do sistema operacional Android, mensagens são

disparadas o tempo todo para indicar a “intenção” do usuário de realizar

determinada tarefa. Para isso existe uma classe, chamada de Intent, que é o

coração do Android. De acordo com o conteúdo da mensagem, qualquer aplicação

interessada neste pode interceptá-la e executar a tarefa necessária. Por exemplo, se

existe a intenção de abrir uma aplicação nativa, como o browser, ou abrir uma nova

tela de uma aplicação, basta criar um novo objeto Intent e configurar o conteúdo de

sua mensagem para que possa ser reconhecido pelo sistema operacional.

Outro ponto forte do Android é o sistema operacional baseado em Linux, onde

ele mesmo é o encarregado de gerenciar a memória e os processos. Assim,

diversas aplicações podem ser executadas ao mesmo tempo, sendo que aplicações

que executam em segundo plano não são percebidas pelo usuário enquanto este

acessa a internet ou atende uma ligação, por exemplo.

Entre os demais recursos do Android pode-se citar: o Framework de

Aplicação, que permite a incorporação, a reutilização e a substituição de recursos

dos componentes; a Máquina Virtual Davik, máquina virtual otimizada para

dispositivos móveis; Navegador Web Integrado, baseado na engine open source

WebKit; Gráficos Otimizados, com gráficos e tratamento de imagens através de uma

biblioteca 2D e gráficos 3D baseados na especificação OpenGL ES 1.0, que tornam

possível a criação de jogos excelente qualidade de resolução; SQLite, gerenciador

de banco de dados embutido; Suporte Multimídia a diversos formatos de som, vídeo

e imagens, nativamente; Telefonia GSM, mesmo apresentando limitações

dependentes de hardware, integração facilitada a tecnologias GSM; protocolos de

comunicação Wireless, também com as limitações da telefonia GSM, suporta a

tecnologia Bluetooth EDGE, 3G e Wi-Fi; Câmera, GPS, bússola e acelerômetro:

integra-se facilmente a hardwares para câmeras embutidas e localização via GPS,

como bússola e acelerômetro, ambos dependentes das limitações do hardware;

Poderoso Ambiente de Desenvolvimento, com emulador de dispositivo, ferramenta

para depuração, analisador de memória e performance e um plugin para a IDE

Eclipse, o Android Development Tools (ADT) (PEREIRA, et al., 2009).

34

Além disso, existem também os recursos visuais e funcionalidades que

impressionam o usuário comum. Através da navegação de telas por meio de touch

screen, o usuário tem uma ótima experiência na utilização do aparelho.

A plataforma Android já tem atingido, além dos celulares e tablets, netbooks,

máquinas digitais, televisão e até mesmo carros, fazendo com que ela atinja

mercados onde outras plataformas, como o Java ME, não conseguiram grande

penetração (SILVEIRA, 2010).

Com uma visão de futuro, o Android pode ser um potencial sistema

operacional para desktops. Indício disso é que muito já se falou sobre o possível

GoogleOS, existindo a possibilidade do Android ser o futuro GoogleOS camuflado,

onde suas experiências podem ser de uma certa maneira transportadas para o

desktop (LIMA, 2007).

3.1 ARQUITETURA DO ANDROID

Já foi visto que o Android possui uma arquitetura bastante flexível. Ela é estruturada

em cinco camadas, cada uma com uma funcionalidade específica, como pode ser

visto na Figura 2 e descritas abaixo (GOOGLE, 2011):

Fonte: GOOGLE, 2011

Figura 2 - Arquitetura do Android

35

• Aplicações

Na camada superior (Applications), localizam-se as aplicações fundamentais

do Android, como cliente de e-mail, mapas, navegadores, calendários,

programas de SMS, agenda, gerenciadores de contatos, entre outros.

• Framework

Nesta camada localizam-se todas as APIs e os recursos necessários para os

aplicativos, como classes visuais, que incluem listas, grandes, caixas de texto,

botões e até um navegador web embutido, View system (componentes que

constroem aplicativos), provedor de conteúdo (Content Provider), que possibilita

o acesso a informações de uma aplicação por outra, ou o compartilhamento de

informações, que possibilita a troca de informações entre aplicativos e

gerenciadores de recursos, gerenciador de localização, gerenciador de

notificação, de pacotes e de atividade, que controla o ciclo de vida da aplicação e

o acesso e navegação entre as aplicações (AQUINO, 2007).

Os principais elementos dessa camada são:

o Activity Manager – gerencia o ciclo de vida das activities, no início e

no final de sua execução, possibilitando o deslocamento de uma

activity para outra e assim por diante.

o Package Manager – utilizada pelo Activity Manager para ler as

informações dos Pacotes de arquivos do Android (APK’s). O package

manager se comunica com o resto do sistema e verifica os pacotes que

estão sendo utilizados pelo sistema e suas capacidades.

o Window Manager – gerencia as apresentações de janela, indicando

aquela que está ativa e assim por diante.

o Content Providers – possibilita a troca de informações entre os

aplicativos, através do compartilhamento de dados.

o View System – disponibiliza todo o tratamento gráfico para a

aplicação, como botões, layouts e frames.

36

Nesta camada também se localizam outros elementos, como Location

Service, Bluetooth Service, Wi-Fi Service, USB Service, e Sensor Service.

Todos os componentes disponíveis no Android têm acesso pleno às APIs

utilizadas pelo núcleo da plataforma. A reutilização de componentes é

simplificada, possibilitando que qualquer aplicação publique suas capacidades e

que estas possam ser reutilizadas por outra aplicação, dependendo apenas de

restrições de segurança.

• Bibliotecas

O Android possui um conjunto de bibliotecas desenvolvidas em C/C++, que

são utilizadas por vários recursos do sistema. Estas bibliotecas são acessadas

pelos frameworks disponibilzados aos desenvolvedores. Dentre as principais

bibliotecas estão:

o Freetype – utilizada para renderizar fontes e bitmaps;

o System C library – sua implementação deriva da biblioteca C padrão

sistema (libc) do Berkeley Software Distribution (BSD);

o Webkit – baseia-se no código aberto do browser webkit, um

renderizador de páginas para navegadores, com suporte a Cascading

Style Sheets (CSS), Javascript, Doom e Ajax;

o SQLite – engine de banco de dados relacional, implementada em C,

leve e embutida.

o SGL – responsável pela composição de gráficos 2D;

o Surface Manager – controla e gerencia o acesso aos subsistemas de

exibição, como as camadas de aplicações 2D e 3D;

o Media Libraries – suportam diversos formatos de áudio e vídeo, bem

como imagens estáticas, e hardware e software de plug-ins de codec;

o LibWebCore – utilizada para exibições web e no Android Browser;

o 3D libraries – baseadas nas API’s do OpenGL ES 1.0.

37

• Android Runtime

Pequena camada do ambiente de execução, que é instanciada a cada

execução de uma aplicação no Android. O Dalvik foi projetado de forma que

várias máquinas virtuais possam executar concorrentemente de maneira

eficiente.

As classes compiladas por um compilador Java (arquivos .class) são

convertidas para a máquina virtual através da ferramenta DX, distribuída com o

Android SDK, gerando um arquivo .DEX (Dalvik Executable), que é executado

pelo Dalvik.

O Dalvik baseia-se no kernel do Linux para prover a funcionalidade de

múltiplas threads e a gestão de baixo nível de memória.

O Core Librarie fornece a maioria das funcionalidades disponíveis nas

principais bibliotecas do Java, através de um grupo de bibliotecas. Estruturas de

dados, acesso a arquivos e acesso a redes e gráficos são algumas dessas

funcionalidades.

• Linux Kernel

A versão 2.6 do kernel do Linux é utilizada pela arquitetura do Android. O

kernel funciona como uma camada de abstração entre o hardware e o resto da

pilha de software, além de servir para os serviços centrais do sistema, como

segurança, gestão de memória, gestão de processos, pilha de protocolos de rede

e modelos de drivers.

Além disso, nesta camada também existe um poderoso gerenciador de

energia, onde um aplicativo solicita o gerenciamento de energia e o driver de

energia do kernel passa a checar periodicamente a utilização de todos os

dispositivos, desligando aqueles que não estão sendo utilizados.

38

3.2 MÁQUINA VIRTUAL DALVIK

A linguagem Java é utilizada para a construção de aplicações para o Android. Nesta

abordagem, existe uma máquina virtual otimizada para execução em dispositivos

móveis, chamada Dalvik.

As aplicações do Android são desenvolvidas normalmente com o Java,

utilizando-se todos os seus recursos, porém após o bytecod (.class) ter sido

compilado, ele é convertido para o formato .dex (Dalvik Executable), que é a

aplicação do Android compilada.

Após isso, os arquivos .dex e outros recursos como imagens são

compactados em um arquivo com extensão .apk (Android Package File), que é a

aplicação final, pronta para ser distribuída e instalada.

3.3 ANDROID SDK

O Android SDK5 é o software usado no desenvolvimento de aplicações no Android.

Ele contém um emulador que simula o celular, ferramentas utilitárias e uma API

completa para a linguagem Java, com todas as classes necessárias para

desenvolver as aplicações.

O Android SDK pode rodar em uma IDE como o Eclipse, Intellije e Netbeans.

Pode ser desenvolvido também utilizando a linha de comando. A IDE Eclipse é a

mais utilizada pelos desenvolvedores. Ela possui um plugin customizado, chamado

Android Development Tool (ADT), que fornece suporte à edição de vários tipos de

arquivos.

O emulador contido no SDK pode simular diversos tipos de hardware. Ele

representa perfeitamente o funcionamento de um celular com o Android. Tudo que

executa num celular, pode ser executado no emulador. Um exemplo de emulador

pode ser visto na Figura 3.

5 O Android SDK pode ser baixado em http://developer.android.com/sdk/

39

Fonte: GOOGLE, 2011

Figura 3 - Emulador do Android

Outro componente incluso no SDK é o Dalvik Debug Monitor Service (DDMS),

que possibilita o acompanhamento de todos os processos que executam no

hardware durante a aplicação, podendo simular inclusive o envio e recebimento de

ligações e mensagens de texto.

3.4 VERSÕES DO ANDROID

Existem diversas versões do sistema operacional do Android, e cada celular possui

uma versão diferente. O primeiro celular Android, o HTC G1, possuía a versão 1.1

(LECHETA, 2010) e, obviamente, os mais novos dispositivos saem com versões

mais recentes.

No Android, uma versão do sistema operacional é conhecida como

plataforma. Cada plataforma tem um código identificador, conhecido como API

Level. A Figura 4 mostra as plataformas existentes até o momento da escrita deste

trabalho, e as versões correspondentes do Android.

40

Fonte: GOOGLE, 2011

Figura 4 - Versões do Android

As primeiras versões, até o Android 2.3, são utilizadas em smartphones. Já as

versões mais novas, Android 3.0 e Android 3.1 são utilizadas pelos tablets,

possuindo novos recursos disponíveis apenas para esses dispositivos.

Para o futuro, a Google já anunciou uma nova versão, que se chamará Ice

Cream Sandwich e tem como objetivo integrar smartphones e tablets, colocando

todos os aparelhos móveis na mesma página, através de um sistema operacional

modular (PC WORLD, 2011).

3.5 COMPONENTES DA APLICAÇÃO

No Android, existe um grupo de quatro componentes essenciais, que o sistema pode

instalar e executar sempre que necessário. Toda aplicação deve utilizar ao menos

um desses componentes, não sendo necessária, entretanto, a utilização de todos

eles ao mesmo tempo. Sempre que forem utilizados por uma aplicação, estes

elementos devem ser declarados num arquivo Extensible Markup Language (XML),

chamado AndroidManifest.xml. Neste arquivo estão contidos todos os componentes

da aplicação, além das capacidades e requerimentos para tais (LECHETA, 2010).

Os quatro componentes principais são:

• Activities;

• Intent Receivers ou Broadcast Receivers;

• Services;

41

• Content Providers.

A Activity (Atividade) é o componente mais comumente utilizado. Na maioria das

vezes, é representado por uma tela na aplicação. Uma activity é sempre

implementada como uma classe que extende da classe base Activity. Sua interface

é composta por Views, que consistem em várias telas que respondem a eventos

previamente programados.

Cada activity possui um ciclo de vida específico, que é definido através dos

seguintes métodos:

• onCreate(): chamado na criação inicial da atividade;

• onStart(): chamado quando a aplicação se torna visível para o usuário;

• onResume(): chamado quando a aplicação inicia a interação com o usuário,

ficando no topo da pilha de atividade;

• onPause(): chamado quando uma outra atividade está prestes a começar.

Geralmente as informações que ainda não foram salvas são gravadas neste

momento;

• onStop(): chamado quando a atividade não está mais em uso e perdeu foco

para outra atividade;

• onDestroy(): chamado quando a atividade termina, ou quando o sistema

precisa liberar recursos, finalizando a atividade.

42

Fonte: adaptado de LECHETA, 2010

Figura 5 - Ciclo de vida de uma activity

O ciclo de vida de uma activity, mostrado na Figura 5, funciona da seguinte

maneira: quando uma atividade é iniciada, esta é colocada no topo da “pilha de

atividades” e se torna a atividade em execução. Se existir alguma activity anterior,

esta permanece na posição logo abaixo, e só passa para o estado “Executando”

quando a activity acima for finalizada.

Uma activity pode se encontrar em quatro estados:

• Executando : a atividade está ativa no dispositivo;

• Parada : a atividade perdeu foco para outra, mas mantém todas as suas

informações de estado, mesmo sem interagir com o usuário. Pode ser

finalizada se o sistema estiver com baixo nível de memoria disponível;

43

• Interrompida : a atividade não está sendo utilizada pelo usuário, mas mantém

suas informações de estado. Geralmente é finalizada quando uma

recuperação de memória é necessária e assim perde suas informações;

• Finalizada : a atividade pode ser removida, caso esteja parada ou

interrompida temporariamente. Nesse caso, o estado anterior só pode ser

restaurado se o desenvolvedor tiver implementado os métodos.

Existem basicamente três ciclos numa atividade:

• Ciclo completo : começa no onCreate(), quando toda configuração é

realizada, e termina no onDestroy(), com a liberação de todos os recursos

utilizados pela atividade;

• Ciclo de vida visível : começa no onStart(), quando a atividade fica disponível

e visível para o usuário, mesmo não havendo interação. Termina com a

chamada a onStop(), quando o usuário não visualiza mais a atividade;

• Primeiro ciclo da atividade : começa no onResume() e termina no

onPause(). É quando a atividade está visível e em interação com o usuário,

no topo da pilha de atividades. O código neste período deve ser leve, devido

a iminente troca dos estados onPause() e onResume().

O movimento entre as atividades é dado através da Intent, que representa a

intenção de cada activity, ou seja, ela define o que deve ser feito caso seja

acionada. A classe Intent Filter descreve todas as ações (Intents) que uma atividade

pode acionar. Assim, quando uma Intent é acionada, o sistema busca os filtros de

intenção de todas as atividades e escolhe aquela mais adequada com aquela Intent.

Então, a nova activity é informada do interesse, carregando uma nova tela.

Cada activity deve ser configurada no arquivo AndroidManifest.xml, utilizando a

tag <activity>, como no exemplo da Figura 6, em que a activity ExemploActivity1 é a

activity principal da aplicação.

44

Fonte: Adaptado de LECHETA, 2010

Figura 6 - Exemplo de Activity

Os Services são códigos sem interface de usuário, que rodam em background e

não são interrompidos pela troca de atividade pelo usuário. Diferentemente das

activities que possuem ciclo de vida próprio e vida curta, os services mantém o

serviço ativo até que seja recebida outra ordem. Através de uma interface de serviço

a aplicação pode se conectar com um serviço conectado.

Um serviço geralmente consome muitos recursos, além de memória e CPU. Não

precisa de interface gráfica, pois não há necessidade de interação com o usuário.

Um processo da classe Service pertence ao ciclo de vida controlado pelo sistema

operacional do Android e é mantido em execução até que seja necessário encerrar

alguns processos para liberar memória e recursos.

O uso da classe Service poderia ser substituído pela utilização de uma thread

simples, porém isto não é recomendado pois o Android conhece a classe Service e

pode gerenciar o seu ciclo de vida junto com os outros processos do sistema

operacional. Ou seja, se uma thread for utilizada ela pode ser eliminada pois não faz

parte do ciclo de vida conhecido do Android. Por outro lado, existe um controle sobre

o ciclo de vida da classe Service, que tem prioridade máxima sobre qualquer outro

processo executando em segundo plano e somente será encerrado em condições

críticas de memória (LECHETA, 2010).

Mesmo que um Service seja encerrado, o Android posteriorimente tentará iniciá-

lo para que o processo continue assim que as condições de memória e os recursos

usados estejam normais. Assim, o serviço deve ser codificado de uma forma que

seja possível recuperar o seu estado no momento de seu encerramento.

Geralmente, um Service é iniciado por um Broadcast Receiver.

45

O Broadcast Receiver ou Intent Receiver é o componente responsável por tratar

a reação ao evento recebido através de uma intenção. Ele não possui uma interface

com o usuário, mas pode interagir com o usuário através de um gerenciador de

notificações (Notification Manager), um mecanismo que alerta o usuário sobre a

ocorrência de algum evento de interesse.

A classe BroadcastReceiver sempre é executada em segundo plano durante

pouco tempo e não há interface gráfica. Seu objetivo é receber uma mensagem

(Intent) e processá-la sem o usuário perceber.

O BroadcastReceiver é configurado no arquivo AndroidManifest.xml, utilizando a

tag <receiver> em conjunto com a tag <intent-filter>, definindo uma ação e uma

categoria. Na Figura 7 podemos visualizar a configuração da classe

ExemploReceiver1 que pode interceptar uma mensagem com a ação

FAZER_ALGO.

Fonte: Adaptado de LECHETA, 2010

Figura 7 - Exemplo BroadcastReceiver

O último componente é o Content Provider, ou provedor de conteúdo, utilizado

quando existe a necessidade de compartilhar dados da aplicação com outras

aplicações. Através dele, um repositório utilizado por ambas as aplicações permite o

armazenamento e a recuperação de dados.

Utilizando a classe ContentProvider, uma aplicação pode consultar, inserir,

alterar e excluir informações de uma outra aplicação. O Android tem uma série de

provedores de conteúdos nativos, como por exemplo, consultar os contatos da

agenda, visualizar os arquivos, imagens e vídeos.

Há um padrão na forma de comunicação da aplicação com um provedor de

conteúdo, independetemente de ter sido criado pelo desenvolvedor ou ser nativo do

Android.

46

3.6 INTERFACE GRÁFICA

A interface gráfica de uma aplicação Android é construída utilizando-se objetos das

classes View e ViewGroup. Existem diversos tipos de objetos e todos eles são

descendentes da classe View (GOOGLE, 2011).

A classe View serve como base para subclasses chamadas widgets, que

oferecem objetos de interface completamente implementados, como botões e

campos de texto. A classe ViewGroup serve como base para subclasses chamadas

layouts, que oferecem diversos tipos de arquitetura de layout, como linear, tabular e

relativa.

A interface de uma Activity é declarada utilizando-se uma hierarquia de nós

de View e ViewGroup, como visto na Figura 8. A árvore hierárquica pode ser simples

ou complexa, dependendo da necessidade da aplicação e pode ser construída

utilizando-se widgets e layouts pré-definidos ou com Views criadas pelo próprio

desenvolvedor.

Fonte: GOOGLE, 2011

Figura 8 - Hierarquia de nós View e ViewGroup na interface gráfica

A activity deve chamar o método setContentView(), passando como referência

o nó raiz da árvore de hierarquia, para que esta seja anexada à tela.

A forma mais comum de se definir o layout da aplicação e expressar sua

árvore é utilizando um arquivo XML. O XML oferece uma estrutura de fácil

entendimento para o layout, como o HTML. Cada elemento XML é um objeto View

47

ou ViewGroup (ou descendente destes). Objetos View são as folhas da árvore,

enquanto os objetos ViewGroup são os ramos.

O nome de um elemento XML corresponde à classe Java que ele representa.

Assim, um elemento <TextView> cria um objeto TextView na interface, e um objeto

<LinearLayout> cria um objeto LinearLayout.

Fonte: Adaptado de GOOGLE, 2011

Figura 9 - Arquivo XML de layout

A Figura 9 mostra um exemplo simples de arquivo XML de layout vertical com

um campo de texto e um botão. Pode-se notar que o elemento LinearLayout contém

os elementos TextView e Button. É possível aninhar vários LinearLayout (ou outros

tipos de view group), para construir layouts mais complexos.

É possível também construir objetos View e ViewGroup no próprio código

Java, utilizando o método addView(View) para inserir dinamicamente estes novos

objetos.

Um widget é um objeto View que serve como interface de interação com o

usuário. O Android provê uma variedade de widgets, como botões, checkboxes e

caixas de texto, permitindo rápida criação da interface. Existem também widgets

mais complexos, como relógio e controle de zoom. Além disso, o desenvolvedor

pode criar seus próprios elementos, definindo suas próprias classes ou extendendo

e combinando widgets já existentes.

48

3.7 SEGURANÇA E PERMISSÕES

O Android não apresenta um framework que gerencie e implemente políticas de

segurança para o download de aplicativos. O gerenciamento é feito pelo próprio

usuário, cabendo a este definir se determinada aplicação pode realizar determinada

operação.

O conceito de Unix User Identification (UID) implementado no Android é

diferente daquele dos PCs, onde cada usuário tem um único UID e todas as

aplicações que rodam para ele possuem o mesmo UID. No Android, um UID é

alocado a uma aplicação e não a uma pessoa. As aplicações ficam separadas umas

das outras, sendo cada uma um processo separado com UID único e com

permissões de uso distintas.

A arquitetura do Android foi desenhada de forma que nenhuma aplicação

tenha permissão para realizar qualquer operação que impacte negativamente o

funcionamento de outras aplicações, do sistema operacional ou do usuário. Isso

inclui leitura ou gravação de dados particulares do usuário (como contatos e e-

mails), ler ou escrever arquivos de outro aplicativo, acessar a rede, manter o

dispositivo acordado, entre outros.

O kernel do Android mantém as aplicações dentro de uma sandbox, que

define os seus limites de utilização de recursos. Por conta disto, todos os recursos e

dados devem ser compartilhados explicitamente. As permissões são declaradas

pelas aplicações estaticamente e, no momento da instalação do aplicativo, o sistema

solicita o consentimento do usuário. Não existe um mecanismo de concessão de

permissões dinâmica, pois isso prejudicaria a experiência do usuário em detrimento

da segurança.

As aplicações Android (arquivos .apk) devem ser assinadas com um

certificado cuja chave primária é mantida por seus desenvolvedores. Este certificado

não precisa ser assinado por uma entidade de certificação. O objetivo dos

certificados é identificar os autores de cada aplicação, permitindo que o sistema

gerencie o acesso das aplicações a determinados recursos.

49

O Android tenta minimizar o impacto de uma aplicação em pertubar a

experiência de uso do usuário fazendo com que a permissão de uso de

determinadas funções, como discar um número, tenha que ser explicitamente

solicitada (TAURION, 2010).

Uma aplicação básica do Android não possui permissões associadas a ela, ou

seja, ela não pode fazer nada que impacte na experiência do usuário ou em

qualquer dado do dispositivo. Para usar qualquer recurso protegido do dispositivo,

uma declaração deve ser incluída no AndroidManifest.xml, utilizando-se a tag <uses-

permission>. Na Figura 10, o exemplo de uma aplicação que precisa controlar o

recebimento de SMS.

Fonte: Adaptado de GOOGLE, 2011

Figura 10 – Exemplo de permissão

3.8 ANDROID MANIFEST

Toda aplicação Android deve possuir um arquivo, conhecido como manifesto, o

AndroidManifest.xml. Este arquivo deste conter todas as informações essenciais

sobre o aplicativo que o sistema Android deve ter antes que ele possa executar

qualquer código da aplicação. O manifesto inclui, entre outros:

• A declaração do nome do pacote Java da aplicação, que serve como um

identificador exclusivo para o aplicativo;

• A descrição dos componentes da aplicação: activities, servers, broadcast

receivers e content providers que compõem a aplicação;

• A declaração das classes que implementam cada um dos componentes e a

publicação de suas capacidades. Isto permite que o Android saiba o que os

componentes são e em que condições eles podem ser iniciados;

50

• Processos que irão hospedar os componentes da aplicação;

• Permissões que o aplicativo deve ter para acessar partes protegidas da API e

interagir com outras aplicações;

• Permissões que outras aplicações devem ter para interagir com componentes

do aplicativo;

• Nível mínimo da API do Android que o aplicativo requer;

• Bibliotecas que devem ser ligadas à aplicação.

A estrutura do arquivo AndroidManifest.xml pode ser vista na Figura 11.

Fonte: GOOGLE, 2011

Figura 11 - Estrutura do AndroidManifest.xml

51

3.9 COMUNICAÇÃO COM UM SERVIDOR

Existem aplicações que necessitam se comunicar com algum servidor web, para

realizar o sincronismo das informações. No Android, pode-se utilizar o protocolo

HTTP, sockets ou web services para realizar esta comunicação (LECHETA, 2010).

Uma aplicação pode utilizar um banco de dados no Android, porém muitas

vezes este banco já existe em algum lugar. Por questões de segurança e também

da grande quantidade de informações que necessitam ser armazenadas, é

recomendado que este banco esteja em um servidor convencional, e não no celular.

Daí surge a necessidade da aplicação executando no celular se comunicar

com o servidor do banco de dados para obter as informações necessárias. As

aplicações de mobilidade estão se tornando cada vez mais “on-line”, acessando e

atualizando as informações em tempo real. Hoje as operadoras fornecem serviços

de internet com planos cada vez mais acessíveis, além da conexão 3G, que

aumenta a velocidade da conexão.

Dessa forma, é necessário desenvolver aplicações que se comuniquem com

outras já existentes na internet.

A primeira forma de comunicação é através de um socket, disponível em um

determinado endereço e com uma porta devidamente aberta, aguardando a

conexão. Utiliza-se o pacote java.net e a classe java.net.Socket, da mesma forma

que uma aplicação Java normal.

Outra forma de comunicação é através do protocolo HTTP, no qual um

servidor web na internet é utilizado para receber as requisições e enviar a resposta

para o celular. Nesse caso, o celular vira o cliente do servidor web, como se fosse

um browser.

A última maneira é acessando um web service, uma das tecnologias mais

utilizadas para integrar aplicações atualmente. O Android não possui nenhuma API

nativa para acessar um web service, porém qualquer outra biblioteca pode ser

utilizada e incorporada a um projeto. No entanto, a biblioteca escolhida deve ser leve

52

e compacta, pois a aplicação irá executar num dispositivo móvel, que não tem a

mesma capacidade de processamento de um computador normal.

3.10 ANDROID MARKET

O Android Market6 é um repositório central dos aplicativos desenvolvidos para o

Android. Nele, os desenvolvedores podem disponibilizar suas aplicações, de

maneira semelhante ao Youtube7, bastando cadastrar e enviar o aplicativo.

Ao publicar uma aplicação, o desenvolvedor tem que pagar uma taxa e

concordar com os termos de uso. Depois disso, o aplicativo já pode ser baixado e

instalado pelos usuários. Existem aplicativos gratuitos e outros pagos. Quem

constrói os aplicativos tem direito a 70% dos seus lucros.

Para os usuários utilizarem o Android Market basta acessar o site pelo celular e

baixar o aplicativo desejado. Existe um ranking de melhores aplicativos, de acordo

com a classificação e os comentários deixados pelos usuários.

Fonte: EIRAS, 2011

Figura 12 - Tela inicial do Android Market

A Figura 12 mostra a tela inicial do Android Market acessado pelo dispositivo, e a

Figura 13 mostra a tela de instalação de um aplicativo. 6 Site para download de aplicativos do Android: http://market.android.com/

7 Site de compartilhamento de vídeos: http://www.youtube.com/

53

Fonte: EIRAS, 2011

Figura 13 - Tela de instalação de um aplicativo

A Google possui uma estratégia para evitar a fragmentação da plataforma,

mantendo controle sobre o acesso ao Android Market e sobre os aplicativos que

permitem acesso aos serviços dA Google (Gmail, Maps, etc). Assim, há a

possibilidade da Google pressionar os fabricantes e desenvolvedores a seguirem

padrões de desenvolvimento que permitam que os softwares rodem em diversos

dispositivos, evitando a expansão de aparelhos limitados, que rodem em apenas um

ou poucos modelos (MORIMOTO, 2010).

Além do Android Market, existem também outras lojas menores como o

http://andappstore.com e http://slideme.org/. Elas servem como alternativas para

desenvolvedores que tiveram seus aplicativos rejeitados no Android Market ou não

querem pagar alguma comissão para vender seus aplicativos.

Existe a possibilidade também de instalar os aplicativos localmente através do

comando “adb install”, disponível no SDK.

54

4 TRABALHO DESENVOLVIDO

O wiki Disciplinas do DCC hoje é acessado pela web. Nesse modelo, os alunos têm

dificuldade em acessar informações sobre a disciplina se estiverem em um lugar

remoto, sem acesso à internet através de um computador pessoal.

Para melhorar este cenário, uma solução encontrada foi o desenvolvimento

de uma ferramenta que disponibilize estes dados em qualquer lugar que o usuário

se localize, atentando à tendência de expansão dos aplicativos móveis. O acesso a

esta ferramenta será dado através de um dispositivo móvel com o sistema

operacional Android, sendo aproveitadas as facilidades de desenvolvimentos

providas por esta plataforma.

O estudo foi iniciado com uma pesquisa entre online entre alunos e

professores do Departamento de Ciências da Computação da UFBA, que

responderam sobre a utilização de dispositivos móveis e do wiki de disciplinas.

A partir dos resultados do questionário, concluiu-se que o aplicativo

desenvolvido na plataforma Android seria útil e viável, dado o número considerável

de adeptos do sistema operacional da Google, e a quantidade de pessoas que

declararam a intenção de utilizar o aplicativo.

O trabalho cobriu as etapas do processo de desenvolvimento de software de

Análise de Requisitos, Especificação, Arquitetura de Software e Prototipação. As

três primeiras fases são descritas na seção 4.3, e a última na seção 4.4.

4.1 QUESTIONÁRIO DE PESQUISA

Para iniciar o trabalho foi realizada uma pesquisa entre alunos e professores do

departamento com de medir a utilização de dispositivos móveis, a adoção da

55

plataforma da plataforma Android, do wiki de disciplinas, e o impacto que o aplicativo

iria causar.

O questionário constava de 10 perguntas e foi feito através da plataforma

Google Docs, sendo enviado para as listas de discussão do departamento que todos

os alunos e professores tem acesso. No total, 81 pessoas responderam ao

questionário, o que corresponde a cerca de 20% do total de alunos e professores do

departamento.

Com base no resultado da pesquisa pode-se concluir que há uma ampla

utilização de dispositivos móveis e também do wiki de disciplinas. Além disso, foi

possível também medir a relevância de um aplicativo para acesso às informações

presentes no wiki, sendo que a maioria dos respondentes declarou que utilizaria a

ferramenta.

As perguntas do questionário, assim como as respostas e os respectivos gráficos encontram-se no APÊNDICE 1 - QUESTIONÁRIO.

4.2 WIKI DISCIPLINAS DO DCC

Um wiki é uma plataforma para compartilhamento coletivo de conteúdo. Nesta

ferramenta, o usuário além de acessar o conteúdo, pode editá-lo. Todas as

modificações são armazenadas em um lugar visível a todos, podendo ser desfeitas a

qualquer momento com a mesma facilidade que foram feitas.

Existem diversas ferramentas para criação e armazenamento de um wiki. O

acesso ao conteúdo geralmente é disponibilizado a todos, porém sua edição é na

maioria das vezes permitida apenas para usuários cadastrados.

O wiki Disciplinas do DCC/UFBA8 utiliza a ferramenta Foswiki, e o seu acesso

é público e gratuito. Entretanto, o acesso a modificações é restrito a alunos e

professores do Departamento de Ciências da Computação da UFBA. Para

acrescentar, alterar ou excluir qualquer conteúdo, basta utilizar os mesmos login e

senha utilizados no laboratório do DCC.

8 http://disciplinas.dcc.ufba.br

56

O sistema disponibiliza o conteúdo das disciplinas, que são divididas em

quatro grupos: Graduação, Mestrado, Doutorado e Currículo Antigo. Para cada

disciplina, o sistema disponibiliza quatro opções: Página da Disciplina, SVN, Lista de

Discussão e Pasta da Disciplina.

A opção Página da Disciplina, que possui o conteúdo que será extraído e

exibido no aplicativo móvel, está dividida da seguinte maneira:

• A Disciplina: apresenta a visão geral da disciplina, os pré-requisitos,

ementa, objetivos e metodologia.

• Bibliografia: apresenta a bibliografia adotada pela disciplina.

• Notas de Aula: nesta seção, são disponibilizados os arquivos utilizados

pelos professores em sala de aula.

• Exercicios: listas de exercícios passadas durante o semestre.

• Links: lista de outros sites relevantes à matéria.

• FAQ: sessão de dúvidas.

• Semestre Corrente: geralmente, os professores utilizam este espaço

para compartilhar o calendário da disciplina no semestre corrente,

assim como notas e resultados parciais.

• Semestres Anteriores: repositório de páginas dos semestres anteriores.

• Ferramentas da web

A página principal do wiki pode ser visualizada na Figura 14.

57

Figura 14 - Disciplinas.dcc.ufba.br

4.3 O PROJETO DA APLICAÇÃO

Visto o número considerável de adeptos dos dispositivos móveis com a plataforma

Android, e da quantidade de futuros utilizadores do aplicativo móvel, foi decidido o

desenvolvimento da aplicação nesta plataforma. O aplicativo móvel proposto traz o

conceito de mobilidade tornando possível o acesso às informações do wiki de

disciplinas através de um dispositivo móvel com o sistema operacional Android.

O sistema deverá exibir as informações das disciplinas, de acordo como foi

descrito na seção 4.2. O sistema deve permitir que o usuário faça busca por uma

disciplina ou que seja exibida uma lista de todas as disciplinas cadastradas no wiki.

Além disso, o sistema deve permitir que o usuário acesse a página principal do wiki

pelo próprio aplicativo. O usuário deverá apenas visualizar o conteúdo das páginas,

não sendo permitida a alteração de nenhuma informação.

Como o objetivo do aplicativo é apenas visualizar o conteúdo do wiki não é

necessário que exista um controle de acesso de usuários, assim todos têm

permissão de acesso a todas as funcionalidades.

58

Completando a etapa de análise de requisitos, são desenvolvidos os casos de

uso. Eles descrevem os processos dos sistemas, especificando a interação destes

com os agentes externos que o utilizam e identificando as consultas e

transformações da informação necessárias (WAZLAWICK, 2004). De acordo com os

requisitos levantados, o aplicativo aqui projetado possuirá três casos de uso: Buscar

Disciplina, Listar Disciplinas e Abrir Site. O usuário é o único ator que interage com o

sistema nos casos de uso.

Segundo Bezerra (2007), diagramas de caso de uso correspondem a uma

visão externa do sistema e representam graficamente os atores, casos de uso e

relacionamentos entre eles. A interação de elementos externos com funcionalidades

do sistema é ilustrada em um nível alto de abstração.

A Figura 15 exibe o diagrama de casos de uso que descreve a interação do

usuário com a aplicação.

Figura 15 - Diagrama de Casos de Uso

No caso de uso Buscar Disciplina, o usuário escolhe a opção na tela inicial, e

o sistema abre a tela de pesquisa. O usuário preenche os campos de pesquisa e o

sistema retorna uma lista com as disciplinas mais relevantes para a busca. Se não

existir disciplina que satisfaça aos critérios de busca, o sistema retorna uma

mensagem ao usuário. Se houver, o sistema abre a tela da disciplina com as opções

listadas na seção 4.2.

59

No caso de uso Listar Disciplinas, o usuário escolhe a opção na tela inicial, e

o sistema abre a tela de listagem por categorias. O usuário escolhe a categoria que

deseja e o sistema abre uma nova tela de listagem, com as disciplinas disponíveis.

O usuário seleciona a disciplina e o sistema abre a tela da disciplina com as opções

listadas na seção 4.2.

No caso de uso Abrir Site, o usuário escolhe a opção na tela inicial, e o sistema abre a página do wiki na web através do navegador do dispositivo móvel.

Segundo Larman (2007), um diagrama de sequência ilustra as interações dos

atores com os objetos do sistema, para um cenário específico de um caso de uso.

No caso do aplicativo deste trabalho, o único ator é o usuário e os objetos do

sistema são a interface do Android, a conexão HTTP e o Servidor.

Abaixo, nas Figuras 16 e 17, são exibidos os diagramas de sequência dos

casos de uso Buscar Disciplina e Listar Disciplinas. Não foi necessário exibir o

diagrama do caso de uso Abrir Site, pois a única interação do sistema com usuário

se dá quando o usuário escolhe a opção. A partir daí, a interação é do usuário com o

navegador do dispositivo, e não com o aplicativo em si.

Figura 16 - Diagrama de sequência Buscar Disciplina

60

Figura 17 - Diagrama de sequência Listar Disciplinas

Pode-se perceber que os diagramas são similares. Em ambos, a aplicação só

necessita conectar-se ao servidor para buscar a lista de disciplinas ou para exibir as

informações. Nas demais ações, os dados necessários para exibição já fazem parte

do código da aplicação.

Não será necessário implantar um banco de dados, pois as informações

necessárias serão recuperadas de um servidor de dados já existente. Como visto na

seção 3.9, aplicativos Android podem se comunicar com um servidor de três formas

diferentes: através de sockets, utilizando o protocolo HTTP ou com web services. No

aplicativo proposto, a comunicação com o servidor é dada pela segunda forma,

através de uma conexão HTTP.

A arquitetura de software representa o sistema de uma forma abstrata, e

direciona as interfaces entre ele e outros softwares, e também com o hardware ou

com o sistema operacional (WIKIPEDIA, 2011). A arquitetura do aplicativo é

ilustrada na Figura 19. Quando necessita de algum dado, a aplicação se conecta à

página do wiki através de uma requisição HTTP, cabendo a esta a função de

recuperar as informações do servidor, que está conectado a algum servidor de

armazenamento.

61

Figura 18 - Arquitetura da aplicação

A resposta da página web para o aplicativo é um arquivo HTML em forma de

texto, que será processado pelo código da aplicação para se obter o conteúdo a ser

exibido para o usuário. A conexão da aplicação é ilustrada na Figura 19.

Figura 19 – Conexão com a página do wiki

4.4 PROTÓTIPO DA APLICAÇÃO

Após a fase de projeto, foi construído o protótipo da aplicação. Um protótipo é um

produto que ainda não está pronto para comercialização ou distribuição,

apresentando algumas ou todas as funcionalidades que o produto terá.

No protótipo aqui apresentado, apenas a comunicação entre as telas foi

desenvolvida. A conexão com o servidor e o processamento das informações não

foram implementadas, portanto o conteúdo apresentado nas telas provavelmente

não refletirá o seu estado atual.

62

O protótipo foi desenvolvido utilizando-se a IDE Eclipse, que possui o ADT,

um plugin customizado, que oferece diversas funcionalidades e facilita o

desenvolvimento de aplicações Android pela ferramenta. A Figura 20 mostra a tela

do ambiente de desenvolvimento.

Figura 20 - IDE Eclipse

Utilizou-se a plataforma API Level 8, que corresponde à versão 2.2 do

Android, sendo definida também como a versão mínima de um dispositivo para

executar a aplicação.

A interface gráfica da aplicação foi construída utilizando os objetos de layout

oferecidos pelo próprio Android. A IDE Eclipse oferece um recurso em que o layout

da tela pode ser imediatamente visualizado, sem a necessidade de executar a

aplicação. Na mesma tela de visualização, há uma caixa com todos os objetos, que

podem ser arrastados para a tela e automaticamente inseridos no código. Além

disso, algumas configurações podem ser editadas, como resolução e orientação da

tela, o tema de layout utilizado pela aplicação, e a versão do Android. A Figura 21

mostra a tela de edição do arquivo XML de layout.

63

Figura 21 - Tela de edição do XML Layout

A Figura 22 mostra a tela inicial do aplicativo, que possui três botões de

interação com o usuário: Buscar Disciplina, Listar Disciplinas e Abrir Site. O primeiro

abre a tela mostrada na Figura 25, com a tela de pesquisa de disciplina. O segundo

botão abre a tela mostrada na Figura 26, e o último abre a página do wiki da

disciplina, mostrado na Figura 30.

Figura 22 - Tela inicial do aplicativo

As Figuras 23 e 24 mostram os códigos do XML de layout e da activity

principal DisciplinasDCC, respectivamente. Como visto na seção 3.6, o arquivo XML

define a interface gráfica de cada activity, onde os objetos gráficos que farão parte

da tela serão declarados. Na Figura 23, é possível visualizar a declaração de três

objetos, o texto de boas vindas (classe TextView), a imagem da logomarca do DCC

64

(classe ImageView) e o botão para abrir a tela de pesquisa de disciplinas (classe

Button).

Figura 23 - XML de layout da Activity principal

A Figura 24 mostra parte do código da activity principal. Toda activity deve

iniciar com o método onCreate, onde é chamado o mesmo método da classe-pai

(Activity) e definido qual o layout será utilizado pela activity, através do método

setContentView. No exemplo mostrado, é utilizado o layout main.xml, mostrado na

Figura 23.

No código da aplicação, apenas os objetos de layout que interagem de

alguma forma com o usuário, ou são dinamicamente alterados em tempo de

execução, devem ser declarados. No exemplo aqui mostrado, o texto de boas-

vindas (TextView) e a imagem (ImageView) são estáticos e não interagem com o

usuário, portanto não precisam ser invocados.

Já o botão Buscar Disciplinas, deve abrir uma nova tela (activity) ao ser

clicado. Por isso, o método setOnClickListener invoca a criação de uma nova Intent,

cujo objetivo é abrir a nova tela. A nova activiy é iniciada pelo método startActivity.

65

Figura 24 - Parte do código da Activity Principal DisciplinasDCC

Na tela de Pesquisa por Disciplinas, o usuário deve preencher o campo de

texto com o nome ou código da disciplina, e selecionar uma ou mais opções de filtro

(Graduação, Mestrado, Doutorado ou Currículo Antigo). As disciplinas

correspondentes à pesquisa são retornadas e então o usuário escolhe a disciplina

que deseja visualizar.

Figura 25 - Tela de Pesquisa por Disciplinas

66

A Figura 26 mostra a tela de listagem de disciplinas. As listas são divididas

em Graduação, Mestrado, Doutorado e Currículo Antigo, assim como no wiki.

Figura 26 - Tela Lista de Disciplinas

O usuário escolhe um combo, e seleciona a disciplina que deseja visualizar

na lista mostrada na Figura 27.

Figura 27 - Tela de Seleção de Disciplinas

A tela de exibição das informações das disciplinas é mostrada na Figura 28. O

texto recuperado do wiki é mostrado nesta tela. As opções oferecidas ao usuário

estão no combo da parte superior da tela.

67

Figura 28 - Tela de exibição da disciplina

Para obter as informações das páginas do wiki, a aplicação faz uma conexão

HTTP com o servidor web, que retorna o conteúdo dos arquivos HTML em forma de

texto. Neste ponto, existe a necessidade da aplicação extrair apenas o conteúdo que

interessa ao usuário, eliminando as tags do HTML e as informações desnecessárias.

A configuração do arquivo HTML gerado pelas páginas do wiki facilita este

trabalho, pela existência de padrões que identificam as disciplinas nos menus, e

consequentemente os links para suas opções.

Para extrair o conteúdo, utiliza-se uma API do Java, que oferece mecanismos

para o tratamento de expressões regulares, conhecida como Regex, disponível no

pacote java.util.regex (SANTOS, 2009). Como o arquivo HTML contém padrões nas

tags, utiliza-se estes padrões como expressões regulares, através da classe Pattern.

Com os padrões formados, faz-se uma comparação no texto retornado pela página

web, através da classe Matcher e encontra-se o conteúdo a ser exibido na

aplicação.

A Figura 29 mostra as opções da tela de Disciplinas.

68

Figura 29 - Opções da Tela de Disciplinas

A Figura 30 mostra a página do wiki acessada pelo navegador do dispositivo,

que é uma das funcionalidades do aplicativo.

Figura 30 - Wiki acessado pelo aplicativo

Fazendo uma comparação entre a Figura 30 e as demais figuras que mostram

as telas da aplicação móvel, é notável a diferença de visualização e usabilidade.

Enquanto a página, que foi projetada para ser acessada em dispositivos com tela de

alta resolução, é exibida com o conteúdo distorcido, as informações exibidas pelo

69

aplicativo já estão ajustadas aos dispositivos de baixa resolução, prezando pela

usabilidade.

Além disso, a simplicidade aparece também como uma característica do

aplicativo móvel. Apenas o conteúdo que é relevante para aplicação é exibido para o

usuário, facilitando o manuseio e visualização das informações por parte do usuário.

Isso impacta positivamente também no tráfego de dados pela rede, haja vista a

necessidade de recuperar da página web apenas os textos, pois imagens e objetos

já fazem parte da aplicação.

70

5 CONCLUSÃO

O estudo abordado neste trabalho mostrou a evolução da computação móvel ao

longo do tempo, destacando o crescimento do número de dispositivos móveis, e a

adoção por parte de usuários comuns e do mercado corporativo às aplicações

móveis.

Foram estudadas as plataformas construídas por grandes empresas para

atender as necessidades do mercado móvel, com destaque para o sistema

operacional Android, desenvolvido pela Google juntamente com um grupo de

grandes empresas de telefonia móvel.

Através da apresentação das características e do funcionamento da

plataforma Android, foi possível entender as vantagens que esse sistema

operacional oferece. Estas vantagens têm como foco não apenas o usuário, por

possuir diversos recursos que satisfazem as necessidades deste, mas foca também

no desenvolvedor, provendo uma diversidade de facilidades de desenvolvimento,

resultado de sua arquitetura altamente flexível, focada na integração de aplicações.

O objetivo proposto pelo trabalho foi alcançado, sendo desenvolvido o

protótipo do aplicativo, que permite o acesso às informações do wiki Disciplinas do

DCC/UFBA através de um dispositivo móvel com o sistema operacional Android. A

necessidade de trazer esta ferramenta para o ambiente móvel foi comprovada pela

pesquisa realizada entre alunos e professores do departamento, na qual a maioria

absoluta dos respondentes indicou que utilizaria o aplicativo proposto. O

questionário também mostrou que o número de utilizadores de dispositivos móveis é

grande, com tendência a crescer ainda mais. A quantidade de dispositivos que

rodam Android também foi relevante para a escolha da plataforma que o aplicativo

seria desenvolvido.

Além de alcançar o objetivo, este estudo colaborou com a construção de um

maior conhecimento em relação à computação móvel, sua evolução histórica,

71

características, vantagens e desvantagens. Foi possível entender também que é

uma área que está em franco crescimento e tem muito a evoluir. Esta evolução se

dará principalmente com o Android, uma plataforma relativamente nova, cuja

tendência, revelada por números apresentados neste trabalho, é se tornar o sistema

mais adotado entre os dispositivos móveis.

Pelo fato de ser uma plataforma ainda em fase de maturação, ainda existem

poucas fontes de referência comprovadamente confiáveis para o Android, sendo que

a maior parte das existentes é encontrada na Internet. Assim, este estudo deve ser

considerado como uma referência para futuros trabalhos cujo estejam envolvidos no

tema o Android e a computação móvel.

Como trabalhos futuros, podemos listar a conclusão do processo de

desenvolvimento da aplicação, cujas etapas de implementação, testes e validação

seriam realizadas. Melhorias no sistema, como adicionar todas as funcionalidades

do wiki, como criação e edição de conteúdo e cadastro de usuários, além de integrar

o aplicativo com outras aplicações dos dispositivos, como agenda, calendário e

redes sociais. Além disso, a implementação da aplicação em outras plataformas

também está na lista de futuros trabalhos. Esta iniciativa pode ser tomada como

referência para que outros sistemas mantidos pelo departamento e pelo colegiado

também sejam levados para o ambiente móvel.

Para quem pretende iniciar o desenvolvimento de um aplicativo móvel na

plataforma Android, aconselha-se começar pelo portal de suporte aos

desenvolvedores do Android. O endereço do site é http://developer.android.com, e lá

pode ser encontrado o material teórico, assim como diversos exemplos de códigos.

Os assuntos abordados servem tanto para iniciantes na plataforma quanto para

aqueles que já tem alguma noção. O manual de referência do Android também está

todo no site.

Um livro que também ajudou muito no desenvolvimento deste trabalho foi o

Google Android: aprenda a criar aplicações para dispositivos móveis com o Android

SDK, de Ricardo R. Lecheta, da Novatec Editora. O livro tem uma abordagem

dinâmica e de fácil entendimento, com diversos exemplos que facilitam a

aprendizagem da plataforma.

72

REFERÊNCIAS

AQUINO, Juliana F. S. Plataformas de Desenvolvimento para Dispositivos Móveis. 2007. Monografia (Programa de Pós-Graduação em Informática) – PUC – Rio de Janeiro.

AURICCHIO, Jocelyn. MotoBLUR é nova aposta da Motorola. Disponível em: <http://blogs.estadao.com.br/link/motoblur-e-nova-aposta-da-motorola>. Acesso em: 10 jun. 2011.

AVELLAR E DUARTE. Usabilidade: Aplicativos móveis. Disponível em: <http://www.avellareduarte.com.br/projeto/dispositivosMoveis/dispositivosmoveis_usabilidadeAplicativos.htm>. Acesso em: 28 abr. 2011.

BERTOLUCCI, Jeff. 10 gadgets que os smartphones mataram. Disponível em: < http://idgnow.uol.com.br/computacao_pessoal/2011/04/19/10-gadgets-que-os-smartphones-mataram > Acesso em: 18 mai. 2011.

BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 2 ed. São Paulo: Ed. Campus, 2007.

CAMARGO, Camila P. de. Sistemas operacionais móveis: qual a diferença? Disponível em <http://informticaaoalcancedetodos.blogspot.com/2010/02/diferencas-entre-sistemas-operacionais.html>. Acesso em: 18 mai. 2011.

CONVERGÊNCIA DIGITAL. Redes Sociais lideram preferência nos aplicativos móveis. Disponível em: <http://www.techlider.com.br/2011/02/redes-sociais-lideram-preferencia-nos-aplicativos-moveis> Acesso em: 18 mai. 2011.

EIRAS, Richarde. Instalando aplicativos no smartphone Android. Disponível em: <http://montoeiras.blogspot.com/2011/05/instalando-aplicativos-no-smartphone.html>. Acesso em: 07 jul. 2011.

GOOGLE. Android Developers. Disponível em: <http://developer.android.com>. Acesso em: 20 jun. 2011.

IMASTERS. Mercado de aplicativos móveis deve arrecadar US$ 35 bilhões até 2014. Disponível em: <http://imasters.com.br/noticia/19207/aplicativosmoveis/ mercado_de_aplicativos_moveis_deve_arrecadar_us_35_bilhoes_ate_2014> . Acesso em: 28 abr. 2011.

INFOWORLD/EUA. Quem disse que computação móvel se resume a smartphone? Disponível em: <http://idgnow.uol.com.br/telecom/2010/03/24/quem-disse-que-computacao-movel-se-resume-a-smartphone>. Acesso em: 2 mai. 2011.

73

INTEL. O conceito de mobilidade. Disponível em: <http://www.nextgenerationcenter.com/scriptServices/courseToPdf.ashx?courseId=d9e21f02-821f-4d38-bdf0-41704c2978b6>. Acesso em: 25 mai. 2011

JOHNSON, Thienne M. Java para Dispositivos Móveis: desenvolvendo aplicações com J2ME. São Paulo: Ed. Novatec, 2007. ISBN 8575221434.

JORDÃO, Fábio. História: a evolução do celular. Disponível em: <http://www.tecmundo.com.br/2140-historia-a-evolucao-do-celular.htm>. Acesso em: 28 abr. 2011.

KATKAR, Sanjay. Segurança em dispositivos móveis é coisa séria. Disponível em: <http://mundodosjogos.org/seguranca-em-dispositivos-moveis-e-coisa-seria>. Acesso em: 14 jun. 2011.

LARMAN, Craig. Utilizando UML e Padrões. São Paulo: Ed. Bookman, 2007.

LECHETA, Ricardo R. Google Android: aprenda a criar aplicações para dispositivos móveis com o Android SDK. 2. ed. rev. e ampl. São Paulo: Novatec Editora, 2010.

LIMA, Rafael. O que o Android, plataforma para mobiles do Google, vai trazer de mudança?. Disponível em: <http://imasters.com.br/artigo/7451/o_que_o_android _plataforma_para_mobiles_do_google_vai_trazer_de_mudanca>. Acesso em: 17 mai. 2011.

MENDONÇA, Aderval. Para onde vão os Sistemas Operacionais móveis? Disponível em: <http://www.devmedia.com.br/post-4568-Para-onde-vao-os-Sistemas-Operacionais-moveis.html>. Acesso em: 2 mai. 2011.

MORIMOTO, Carlos E. Entendendo o Android. Disponível em: <http://www.hardware.com.br/tutoriais/android/pagina2.html>. Acesso em: 17 mai. 2011.

NUNES, Fabio. Aplicativos Móveis: por onde começar? Disponível em: <http://idgnow.uol.com.br/blog/plural/2011/02/09/aplicativos-moveis-por-onde-comecar>. Acesso em: 28 abr. 2011.

PAPERCLIQ. Comunicação e Novas Tecnologias: Aplicativos Móveis. Disponível em: <http://www.slideshare.net/papercliq/comunciacao-e-novas-tecnologias-aplicativos-mveis>. Acesso em: 18 mai. 2011.

PC WORLD. Já no forno, próxima versão do Android esquenta guerra dos sistemas móveis. Disponível em: <http://idgnow.uol.com.br/mercado/2011/05/13/ja-no-forno-proxima-versao-do-android-esquenta-guerra-dos-sistemas-moveis>. Acesso em: 14 mai. 2011.

PEREIRA, Lucio C. O.; SILVA, Michel L. da. Android Para Desenvolvedores. Rio de Janeiro: Brasport, 2009. ISBN 978-85-7452-405-4.

74

SANTOS, Tadeu. Introdução a Expressões Regulares com Java. Disponível em: <http://javafree.uol.com.br/artigo/5090/Introducao-a-Expressoes-Regulares-com-Java.html>. Acesso em: 30 jun. 2011.

SILVEIRA, Paulo. Google Android: uma nova plataforma Java para celulares? Disponível em: <http://blog.caelum.com.br/google-android-uma-nova-plataforma-java-para-celulares>. Acesso em: 17 mai. 2011.

SIQUEIRA, Ethevaldo. Mundo terá 55 bilhões de dispositivos móveis em 2020. Disponível em: <http://blogs.estadao.com.br/ethevaldo-siqueira/2011/02/21/55-bilhoes-de-dispositivos-moveis>. Acesso em: 28 abr. 2011.

TAURION, Cezar. Segurança no Android. Disponível em: <https://www.ibm.com/developerworks/mydeveloperworks/blogs/ctaurion/entry/seguran_c3_a7a_no_android?lang=en>. Acesso em: 6 jun. 2011.

TECH DREAMS BRASIL. Segurança em Dispositivos Móveis. Disponível em: <http://www.techdreams.com.br/?p=20>. Acesso em: 10 jun. 2011.

TI INSIDE. Lojas de aplicativos móveis movimentam US$ 2,2 bilhões em 2010. Disponível em: <http://idgnow.uol.com.br/mercado/2011/05/13/ja-no-forno-proxima-versao-do-android-esquenta-guerra-dos-sistemas-moveis>. Acesso em: 28 abr. 2011.

VEJA. Iphone 4 é o rei dos dispositivos móveis. Disponível em: <http://veja.abril.com.br/noticia/vida-digital/iphone-4-e-o-rei-dos-dispositivos-moveis>. Acesso em: 28 abr. 2011.

WAZLAWICK, Raul Sidnei. Análise e projeto de sistemas de informação orientados a objetos. Rio de Janeiro: Ed. Elsevier, 2004. ISBN 85-352-1564-6.

WIKIPEDIA. História do Telefone Celular. Disponível em: <http://pt.wikipedia.org/wiki/História_do_telefone_celular>. Acesso em: 28 abr. 2011.

—. Processo de desenvolvimento de software. Disponível em: <http://pt.wikipedia.org/wiki/Processo_de_desenvolvimento_de_software>. Acesso em: 8 jul. 2011.

—. Symbian OS. Disponível em: <http://pt.wikipedia.org/wiki/SymbianOS>. Acesso em: 18 mai. 2011.

—. Windows Phone 7. Disponível em: <http://pt.wikipedia.org/wiki/Windows_Phone_7>. Acesso em: 18 mai. 2011.

75

APÊNDICE 1 - QUESTIONÁRIO

Segue abaixo um resumo das perguntas e respostas do questionário, que foi

aplicado antes do início do trabalho, com o objetivo de medir a utilização de

dispositivos móveis e do wiki de disciplinas, além de verificar a necessidade de um

aplicativo móvel para acesso às informações do wiki.

Total de respondentes: 81.

1. Você possui um dispositivo móvel?

76

2. Quantos aparelhos?

3. Qual tipo de dispositivo?

77

4. Qual o Sistema Operacional do seu dispositivo(s)?

5. Você está satisfeito com o aparelho?

78

6. Você pretende adquirir outro dispositivo?

7. Você pretende adquirir um dispositivo móvel?

79

8. Você utiliza o wiki para acompanhar o andamento das disciplinas do DCC

(http://disciplinas.dcc.ufba.br)?

9. Você acha que o wiki é utilizado de maneira satisfatória?

80

10. Você utilizaria um aplicativo no seu dispositivo móvel para acompanhar o

wiki?