Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

ARQUITETURA DE 
SISTEMAS II
Ramon dos Santos Lummertz
Projeto de software para 
dispositivos móveis
Objetivos de aprendizagem
Ao final deste capítulo, você deve apresentar os seguintes aprendizados:
  Identificar as necessidades de desenvolvimento de um software para 
dispositivo móvel.
  Discutir o desenvolvimento de um software para dispositivo móvel.
  Identificar ferramentas de desenvolvimento de projeto.
Introdução
Os dispositivos móveis são comuns atualmente; já faz alguns anos que os 
smartphones passaram a ser mais utilizados do que os telefones comuns, 
por exemplo. Os dispositivos mobile não se restringem a smartphones, 
podendo ser relógios, roupas, veículos, etc. Por isso, ao pensarmos em 
software, devemos sempre considerar os softwares mobile. 
Neste capítulo, você vai identificar as necessidades de desenvolvi-
mento de software móvel, analisando também as etapas e as ferramentas 
aplicadas no desenvolvimento de um projeto de software móvel.
Necessidades de desenvolvimento de softwares 
para dispositivos móveis
Diversas características do desenvolvimento de software são comuns a qual-
quer plataforma, seja desktop, Web ou mobile. Entretanto, os dispositivos 
móveis têm características peculiares, que tornam o desenvolvimento de 
software para smartphones ou outros dispositivos mais complexo. Ao se 
pensar em soluções de softwares móveis, temos que considerar aspectos como 
a experiência de usuário, que deve ser tão boa quanto ou melhor do que a de 
um software para desktop ou Web.
Soluções móveis se caracterizam como grandes desafios para os engenheiros 
de software. Isso se deve a fatores como a gama de plataformas móveis disponíveis, 
os recursos de hardware de dispositivo, os tamanhos de telas ou, até mesmo, a 
ausência de tela. Junto a esses fatores, deve-se considerar aspectos como as solu-
ções de segurança, as possibilidades de mudar de rede durante o uso do software 
e o uso adequado de bateria e de dados, conforme apontam Pressman e Maxin 
(2016). A Figura 1 mostra alguns itens que podem contar com software mobile.
Figura 1. Exemplos de dispositivos móveis.
Fonte: Adaptadas de Kreasi Garis/Shutterstock.com; Djent/Shutterstock.com; Notbad/Shutterstock.
com; Matsabe/Shutterstock.com; Derter/Shutterstock.com.
Considerações técnicas
Há muitas considerações técnicas relacionadas ao desenvolvimento de software 
móvel. Veja algumas dessas considerações a seguir.
  Diversidade de plataformas: existem diversas plataformas de hardware 
e software. Habitualmente, uma mesma aplicação deve ou precisa ser 
executada em diferentes plataformas — por exemplo, iOS e Android. 
Dessa forma, o custo de desenvolvimento aumenta, o que pode causar 
dificuldade no gerenciamento de configuração; os motivos para isso 
se devem, em parte, às diferenças entre hardware e software dispo-
níveis. É necessário também considerar as diferentes estruturas de 
desenvolvimento e linguagens de programação. Atualmente, as prin-
cipais plataformas de aplicativos móveis (iOS e Android) podem ser 
desenvolvidas de forma nativa em quatro linguagens: Java, Kotlin para 
Android, Object C e Swift para iOS. Além disso, há vários frameworks 
para desenvolvimento híbrido que usam C#, JavaScript e Dart como 
linguagens. Outro ponto a se considerar em relação às múltiplas pla-
Projeto de software para dispositivos móveis2
taformas são os emuladores e simuladores de devices, que podem não 
representar com exatidão o comportamento no aparelho.
Simuladores e emuladores têm um objetivo em comum: a imitação de um sistema 
por outro sistema. Entretanto, os dois fazem isso de formas diferentes. O emulador 
reproduz de forma fidedigna o hardware e o software de um device. O simulador 
também reproduz de forma fidedigna o software, mas não necessariamente o hardware. 
Por exemplo, o AVD do Android Studio emula diferentes ambientes com os recursos, 
enquanto o Xcode simula o ambiente usando recursos de processamento e memória 
do computador. Na prática, uma aplicação no simulador pode estar com fluidez por 
consumir mais memória do que um device originalmente possui.
  Lojas de aplicativos: as stores de aplicativos também representam 
uma dificuldade técnica, visto que cada plataforma possui requisitos 
e padrões para que os aplicativos sejam aceitos. 
  Ciclos: os ciclos de desenvolvimento de aplicações móveis tendem 
