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

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Introdução ao desenvolvimento para dispositivos móveis 
 
Desafio 
Há alguns anos já não é possível descartar o segmento de dispositivos móveis — o que pode ser 
verificado pela preocupação com a responsividade de sites. 
 
Imagine que você foi contratado por uma fintech, startup do ramo financeiro, que oferece serviços 
bancários sem agências físicas, centralizando suas operações on-line. Sua tarefa é modelar o 
sistema de acesso dos usuários às suas contas correntes e cartões de crédito. Esse não é o 
momento de pensar em linguagem de programação, bancos de dados ou protocolos de 
comunicação, mas sim na modelagem da solução. 
 
Sendo assim, responda: 
 
1. Qual é o principal meio de acesso a ser utilizado? 
2. Quem é seu público-alvo? 
3. Quais são os requisitos da plataforma e como você pretende atendê-los? 
 
Dica: você pode fazer um estudo de caso das empresas já existentes para entender melhor o 
funcionamento desse mercado em particular. 
 
Sua resposta 
 
 s 
 
Enviado em: 26/02/2026 18:14 
Padrão de resposta esperado 
 
1. Em se tratando de uma fintech, ou seja, uma startup, é sempre esperado um modelo inovador 
e disruptivo. Contudo, um padrão vem sendo adotado por esse ramo: priorizar o aplicativo mobile 
como sendo o principal meio de acesso à conta. 
 
2. O público-alvo de uma fintech é formado por jovens e pessoas ligadas à tecnologia. Logo, para 
satisfazer às expectativas dessa classe de usuários, é essencial trazer recursos tecnológicos que 
eliminem a maior parte da burocracia. Além disso, planejar algo com um visual mais arrojado 
pode ser um atrativo. 
 
3. O foco principal é o desenvolvimento de um aplicativo, o qual deve: 
 
a) oferecer acesso rápido e fácil aos principais recursos da conta, assim como às transações 
realizadas pelo cartão de crédito; 
b) ter os dados atualizados, sempre que possível, em tempo real; 
c) utilizar pagamento com o próprio smartphone (NFC) seria um agregador de valor à solução; 
d) autenticar transações pelo aplicativo por meio de biometria (FaceID ou leitura de impressão 
digital); 
e) permitir a abertura de conta por meio do próprio aplicativo, assim como o envio de documentos 
digitalizados por foto; 
f) suportar Android e iOS. 
 
 
O ideal é dispensar o uso do computador sempre que possível. 
 
QUESTÕES 
 
1) O smartphone se tornou um fenômeno mundial. Atualmente, é quase impossível pensar na 
sua vida sem o uso desses aparelhos, não é? Eles agrupam inúmeras funções, as quais antes 
eram desempenhadas por equipamentos diferentes. 
De acordo com essa afirmação, selecione a alternativa correta. 
A) Os smartphones surgiram com o lançamento do iPhone, em 2007, pela Apple. Esses 
dispositivos funcionavam com redes de segunda geração. 
B) O Android foi o primeiro sistema operacional utilizado por smartphones (exceto o iPhone). 
C) O padrão de smartphones que você conhece hoje foi desenvolvido pela Nokia, utilizando o 
sistema Android. 
D) O padrão de smartphones utilizado hoje foi inicialmente desenvolvido pela Apple, com o 
iPhone. 
E) O iPhone foi lançado como uma tentativa da Apple de concorrer com o sistema Android, do 
Google, amplamente utilizado por outras empresas. 
 
2) A mobilidade trazida pelos smartphones e outros dispositivos móveis traz diversas 
facilidades, as quais são aproveitadas no dia a dia. 
De acordo com a evolução da tecnologia, é correto afirmar que: 
A) na segunda geração de redes celulares, as chamadas de vídeo eram um dos principais usos 
das plataformas. 
B) na terceira geração de redes celulares, houve um aumento do interesse devido ao melhor 
acesso aos conteúdos multimídia. 
C) o principal uso de rede na terceira geração de redes celulares foi a troca de mensagens de 
texto por SMS. 
D) as conexões na segunda geração de redes celulares já eram consideradas estáveis para o uso 
de streaming. 
E) as redes de terceira geração tinham a velocidade máxima em torno de 110Kbps, o suficiente 
para uso geral. 
 
3) O desenvolvimento da tecnologia acaba por definir conceitos, os quais serão ou não 
adotados ao longo do tempo. Alguns se tornam projetos, outros são relegados ao 
esquecimento por alguma inviabilidade. Muitos já fazem parte do dia a dia das pessoas. 
A respeito da computação ubíqua, é possível afirmar que: 
A) os smartphones não fazem parte desse conceito. 
B) a expressão se refere à presença de computadores convencionais no dia a dia das pessoas, 
respondendo a comandos de voz. 
C) é a onipresença de computadores dos mais variados tipos interagindo com as pessoas de 
maneira imperceptível. 
D) foi um projeto de um cientista da Xerox, chamado Mark Weiser, o qual não foi realizado por 
falta de interesse comercial. 
E) os smartphones são incluídos no conceito de ubiquidade por terem comandos de voz. 
 
4) Atualmente, o mercado está dividido basicamente entre duas plataformas: de um lado o 
Android, desenvolvido pelo Google; e de outro, o iOS, do iPhone. 
Sobre o desenvolvimento de aplicativos para essas plataformas, é correto afirmar que: 
A) a linguagem de programação padrão, utilizada em ambas as plataformas, é o Java. 
B) os sistemas operacionais mobile têm um ecossistema comum, permitindo que aplicações 
sejam compartilhadas. 
C) o desenvolvimento para iPhone/iOS é feito principalmente em C e Java. 
D) uma aplicação desenvolvida para um dos sistemas precisa ser apenas recompilada para que 
funcione no outro. 
E) uma aplicação desenvolvida para um dos sistemas é totalmente incompatível com o outro, 
precisando ser reescrita. 
 
5. Para o desenvolvimento de aplicações, existem as aplicações nativas — desenvolvidas com 
uma plataforma própria para o sistema operacional em que a aplicação será executada, e as 
desenvolvidas com metodologias híbridas. 
O que é correto afirmar sobre o desenvolvimento híbrido? 
A) Utiliza uma plataforma comum, a web, para criar a aplicação; posteriormente transformandoas 
em aplicações nativas. 
B) São aplicações mais leves que as aplicações nativas, pois rodam por meio do navegador. 
C) São produzidas utilizando HTML, CSS e JavaScript, sendo executadas a partir da Internet. 
D) Para executar uma aplicação desenvolvida hibridamente, o usuário deverá utilizar um 
navegador, seja Chrome ou Safari. 
E) O desempenho de aplicativos desenvolvidos com essa tecnologia são lentos e, por isso, esse 
recurso quase não é utilizado. 
 
Plataformas de desenvolvimento: IDE e emulador Android 
 
Padrão de resposta esperado 
 
