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