a ser muito curtos; por isso, faz-se uso de metodologias ágeis para a 
construção de aplicativos.
  Interface, interações e contexto: os dispositivos móveis possuem uma 
grande variedade de telas e de possibilidades de interação (p. ex., voz, 
gestos e movimentos), além de utilizarem o contexto para reconheci-
mento de padrões (p. ex., aumentar o brilho em ambientes muito claros 
ou balançar o device para abrir a câmera). O contexto pode enriquecer 
a experiência do usuário; como exemplos, podemos citar as funções de 
integração do GPS para indicar uma melhor rota para o trabalho e de 
desligar a tela do celular quando o colocamos no ouvido.
Contexto é o conjunto de elementos físicos ou situacionais que ajudam o receptor da 
mensagem a compreendê-la. Por exemplo, detectar que a luminosidade está baixa e 
aumentar o brilho da tela, ou usar o GPS e a câmera para criar um jogo, como o Pokémon GO.
3Projeto de software para dispositivos móveis
  Limitações computacionais e bateria: os aplicativos móveis podem 
interagir com outros recursos computacionais, e essa interação pode 
sobrecarregar os dispositivos móveis, tanto no armazenamento quanto 
na velocidade de processamento e na energia consumida. Você, como 
desenvolvedor de software, deve se lembrar de que os recursos do device 
são limitados e que suas aplicações devem ser aprimoradas para reduzir 
as demandas impostas ao processador e aos recursos de memória. O 
uso de computação em nuvem para processar parte das funcionalidades 
do aplicativo deve sempre ser considerado. Aplicativos que consomem 
muita energia geralmente não ficam muito tempo em um device; por 
isso, a vida da bateria é uma das limitações mais importantes nos 
aplicativos móveis.
  Serviços externos, privacidade e segurança: o uso de computação 
em nuvem e Web services é importante para reduzir a carga de pro-
cessamento. Entretanto, isso aumenta os riscos de a aplicação quebrar 
devido à negação de serviços, à indisponibilidade de acesso, ao uso 
de dados em excesso e à falta de segurança no tráfego de dados. Além 
disso, os dados devem ser protegidos localmente contra softwares mal-
-intencionados. Achar um meio termo entre facilidade, privacidade e 
segurança na aplicação é uma tarefa árdua. 
  Testes: testar aplicativos é complexo, devido à gama de dispositivos e 
à lista de considerações técnicas. Os aplicativos móveis são diferentes 
de aplicativos para desktop. Seis tipos de testes devem ser executados 
em aplicações móveis, independentemente da plataforma utilizada. 
Veja-os a seguir.
 ■ Usabilidade: foco na experiência do usuário, na facilidade e na pos-
sibilidade de realizar as ações pretendidas.
 ■ Funcionalidade: com o intuito de se certificar de que todos os requi-
sitos foram implementados e funcionam da maneira como deveriam.
 ■ Compatibilidade: visa a garantir que o aplicativo interaja e se co-
munique com o sistema operacional, o hardware e todos os tipos de 
rede de maneira satisfatória.
 ■ Desempenho: visa a eliminar lentidão ou travamento do aplicativo. 
 ■ Mobilidade: verificação da capacidade de comunicação do aplicativo 
com outros aplicativos e redes.
 ■ Sincronismo: é necessário quando utilizamos a tecnologia de arma-
zenamento de dados na nuvem; você deve se certificar de que não 
há perdas excessivas de pacotes e reenvios.
Projeto de software para dispositivos móveis4
Desenvolvimento de software para
dispositivos móveis
Pressman e Maxin (2016) descrevem o processo de desenvolvimento de software 
móvel como uma espiral de seis etapas, conforme mostra a Figura 2.
Figura 2. Processo de desenvolvimento de software móvel.As seis etapas propostas por Pressman e Maxin (2016) são as seguintes.
  Formulação: conforme Pressman e Maxin (2016), essa etapa abrange 
o projeto arquitetural e o projeto de navegação. As metas, os recursos 
e as funções do aplicativo móvel são identificadas para determinar a 
abrangência e o tamanho do primeiro incremento. Nessa etapa, você 
busca responder questões como “qual é a necessidade desse software?”, 
“o que esse software vai resolver?” e “quem vai usar?”.
5Projeto de software para dispositivos móveis
  Planejamento: nessa etapa, pretende-se elucidar os custos envolvidos 