A opção B seria a mais adequada nesta situação. 
 
A opção A, apesar de ser uma excelente opção, dada a possibilidade de realização de inúmeras 
simulações, bem como simulação em dispositivos emulados com as mais diversas 
características, não seria a mais adequada, visto que os funcionários utilizam o mesmo 
dispositivo. Logo, o desenvolvedor poderia ter um para realizar um teste em um ambiente real, 
sem a necessidade de simulação. 
 
Outro fato que leva à escolha da opção B é que há a possibilidade de testar o aplicativo no 
dispositivo no qual ele será executado, levando em conta que todos os colaboradores recebem o 
mesmo dispositivo. Isso abre a possibilidade de realizar testes no aplicativo antes mesmo dos 
colaboradores efetivamente realizarem a troca. 
 
https://developer.android.com/studio/install?hl=pt-br 
 
https://developer.android.com/studio/run/managing-avds?hl=pt-br 
 
https://developer.android.com/studio/run/emulator?hl=pt-br 
 
QUESTÕES 
 
1) Na atualidade, um desenvolvedor de software tem disponível para utilização uma grande 
variedade de linguagens de programação e cada uma tem suas características. Em 
dispositivos móveis, as plataformas de desenvolvimento normalmente utilizam uma 
linguagem de programação como linguagem nativa. Considerando o sistema operacional 
Android, qual é a sua linguagem de programação nativa? 
A) Html 
B) C# 
C) Swift 
D) Delphi 
E) Java 
 
2) Uma IDE poderosa ajuda o desenvolvedor de software na confecção do aplicativo, 
gerenciando-o, organizando a estrutura do projeto e automatizando processos nos quaiso 
usuário, sem a ajuda dela, teria de realizar manualmente. Dentre as plataformas a seguir, 
qual é a plataforma indicada pela Android para desenvolver aplicativos? 
A) Visual Studio 
B) NetBeans 
C) Android Studio 
D) Eclipse 
E) RAD Studio 
https://developer.android.com/studio/install?hl=pt-br
https://developer.android.com/studio/run/managing-avds?hl=pt-br
https://developer.android.com/studio/run/emulator?hl=pt-br
 
3) Em um ecossistema de dispositivos muito variados (variação está relacionada aos recursos 
ou até mesmo as suas características físicas, como tamanho e formas de interação), é 
complexo prever em que tipo de dispositivo um determinado aplicativo será executado. Ter 
diversos dispositivos reais para realização de testes pode não ser uma opção viável, logo a 
emulação é uma opção muito utilizada. O Android disponibiliza em seu SDK um emulador 
oficial. Selecione a opção que representa essa ferramenta: 
A) BlueStacks 
B) Android Emulator 
C) Android X84 
D) GenyMotion 
E) Virtual Box 
 
4) Para identificar problemas em um código-fonte, as IDEs disponibilizam funcionalidades para 
ajudar o desenvolvedor a encontrar tais falhas. Existem recursos em que o aplicativo para o 
seu fluxo de execução em um determinado local e disponibiliza ao usuário diversas 
funcionalidades, para que ele possa identificar possíveis problemas na execução. Qual das 
opções a seguir representa a funcionalidade descrita? 
 
A) Verificador de sintaxe 
B) Repositórios de versionamento 
C) Plugins 
D) Rendenização dos layouts 
E) Break points 
 
5) Recursos, em um dispositivo móvel, devem ser consumidos de forma responsável por um 
aplicativo. Se um determinado aplicativo consumir recursos de memória e processamento de 
um dispositivo de forma desmoderada pode comprometer o bom funcionamento dele, 
frustrando o usuário frente à utilização do aplicativo e levando-o a buscar outra ferramenta 
que atenda as suas necessidades. Indique qual opção a seguir é uma ferramenta que auxilia o 
desenvolvedor a evitar situações como a descrita anteriormente. 
A) Monitor de recursos 
B) Gradle 
C) Dispositivos reais 
D) Emuladores 
E) Boas práticas de programação 
 
Linguagem Java: conceitos essenciais de desenvolvimento para dispositivos móveis 
 
Padrão de resposta esperado 
 
A opção A seria mais adequada para o desenvolvimento do aplicativo em questão. A opção B iria 
gerar uma reescrita de código muito grande, que, durante o desenvolvimento do aplicativo, iria 
gerar muitos problemas, visto que muitas vezes vários desenvolvedores podem trabalhar em um 
mesmo aplicativo e cada um pode ter uma percepção de como uma função deve ser escrita, o 
que geraria muitos conflitos nesse sentido. 
 
Outro ponto negativo da opção B é que no caso de algum novo atributo ser inserido, por exemplo, 
no tratamento do veículo, praticamente todo o código deverá ser revisto, pois as implementações 
estão espalhadas por todo o código do aplicativo. A opção A, nesse caso, geraria muitas 
vantagens em relação à opção B. No exemplo de uma nova características a ser inserida no 
tratamento relacionado ao veículo, bastaria inserir esse atributo na classe “veiculo”, tratá-lo em 
seus métodos, e com poucas modificações (dependendo da complexidade que esse novo atributo 
vai inserir na lógica do programa) tudo é implementado. Outra vantagem é a reutilização do 
código, na qual a reescrita de código relacionado ao exemplo do veículo seria praticamente nula, 
e o desenvolvedor se dedicaria a inserir funcionalidades ao usuário ao invés de se preocupar em 
escrever o código que possivelmente já exista em alguma outra classe do projeto. 
A opção A utilizaria as características que o Java possui, em prol de um desenvolvimento mais 
rápido e robusto do aplicativo. 
 
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-
seus-pacotes/21137 
 
https://www.devmedia.com.br/vetores-em-java/21449 
 
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-
seus-pacotes/21137 
 
QUESTÕES 
 
 
1) Os tipos primitivos de dados têm características próprias quanto ao tipo de dado que podem 
armazenar e limites mínimos e máximos de dados que podem ser armazenados. 
Considerando as afirmativas a seguir, qual apresenta uma atribuição de valor válida? 
A) Variável do tipo “int” valor 3,5f. 
B) Variável do tipo “boolean” valor 10. 
C) Variável do tipo “byte” valor 40000. 
D) Variável do tipo “int” valor 645. 
E) Variável do tipo “char” valor -88. 
 
2) Modificadores de acesso permitem ao desenvolvedor construir uma classe na qual métodos 
e variáveis podem ser restritos de diversas formas. Marque a alternativa que representa o 
modificador que permite que os métodos e variáveis que portem este modificador sejam 
acessadas apenas pela própria classe. 
A) private 
B) public 
C) float 
D) protect 
E) byte 
 
3) O Java, sendo uma linguagem de programação orientada a objetos, tem uma técnica que faz 
com que os detalhes internos a respeito do funcionamento dos métodos de uma classe 
permaneçam ocultos para os objetos. Marque a alternativa que indica a técnica descrita: 
A) Polimorfismo 
B) Herança 
C) Private 
D) Protect 
E) Encapsulamento 
 
