Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIVERSIDADE ESTÁCIO DE SÁ
MACAPÁ-AP
2019
7
Computação Móvel
CONCEITOS BASICOS
A cada ano cresce o número de tecnologias móveis sendo comercializadas e presentes no
cotidiano de todos. O conceito de dispositivos móveis ainda é confuso por estar relacionado
com outros termos. Dispositivos móveis são tecnologias digitais que permitem a mobilidade e
o acesso à internet. Pode-se citar como exemplos os smartphones e tablets.
promoções, produtos, entre outros. Comunicação: Interação com outras pessoas através de e-
mail e redes sociais. Entretenimento: Uso destinado à diversão como os jogos por exemplo.
2.1. Portabilidade
A Portabilidade é definida como a capacidade d e ser facilmente transportável. “Hoje
em dia”, para ser considerado portátil, o dispositivo móvel deve ser transportável facilmente na
mão.
Por que usamos o “Hoje em dia” ? Em trinta anos, peso de computador portátil vai de
13 kg a 1 kg;
2.2. Usabilidade
Um dispositivo móvel deve ser utilizável por tipos de pessoas diferentes em diversos
ambientes. A Usabilidade de um dispositivo depende de vários fatores:
Características do Usuário
Características do Ambiente
Características do Dispositivo
Características do Usuário
Uma interação do usuário com um dispositivo móvel depende, até certo ponto, de suas
características pessoais. Algumas características mais comuns do usuário são:
Tamanho e força. O tamanho e a força do usuário tem um efeito em sua interação com
o dispositivo móvel. Por exemplo, um notebook que é facilmente transportado por um adulto
pode não ser utilizável por seu filho.
Flexibilidade e destreza. A flexibilidade e a destreza do usuário tem um efeito na
usabilidade do dispositivo móvel. Um usuário adulto pode ter dedos maiores e precisar usar um
teclado maior. Por exemplo, um bombeiro que use um grosso par de luvas e que tente acessar
informações sobre a planta do andar térreo a partir de um tablet talvez ache o dispositivo inútil.
Conhecimento e capacidade. É difícil precaver-se contra a falta de conhecimento ou de
capacidade do usuário. Geralmente os dispositivos mais úteis são os simpĺes e mais intuitivos
de usar. Se o dispositivo for muito dificil de dominar, o usuario não o achará útil.
Características do ambiente
O ambiente do usuário afeta a escolha do dispositivo. Algumas considerações a serem
levadas em conta em função do ambiente do usuário são:
Condições normais de funcionamento. Um dispositivo móvel deve trabalhar sob as
condições normais de trabalho do usuário. Por exemplo, se um usuário tem de trabalhar em pé
9
durante períodos prolongados de tempo, um tablet pode ser mais adequado do que um notebook,
já que não precisam ficar na posição horizontal.
Condições extremas. Um dispositivo móvel pode ter de trabalhar sob condições
extremas (por exemplo, calor, frio, umidade, seca). Por exemplo, um trabalhador de serviços
de emergência, como um bombeiro trabalhando em um ambiente arriscado, pode precisar de
um dispositivo móvel à prova d'água ou outro mais resistente que possa suportar o ambiente.
Características de dispositivo
Os dispositivos móveis têm características próprias diferentes, que podem afetar a
usabilidade total. Algumas dessas características próprias são:
Tempo de inicialização. Se um usuário precisa utilizar um dispositivo móvel em tempo
crítico (por exemplo, trabalhadors de serviços de emergências), um dispositivo móvel que inicia
imediatamente talvez seja muito melhor.
Integridade de dados. Se um usuário não puder tolerar perda de dados e necessita de
armazenamento permanente, no próprio dispositivo é preferível optar por um tablet ou celular
que ofereça suporte á cartão de memória ou que possua uma memória interna ampla.
Interface com o usuário(teclado, mouse, tela sensível ou toque). As características
instrinsecas do dispositivo podem incapacitá-lo a desempenhar certas funções, devido à
natureza da interface com o usuário. Por exemplo, é muito difícil criar desenhos à mão livre
usando um mouse em um notebook, mas é bem mais confortável e natural utilizar uma caneta
em um tablet ou usar os próprios dedos na tela sensível ao toque.
Robustez/resistência. Os dispositivos móveis geralmente não são muito robustos e
podem se quebrar se forem derrubados. Dispositivos móveis podem ser fabricados para srem
mais resistentes para ajudá-los aguentar as tensões do ambiente do usuário, colocando-os em
uma bolsa de plástico resistente. Tirnar um dispositivo mais robusto, no entanto, pode, por outro
lado, afetar sua portabilidade e usabilidade.
Um obstáculo na área de desenvolvimento de aplicações móveis é a diversidade de
plataformas. Isto gera a necessidade de empresas despenderem recursos (de tempo e dinheiro)
na implementação de um mesmo software para sistemas operacionais distintos. Duas soluções
para este problema surgiram com a criação dos frameworks React Native e Flutter. O primeiro
foi desenvolvido pelo Facebook e o segundo pelo Google. Ambos visam utilizar um único
código para gerar aplicações Android e iOS. Este trabalho visa fazer um estudo de ambos
frameworks e comparar o desempenho e usabilidade de alguns componentes em relação ao
10
desenvolvimento nativo iOS. Para isto, serão implementadas duas aplicações em todas as
abordagens
Atualmente, com o grande número de sistemas operacionais para dispositivos móveis,
os desenvolvedores tem encontrado uma difícil decisão: construir aplicativos direcionados para
um determinada plataforma ou construir aplicativos genéricos, na web, que podem ser
utilizados por qualquer dispositivo. Ambas as abordagens possuem vantagens muito claras, e
obviamente, desvantagens. O que o desenvolvedor precisa descobrir ainda na época de projeto,
é como a aplicação irá ser desenvolvida, e, baseando-se nessas informações, tomar a melhor
decisão de projeto. É importante notar que esse não é um debate sobre qual abordagem irá
vencer, ou deverá vencer, a batalha pelo mercado. É simplesmente um guia para que os
desenvolvedores possam escolher melhor o que desejam para seu aplicativo.
Nos dias atuais, existem diversos sistemas operacionais para dispositivos móveis, com
diferentes fatias de mercado e diferentes métodos de desenvolvimento. O principal deles é, sem
dúvida, o Google Android, sistema de código aberto da Google que está presente em grande
parte dos smartphones hoje em dia. Outro sistema operacional com uma fatia interessante do
mercado é o iOS, da Apple. Por fim, é interessante destacar o Windows Phone, que vem tendo
um crescimento constante nos últimos anos, e é a aposta da gigante Microsoft nessa briga dentro
do mercado. A Figura 1 mostra as fatias de mercado das principais concorrentes em 2012. É
interessante ressaltar que o crescimento do Windows Phone tem sido uma constante, e, como
tal, sua fatia de mercado nos dias de hoje é muito maior.
11
Caso a decisão seja pela construção de uma aplicação móvel nativa para cada um dos
sistemas operacionais, é preciso um pouco mais de estudo também. Isso se dá pelo fato de que
cada um dos sistemas utilizam uma linguagem de programação diferente, bem como possuem
um modelo diferente de exibição. O Windows Phone, por exemplo, utiliza aplicações Metro
Style, um conceito criado pela Microsoft recentemente que foi a base para o Windows Phone e
também para o Windows 8. A Tabela 1 traz uma comparação das tecnologias dos principais
sistemas operacionais do mercado.
Sistema Operacional
Tecnologia de interfaces
IDE
12
SO de desenvolvimento
iOS
Objective-C
Cocoa Touch
XCode
MacOS
Android
Java
Windows Phone
C#
Metro
Visual Studio
Windows
O grande marco na história das aplicações móveis baseadas em tecnologias web veio
com o lançamento do HTML5. O HTML5 incorporou uma série de elementos multimídia ao
HTML comum, o que fez com que ele rapidamente se tornasse uma excelente opção de
desenvolvimento. A grande vantagem dessa linguagem é o fato de que ele pode ser lido em
qualquer navegador, móvel ou não.
Embora o HTML5 possa ser uma excelente opção, é preciso ter em mente questões de
performance. Além disso, o HTML5 não é uma linguagem de programação comum, o que
significa que falta a ele alguns elementos de interface, por exemplo, além de métodos mais
avançados. Isso acaba sendo compensado com o advento do CSS e do JavaScript. Entretanto,
para algumas aplicações móveis, isso acaba gerando uma grande perda de performance, que
pode afetar a utilização da aplicação.
Outro problema muito comum com aplicações móveis baseadas na web é que essas
aplicações geralmente precisam estar conectadas à internet para funcionar. Como nem todos os
usuários de smartphone possuem conexão à internet constante, e essas conexões geralmente
não são de muito boa qualidade, pode não ser uma boa ideia confiar apenas nessas tecnologias.
Como sempre, é preciso que haja um planejamento, sempre pensando no que a aplicação
precisa, na experiência que o usuário terá, e como isso será entregue através da aplicação.
14
Uma vantagem importante de aplicações móveis baseadas na web é que não há uma
necessidade de atualizar a aplicação constantemente. No caso de aplicações nativas, a cada nova
versão do SO, pode ser interessante disponibilizar uma nova versão do aplicativo, para utilizar
o que há de mais novo em termos de funcionalidades. Porém, no caso da web, isso não existe,
pois a web vai continuar sendo dessa forma por muitos anos. Por isso, a necessidade de um
update da aplicação só existe para a adição de novas funcionalidades, correção de erros ou uma
evolução da própria aplicação.
Aplicações Híbridas
Na grande maioria dos casos, aplicações híbridas trazem a resposta para os
desenvolvedores que desejam desenvolver para muitas plataformas, sem grande perda de
desempenho. Essa abordagem permite ao desenvolvedor criar um núcleo do programa de forma
nativa, o que permite que haja um controle sobre as funcionalidades (e pode permitir acesso à
dispositivos do smartphone) da aplicação, e, dentro da aplicação, uma parte multiplataforma.
Isso faz com que, em suma, a experiência do usuário que está utilizando a aplicação em um iOS
seja a mesma que um em um Windows Phone, por exemplo, o que é muito importante em
grande parte das aplicações.
Essa abordagem híbrida vem ganhando muito destaque nos últimos tempos, pois
permite que o desenvolvedor aprenda apenas o básico sobre cada uma das plataformas, uma
vez que a parte principal da aplicação será desenvolvida utilizando tecnologias web. Porém,
novamente, há um porém: a conexão à internet. No caso do iOS, por exemplo, o controle
WebView não suporta off-line caching, que serviria para salvar o estado da aplicação e utilizá-
la, de alguma forma, sem conexão à internet.
Para finalizar esse artigo, é preciso lembrar de uma palavra chave, que foi discutida ao
longo do texto: planejamento. Toda aplicação móvel precisa criar algum tipo de experiência
com o usuário para ser interessante e utilizável. É por isso que as grandes empresas costumam
realizar todos os tipos de pesquisas de campo antes de começar o desenvolvimento de qualquer
produto. Por isso, é preciso sempre pensar no que é melhor para o usuário, antes de pensar no
que é melhor para o desenvolvedor. Uma aplicação pode ser muito mais simples de ser
desenvolvida usando tecnologias web. Porém, se aquele não for o melhor caminho para ela,
invariavelmente ela não será um sucesso de vendas.
15
Aqui, vale um dica importante: coloque em uma planilha tudo que há de mais importante
em uma aplicação móvel: interface e experiência do usuário, interoperabilidade, segurança,
cosmética, funcionalidade, desenvolvimento, independência de plataforma, acesso a redes
sociais, entre outros. Tudo o que você conseguir pensar que possa ser importante para a
aplicação. Uma vez feito isso, dê uma nota para cada um dos tipos de desenvolvimento: nativo,
web e híbrido. A partir desse estudo, é possível ter uma boa ideia do que esperar antes de
começar a desenvolver realmente a aplicação.
O Android foi desenvolvido pela Google, e posteriormente pela OHA (Open Handset
Alliance), uma organização que une várias empresas com o objetivo de criar padrões abertos
para dispositivos móveis