e os riscos que o projeto possui. São estabelecidos o cronograma e a 
documentação dos próximos incrementos.
  Análise: etapa que visa à especificação dos requisitos do software 
móvel e dos conteúdos necessários. Inclui as análises de conteúdo, de 
interação, funcional e de configuração.
  Engenharia: envolve a análise dos projetos de interface, de arquitetura, 
de navegação e de conteúdo. Nessa etapa, você deve avaliar as restrições 
impostas pelos dispositivos e as tecnologias envolvidas.
  Implementação e testes: nessa etapa, são realizadas a codificação e 
os testes já mencionados.
  Avaliação do usuário: teste realizado pelos usuários para avaliar a 
usabilidade e a acessibilidade.
Após completar o primeiro ciclo, inicia-se a formulação da próxima 
interação do software móvel, também chamada de incremento. Uma das 
características dos softwares móveis é que os usuários devem ser capazes 
de executar ações com facilidade. Agilidade e acesso rápido também são 
requisitos desses softwares.
A satisfação do usuário móvel se dá a partir de seis importantes fatores 
de qualidade: 
  funcionalidade;
  confiabilidade;
  usabilidade;
  eficiência;
  facilidade de manutenção;
  portabilidade. 
Segundo Pressman e Maxin (2016, p. 398), “Os usuários de dispositivos 
móveis esperam que o mínimo de tempo de aprendizado seja necessário para 
dominar o aplicativo móvel”. Assim, um bom projeto de interface se faz 
necessário. Em 1990, os cientistas da computação Jakob Nielsen e Rolf Molich 
propuseram os 10 princípios gerais do design de interface do usuário, que 
garantem uma boa usabilidade. Assim, as chamadas heurísticas de Nielsen 
são as seguintes.
Projeto de software para dispositivos móveis6
1. Visibilidade do status do sistema.
2. Correspondência entre o sistema e o mundo real.
3. Liberdade de controle fácil para o usuário.
4. Consistência e padrões.
5. Prevenção de erros.
6. Reconhecimento, em vez de memorização.
7. Flexibilidade e eficiência de uso.
8. Estética e design minimalistas.
9. Ajudar o usuário a reconhecer, diagnosticar e recuperar erros.
10. Ajuda e documentação.
Saiba mais sobre as 10 heurísticas de Nielsen acessando o link a seguir.
https://qrgo.page.link/5LzgT
Os softwares móveis exigem que os desenvolvedores entendam com maior 
exatidão as reais necessidades do usuário, para entregar funcionalidades 
úteis e de fácil aprendizagem. Conforme Pressman e Maxin (2016), o desen-
volvedor, para atender às expectativas do usuário, deve tentar responder às 
seguintes perguntas.
  A interface do usuário é consistente entre aplicativos?
  O dispositivo pode operar em conjunto com diferentes serviços de rede?
  O dispositivo é aceitável, em termo dos valores envolvidos no 
mercado-alvo?
Além de uma boa usabilidade, os softwares móveis devem também ser 
sensíveis ao contexto. Os softwares móveis conseguem, por meio dos senso-
res disponíveis nos devices, mesclar o mundo real com o virtual. Para isso, 
precisam produzir informações confiáveis, por meio dos dados presentes nos 
diversos sensores, e, dessa forma, compreender o contexto.
7Projeto de software para dispositivos móveis
Para ajudar a compreender o contexto e a usabilidade dos softwares móveis, 
Pressman e Maxin (2016) sugerem o uso de protótipos de tela, quando se 
trata de softwares que vão possuir telas de exibição. Esses protótipos podem 
ser feitos à mão ou com softwares específicos. Com os protótipos criados, 
torna-se possível planejar as interações com as telas e as funcionalidades 
do software. Usuários finais podem avaliar essas interações, com o intuito 
de ajudar a descobrir erros, inconsistências, omissões e melhores formas de 
realizar determinada tarefa. 
Existem várias regras para o desenvolvimento de aplicativos móveis para 
determinadas plataformas, como iOS e Android. Isso, às vezes, dificulta a 
publicação do software em uma store. Por exemplo, na loja da Apple, existe 
inclusive uma avaliação do número de funcionalidades de um aplicativo. Se-
gundo Schumacher (2009), algumas boas práticas facilitam o desenvolvimento 
e a aprovação do seu software. Veja-as a seguir.
  Identificar o seu público: os aplicativos devem ser feitos tendo em mente 