4) A linguagem Java tem recursos do conceito da orientação a objetos, nos quais uma classe 
pode ter várias implementações de um mesmo método, no qual a passagem de parâmetros 
deve ser diferente umas das outras. 
Esse recurso é conhecido como: 
A) Herança 
B) Static 
C) Sobrecarga 
D) Encapsulamento 
E) Final 
 
5) Os operadores são elementos de suma importância na linguagem Java, sendo amplamente 
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-seus-pacotes/21137
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-seus-pacotes/21137
https://www.devmedia.com.br/vetores-em-java/21449
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-seus-pacotes/21137
https://www.devmedia.com.br/boas-praticas-de-programacao-em-java-organizando-o-codigo-e-seus-pacotes/21137
utilizados em diversas rotinas. Marque a alternativa que contenha operadores unários e de 
incremento e decremento. 
A) “-” e “+” 
B) “==” e “!=” 
C) “>=” e “ganhando espaço de mercado: os wearables. 
Sobre esses dispositivos, é possível afirmar que: 
A) utilizam normalmente os mesmos sistemas operacionais dos smartphones e têm basicamente 
as mesmas funcionalidades. 
B) a principal dificuldade na produção de wearables está no espaço reduzido e na duração da 
bateria, bem como na estética. 
C) são dispositivos que, em geral, têm poucas funcionalidades, além de um relógio convencional; 
se popularizando mais por status que por funcionalidade. 
D) são novidades tecnológicas, de desenvolvimento recente, pensados para trabalhar 
dependentes dos smartphones, como um visualizador facilitado. 
E) foram desenvolvidos com o intuito de substituir os smartphones, de forma a realizar as 
mesmas funções de seu concorrente maior. 
 
https://www.tecmundo.com.br/software/127038-android-linux-kernel.htm?v=1941389879
https://blog-pt.lac.tdsynnex.com/quais-os-beneficios-da-realidade-aumentada-para-os-negocios?v=135818661
https://blog-pt.lac.tdsynnex.com/quais-os-beneficios-da-realidade-aumentada-para-os-negocios?v=135818661
3) O mercado de dispositivos móveis tem algumas peculiaridades, principalmente no tocante 
aos sistemas operacionais. 
Em relação a esses sistemas, é correto afirmar que: 
A) predomina-se o uso do sistema Android, da Google. 
B) predomina-se o uso do sistema iOS, da Apple. 
C) o uso do iOS e do Android são muito similares em números. 
D) o Android equipa apenas dispositivos básicos, de entrada. 
E) a adoção do Android vem caindo nos últimos anos. 
4) Os smartphones são equipados com sistemas operacionais que permitem o uso de recursos 
de computação avançada, como multitarefa e instalação de aplicativos. 
 
4) Os smartphones são equipados com sistemas operacionais que permitem o uso de recursos 
de computação avançada, como multitarefa e instalação de aplicativos. 
Sobre o sistema Android, é correto afirmar que: 
A) a maior parte dos dispositivos tende a usar a versão mais atual. 
B) os usuários podem atualizar a versão assim que é lançada pela Google. 
C) existe pouca fragmentação em relação às versões em uso. 
D) existe grande fragmentação em relação às versões em uso. 
E) uma única versão é responsável por aproximadamente 50% do uso. 
 
5) Quando se pensa em dispositivos móveis, logo surge a imagem de um smartphone. Porém, 
pode-se citar ainda os tablets e wearables, como os relógios inteligentes e smartbands. 
Sobre o desenvolvimento de aplicativos para tais dispositivos faz-se as seguintes 
afirmações: 
I – Os aplicativos para smartphones, tablets e wearables podem ser desenvolvidos em um 
modelo universal compatível com qualquer sistema operacional. 
II – Smartphones, tablets e wearables possuem restrições de hardware e software diferentes 
que trazem a necessidade de customização de aplicativos específicos. 
III – Esta diversidade de dispositivos inteligentes, quando comunicados entre si, por meio de 
redes sem fio, também são considerados parte dos sistemas de IoT (internet das coisas). 
A) Somente I 
B) Somente II 
C) Somente I e II. 
D) Somente II e III. 
E) I, II e III 
 
Componentes dos aplicativos Android 
 
Padrão de resposta esperado 
A opção A seria a mais adequada nessa situação. 
Apesar de ser importante indicar ao usuário onde o arquivo está salvo, a opção B finalizaria a 
navegação do aplicativo, visto que não haveria continuidade na execução de tarefas 
interessantes ao usuário. Por meio da opção A, o usuário poderia selecionar um aplicativo para 
visualizar o arquivo e, a partir dali, imprimir, compartilhar ou anexá-lo em um e-mail, uma vez que 
um currículo é confeccionado para ser enviado ou entregue a uma empresa. 
Assim, a opção A forneceria uma continuidade de fluxo de execução mais interessante que a 
opção B. 
 
QUESTÕES 
 
1) O Android utiliza como base o sistema operacional Linux, no qual cada processo é 
encapsulado em sua própria máquina virtual o isolado dos demais. Por meio dessas e de 
outras características, o Android implementa um princípio relacionado à segurança do 
aplicativo. Indique qual opção representa esse princípio: 
A) Privilégio total 
B) Liberar memória 
C) Privilégio mínimo 
D) ID único do aplicativo 
E) VM isolada 
 
2) Os aplicativos do Android são construídos utilizando componentes bem definidos. O 
componente de aplicativo do Android que fornece uma tela com a qual os usuários podem 
interagir para fazer algo, como discar um número no telefone, enviar um e-mail ou ver um 
mapa é: 
A) Activity 
B) Broadcast receiver 
C) Intent 
D) Content provider 
E) Service 
 
3) Os componentes presentes em um aplicativo Android são capazes de realizar diversas 
funções diferentes, como acessar dados, propagar informações para o sistema e também 
exibir leiautes. Com relação aos componentes Android, qual deles possui a funcionalidade de 
enviar dados ao sistema Android, solicitando que ele execute um determinado aplicativo 
enviando-o um conjunto de dados? 
A) Broadcast receiver 
B) Service 
C) Content provider 
D) Intent 
E) Activity 
 
4) Muitos processos de longa duração executados pelos aplicativos Android, se executados 
pelo componente inadequado, podem causar problemas ao aplicativo e ao sistema em si, 
travando-o e causando dificuldades aos usuários. Qual é o componente adequado à 
execução de processos de longa duração? 
A) Broadcast receiver 
B) Content provider 
C) Intent 
D) Activity 
E) Service 
 
