Buscar

Desenvolvimento para Dispositivos Móveis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Desenvolvimento para Dispositivos Móveis
Introdução ao desenvolvimento para dispositivos móveis
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.
Resposta: D
Motivo: O primeiro smartphone é tido como sendo o IBM Simon, lançado em 1993 — o qual
foi um fracasso de mercado. Vários aparelhos fizeram sucesso comercial depois disso.
Todavia, foi com o lançamento do iPhone, em 2007, que o mercado realmente explodiu. Em
2008, o Google lança, em parceria com a operadora T-Mobile, o HTC G1, o primeiro
smartphone com Android, para concorrer com a Apple e o iPhone.
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.
Resposta: B
Motivo: As redes de segunda geração se caracterizaram por uma conexão de velocidade
máxima na faixa dos 110Kbps (já com o aperfeiçoamento da tecnologia EDGE), porém, com
médias muito abaixo desse valor, além de serem instáveis. Seu uso era mais restrito a
conteúdos básicos, como e-mail e páginas web (preferencialmente sem muito conteúdo
dinâmico). O uso de mensagens de texto na segunda geração também foi intenso. Na
terceira geração, já alcançando velocidades na faixa de alguns megabits por segundo,
assim como maior estabilidade, seu uso se tornou mais próximo do que se fazia com o
computador. Chamadas de vídeo e streamings se tornaram mais viáveis, atraindo um
grande número de usuários.
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.
Resposta: C
Motivo: A computação ubíqua — um conceito desenvolvido por Mark Weiser —, trata da
onipresença de computadores no cotidiano das pessoas e da interação imperceptível (ou
quase) com eles. Essa interação pode se dar por gestos, comandos de voz, toques em tela,
entre outras formas; quanto mais natural, melhor.
Os smartphones, por estarem sempre junto ao usuário e ter uma interface mais natural que
os computadores convencionais, estão incluídos no conceito de ubiquidade.
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.
Resposta: E
Motivo: Os dois principais sistemas do mercado, o Android e o iOS, são completamente
incompatíveis entre si.
Uma aplicação desenvolvida para Android — normalmente em Java ou Kotlin, precisará ser
completamente reescrita utilizando as ferramentas para iOS, nas linguagens Objective-C ou
Swift, preferencialmente.
Cada plataforma tem seu ecossistema independente e, caso seja de interesse do
desenvolvedor, este deverá manter a sua aplicação de forma separada nos dois
marketplaces.
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
transformando-as 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.
Resposta: A
Motivo: O modelo híbrido é desenvolvido utilizando, normalmente, tecnologias baseadas em
web, principalmente HTML 5, CSS 3 e JavaScript (ou derivados). Contudo, os frameworks
atuais podem gerar aplicações nativas a partir da construção web. Seu desempenho, para a
maior parte das aplicações (exceto jogos e outras que demandem intenso uso de recursos)
é próximo de uma aplicação desenvolvida na plataforma nativa do sistema. A sobrecarga é
muito pequena. Como são convertidas para aplicações nativas, não há a necessidade do
navegador para que funcionem. Por terem desempenho parecido com aplicações
desenvolvidas nativamente e poderem gerar aplicativos para as duas plataformas, têm tido
enorme aceitação no mercado, pois evita a necessidade de manter duas bases de códigos,
bem como duas equipes diferentes.
Dispositivos móveis
1. Existem diversos tipos e tamanhos, além de diversas marcas de smartphones.
Em relação a essa variedade, é possível afirmar que:
A. Apesar da variedade de aparelhos e fabricantes existente, o desenvolvimento é
basicamente similar. Além disso, há compatibilidade entre as plataformas.
B. Devido à grande variedade de fabricantes, existe também uma grande variedade de
sistemas operacionais para smartphones em uso atualmente.
C. Apesar da variedade de fabricantes e modelos, o mercado é dominado por dois
sistemas operacionais diferentes e não compatíveis entre si.
D. O sistema operacional desenvolvido pela Apple, o iOS, é licenciado também para
outros fabricantes de hardware utilizarem em seus equipamentos.
E. O sucesso do Android se deve, principalmente, aos equipamentos desenvolvidos e
fabricados pela própria Google.
Resposta: C
Motivo: Atualmente, apesar do número de fabricantes de smartphones, apenas dois
sistemas operacionais dominam o mercado: o iOS,exclusivo dos iPhones, fabricado pela
Apple; e o Android, desenvolvido pela Google — que não fabrica o hardware dos
dispositivos — e licenciado para uso em dispositivos de fabricantes de hardware. Os
sistemas não são compatíveis entre si.
2. Outra categoria de dispositivos vem 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.
Resposta: B
Motivo: A iniciativa de construir computadores vestíveis não é nova.
Já na década de 70 existiam projetos de desenvolver relógios avançados, passando por
projetos como o da IBM, nos anos 2000.
O principal desafio encontrado até então era o espaço reduzido e a necessária
miniaturização dos componentes para caber neste espaço, bem como a duração de bateria
dos dispositivos.
A estética também foi um fator considerado: os smartwatches precisavam ser parecidos
com relógios comuns, e não com grandes braceletes chamativos.
Os modelos atuais têm funcionalidades avançadas, inclusive complementadas com a
instalação de aplicativos adicionais. Alguns modelos contam até mesmo com GPS. Sua
popularidade nos dias de hoje se dá, principalmente, entre praticantes de esportes, por seus
recursos de monitoramento biológico.
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.
Resposta: A
Motivo: O marketshare do Android, segundo o portal IDC, chega a 85% da fatia de mercado,
enquanto o iOS alcança 15%. O sistema desenvolvido pela Google equipa, desde
equipamentos básicos, de entrada, até dispositivos de ponta, como é o caso dos flagships
da Samsung e Xiaomi. Essa diferença tende a se manter, pois, mesmo o iOS sendo
exclusividade da Apple, esta tende a manter a sua fatia de mercado.
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.
Resposta: D
Motivo: Apesar de ser o sistema líder em número de dispositivos, existe uma grande
fragmentação entre as versões em uso, sendo assim, a reposta adequada para a questão é
a letra “d”. A letra “a” não pode ser considerada correta pois nenhuma versão em uso do
Android atinge a maioria, e a adoção de novas versões tem o impacto da velocidade de
venda de novos aparelhos não ser tão rápida. A letra “b” é incorreta pois a atualização do
sistema depende de homologação pela fabricante do dispositivo móvel. A letra “c” é
incorreta já que a fragmentação do mercado é característica mais presente no Android. A
letra “e” não pode ser considerada correta pois nenhuma versão em uso do Android atinge a
maioria.
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
Resposta: D
Motivo: A afirmativa I é falsa, pois existem diferentes sistemas operacionais para cada
dispositivo que podem demandar aplicativos específicos para cada plataforma, mesmo que
já exista frameworks que possibilitam o desenvolvimento para mais de uma plataforma,
ainda não existe um que contemple todas as plataformas e versões de sistemas
operacionais ao mesmo tempo com uma única base de codificação. A afirmativa II é
verdadeira, pois é uma forma oposta à primeira afirmação, considerando que os
componentes de hardware e sistemas operacionais de smartphones, tablets e wearables
são diferentes, com diferentes capacidades de processamento, memória, tamanho de tela e
etc. E por fim, a afirmativa III também é verdadeira pois a lógica da IoT é a possibilidade de
integrarmos dispositivos inteligentes (conectados à internet) permitindo a comunicação e
compartilhando de informações, o que se aplica principalmente, mas não somente, aos
smartphones, tablets e wearables.
Ambientes de desenvolvimento de aplicativos móveis
1. Ambientes integrados de desenvolvimento ajudam os programadores, disponibilizando
funções como autocompletar e indicações de problema na sintaxe.
Entre os itens a seguir, quais são exemplos de IDEs?
A. Atom, iOS, IntelliJ e Android Studio.
B. Atom, Xcode, Kotlin e Android Studio.
C. Atom, Xcode, IntelliJ e TypeScript.
D. Atom, Xcode, IntelliJ e Android Studio.
E. Atom, Swift, IntelliJ e Android Studio.
Resposta: D
Motivo: Atom, Xcode, IntelliJ e Android Studio são ambientes integrados de
desenvolvimento, ou IDEs. iOS é um sistema operacional. Kotlin, TypeScript e Swift são
linguagens de programação.
2. Duas abordagens se destacam quando se fala em desenvolvimento para aplicativos
móveis: o desenvolvimento nativo e o híbrido.
Quanto ao desenvolvimento nativo, é correto afirmar que:
A. Aplicações são desenvolvidas para rodar em qualquer sistema operacional.
B. O desempenho é inferior se comparado ao desenvolvimento híbrido.
C. Utilizam uma webview, a qual abre um navegador para exibir conteúdo ao usuário.
D. As aplicações não podem acessar diretamente o GPS e o acelerômetro.
E. As aplicações são desenvolvidas para um sistema operacional específico.
Resposta: E
Motivo: No desenvolvimento nativo, as aplicações são desenvolvidas para um sistema
operacional específico, portanto, não rodam em qualquer sistema operacional. Além disso,
elas podem acessar diretamente o GPS e o acelerômetro. Já no desenvolvimento híbrido,
as aplicações utilizam uma webview, que abre um navegador para exibir conteúdo ao
usuário.
3. Algumas linguagens de programação têm características mais específicas. Java e Kotlin,
por exemplo, são linguagens estaticamente tipadas.
O que isso significa?
A. A declaração dos tipos de dados é opcional, não interferindo na compilação do
código.
B. As categorias de dados a serem armazenados precisam ser explicitamente
declaradas.
C. Os tipos de dados são implícitos, não sendo permitida a declaração estática.
D. Essas linguagens só trabalham com dados dos tipos textuais e numéricos.
E. Existe apenas um tipo genérico.
Resposta: B
Motivo: A declaração dos tipos de dados é obrigatória e, caso não seja definida,o código
pode não compilar. As categorias de dados a serem armazenados precisam ser
explicitamente declaradas, e os tipos precisam ser explícitos. Existe uma quantidade
relativamente grande de tipos possíveis, como os textuais e os numéricos, por exemplo. As
linguagens que contêm apenas um tipo genérico, ou nenhum tipo de dados, são mais
antigas, como o Fortran.
4. Algumas linguagens de programação são evoluções, outras adicionam funcionalidades,
enquanto outras não apresentam muito em comum.
Qual a correlação entre o Java e o JavaScript?
A. O JavaScript é uma evolução do Java para aplicativos móveis.
B. Ambas são linguagens que possibilitam o desenvolvimento de aplicativos híbridos.
C. Ambas são linguagens de programação orientadas a objetos.
D. JavaScript é um superconjunto de Java, agregando funções ao Java.
E. Javascript é uma linguagem mais antiga e mais utilizada.
Resposta: C
Motivo: Embora ambas sejam linguagens de programação orientadas a objetos, JavaScript
e Java não são correlacionadas, inexistindo a relação de superconjunto entre elas. Em
relação ao Android, Java é mais voltado para desenvolvimento nativo, sendo também uma
linguagem mais antiga que JavaScript.
5. Diversos plug-ins e frameworks podem ser utilizados para apoiar o desenvolvimento para
aplicativos móveis.
Qual deles pode ser utilizado para facilitar a instalação de outras bibliotecas e
componentes?
A. Node.js.
B. Npm.
C. Apache Cordova.
D. Ionic.
E. Angular.
Resposta: B
Motivo: O Npm (Node Package Manager) é utilizado para ajudar na instalação de pacotes
para o Node.js. O Node é um interpretador de JavaScript; e o Cordova, o Ionic e o Angular
são frameworks.
Plataformas de desenvolvimento: IDE e emulador Android
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
Resposta: E
Motivo: Java é a linguagem de programação nativa da plataforma Android. Swift é a
linguagem nativa da plataforma iOS concorrente do Android. C#, Delphi e Html são
linguagens de programação de IDEs que também possibilitam o desenvolvimento de
aplicativos para Android, porém não são nativas da plataforma.
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 quais o
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
Resposta: C
Motivo: Android Studio é a IDE indicada e mantida pela Android para desenvolvimento de
aplicativos para a sua plataforma. Visual Studio, NetBeans, Eclipse e RAD Studio são IDEs
que têm a possibilidade de desenvolver aplicativos para a plataforma Android, mas não são
reconhecidas pela Android como uma plataforma indicada para esse fim.
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
Resposta: B
Motivo: Android Emulator é o emulador disponibilizado pela Android no SDK da plataforma.
BlueStacks, Android X84 e GenyMotion são emuladores do Android desenvolvidos por
terceiros, já o Virtual Box é uma ferramenta de virtualização, na qual é possível executar os
mais diversos sistemas operacionais.
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
Resposta: E
Motivos: Ao inserir um break point em um determinado ponto do código de um aplicativo,
durante uma execução do aplicativo, é possível realizar a verificação de várias coisas
relacionadas ao aplicativo, como por exemplo o valor armazenado em cada uma das
variáveis declarada. Verificador de sintaxe analisa erros de escrita do código-fonte. Os
repositórios de versionamento possibilitam que equipes numerosas trabalhem em um
mesmo projeto sem que ocorra perda de dados. Plugins dão versatilidade a uma IDE, e
funcionalidades e recursos desenvolvidos por terceiros são disponibilizados através deles. A
renderização de layouts permite ao desenvolvedor visualizar como o layout está ficando.
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
Resposta: A
Motivo: Monitor de recursos ajuda ao desenvolvedor a analisar a quantidade de recursos
que o aplicativo está utilizando em cada estágio de sua execução. Gradle é uma ferramenta
de automatização da compilação dos arquivos finais do aplicativo. Dispositivos reais e
emuladores são formas de testar a aplicação, mas o desenvolvedor não tem noção se o
aplicativo está ou não consumindo os recursos de forma adequada. Boas praticas de
programação são sempre bem-vindas, mas um aplicativo pode ter boas práticas e assim
tender a não apresentar os problemas citados, mas isso só será aferido com o uso do
monitor de recursos.
Publicando aplicações para Android e iOS
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.
Resposta: C
Motivo: As normas são baseadas em princípios próprios de cada companhia que administra
as app stores. Contudo, também sofrem influência da legislação local de cada país onde o
aplicativo será distribuído. A legislação dos Estados Unidos da América pode até servir de
base para a elaboração do documento em alguns aspectos, mas não é fator definitivo; o
mesmo acontece com os princípios de direitos humanos.
2. A publicação de aplicativos na Google Play Store e Apple App Store é regulada por
diretrizes e normativas que visam tanto a questões de segurança como de experiência do
usuário.
Considerando as normativas da Google Play e daApple 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.
Resposta: B
Motivo: A Apple mantém uma política de controle rígida sobre desempenho e estabilidade,
realizando testes em cada aplicação submetida; a não conformidade resulta em rejeição da
publicação do app. Para a Google, esse não é fator preponderante para a aceitação de
aplicativos.
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.
Resposta: D
Motivo: É explícito nas políticas de ambas as app stores oficiais que os recursos devem ser
solicitados dentro dos critérios da razoabilidade; ou seja, que sejam necessários para o bom
funcionamento da aplicação. Os dados coletados e a destinação deles devem ser deixados
claros ao usuário na política de privacidade do aplicativo. Nos casos de jurisdições que
apresentem leis específicas sobre o assunto, como o caso da União Europeia, tais leis são
consideradas e devem ser seguidas caso o aplicativo seja disponibilizado nesses locais.
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.
Resposta: A
Motivo: Google e Apple exigem criação de conta de desenvolvedor paga e concordância
com um contrato digital. Contudo, a assinatura da Google é paga apenas uma vez no
momento da realização do cadastro; enquanto na Apple o valor é cobrado anualmente.
Além disso, não há cobrança por publicação de aplicativos.
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.
Resposta: C
Motivo: Apesar do desenvolvimento via Ionic ser realizado por ferramentas de
desenvolvimento web, é necessário compilar os aplicativos para os formatos originais de
cada plataforma: iOS e Android. No caso do Android, tendo o SDK instalado na máquina, o
próprio Ionic realiza a compilação e gera o arquivo publicável, não sendo necessária a
utilização do Android Studio. Já no caso do iOS, o produto gerado pelo Ionic é um projeto
Xcode; e a compilação para a plataforma da Apple é realizada pelo Xcode e não pelo Ionic.
Projeto de aplicativo via mockups
1. Desenhar um mockup pode ser considerada uma boa prática a ser aplicada no
desenvolvimento de aplicativos móveis, pois é uma técnica que se mostra eficaz em relação
a seus objetivos.
Uma das principais funções de um mockup é:
A. Detalhar os requisitos não funcionais a serem implementados.
B. Validar a versão final do sistema, após o desenvolvimento.
C. Validar as ideias iniciais antes de desenvolver o software.
D. Testar os casos de uso levantados durante a análise de requisitos.
E. Escolher as tecnologias a serem utilizadas para o desenvolvimento.
Resposta: C
Motivo: A principal função de um mockup é validar as ideias iniciais antes de desenvolver o
software. Embora possa ser usado como suporte para diversas atividades no
desenvolvimento de um sistema, um mockup não se presta especificamente a detalhar
requisitos não funcionais, validar a versão final do sistema, testar casos de uso ou escolher
tecnologias.
2. Um protótipo, ou mockup, pode ser avaliado de acordo com a exatidão em relação ao
que é esperado. Essa exatidão também é conhecida por fidelidade.
Quando se avalia a similaridade da interação, se está falando de:
A. Detalhamento da interface do usuário.
B. Semelhança visual entre a aplicação e seu rascunho.
C. Funcionalidades disponibilizadas pelo mockup.
D. Sensação que o usuário tem de que o aplicativo já está semifuncional.
E. Atendimento de todos os requisitos de sistema.
Resposta: D
Motivo: Similaridade da interação é a sensação que o usuário tem de que o aplicativo já
está semifuncional, que ele pode interagir como se estivesse no aplicativo desenvolvido. O
detalhamento da interface do usuário representa a dimensão de detalhamento. O
refinamento estético é a semelhança visual entre a aplicação e seu rascunho. O grau de
funcionalidade é medido pelas funcionalidades disponibilizadas. O atendimento de todos os
requisitos de sistema não é uma dimensão utilizada na análise da fidelidade de um mockup.
3. A fidelidade de um mockup pode ser avaliada de acordo com algumas dimensões.
A dimensão que trata das particularidades suportadas pelo desenho da interface gráfica é
chamada de:
A. Similaridade de interação.
B. Testabilidade.
C. Grau de funcionalidade.
D. Detalhamento.
E. Refinamento estético.
Resposta: D
Motivo: O detalhamento demonstra as particularidades da interface de usuário. A
similaridade de interação se relaciona à experiência do usuário ao navegar pelo mockup.
Testabilidade não é uma dimensão para categorização da fidelidade. Grau de
funcionalidade trata de quão funcional é o mockup, e o refinamento estético versa sobre a
similaridade em relação ao sistema esperado.
4. Mockups podem trazer algumas vantagens ou desvantagens ao seu projeto de software,
de acordo com as escolhas relacionadas à sua elaboração.
Em relação a uma característica dos mockups, é correto afirmar que:
A. Sempre aumentam o custo final do sistema por tomarem um tempo desnecessário
para a criação.
B. Necessitam de pessoal altamente especializado para elaboração, pois só podem ser
elaborados usando softwares específicos.
C. Facilitam a ideação e o desenvolvimento colaborativo, permitindo a construção em
conjunto.
D. Não precisam ser discutidos com o demandante do sistema por serem apenas mais
um diagrama.
E. São considerados mockups apenas os rascunhos de alta fidelidade, com grande
detalhamento da interface.
Resposta: C
Motivo: Mockups facilitam aideação e o desenvolvimento colaborativo, permitindo a
construção em conjunto. Eles reduzem o custo final do sistema por permitirem que
alterações sejam feitas logo no início do projeto de software. Além disso, podem ser feitos
por qualquer pessoa que entenda um pouco de interface com o usuário, pois podem ser
criados usando papel e caneta, sem necessitar obrigatoriamente de softwares específicos
ou grandes detalhamentos.
5. Em relação à fidelidade, mockups podem ser classificados em baixa, média ou alta
fidelidade, de acordo com suas características e escolhas de desenho.
Em relação aos graus de fidelidade de um mockup, escolha a alternativa correta.
A. Mockups de alta fidelidade podem apresentar alguma funcionalidade e acesso a
dados, mas não podem ser escritos em ferramentas como o bloco de notas;
precisam de softwares mais específicos
B. Mockups de alta fidelidade podem ser desenvolvidos em ferramentas como o bloco
de notas.
C. Mockups de média fidelidade podem ser desenvolvidos usando papel e caneta.
D. Mockups de baixa fidelidade precisam obrigatoriamente ser desenvolvidos em
software.
E. Mockups de baixa fidelidade devem apresentar alguma funcionalidade, mesmo que
mínima.
Resposta: A
Motivo: Mockups de alta fidelidade podem apresentar alguma funcionalidade e acesso a
dados. Mockups de média finalidade precisam ser desenvolvidos utilizando sistemas
específicos, diferentemente dos de baixa fidelidade, que podem ser criados usando papel e
caneta, e não precisam apresentar nenhuma funcionalidade de sistema.
Tipos de leiaute RelativeLayout e LinearLayout
1. O Android disponibiliza muitos recursos para se trabalhar a interface com o usuário.
Dentre eles, destacam-se os layouts, componentes de fundamental importância, sendo o
LinearLayout o tipo mais utilizado.
Assinale a alternativa correta acerca desse tipo de layout:
A. O LinearLayout tem esse nome justamente porque possibilita o alinhamento de
componenentes somente na horizontal.
B. O LinearLayout é o mais utilizado porque permite recursos mais impressionantes
que o RelativeLayout.
C. O LinearLayout permite o alinhamento de componentes tanto na horizontal como na
vertical.
D. O LinearLayout é o componente de layout mais utilizado na plataforma Android, por
ser mais fácil de trabalhar.
E. O LinearLayout permite que os componentes sejam posicionados um em relação à
posição do outro.
Resposta: C
Motivo: O LinearLayout possibilita o alinhamento de componentes tanto na vertical como na
horizontal. O alinhamento de um componente em relação ao outro é possível com o
RelativeLayout e sua utilização não está ligada ao fato de possuir mais recursos que outro
tipo de layout ou pelo fácil manuseio.
2. O RelativeLayout, um tipo de layout muito poderoso, permite que a interface do aplicativo
apresente uma experiência fantástica de interação com os usuários.
Assinale a alternativa abaixo que descreve corretamente a principal característica do
RelativeLayout:
A. O RelativeLayout permite que um componente filho tenha a sua posição atribuída
em relação à posição de outro componente.
B. O RelativeLayout permite que os componentes sejam alinhados na linha da vertica
ou da horizontal sempre empilhados.
C. O RelativeLayout tem a vantagem, em relação ao LinearLayout, de permitir utilizar
componentes em colunas.
D. O RelativeLayout é um complemento do LinearLayout, sua utilização está
relacionada ao primeiro.
E. O RelativeLayout permite recursos fantásticos, mas sua utilização também requer
componentes gráficos diferenciados.
Resposta: A
Motivo: A principal característica do RelativeLayout é permitir que componentes tenham sua
posição determinada em relação à posição de outros. Componentes não são
necessariamente empilhados como no LinearLayout e sua utilização não envolve
componentes gráficos diferentes, nem a necessidade de trabalhar em conjunto com o
LinearLayout.
3. No LinearLayout, tem-se a possibilidade de manipular atributos que permitem aos
componentes apresentarem formatos ou comportamentos diferenciados. Um atributo que
pode ser manipulado, por exemplo, é o android:layout_weight.
Assinale a alternativa abaixo que descreve o que ocorre quando se manipula o valor desse
atributo:
A. Permite que um item de maior peso seja posicionado mais ao fim da lista.
B. Permite que um item de maior peso seja posicionado mais ao topo da lista.
C. Permite que um item de maior peso seja colocado mais ao fundo dos demais.
D. Permite que um item de maior peso possa expandir e usar mais espaço na tela.
E. Permite que um item de maior peso seja exibido com prioridade ao carregar a tela.
Resposta: D
Motivo: Esse atributo permite que um item com maior peso possa expandir e ocupar mais
espaço da tela. Não está relacionado a aparecer ao fundo dos demais, nem mesmo no topo
ou fim de uma lista de exibição.
4. O RelativeLayout permite alcançar recursos fantásticos de interação com o usuário;
porém, uma das grandes desvantagens desse tipo de layout é que, quando se altera um
componente, pode ser necessário alterar todos os outros.
Assinale a alternativa correta sobre por que isso ocorre:
A. Ocorre pelo fato da hierarquia de componentes.
B. Ocorre pelo fato da relatividade da posição de um com o outro.
C. Ocorre pelo fato do RelativeLayout encapsular os componentes.
D. O RealtiveLayout não apresenta esse tipo de desvantagem.
E. Ocorre pela necessidade de ajuste manual no posicionamento dos componentes.
Resposta: B
Motivo: Isso ocorre pelo fato da relação de posicionamento de um componente com o outro,
não necessariamente pelas coordendas ou hierarquia ou encapsulamento de componentes.
5. "Indicado quando as posições dos componentes podem ser melhor descritas em relação
a outro elemento (à esquerda) ou à área de fronteira do pai (lado direito, ou centrado)".
De acordo com essa afirmativa, é correto dizer que se trata de:
A. LinearLayout e RelativeLayout.
B. Sistemas de layout.
C. Somente LinearLayout.
D. Essa afirmativa não faz sentido para layouts.
E. Somente RelativeLayout.
Resposta: E
Motivo: Sempre que puder ser determinada a posição de um componente em relação ao
outro, sem dúvida, trata-se de usar RelativeLayout. LinearLayout será quando os
componentes fluem na horizontal ou vertical.
Testes em aplicativos móveis
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.
Resposta: D
Motivo: Os testes começam de unidades elementares, como funções, métodos, classes e
objetos, no nível de testes unitários. Em seguida, essas funcionalidades são colocadas juntas,
ou seja, integradas e validadas pelo teste de integração. O teste de sistema é realizado com
todo o sistema, incluindo banco de dados, hardware, redes, etc. É a última etapa.
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.
Resposta:A
Motivo: Os testes de caixa branca indicam que o testador precisa ter acesso ao código fonte e
são recomendados, sobretudo, nas fases de testes unitários e de integração - que são mais
próximos ao nível do código. Os testes de caixa preta, como o nome sugere, tratam o software
como uma caixa fechada, ou seja, o testador não possui conhecimento sobre o código fonte.
Nesse caso, são indicados para as fases de integração (por meio da interface do usuário -
analisando entradas e saídas de dados previsíveis), validação e sistema.
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 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.
Resposta: A
Motivo: Os testes unitários, mais próximos ao código e à lógica de programação, são bem
simples de serem desenvolvidos e relativamente rápidos. Os testes de integração, por sua vez,
demandam um pouco mais de esforço. À medida que aproxima-se do nível do usuário,
realiza-se testes de caixa preta automatizados, que simulam a ação do usuário com as telas do
sistema. Todavia, esses testes são muito complexos e requerem um investimento de tempo e
dinheiro maior que qualquer outra modalidade, principalmente pelo fato de testarem o sistema
como um todo.
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.
Resposta: B
Motivo: A plataforma Ionic traz integração com frameworks de teste de terceiros: o Jasmine e o
Protractor, de maneira facilitada, inclusive, permitindo a codificação dos testes com TypeScript.
Toda a aplicação, inclusive páginas - simulando a ação do usuário -, podem ser testadas com as
duas plataformas embutidas no framework.
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.
Resposta: C
Motivo: O uso de mocks, que são dados fictícios - e que ainda possuem a característica de
identificar quando e quantas vezes são acessados - é o indicado para testar funcionalidades que
dependem de funções e dados externos. Dessa forma, programa-se o mock, sabendo dos
dados, a forma e o conteúdo e se prevê a resposta da função; seguindo, assim, com um
ambiente controlado. Desse modo, é possível realizar testes unitários nessas unidades, sem o
risco de interferência externa.
Modelagem e projeto de aplicativos móveis
1. A análise de requisitos é uma etapa fundamental para descrever as funções de cada
aplicação do processo de desenvolvimento de aplicativos móveis. Pressman e Maxim
(2016) afirmam que, com os modelos de requisitos, pode-se analisar de forma estruturada
cada aplicação, havendo cinco conjuntos de modelos: modelo de conteúdo, modelo de
interação, modelo funcional, modelo de navegação e modelo de configuração.
Analise as afirmações a seguir, quanto aos enunciados dos “modelos de requisitos”
apresentados por Pressman e Maxim (2016):
I. O modelo de conteúdo envolve todo o conteúdo que estará visível ao usuário, desde
o conteúdo criado até o manipulado a partir da interação deste. São exemplos de
conteúdo: textos, links e vídeos, entre outros.
II. O modelo funcional lida com os elementos de funcionamento da aplicação, como as
funcionalidades observadas pelo usuário (por exemplo, as operações contidas na
classe de análise, que servem para analisar todo o comportamento que está
associado a essa classe).
III. O modelo de navegação trata dos requisitos em relação a toda navegação que o
usuário irá realizar no aplicativo. De forma geral, tratar a etapa de navegação tende
a ser mais complexo, pelo fato de que esse tipo de operação tem uma hierarquia
alta, até mesmo se comparado aos web apps.
IV. O modelo de interação trata de todo o engajamento do usuário com o aplicativo,
descrevendo toda interação que irá acontecer entre o usuário e o sistema.
Está correto o que se afirma em:
A. I e II, apenas.
B. I, II e IV, apenas.
C. I, II e III, apenas.
D. III e IV, apenas.
E. II e III, apenas.
Resposta: B
Motivo: As alternativas que correspondem corretamente às definições apresentadas por
Pressman e Maxim são as que tratam dos seguintes modelos: modelo de conteúdo, que
trata de todo conteúdo proposto para a aplicação; modelo funcional, que descreve as
funções do aplicativo; e modelo de interação, que trata de toda e qualquer interação entre
usuário e sistema.
Quanto às afirmativas inconsistentes, destaca-se que, no caso do modelo de navegação, é
mais simples do que web apps, porque o número de níveis referentes à hierarquia
hipermídia será baixo.
2. Cada etapa que compõe o desenvolvimento de software tem sua importância. Entre elas,
a de arquitetura possibilita traçar as camadas que irão definir as funcionalidades para uma
aplicação.
Uma empresa de desenvolvimento de aplicativos móveis foi selecionada para desenvolver
um novo aplicativo para o mercado educacional. Na etapa de desenvolvimento da estrutura
de arquitetura do aplicativo, ficou decidido que todas as camadas desenvolvidas deveriam
estar no próprio dispositivo móvel.
Sendo assim, assinale V para as afirmações verdadeiras e F para as falsas.
( ) A melhor opção para implementar a arquitetura do projeto será o modelo de cliente
magro, que se baseia na interface da web.
( ) Desenvolvendo um modelo de cliente rico, as atividades não vão depender do servidor.
( ) Implementar a arquitetura do projeto utilizando o modelo de cliente rico permite residir
todas as camadas no próprio dispositivo.
Assinale a alternativa que apresenta a sequência correta.
A. V – V – F.
B. V – F – V.
C. F – V – V.
D. V – F – F.
E. F – F – V.
Resposta: C
Motivo: Na arquitetura-padrão dos dispositivos móveis, será possível criar um cliente magro,
em que apenas a interface do usuário reside no dispositivo móvel, enquanto as camadas do
negócio e de dados residem em um servidor. Em um cliente rico, todas as camadas podem
residir no próprio dispositivo móvel.
Quanto às afirmativas inconsistentes, destaca-se que o cliente magro e as camadas do
negócio e de dados residem em um servidor, enquanto o dispositivomóvel é a aplicação
final que irá receber a arquitetura-padrão.
3. A interface do usuário, em qualquer software, é considerada um fator de extrema
importância, e a maneira como será desenvolvida determinará se o usuário irá utilizar ou
não a ferramenta. O foco de um projeto de interface deverá ser sempre baseado na visão
do público-alvo, e alguns princípios deverão ser seguidos para buscar a melhor usabilidade
para um projeto atrair o usuário.
Relacione a temática “alguns princípios para desenvolver uma boa interface do usuário no
projeto de aplicativos móveis” com suas respectivas características e definições:
I. Antecipação
II. Comunicação
III. Eficiência
( ) A interface deve comunicar o estado de qualquer atividade pelo usuário.
( ) Uma aplicação deve ser projetada para prever o próximo passo do usuário.
( ) O projeto de uma aplicação deve otimizar o trabalho do usuário, e não do projetista.
Assinale a opção que indica a sequência correta, de cima para baixo.
A. I, II e III.
B. II, III e I.
C. III, I e II.
D. II, I e III.
E. I, III e II.
Resposta: D
Motivo: Devido às restrições físicas impostas pelos dispositivos móveis, o projetista de
interface deve compactar a interação de forma orientada. Bruce Tognozzi (2014) define um
conjunto de princípios de projeto fundamentais que conduzem a uma melhor usabilidade.
Entre eles, destaca que a antecipação é uma aplicação que deve ser projetada para prever
o próximo passo do usuário. No que se refere à comunicação, a interface deve comunicar o
estado de qualquer atividade iniciada pelo usuário.
Na eficiência, o projeto de uma aplicação e sua interface deve otimizar a eficiência de
trabalho do usuário, não a eficiência do desenvolvedor que a projeta e constrói ou o
ambiente cliente/servidor que a executa (PRESSMAN; MAXIM, 2016).
4. De acordo com Andreou (2005), poderá ser utilizado no projeto de aplicativos móveis o
modelo de processo de engenharia espiral, por meio de seis atividades principais.
Sobre a atividade planejamento, assinale a alternativa correta.
A. Descreve a etapa em que serão determinados os riscos e os custos do projeto.
B. Envolve o projeto arquitetural, o projeto de navegação, as metas e os recursos.
C. Deverá identificar todos os itens de conteúdo que serão necessários.
D. Envolve o projeto de arquitetura, o projeto de navegação e o projeto de interface do
usuário, entre outros.
E. Nessa etapa, são realizados o aplicativo que deverá ser codificado e o processo de
teste.
Resposta: A
Motivo: Na atividade de planejamento, serão determinados os riscos e os custos do projeto,
sendo estabelecido um cronograma e documentados os processos de incremento.
Quanto às afirmativas inconsistentes, destaca-se que a atividade de formulação envolve o
projeto arquitetural, o projeto de navegação, as metas e os recursos.
A atividade de análise deverá identificar todos os itens de conteúdo que serão necessários.
A atividade de engenharia envolve o projeto de arquitetura, o projeto de navegação, o
projeto de interface do usuário, o projeto de interface e o projeto de conteúdo e produção de
conteúdo.
Por fim, é na atividade de implementação e teste que se codifica o aplicativo e se realiza o
processo de teste.
5. Um aplicativo móvel deve atender às necessidades de seus usuários, e muitas vezes
essa satisfação se deve a um bom desenvolvimento de interface de usuário, que deverá
apresentar consistência e operar em diversas redes, entre outros motivos que o farão ser
bem aceito no mercado.
Para desenvolver modelos consistentes e possibilitar fácil desenvolvimento, é possível
utilizar uma abordagem de projetos baseada em modelos.
Sobre essa abordagem, é correto afirmar que:
I. trabalha a partir de dois modelos diferentes: o modelo de plataforma e o modelo de tarefa;
II. o modelo de plataforma descreve a aparência da interface de usuário;
III. no modelo de tarefa, é realizada a representação da estrutura de tarefas que o usuário
poderá executar para atingir suas metas.
Assinale a alternativa com a(s) assertiva(s) correta(s).
A. I.
B. I e II.
C. III.
D. II.
E. I e III.
Resposta: C
Motivo: A abordagem de projeto baseada em modelos utiliza três tipos de modelos
diferentes (e não dois, como na assertiva I), sendo eles: modelo de plataforma, que
descreve as restrições impostas por cada interface de usuário; modelo de apresentação,
que descreve a aparência da interface de usuário; e modelo de tarefa, que realiza a
representação da estrutura de tarefas que o usuário poderá executar para atingir suas
metas.
Consumo de serviços Web RESTful
1. O padrão RESTful se desenvolveu a partir do conceito de computação distribuída, em que
partes de um mesmo sistema se localizam em máquinas ou em locais físicos diferentes.
Partindo dessa premissa, qual alternativa a seguir está correta?
A. A aplicação móvel é responsável pela maior parte do processamento dos dados do
usuário e pelo armazenamento da maior parte das informações.
B. A aplicação móvel é responsável, majoritariamente, pelo conceito de frontend, que é a
parte que responde à interação com o usuário.
C. É necessário um dispositivo com grande poder de processamento para atender às
demandas atuais.
D. O uso de aplicativos móveis é pouco dependente do acesso à internet, tendo em vista
que as aplicações são instaladas no aparelho.
E. A comunicação entre aplicação e servidores é realizada de maneira síncrona,
consumindo grandes quantidades de dados a cada requisição.
Resposta: B
Motivo: A tecnologia das APIs, principalmente utilizando o conceito REST, faz uso de chamadas
assíncronas à rede, privilegiando trafegar apenas o que é necessário, evitando o
recarregamento de imagens e de outros dados considerados pesados, pois estão instalados
com a aplicação ou mantidos em memória local. A aplicação, por sua vez, responde,
principalmente, pela camada de interação com o usuário, também denominada frontend,
responsável por armazenar preferências, filtros, login e senha, mas não os dados brutos. Dessa
forma, é possível construir aplicações leves, que não necessitam de grande poder de
processamento, todavia, majoritariamente, dependentes de conexões à internet.
2. Na maior parte das aplicações para dispositivos móveis, há necessidade inerente de
comunicação com servidores externos, que estão acessíveis por acesso à internet. Sendo
assim, o que é um REST? Marque a opção correta. 
A. Um protocolo de rede.
B. Um conjunto de instruções predefinidas.
C. Um padrão de arquitetura de interconexão de aplicações.
D. Uma aplicação auxiliar que fará o intermédio entre o servidor e o dispositivo.
E. Um conjunto de bibliotecas inerentes às linguagens de programação.
Resposta: C
Motivo: REST é um padrão de arquitetura de software que permite que os dados sejam
trafegados utilizando o protocolo HTTP e a infraestrutura da própria Web. Nesse caso, um
servidor, chamado de backend , expõe funções para o tratamento dos dados enviados e
recebidos.
3. Uma aplicação pode ser chamada de RESTful quando é baseada no padrão REST de acesso
a funcionalidades remotas por meio de APIs. Diante isso, é possível afirmar que:
A. O método HTTP/GET é utilizado para buscar informações que já existem.
B. O método HTTP/POST é utilizado quando já existe a URI referente ao recurso a ser
inserido ou atualizado.
C. O método HTTP/PUT cria uma nova URI ao inserir recursos.
D. Ambos os métodos HTTP/POST e HTTP/PUT têm a mesma funcionalidade.
E. O método HTTP/GET envia informações por meio do corpo da requisição.
Resposta: A
Motivo: Os métodos do protocolo HTTP são amplamente utilizados como "verbos" de ação para
a arquitetura RESTful. O método GET é usado para buscar informações existentes. Transmite
as informações pela própria URL, por isso não deve ser utilizado para dados sensíveis (como
senhas, por exemplo). Os métodos POST e PUT têm funcionalidades similares, que é a de
enviar e inserir dados no sistema, utilizando o corpo da requisição.
Entretanto, existe uma diferença entre eles: deve-se utilizar PUT quando a URI queidentifica o
recurso já existe; e o POST quando o sistema criar uma nova URI para os dados inseridos ou
alterados.
4. Quando dados são transmitidos e recebidos utilizando-se as APIs RESTful, é necessária uma
notação comum a ambas as partes (ambos os lados) para que as aplicações se comuniquem.
Em se tratando de REST, qual alternativa apresenta uma afirmativa correta?
A. O padrão REST requer o uso de documentos em padrão JSON para a transferência de
dados entre aplicações.
B. O retorno de uma chamada é tratado de acordo com a resposta fornecida no corpo da
mensagem.
C. É viável, apesar de incomum, a representação dos dados em formato XML para
transferência entre aplicações.
D. As APIs REST coincidem com as operações de CRUD (Create, Read, Update, Delete).
E. O retorno dos dados ocorre pelo corpo da requisição enviada, com palavras-chave
predefinidas entre servidor e aplicação.
Resposta: C
Motivo: Apesar de grande parte das aplicações baseadas em REST transferirem seus dados
utilizando documentos JSON, é possível fazer essa transferência de dados em outros padrões
notacionais, como o XML - mais antigo ou até mesmo texto puro. As requisições, muito
frequentemente, coincidem com as operações CRUD, mas não se limitam a elas. Observe que
uma requisição é uma chamada a uma função remota, que não necessariamente será um
CRUD. Os dados podem ser enviados pela URL ou pelo corpo da requisição, e seu retorno é
tanto por meio de palavras predefinidas, quanto por códigos de resposta HTTP.
5. As aplicações baseadas na arquitetura REST transmitem seus dados pela Web e pelo
protocolo HTTP. As chamadas a dados são denominadas requisições e seus pontos de conexão
remotos são nomeados de endpoints.
Em relação à transmissão dos dados sobre arquitetura REST, qual alternativa está correta?
A. O servidor mantém o estado da conexão, como por exemplo, qual usuário está
conectado, suas preferências, etc., por meio do endereço IP do usuário.
B. O servidor não mantém o estado da conexão. É necessário o envio da informação
completa e, após a resposta, o ciclo se encerra. Cada requisição é única.
C. O servidor mantém parcialmente os dados da conexão do usuário, mantendo uma
sessão, mas não preserva as preferências do usuário ou dados específicos.
D. Cada requisição é única e deve conter toda a informação necessária, incluindo o login e
a senha do usuário, o que torna o padrão particularmente vulnerável.
E. O padrão RESTful é voltado para redes de alto desempenho, não sendo indicado para
conexões instáveis.
Resposta: B
Motivo: No padrão RESTful, cada requisição é única e deve ser completa, ou seja, conter todos
os dados necessários para ser efetuada.
Contudo, transmitir login e senha a cada requisição não é uma boa prática, existindo
mecanismos para evitar o tráfego de dados sensíveis (como o JWT, por exemplo).
Em relação ao servidor, este não mantém os dados após concluir a requisição e enviar a
resposta à aplicação que a originou - o que diferencia de outras arquiteturas como o SOAP.
Justamente por tratar cada requisição como completa e única, é ideal para redes instáveis e
com velocidade variável, como as redes móveis 3G e 4G.
Ionic
1. A utilização de aplicativos, que aumenta a cada dia, faz parte do cotidiano das pessoas e
auxilia na execução de algumas atividades, como as transações bancárias. Isso estimula os
desenvolvedores a dar uma atenção maior às possíveis tendências do mercado. O aumento do
uso de aplicativos está relacionado, dentre outros aspectos, ao:
A. Desenvolvimento híbrido, exposto como uma modalidade que emprega o HTML5,
JavaScript e CSS como tecnologias web.
B. Conceito da Arquitetura Orientada a Serviço (SOA), que se refere a um projeto que limita
os aspectos relacionados à criação e ao uso dos serviços de negócio.
C. Fato de o Ionic usar um framework TypeScript, criado pelo Google, denominado Angular.
D. Componente nativo introduzido, que auxilia o Ionic para que seja executado como um
aplicativo, cujo framework é um JavaScript.
E. Uso do DevApp, recurso que apresenta os elementos de criação presentes em uma
estrutura que possibilita o processo de desenvolvimento de aplicativos.
Resposta: A
Motivo: A Arquitetura Orientada a Serviço (SOA) é um plano que tem como finalidade nortear os
aspectos relacionados ao desenvolvimento e à utilização dos serviços de negócio durante o
ciclo de vida envolvendo, desde a idealização, até a descontinuação do serviço. O Ionic usa um
framework JavaScript criado pela Google, denominado Angular.
A introdução de um componente nativo auxilia o Ionic para que seja executado como um
aplicativo nativo, quando se tratar de um framework HTML5.
O Ionic Studio consiste em um recurso que apresenta os componentes de desenvolvimento
presentes em uma estrutura que possibilita o processo de criação de aplicativos. O
desenvolvimento híbrido é uma modalidade que utiliza o HTML5, Javascript e CSS como
tecnologias web, pelo fato da sua linha de aprendizagem se apresentar em menor grau, em
relação ao aprendizado, para desenvolvimento de um aplicativo nativo.
2. Um determinado documento apresenta como desenvolver um projeto HTML5 no IDE, que
seja, dentre outras características, encapsulado, como uma aplicação móvel. Para criar uma
aplicação HTML5, é possível utilizar um modelo de site denominado Apache Cordova, que tem
como objetivo:
A. Ser considerada uma escolha excelente para equipes que possuem diversos projetos
simultâneos.
B. Disponibilizar uma série de APIs, que possibilita a criação de uma aplicação
encapsulada como uma aplicação móvel nativa.
C. Serem sites com perfil de apps, no que se refere à interface e às funcionalidades.
D. Ser uma solução aplicada com o objetivo de tratar de casos que necessitem de testes
rápidos.
E. Ser uma tecnologia criada para possibilitar ao software fazer uso do hardware de
maneira plena.
Resposta: B
Motivo: O Ionic Studio, dentre outras características, pode ser considerado uma escolha
excelente para equipes que possuem diversos projetos simultâneos.
O Progressive Web Apps tem a sua criação condicionada ao Ionic, o que significa uma evolução
relevante dos aplicativos, pois, são sites com perfil de apps no que se refere à interface e às
funcionalidades.
O Ionic DevApp tem o objetivo de direcionar e tratar dos casos que necessitem de testes
rápidos.
O Node é uma tecnologia criada para possibilitar ao software fazer uso do hardware, de maneira
plena, aproveitando ao máximo as características do processador e evitando a ociosidade.
O Apache Cordova oferece um grupo de APIs, que permite desenvolver uma aplicação com
HTML, CSS e JavaScript encapsulada como aplicação móvel nativa.
3. A tecnologia Ionic apresenta uma série de aspectos relacionados ao seu desenvolvimento.
Diante disso, é possível destacar, por exemplo, a Platform Continuity, que tem como função:
A. Injetar na WebView do dispositivo por meio do código HTML/CSS/JavaScript.
B. Tornar mais simples a manutenção e a evolução do aplicativo de acordo com as
demandas dos clientes.
C. Tratar da mudança e da adaptação da aparência dos componentes do Ionic.
D. Ser uma plataforma para o desenvolvimento de telas.
E. Transformar o código JavaScript moderno em compatível.
Resposta: C
Motivo: A Multiplataforma é uma funcionalidade em que há uma injeção na WebView do
dispositivo por meio do código HTML/CSS/JavaScript; o que possibilita o desenvolvimento de
aplicativos destinados à Android e IOS, permanecendo uma base do código.
A Mais produtividade é uma funcionalidade que provém das características da multiplataforma,
pois, com a disposição de uma base de código, se torna mais simples a manutenção e a
evolução do aplicativo, de acordo com as demandas dos clientes.
A Prototipação é a funcionalidade responsável pela criação de telas.
A Transpilação consiste na transformação do código JavaScript moderno para o compatível.
A Platform Continuity trata da mudança e da adaptação da aparência dos componentes do Ionic,
à medida que se altera o sistema operacional encontradono dispositivo.
4. "Tem a sua criação diretamente ligada ao Ionic, o que significa uma evolução importante dos
aplicativos. São sites com aspectos de apps, no que se refere à interface e às funcionalidades".
O conceito exposto se refere a uma funcionalidade do Ionic definida como:
A. Multiplataforma.
B. Mais produtividade.
C. Menor Custo.
D. PWA.
E. Ferramentas.
Resposta: D
Motivo: A Multiplataforma indica que a atual arquitetura, a qual o Ionic está estruturado,
localiza-se sobre o Cordova, mantendo uma comunicação, por meio de plug-ins, com os
dispositivos móveis.
Existe a possibilidade de uso de desenvolvedores do tipo front-end na elaboração de um
aplicativo, sendo este um dos fatores que influencia na produtividade.
Para que haja um menor custo, é necessário haver uma mescla de desenvolvedores que criem
aplicativos na modalidade nativa destinados para Android e iOS.
O sistema do Ionic apresenta ferramentas relevantes aos desenvolvedores, como Ionic DevApp,
responsável por condicionar a inserção de um aplicativo no dispositivo móvel, direcionado para
testar o seu próprio desenvolvimento.
O Progressive Web Apps tem a sua criação condicionada ao Ionic, o que significa uma evolução
relevante dos aplicativos. São sites com perfil de apps, no que se refere à interface e às
funcionalidades.
5. No ano de 2015, foi lançado pela Microsoft um editor de código com a finalidade de
desenvolver aplicações web. Trata-se de uma ferramenta leve e multiplataforma disponível para
Windows, Mac Os e Linux. Como é chamado esse editor?
A. My App.
B. JavaScript.
C. Angular 7.
D. Code.
E. Visual Studio Code.
Resposta: E
MOtivo: My App é um nome designado à pasta onde o Ionic é instalado.
JavaScript é uma das tecnologias web utilizadas pelo desenvolvimento híbrido.
O Angular 7 é uma funcionalidade do Ionic, versão 4.
O Code é um comando que permite que a pasta, onde o Ionic esteja instalado, seja executada
no Visual Code.
O Visual Studio Code é um editor de código com a finalidade de criar aplicações web e se
caracteriza por ser uma ferramenta simples e multiplataforma, que pode ser executada em
diversos sistemas operacionais, como o Windows e Linux, por exemplo.
Angular e serviços
1. A injeção de dependências é um padrão de projetos muito utilizado na criação de serviços em
Angular, pois, entre outras vantagens, facilita a reusabilidade de código.
Dentre os itens abaixo, quais podem ser declarados como @Injectable quando se usa Angular?
A. Funções, valores e serviços.
B. Módulos, valores e serviços.
C. Componentes, valores e serviços.
D. Funções, módulos e componentes.
E. Funções, componentes e serviços.
Resultado: A
Motivo: As injeções de dependência (@Injectable) normalmente são serviços, mas também
podem ser determinadas funções ou valores. Os módulos estão acima na hierarquia, contendo
containers para os componentes que, por sua vez, usam a injeção de dependências quando
precisam de alguma funcionalidade específica.
2. Os serviços são implementados e muito utilizados em diversas linguagens de programação.
No Angular, qual a principal responsabilidade de um serviço?
A. Declarar um contexto de compilação para um conjunto de componentes.
B. Armazenar a lógica do aplicativo e as classes de dados.
C. Encapsular um código que implementa um comportamento específico.
D. Permitir e facilitar a experiência do usuário com a aplicação.
E. Conter serviços, provedores, componentes e outros códigos.
Resultado: C
Motivo: Os serviços implementam comportamentos específicos, que serão utilizados pelos
módulos. Os módulos são responsáveis por contextos de compilação, e podem conter serviços,
provedores, componentes e outros códigos. Por sua vez, os componentes objetivam facilitar a
experiência do usuário e armazenar a lógica da aplicação e classes de dados.
3. Quando se cria serviços, há alguns mecanismos principais que são utilizados quando é
preciso injetar dependências.
Qual é o mecanismo criado pelo próprio Angular?
A. Injector.
B. Container.
C. Provider.
D. Bootstrap.
E. @Injectable.
Resposta: A
Motivo: O injector é criado pelo Angular, quando se utiliza o decorator @Injectable em uma
aplicação. O injector cria o container, que tem instâncias nas dependências e o provider ensina
o container a obter ou gerar uma dependência. Bootstrap é o processo de inicialização da
aplicação.
4. A dependência entre os componentes e os serviços deve ser desenvolvida no Angular, de
forma que o framework saiba que precisa gerenciar essas dependências.
Como o Angular sabe que um componente depende de determinado serviço para funcionar
corretamente?
A. O Angular somente verifica se o serviço foi importado diretamente na classe.
B. Se houver uma importação de Injectable, há dependência de um serviço.
C. O Angular inicializa a aplicação e, em caso de erros, verifica se faltou algum serviço.
D. O Angular verifica os parâmetros do construtor da classe.
E. O Angular verifica os parâmetros do serviço.
Resposta: D
Motivo: O Angular verifica os parâmetros do construtor da classe (e não do serviço); se houver
um serviço declarado, ele sabe que há essa dependência. Adicionalmente, deve haver a
importação do serviço na classe. A classe não precisa importar o Injectable; é o serviço que faz
essa importação. Por fim, as falhas na aplicação serão lançadas se houver algum erro na
codificação.
5. O pacote Ionic CLI facilita o processo de criação de projetos e serviços via linha de comando.
Estando com todos os pré-requisitos instalados, como se cria um serviço chamado serv-banco
em um projeto usando Ionic CLI?
A. Em qualquer diretório, use o seguinte comando: ionic generate service serv-banco.
B. Vá até a pasta do projeto e use o seguinte comando: ionic generate service serv-banco.
C. Vá até a pasta do projeto e use o seguinte comando: ionic new serv-banco.
D. Vá até a pasta do projeto e use o seguinte comando: ionic serv.
E. Em qualquer diretório, use o seguinte comando: ionic new serv-banco.
Resposta: B
Motivo: Na pasta do projeto, em que deseja criar o serviço, você deve usar a linha de comando
ionic generate service serv-banco. O comando ionic new <nome-app> cria uma nova aplicação,
e o comando ionic serv compila a aplicação.

Outros materiais