as expectativas de seus usuários.
  Projetar tendo em vista o contexto de uso: considera como o usuário 
vai interagir com o mundo real enquanto utiliza o software.
  Simplicidade: a interface do usuário deve fornecer toda a informação 
que permita a ele tomar sua próxima decisão.
  Barras de rolagem e realces de seleção: dar atenção às barras de rolagem, 
tentando evitá-las ou, quando não for possível, realçá-las. Atenção 
também aos contrastes em itens selecionados — eles auxiliam o usuário 
na visibilidade do sistema.
  Dicas avançadas: usuários avançados gostam de usar atalhos para 
concluir tarefas; você pode incentivar isso criando recursos de dicas 
visuais na interface.
  Rótulos limpos e coerentes: os rótulos de widget devem ser de fácil re-
conhecimento e de tamanho adequado; evite rótulos com textos grandes 
e use abreviações com cautela.
  Personalização: os usuários desejam e esperam que seja possível per-
sonalizar sua aplicação. Cabe a você indicar quais recursos podem ser 
personalizados e como isso pode ser feito.
  Formulários longos: como já mencionado, evite barras de rolagem e 
informações demasiadas em uma única tela; uma dica é usar tabs de 
navegação.
Projeto de software para dispositivos móveis8
Para saber mais sobre projetos de interfaces, acesse os links a seguir (em inglês), que 
são importantes fontes de conhecimento.
https://material.io/
https://qrgo.page.link/44YTi
Ferramentas de desenvolvimento de projeto
Para o desenvolvimento de um projeto de software, é necessário um conjunto 
de ferramentas e ambientes de desenvolvimento. Além disso, dependendo da 
plataforma móvel a ser utilizada, existem ambientes de desenvolvimento, que 
podem ser licenciados ou não.
Ambientes de prototipação
Os protótipos de tela são fundamentais para o desenvolvedor compreender as 
interações que o software móvel vai possuir. Eles podem ser feitos à mão ou 
usando softwares. Confi ra alguns exemplos a seguir.
A ferramenta Marvel possibilita a criação de protótipos de forma colaborativa e pos-
sibilita incluir desenhos feitos à mão no protótipo. Acesse o link a seguir e confira.
https://marvelapp.com/
Outra ferramenta de criação de protótipos é o Balsamiq, que possibilita criar um 
storyboard de navegação entre telas.
https://balsamiq.com/
O Figma possibilita a criação colaborativa de telas.
https://www.figma.com/
9Projeto de software para dispositivos móveis
Ambientes de desenvolvimento
A gama de possibilidades no desenvolvimento móvel é imensa. As plataformas 
Android e iOS são as mais populares, mas é importante salientar que elas têm 
requisitos, que devem ser considerados.
No site da Apple, você encontrará as ferramentas necessárias para o desenvolvimento 
iOS e todo o seu ecossistema, como relógios, iPad, Mac, etc. 
https://developer.apple.com/
O site do Android disponibiliza os recursos que você precisa para iniciar o desen-
volvimento de uma aplicação móvel para o ecossistema Android, que vai além de 
smartphones e inclui relógios, carros e “coisas”, com o Android Things.
https://qrgo.page.link/zcipj
Para o desenvolvimento de aplicações para Xbox, o site a seguir disponibiliza, além 
de cursos e tutoriais,as ferramentas para iniciar um projeto para o Xbox.
https://qrgo.page.link/RYRKK
Uma tendência é o uso de ambientes de desenvolvimento que criam aplicativos 
multiplataformas, como o Flutter. Acesse o link a seguir e obtenha mais informações.
https://flutter.dev/
Para o desenvolvimento de softwares para smart TVs, o site webOS TV contém várias 
informações e recursos.
http://webostv.developer.lge.com
Projeto de software para dispositivos móveis10
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. 
ed. Porto Alegre: AMGH, 2016.
SCHUMACHER, R. The handbook of global user research. Illinois: Elsevier, 2009.
Leitura recomendada
ROSA, J. M.; VERAS, M. Avaliação heurística de usabilidade em jornais online: estudo 
de caso em dois sites. Perspectivas em Ciência da Informação, v. 18, n. 1, p.138-157, 2013. 
Disponível em: http://www.scielo.br/pdf/pci/v18n1/10.pdf. Acesso em: 22 jul. 2019.
11Projeto de software para dispositivos móveis

Mais conteúdos dessa disciplina