5) O Android disponibiliza um componente para o controle e gerenciamento de dados. Por 
meio desse componente, podemos acessar dados disponíveis no sistema, dados de outros 
aplicativos e disponibilizar os dados do próprio aplicativo para os demais aplicativos 
presentes no dispositivo. Qual dos componentes a abaixo representa esse componente? 
A) Intent explícito 
B) Intent implícito 
C) Content provider 
D) Broadcast receiver 
E) Service 
 
Publicando aplicações para Android e iOS 
Padrão de resposta esperado 
 
a) As app stores são bastante rigorosas em relação a aplicações da área da saúde e com a venda 
de substâncias como medicamentos. O motivo da recusa é a venda de medicamentos sem 
receita médica - o que não é permitido em nenhuma app store. 
 
b) Para solucionar o problema existem alguns pontos que precisam ser revistos: 
1. Como a rede de farmácias atua somente no Brasil, restringir a distribuição da aplicação a 
usuários do país é o primeiro passo - já que estaria sujeita apenas à legislação brasileira, 
deixando de existir a necessidade de conformidade com outras jurisdições (que podem ser mais 
rígidas que a brasileira). 
2. Limitar o delivery a produtos de perfumaria e cosméticos, mantendo a obrigatoriedade de 
busca no balcão para os medicamentos - o que ainda assim facilita a compra, pois os remédios já 
estariam separados e pagos quando o usuário for buscar, evitando filas. 
3. Inserir uma opção de o usuário enviar a receita médica por foto na hora da compra da 
medicação e uma cláusula que obrigue ao usuário a apresentar a receita original quando buscar o 
material comprado. 
4. Não permitir a venda de medicamentos controlados (que exijam retenção de receita). 
 
Dessa forma, seriam eliminados os impeditivos e o aplicativo seria aceito. 
 
QUESTÕES 
 
 
1) Existem normas e regras que regulamentam a publicação de aplicativos na Apple App Store 
e na Google Play Store. Sobre essas normas, é correto afirmar que: 
A) as normas são baseadas nas leis norte-americanas, mesmo que o aplicativo seja utilizado em 
outros países. 
B) as normas aplicadas são as leis e regras dos países onde o aplicativo será disponibilizado e 
utilizado. 
C) as normas são baseadas em princípios próprios de cada companhia, além da legislação local 
de onde o aplicativo será distribuído. 
D) as normas não são influenciadas por leis locais ou de qualquer país, sendo determinadas 
pelas 
empresas. 
E) as normas são determinadas por princípios de direitos humanos e são bastante semelhantes 
entre as app stores. 
 
2) A publicação de aplicativos na Google Play Store e Apple App Store é regulada por diretrizese normativas que visam tanto a questões de segurança como de experiência do usuário. 
Considerando as normativas da Google Play e da Apple App Store, é correto afirmar que: 
A) a Google mantém uma política rígida de análise de desempenho de aplicações. 
B) a Apple mantém uma política rígida de análise de desempenho de aplicações. 
C) ambas as empresas possuem uma política rígida de desempenho de aplicações. 
D) o desempenho da aplicação é considerado, mas não é fator determinante na aceitação. 
E) o desempenho não é fator levado em consideração na aceitação por uma app store. 
 
3) Publicar uma aplicação nas lojas de aplicativos oficiais significa, necessariamente, estar em 
conformidade com as diretrizes de cada companhia. A esse respeito, é correto afirmar que: 
A) os critérios de privacidade e transparência no uso de dados de usuários são objetivos na 
Apple, mas subjetivos para a Google. 
B) os critérios de privacidade e transparência no uso de dados de usuários são objetivos na 
Google, mas subjetivos para a Apple. 
C) a privacidade e transparência no uso de dados de usuários são regidas por leis internacionais 
e não dependem da política das app stores. 
D) ambas as app stores apresentam normas explícitas que regulamentam o acesso a dados e o 
uso que se dará aos dados coletados. 
E) é livre ao desenvolvedor solicitar quaisquer dados ao usuário, independentemente de 
fazerem sentido com a aplicação - desde que o usuário aceite os termos de uso. 
 
4) Existem alguns requisitos que os desenvolvedores devem cumprir antes da publicação nas 
lojas de aplicativos. Sobre esses requisitos, é correto afirmar que: 
A) ambas as plataformas exigem conta de desenvolvedor paga e assinatura de contrato digital. 
B) a Google Play exige a criação de uma conta de desenvolvedor gratuita e a aceitação do 
contrato. 
C) a publicação na Apple App Store realiza a cobrança por aplicativo publicado e não pela conta 
de desenvolvedor. 
D) a publicação na Google Play Store realiza a cobrança por aplicativo publicado, e não pela 
conta de desenvolvedor. 
E) ambas as plataformas exigem o pagamento de taxa anual para publicação de apps nas lojas. 
 
5) O Ionic é um framework de desenvolvimento multiplataforma. Em resumo, a aplicação 
desenvolvida com o Ionic pode ser executada em Android e em iOS. Sobre a geração do 
arquivo para publicação, é correto afirmar que: 
A) o Ionic produz o executável de ambas as plataformas, ou seja, produz o entregável para 
Android e iOS via linha de comando. 
B) o Ionic prepara o projeto, mas a compilação é executada por cada plataforma: Android Studio 
para Android e Xcode para iOS. 
C) o Ionic gera o executável do Android via linha de comando e prepara o projeto do iOS que 
deve ser compilado via Xcode. 
D) a compilação via Ionic para ambas as plataformas pode ser realizada utilizando qualquer 
sistema operacional: Windows, Linux ou MacOS. 
E) como o Ionic é um framework baseado em linguagens web, a aplicação não necessita de 
compilação para ser publicada e executada em Android e iOS. 
 
Componentes de tela do usuário 
Padrão de resposta esperado 
 
Para a criação da tela, deverão ser usados um componente View com dois componentes 
EditText, em que o usuário deverá informar o nome e o e-mail, e dois componentes spinner para 
seleção do sexo e da categoria. 
 
Logo abaixo seriam inseridos dois componentes Button para salvar ou cancelar o cadastro. 
 
O código XML seria: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
QUESTÕES 
 
1) A plataforma Android oferece diversos componentes visuais sofisticados, principalmente se 
compararmos com o desenvolvimento de aplicativos em aparelhos celulares antigos. 
Sobre essa afirmativa, assinale a alternativa correta: 
A) A atual plataforma do Android oferece novos componentes se comparada à plataforma 
Android de celulares antigos. 
B) Os recursos de componentes visuais sofisticados do Android só estão disponíveis para 
celulares. 
C) A plataforma Android oferece componentes visuais sofisticados que não eram possíveis nas 
plataformas antigas. 
D) Os componentes sofisticados da plataforma Android foram desenvolvidos para facilitar 
recursos do celular. 
E) A atual plataforma Android foi desenvolvida para possibilitar o uso de sofisticados 
componentes visuais. 
 
2) No Android, o conceito de View é o de um “espaço” em tela que sirva para exibir alguma 
mensagem ou forma de interação com o usuário, permitindo que este possa executar uma 
ação ou se informar sobre algo. 
De acordo com esse conceito, marque a alternativa que apresenta 
componentes relacionados a ele: 
A) Conector de banco de dados, layout de UI e botão. 
B) Tabelas, layout e imagem. 
C) Mensagens de texto, imagens e botão. 
D) Lista de informações, XML e imagens. 
E) Editor código, imagens e botão ícone. 
3) 
A plataforma Android possibilita utilizar vários componentes visuais para a interação do 
usuário com o aplicativo. 
Leia as alternativas e identifique qual componente a seguir é utilizado para permitir ao 
usuário confirmar uma solicitação do aplicativo. 
A) TextView. 
B) ListView. 
C) ImageView. 
D) DigitalClock. 
E) ImageButton. 
 
4) O componente ImageView tem especificamente a função de exibir imagens em telas de 
aplicativos Android e é um recurso muito utilizado na construção de aplicativos. 
Acerca dessa afirmativa, assinalea alternativa correta: 
A) O componente ImageView pode ser utilizado para permitir a interação do usuário. 
B) O componente ImageView pode ser utilizado para exibir ícones na tela. 
C) O componente ImageView só pode ser utilizado em conjunto com o componente Button. 
D) O componente ImageView pode ser utilizado para exibir imagens baixadas da Internet. 
E) O componente ImageView pode ser utilizado para exibir uma lista na tela. 
 
5) Trabalhar com componentes visuais não é difícil, já que muitos deles são possíveis via layout. 
Porém, você deve se atentar a alguns itens importantes. 
Assinale a alternativa que contenha os itens considerados importantes para se pensar ao 
trabalhar com layout no Android. 
A) Usabilidade e transparência. 
B) Performance e transparência. 
C) Consumo e usabilidade. 
D) Economia de dados e reuso. 
E) Transparência e economia de dados. 
 
Persistência com SQLite 
 
Padrão de resposta esperado 
 
A) Comando para criação do banco de dados: 
 
public class MeuDatabase extends SQLiteOpenHelper { 
 
public MeuDatabase(@Nullable Context context) { 
super(context, "dadosMedicos", null, 1); 
} 
 
@Override 
public void onCreate(SQLiteDatabase db) { 
db.execSQL("create table medicosCli(_id integer primary key autoincrement, nome nome(80), 
espec varchar(80));"); 
} 
 
B) Comando de recuperação de acordo com a especialidade: 
 
public Cursor getDados(String ESPEC){ 
 
SQLiteDatabase sqLiteDatabase = this.getReadableDatabase(); 
Cursor cursor = sqLiteDatabase.rawQuery("select * from medicosCli", "espec = ",new 
String[]{String.valueOf(ESPEC)}); 
 
return cursor; 
} 
} 
 
QUESTÕES 
 
 
1) O banco de dados SQLite está no contexto da persistência de dados no Android. Qual das 
opções a seguir está correta sobre as características desse banco de dados? 
A) Trata-se de um banco de dados embutido com servidor, realizando os procedimentos de 
leitura e escrita diretamente no arquivo. 
B) O SQLite é gerenciado automaticamente pela plataforma Android, mas não é suportado por 
suas principais versões. 
C) Sua utilização requer algum tipo de configuração ou processo administrativo; sem 
necessidade inclusive de definir os comandos SQL para criar e atualizar o banco de dados. 
D) Qualquer banco de dados poderá ser acessado por seu nome a partir de qualquer classe da 
aplicação, mas não poderá ser acessado fora dela. 
E) Diversos bancos de dados não poderão ser acessados somente por seu nome a partir de 
qualquer classe da aplicação, mas poderão ser acessados fora dela. 
 
2) A partir do construtor que você definiu, você poderá obter uma instância de implementação 
de SQLiteOpenHelper. Para que se possa realizar operações de gravação e leitura no banco 
de dados, quais métodos devem ser invocados? 
A) getWritableDatabase() e getReadableDatabase(). 
B) getWritableDatabase() e query(). 
C) SQLiteDatabase() e getReadableDatabase(). 
D) setWriteDatabase() e setReadDatabase(). 
E) setWritableDatabase() e setReadableDatabase(). 
 
3) A própria Google, criadora da plataforma Android, faz uma indicação para conexão com o 
banco de dados SQLite. Qual subclasse deve ser utilizada? 
A) SQLiteReadHelper. 
B) SQLiteCreateHelper. 
C) SQLiteOpenHelper. 
D) SQLiteManageHelper. 
E) SQLiteHelper. 
 
4) O SQLite não é o único sistema de banco de dados suportado pelo Android, ou seja, além 
dele, existem outras opções que podem ser utilizadas para persistência de dados na 
plataforma. Com base nessa afirmação, marque a opção que melhor descreve os motivos de, 
entre várias opções, o SQLite ser a mais indicada. 
 
A) Por ser uma biblioteca em C, realizar o próprio gerenciamento e suportar todos os comandos 
SQL. 
B) Por ser escrito em java, a mesma linguagem de programação utilizada para escrever 
aplicativos Android. 
C) Por ser a única opção gratuita e livre de qualquer tipo de licença. 
D) Porque foi desenvolvido pela própria Google, empresa responsável pelo Android. 
E) Por ser open source e escrito em C (o que garante suporte nativo no Android). 
 
5) O SQLite também tem limitações. Observe as opções a seguir e assinale aquela que as 
descreve: 
A) Atomicidade, delete múltiplas tabelas, triggers e alter table. 
B) Delete múltiplas tabelas, revoke, grant, triggers e alter table. 
C) DRight join, alter table, revoke, grant e update. 
D) Durabilidade, triggers, delete em múltiplas tabelas, joins e alter table. 
E) Joins, delete, alter table, grank e revoke. 
 
 
Webservices RESTful 
 
Padrão de resposta esperado 
 
O código seria semelhante a este: 
 
OkHttpClient client = new OkHttpClient(); 
 
String client_id = "YOUR_CLIENT_ID"; 
String secret = "YOUR_SECRET"; 
String type = "text"; 
String message = "Mensagem enviada pela API! Troque os numeros"; 
String device_id = "1A2B3C4D5E"; 
String recipient = "5511123456789;5511987654321"; 
Request request = new Request.Builder() 
.url("https://api-
v2.zapi.software/message/sendText?client_id="+client_id+"&secret="+secret+"&type="+type+"&m
essage="+message+"&device_id="+device_id+"&recipient="+recipient) 
.addHeader("cache-control", "no-cache") 
.build(); 
 
Response response = client.newCall(request).execute(); 
 
https://google.github.io/volley/ 
 
https://www.treinaweb.com.br/blog/rest-nao-e-simplesmente-retornar-json-indo-alem-com-apis-
rest/ 
 
https://www.youtube.com/embed/_HSXZN3LZQg 
 
https://www.youtube.com/embed/P6GcoLU0iCo 
 
 
 
 
 
https://google.github.io/volley/
https://www.treinaweb.com.br/blog/rest-nao-e-simplesmente-retornar-json-indo-alem-com-apis-rest/
https://www.treinaweb.com.br/blog/rest-nao-e-simplesmente-retornar-json-indo-alem-com-apis-rest/
https://www.youtube.com/embed/_HSXZN3LZQg
https://www.youtube.com/embed/P6GcoLU0iCo
 
 
 
 
 
 
 
 
1) O RESTful é uma arquitetura de software que define um conjunto de padrões a serem usados 
para a criação de WebServices. Os WebServices que estão em conformidade com o estilo 
arquitetural REST, denominados WebServices RESTful, fornecem interoperabilidade entre 
sistemas de computadores na Internet. Com relação ao REST, assinale a alternativa correta: 
A) O REST (Representational Statefull Transfer) é um estilo de comunicação utilizado em 
WebServices. 
B) O REST (Representational Statefull Transfer) é um exemplo de arquitetura orientada a objetos 
distribuidos. 
C) O REST é um protocolo de comunicação baseado em HTTP que surgiu com o objetivo de 
simplificar o acesso aos WebServices. 
D) No REST, as comunicações são controladas pelo servidor WebServices. A informação deve 
ser conhecida somente pelo cliente e pelo servidor. 
E) O REST é definido através de quatro elementos de interface caracterizados pelos endpoints 
de API. 
 
2) Um gerente de Tecnologia da Informação, avaliando o cenário de softwares em sua 
organização, percebeu que existia um grande número de softwares que necessitavam realizar 
a mesma operação vinculada a cadastro de clientes. Considerando ainda que cada software 
foi escrito em uma linguagem de programação diferente, o gerente de TI resolveu mudar 
para uma arquitetura orientada a serviços, então sua recomendação foi: 
A) Construir um sistema em uma única linguagem e eliminar todos os demais sistemas 
envolvidos nessa mesma operação. 
B) Criar um método para validação do cadastro único de clientes em cada um dos softwares, 
usando a mesma lógica. 
C) Criar um serviço RESTful usando protocolo SOAP para manter informações centralizadas, 
permitindo consistência nos dados. 
D) Disponibilizar um portlet para que cada software possa converter os dados de clientes em 
XML padrão e validá-los com base na lógica centralizada. 
E) Disponibilizar WebService para validar e cadastrar clientes de forma que os demais softwares 
consumam esse serviço da mesma maneira. 
 
3) Um conceito importante para trabalhar com REST se trata do recurso. Toda aplicação 
gerencia informações, como, por exemplo, em um site de e-comerce, gerenciam-se produtos, 
clientes, vendas, etc. Essas informações que uma aplicação gerencia são chamadas de 
recursos no modelo REST. Acerca desses recursos,assinale a alternativa correta: 
A) Um recurso no REST pode ser comparado a um método que executa alguma operação 
solicitada. 
B) Um dos princípios do REST define que todo recurso deverá possuir um ID de identificação. 
C) Um recurso é uma forma de comunicação, assim como SOAP ou XML, que possibilita troca de 
informações. 
D) Um recurso é qualquer informação que esta contida em um JSON e é trocada entre 
WebServices. 
 
E) Um recurso caracterizado por distinguir formatos disponíveis como JSON e XML para troca 
de informações. 
 
4) RESTful é frequentemente aplicado a WebServices para disponibilizar APIs de acesso a um 
serviço qualquer na web. Utiliza integralmente o que já é padrão no protocolo HTTP sem 
necessidade de inventar protocolos específicos para a aplicação. Sobre esse conceito, 
assinale a alternativa correta: 
A) Apresenta estado entre as comunicações, ou seja, cada comunicação não é independente e 
uniforme (padronizada). 
B) É necessário que a aplicação cliente saiba como a aplicação servidor irá armazenar dado por 
exemplo. 
C) As URIs são usadas como uma alternativa ao protocolo HTTP, permitindo que o serviço opere 
também por outro protocolo. 
D) Ao utilizar HTTP, o REST necessita que os formatos utilizados para tráfego sejam somente 
SOAP. 
E) Ele usa o protocolo HTTP (verbos, accept headers, códigos de estado HTTP, Content-Type) de 
forma explícita e representativa para se comunicar. 
 
5) O REST (Representation State Transfer) é uma arquitetura mais atual para WebServices. 
Comparada à arquitetura SOAP (Simple Object Access Protocol), é considerada uma forma 
"menos burocrática" de se implementar WebServices. Acerca da diferença entra SOAP e 
REST, assinale a alternativa correta: 
A) A principal diferença entre as duas é que SOAP utiliza XML e REST utiliza JSON para troca de 
informações. 
B) SOAP é utilizada com servidores de aplicação mais antigos enquanto REST é mais atual. 
C) A arquitetura SOAP exige mais camadas de complexidade do que o REST, que usa somente 
HTTP. 
D) O SOAP é recomendado em operações mais críticas que o REST devido a sua arquitetura. 
E) A grande diferença está relacionada à necessidade de tráfego de rede, fazendo que o REST se 
torne inviável em alto volumes. 
 
Recursos e a classe R.java 
 
Padrão de resposta esperado 
 
Comparando os arquivos, é possível perceber que o problema está ocorrendo porque há nomes 
diferentes nas strings dos arquivos: 
 
activity_main.xml: 
 
android:text="@string/surpeendame" 
 
strings.xml: 
 
Surpeenda-me 
 
Portanto, para que isso seja solucionado e a classe de código consiga executar sem erro, devem 
ser utilizados os mesmos nomes. 
 
https://www.youtube.com/embed/sALo81iXpIU 
 
https://www.youtube.com/embed/sALo81iXpIU
https://developer.android.com/guide/topics/resources/providing-resources?hl=pt-
brhttps%3A%2F%2Fdeveloper.android.com%2Fguide%2Ftopics%2Fresources%2Faccessing-
resources.html%3Fhl%3Dpt-br#Accessing 
 
https://www.youtube.com/embed/MEegto1_GpM 
 
1) A classe R.java tem por finalidade possibilitar a comunicação entre o código do aplicativo e o 
arquivo XML do recurso. Nela, está a referência aos recursos consumidos pelo aplicativo. 
Ainda a respeito dessa classe, é correto afirmar que: 
A) a classe R deve ser a primeira a ser desenvolvida quando um aplicativo novo é criado. 
B) a classe R não deve ser alterada diretamente; sua alteração se dá em decorrência de 
alterações no código. 
C) as alterações necessárias para acesso em recursos devem sempre ser realizadas na classe R. 
D) a classe R realiza a comunicação entre o arquivo XML e o código, além de gerar o arquivo 
XML. 
E) a comunicação para a utilização dos recursos não é necessariamente um objetivo de 
tal classe. 
 
2) Referenciar a utilização dos recursos é um processo bem simples, sendo preciso, 
apenas, referenciar o respectivo ID do recurso no código. 
Com base nessa afirmação, assinale a alternativa correta. 
A) Deve-se consultar o ID do recurso no seu arquivo XML e referenciá-lo no código, e a classe R 
se encarrega do resto. 
B) Se o que se quer é utilizar a referência do ID, é preciso alterá-la na classe R e, depois, utilizá-
la 
no código. 
C) Todos os IDs de recursos são definidos pela classe R automaticamente. 
D) Somente referenciar o ID é suficiente para acessar o recurso. Posteriormente, é necessário 
ajustá-lo na classe R. 
E) Jamais se deve referenciar o ID no código; o correto é na classe R. 
Apesar de a classe R ser o local onde os códigos de recursos são especificados, nunca deverá 
ser necessário verificá-la para descobrir um código de recurso. 
 
3)Refletindo sobre essa afirmação, assinale a alternativa correta. 
A) Apesar de realizar a comunicação entre o arquivo XML e o código, a classe R não tem o ID 
dos recursos. 
B) Essa afirmativa não condiz com a realidade, pois sempre é necessário realizar a consulta na 
classe R. 
C) Para consultar o ID dos recursos, o processo correto é consultar o respectivo arquivo XML. 
D) A classe R não pode ser consultada devido ao fato de que ela não fica disponível na 
compilação do aplicativo. 
E) Essa afirmativa baseia-se no fato de que todo ID é composto pelo tipo e nome do recurso. 
Logo, não é necessário consultar a classe. 
 
4) A classe R é gerada pelo aapt automaticamente quando a aplicação é compilada. Nesse 
sentido, o que ocorrerá caso algo seja alterado diretamente na classe R após nova 
compilação do aplicativo? 
A) As alterações serão sobrepostas pela compilação e perdidas. 
B) O aplicativo não poderá ser compilado, pois ocorrerá erro. 
C) O arquivo .xml e todos os demais recursos deixarão de funcionar consequentemente. 
D) Não deverá ocorrer problema com a classe R em si, mas, sim, com o arquivo .xml. 
E) O aplicativo vai acusar erro nas referências dos recursos já utilizados. 
 
5) Nos projetos de desenvolvimento de aplicativos para o Android, é imprescindível conhecer e 
saber utilizar a classe R.java. Nesse contexto, pode-se dizer que o principal benefício dela é: 
https://developer.android.com/guide/topics/resources/providing-resources?hl=pt-brhttps%3A%2F%2Fdeveloper.android.com%2Fguide%2Ftopics%2Fresources%2Faccessing-resources.html%3Fhl%3Dpt-br#Accessing
https://developer.android.com/guide/topics/resources/providing-resources?hl=pt-brhttps%3A%2F%2Fdeveloper.android.com%2Fguide%2Ftopics%2Fresources%2Faccessing-resources.html%3Fhl%3Dpt-br#Accessing
https://developer.android.com/guide/topics/resources/providing-resources?hl=pt-brhttps%3A%2F%2Fdeveloper.android.com%2Fguide%2Ftopics%2Fresources%2Faccessing-resources.html%3Fhl%3Dpt-br#Accessing
https://www.youtube.com/embed/MEegto1_GpM
A) possibilitar trabalhar com arquivo .xml para acesso a recursos. 
B) permitir abstrair os recursos e, assim, não ter que se preocupar em conhecê-los. 
C) possibilitar o mapeamento entre recursos e código de modo dinâmico, sem necessidade de 
codificação. 
D) facilitar o acesso ao código dos recursos. 
E) possibilitar alterações manuais. 
 
 
Tipos de layout ConstraintLayout e TableLayout 
 
Padrão de resposta esperado 
 
a) O leiaute, caso feito com uma TableLayout, precisa de 4 linhas, a primeira com os 
componentes para informar o usuário, a segunda linha para os dados da senha, a terceira com o 
botão para login e, por fim, uma linha para a frase "esqueci a senha". 
 
b) As duas primeiras linhas deveriam apresentar duas colunas, uma para o TextView e o EditText 
de usuário e senha. As duas últimas linhas teriam apenas uma coluna. 
 
c) 
 

 
 
 
 
 
1) 
O TableLayout é uma especialização do LinearLayout, muito utilizado para criar formulários, telas 
de login ou para mostrar informações de forma tabular, como na imagem a seguir. Para ela, 
quantos 
 são necessários? 
A imagem a seguir possui audiodescrição. Para acessar o recurso, clique aqui 
 
A) São necessários três TableRow. 
B) São necessários cinco TableRow. 
C) São necessários dois TableRow. 
D) É necessário um TableRow. 
E) São necessários quatro TableRow. 
 
 
2) Cada restrição ou constraint define a posição da view ao longo do eixo vertical ou horizontal. 
Ao usar o atributo app:layout_constraintStart_toStartOf="parent", informase ao leiaute que a view 
em questão vai 
A) aparecer abaixo da view parent. 
B) aparecer sobre a view parent. 
C) aparecer ao lado da view parent. 
D) aparecer ao lado da imagem view, de nome Parent. 
E) aparecer acima da imagem View Parent. 
 
3) Para definir a posição de uma view no ConstraintLayout, deve-se ter, pelo menos, uma 
restrição horizontal e uma vertical para a view. Cada restrição representa uma conexão ou 
alinhamento para outra view, o leiaute "pai" ou uma diretriz invisível. Cada restrição ou 
constraint define a posição da view ao longo do eixo vertical ou horizontal. São formas de 
criação de restrições no ConstraintLayout os seguintes: 
A) Chains, posicionamento circular, android:shrinkColumns e layout_span. 
B) Margens, posicionamento centralizado, chains e posicionamento circular. 
C) TableLayout, posicionamento centralizado, chains e posicionamento circular. 
D) Margens,TableRow, chains e posicionamento circular. 
E) TableLayout, TableRow, chains e posicionamento circular. 
 
4) No desenvolvimento de uma tela para exibir dados em tabelados usa-se o TableLayout, o 
qual agrupa exibições em linhas. Ao utilizá-lo, os componentes são exibidos na tela 
conforme 
A) a ordem em que foram escritos no leiaute, começando de baixo para cima. 
B) a ordem em que foram escritos no leiaute apresentados na TableRow. 
C) a ordem em que foram escritos no leiaute apresentados na chain. 
D) a ordem em que foram escritos no leiaute, conforme definição do app:layout. 
E) a ordem em que foram escritos no leiaute, conforme a constraint. 
 
5) TableLayout é um ViewGroup que agrupa exibições em linhas, já o TableRow é responsável 
por criar as linhas na tabela e cada elemento adicionado a ele torna-se uma coluna. Caso seja 
necessário expandir uma coluna para ocupar mais de um espaço deve-se utilizar o atributo: 
A) android:layout_span. 
B) android:shrinkColumns. 
C) android:stretchColumns. 
D) android:TableRow. 
E) android:layout_merge. 
 
https://developer.android.com/studio/write/layout-editor?hl=pt-br 
 
https://developer.android.com/guide/practices/screens_support?hl=pt-br 
 
https://developer.android.com/reference/android/support/constraint/ConstraintLayout 
 
https://developer.android.com/develop/ui/views/layout/constraint-layout?hl=pt-br 
 
https://developer.android.com/guide/topics/ui/layout/grid?hl=en 
 
Testes em aplicativos móveis 
 
Padrão de resposta esperado 
Em primeiro lugar, é necessário garantir que a função ou método, que realiza o cálculo, está 
funcionando adequadamente - o que significa que devem ser submetidas por testes unitários, 
com valores de entrada controlados e resultados conhecidos. Devem ser realizados testes com 
vários valores de entrada para garantir que a fórmula foi codificada corretamente e os erros foram 
tratados. 
Em seguida, é necessário implementar testes de integração, pois uma função de cálculo mais 
complexa pode realizar chamadas a funções de cálculos mais elementares. Para isso, podem ser 
utilizados mocks. 
Por fim, planejar os testes end-to-end, inclusive envolvendo a interface de usuário, de forma que 
se alerte para dados inválidos (como divisão por zero, por exemplo), ou que todos os campos 
essenciais sejam preenchidos; eliminando, assim, a possibilidade de falha humana na entrada de 
dados. 
 
 
1) Para garantir a qualidade dos softwares lançados, é importante manter uma rotina de testes. 
Sobre os níveis de teste é correto afirmar que: 
A) o teste de integração é o nível mais abstrato, no qual é validada a integração do sistema com 
os outros sistemas da empresa. 
B) o teste de unidade é aquele que analisa o software como uma unidade complexa em si, 
avaliando se esta unidade atende aos requisitos. 
C) o teste de validação é o nível de testes, utilizado para validar funções, métodos, classes e 
objetos e suas entradas e saídas. 
D) o teste de integração é o tipo de teste voltado para verificar a integração entre as unidades, 
ou seja, um bloco inteiro da aplicação. 
E) o teste de sistema é todo aquele utilizado para testar sistemas computacionais, de maneira 
manual ou automatizada. 
 
2) Os testes de software são divididos em algumas técnicas fundamentais denominadas Teste 
de caixa branca e Teste de caixa preta. Sobre estes, é correto afirmar que: 
A) o teste de caixa branca exige que o testador tenha conhecimento do código fonte. 
B) o teste de caixa preta exige que o testador tenha conhecimento do código fonte. 
C) testes de caixa preta são indicados na fase de testes unitário e de integração. 
D) testes de caixa branca são os mais indicados na fase de testes de aceitação e sistema. 
E) testes de caixa branca são voltados para as fases de aceitação e validação. 
 
3) Codificar testes automatizados acaba por gerar uma necessidade de investimento de tempo 
e custos no projeto como um todo. Em relação a esses investimentos é correto afirmar que: 
A) quanto mais próximo ao nível do usuário, mais abrangente é o teste e maior será o 
investimento de tempo e dinheiro. 
B) testes de integração de unidades são considerados os mais custosos em termos de tempo e 
https://developer.android.com/studio/write/layout-editor?hl=pt-br
https://developer.android.com/guide/practices/screens_support?hl=pt-br
https://developer.android.com/develop/ui/views/layout/constraint-layout?hl=pt-br
https://developer.android.com/guide/topics/ui/layout/grid?hl=en
dinheiro em um projeto. 
C) o investimento de tempo e dinheiro é o mesmo em todas as fases de um projeto de testes de 
software. 
D) testes unitários têm um custo maior (por teste), pois demandam maior conhecimento técnico 
de codificação. 
E) os testes de interface de usuário não são possíveis de serem automatizados, pois requerem o 
uso da interface. 
 
4) As aplicações desenvolvidas com o Ionic também são possíveis de serem testadas de 
maneira automatizada - inclusive, é recomendável. Sobre os testes com as plataformas do 
Ionic é correto afirmar que: 
A) o Ionic possui funcionalidade interna para testes unitários, não dependendo de biblioteca de 
terceiros. 
B) o Ionic integra a plataforma Jasmine e Protractor para testes unitários e end-to-end. 
C)a programação do Ionic se dá em TypeScript, mas os testes, utilizando Jasmine, são 
codificados em JavaScript. 
D) as bibliotecas de testes do Ionic são baseadas no JUnit e no Selenium para testes unitários e 
de integração respectivamente. 
E) os elementos testáveis de maneira unitária no Ionic são os Services, Pipes e Components. As 
pages não são testáveis diretamente. 
 
5) Por vezes, durante o desenvolvimento dos testes de unidade, é necessário acessar dados ou 
funções externas à unidade que se está testando. Sobre essa situação é correto afirmar que: 
A) é uma prática que pode ser usada, porém, não é recomendada. Nesse caso, normalmente se 
trata de um erro no projeto de teste. 
B) pode-se testar, normalmente, as funções e dados externos em testes unitários, da mesma 
forma que a aplicação faria. 
C) para simular os dados e funções externos à unidade testada, faz-se o uso de mocks, evitando 
interferências externas no teste. 
D) funcionalidades que dependem de outras não podem ser enquadradas em testes unitários, 
devendo ser tratadas apenas em testes de integração. 
E) neste caso, o correto é buscar os dados necessários e mantê-los em memória; e, então, 
executar os testes unitários sobre os dados. 
 
 
https://v17.angular.io/guide/testing#component-test-basics?v=1804175729 
 
https://angular.dev/guide/testing 
 
https://www.hugedomains.com/domain_profile.cfm?d=broncodev.com 
 
https://medium.com/totvsdevelopers/os-princ%C3%ADpios-de-testes-e2e-com-protractor-
b6e70501158a 
 
https://learn.microsoft.com/pt-br/archive/msdn-magazine/2018/november/the-working-
programmer-how-to-be-mean-testing-angularly 
 
https://ionicframework.com/docs/angular/testing 
 
 
https://v17.angular.io/guide/testing#component-test-basics?v=1804175729
https://angular.dev/guide/testing
https://www.hugedomains.com/domain_profile.cfm?d=broncodev.com
https://medium.com/totvsdevelopers/os-princ%C3%ADpios-de-testes-e2e-com-protractor-b6e70501158a
https://medium.com/totvsdevelopers/os-princ%C3%ADpios-de-testes-e2e-com-protractor-b6e70501158a
https://learn.microsoft.com/pt-br/archive/msdn-magazine/2018/november/the-working-programmer-how-to-be-mean-testing-angularly
https://learn.microsoft.com/pt-br/archive/msdn-magazine/2018/november/the-working-programmer-how-to-be-mean-testing-angularly
https://ionicframework.com/docs/angular/testing

Mais conteúdos dessa disciplina