Prévia do material em texto
Introdução ao desenvolvimento para dispositivos
móveis
1. Para que um dispositivo seja considerado móvel, ele deve ter uma série de
características, como a capacidade de operar de forma fácil e eficaz, as funcionalidades
disponíveis nele, as opções flexíveis de conexão e troca dados e a funcionalidade de se
deslocar junto do usuário. Das opções disponíveis, indique a que representa um dispositivo
móvel.
Você acertou!
D. Smartphone.
Smartphone é um dispositivo móvel dos mais utilizados na atualidade, sendo que a principal
característica que o diferencia das demais opções é a capacidade de mobilidade.
Televisor smart, refrigerador inteligente, computador do tipo PC e impressora WiFi, são
dispositivos com muitas características similares às do smartphone, tendo, inclusive, muitas
funcionalidades idênticas, como conectividade e possibilidade de execução de aplicativos
(visto que muitos incorporam o mesmo sistema operacional com versões direcionadas a esses
tipos de dispositivos), porém não têm a funcionalidade de mobilidade o que os
descaracterizam como dispositivos móveis.
2. O sistema operacional dos dispositivos móveis é um componente fundamental. Cada
sistema operacional tem suas funcionalidades e características, sendo que essas diferenças
influenciam o dispositivo em diversos sentidos, como usabilidade e disponibilidade de
recursos. Indique qual das opções representa um sistema operacional móvel, ainda em uso
na atualidade.
Você acertou!
A. iOS.
O iOS é um sistema operacional desenvolvido pela Apple para integrar seus dispositivos
móveis. Symbian OS e o Windows Phone são sistemas operacionais desenvolvidos pela Nokia
e pela Microsoft, respectivamente, mas foram descontinuados pelos seus fabricantes. Ubuntu
Server é um sistema operacional voltado a utilização em servidores, já o Windows 98 é um
sistema operacional voltado a computadores do tipo PC, porém chegou a ser utilizado
em laptops, mas já não é mais comercializado pela sua fabricante, a Microsoft.
3. Segundo Lee, Schneider e Schell (2005), uma das características mais importantes de um
dispositivo móvel é a usabilidade, que se caracteriza pela capacidade de ser utilizado por
diversos usuários, em diversos ambientes. Essa usabilidade pode ser afetada por diversas
características, seja dos usuários, do ambiente ou do próprio dispositivo. Qual opção indica
uma característica relacionada ao usuário?
Você acertou!
D. Tamanho e força.
O tamanho e a força de um usuário podem afetar a usabilidade do dispositivo, visto que um
usuário adulto pode facilmente carregar um notebook, mas este pode ser pesado demais para
um usuário com uma idade menor. Condições de tempo afetam a usabilidade dos dispositivos
móveis, mas são relacionadas ao seu ambiente de utilização. Já o tempo de inicialização, a tela
sensível ao toque e a resistência a impactos são características relacionadas ao dispositivo,
que, por sua vez, afetam a usabilidade também.
4. A fragmentação de um sistema operacional se caracteriza pela distribuição da utilização
de diversas versões desse sistema, sendo a maioria dessas versões já defasadas. Indique
qual das opções representa um benefício da fragmentação de um sistema operacional
móvel.
Você acertou!
E. Maior vida útil do dispositivo.
Maior vida útil do dispositivo é uma das principais características da fragmentação dos
sistemas operacionais, visto que as atualizações disponibilizadas pelos fabricantes são
pontuais para resolver problemas nos dispositivos, mantendo sua usabilidade adequada.
Sistema desatualizado e segurança comprometida também são características dos sistemas
operacionais fragmentados, mas não são benefícios, pelo contrário, são aspectos negativos.
Atualizações constantes são características de sistemas pouco fragmentados, assim como a
possibilidade de apresentar lentidão após a atualização.
5. O mercado de dispositivos móveis não é novo, mas cresce muito a cada ano com uma
concorrência acirrada, seja entre os fabricantes de dispositivos móveis ou entre os
fabricantes de sistemas operacionais. Dentre as opções a seguir, indique a que apresenta
um benefício gerado pela concorrência.
Você acertou!
D. Rápido ciclo de inovação.
Rápido ciclo de inovação é um dos grandes benefícios gerados pela concorrência, dessa forma,
cada vez mais surgem dispositivos com melhores recursos disponíveis, para solucionar as mais
diversas necessidades. Alta dos preços só ocorre em situações em que não existem
concorrentes em um nicho. Novas oportunidades para os desenvolvedores surgem a cada dia,
em virtude da ferrenha concorrência em que cada empresa quer lançar primeiro o aplicativo
inovador. Dispositivos e aplicações são cada vez mais inovadoras, visto que ao se manterem
conservadoras perdem mercado, sendo este sedento por novidades que os concorrentes
tentam suprir.
Projeto de software para dispositivos móveis
1. Para desenvolver softwares móveis de qualidade, deve-se analisar os diferentes contextos
da aplicação, suas interações, sua usabilidade, a privacidade e a segurança. Para isso, testes
devem ser realizados, como, por exemplo, o funcional, que busca conferir:
Você acertou!
B. a implementação e o funcionamento de todos os requisitos, que devem corresponder
ao esperado.
O teste funcional visa certificar que todos os requisitos foram implementados e funcionam da
maneira que deveriam. Para eliminar lentidão, teste de desempenho deve ser realizado. Para
verificar a experiência do usuário, testes de usabilidades devem ser feitos. Testes de
mobilidade e compatibilidade visam garantir que os aplicativos se conectem a diferentes redes
e interajam com diferentes hardwares.
2. O desenvolvimento de softwares móveis apresenta peculiaridades em relação a softwares
desktops, por exemplo. Qual das dificuldades técnicas no desenvolvimento não
compreende o desenvolvimento móvel?
Você acertou!
D. Ciclos de desenvolvimento longos.
No desenvolvimento de software móveis, os ciclos de desenvolvimento tendem a ser curtos.
3. No projeto de desenvolvimento de softwares móveis, uma das atividades importantes é
projetar as interfaces. Os projetos de interfaces podem ser feitos à mão ou com ferramentas
de software. Para um protótipo de tela com alta fidedignidade, uma ferramenta indicada é:
Você acertou!
A. Figma.
O Figma é uma ferramenta online e colaborativa para desenvolvimento de protótipos de alta
fidedignidade.
4. Existem várias regras para o desenvolvimento de aplicativos móveis e de aplicativos
em determinadas plataformas como iOS e Android. Essa variedade, às vezes, dificulta a
publicação do seu software em uma Store. É uma boa prática no desenvolvimento:
Você acertou!
E. serem os rótulos de widget de fácil reconhecimento e de tamanho adequado.
Os rótulos devem ser limpos e coerentes: os rótulos de widget devem ser de fácil
reconhecimento e de tamanho adequado. Evite rótulos com textos grandes e use abreviações
com cautela.
5. O projeto de desenvolvimento de software pode ser descrito em seis fases: formulação,
planejamento, análise, engenharia, implementações e testes e, por fim, avaliação do
usuário. A fase de engenharia envolve:
Você acertou!
E. analisar o projeto de interface, de arquitetura, navegação e conteúdo.
As seis fases descritas são as seguintes:
Formulação: envolve projeto arquitetural, projeto de navegação; as metas, os recursos e as
funções do aplicativo móvel.
Planejamento: visa elucidar os custos envolvidos e os riscos que o projeto possui.
Análise: visa à especificação dos requisitos do software móvel e dos conteúdos necessários.
A fase de engenharia: envolve a análise do projeto de interface, de arquitetura, navegação e
conteúdo.
A fase de implementação e testes: realizam-se a codificação e testes.
Por fim, a avaliação do usuário, que visa garantir a usabilidade e a acessibilidade.
Design de interação para aplicações móveis
1. Google e Apple disponibilizam guias de recomendaçõespara os desenvolvedores de
aplicativos nessas plataformas. Essas diretrizes, ou guidelines, servem como referência para
o design de aplicativos.
Sobre as diretrizes de guidelines das plataformas Android e iOS, analise as afirmações a
seguir:
I. Segundo o guia do desenvolvedor Android, os usuários de aplicativos desta plataforma têm
uma expectativa alta em relação à aparência e ao comportamento. Por isso, é necessário que
os desenvolvedores sigam somente as diretrizes relacionadas aos padrões visuais e de
navegação.
II. No guia de desenvolvimento do iOS, um designer de aplicativo tem a possibilidade de
oferecer um produto extraordinário, que estará no topo dos gráficos da App Store, mas, para
isso, é preciso atender às altas expectativas de qualidade e funcionalidade.
III. Para a Apple, três temas principais diferenciam a plataforma iOS de outras: clareza,
deferência e profundidade.
É correto apenas o que se afirma em:
Você acertou!
C. II e III.
Segundo o guia do desenvolvedor Android, os usuários de aplicativos desta plataforma têm
uma expectativa alta em relação à aparência e ao comportamento. Por isso, é necessário que
os desenvolvedores sigam não somente as diretrizes relacionadas aos padrões visuais e de
navegação, mas também as de qualidade para compatibilidade, desempenho, segurança e
outros. Isso torna a afirmação I incorreta. No guia de desenvolvimento do iOS está escrito
que, como designer de aplicativo, você tem a possibilidade de oferecer um produto
extraordinário, que estará no topo dos gráficos da App Store, mas, para isso, é preciso atender
às altas expectativas de qualidade e funcionalidade, o que torna a afirmação II correta. Para a
Apple, três temas principais diferenciam a plataforma iOS de outras: clareza (em todo o
sistema, o texto é legível em todos os tamanhos, os ícones são precisos e lúcidos, os adornos
são sutis e apropriados); deferência (movimento fluido e uma interface nítida e bonita ajudam
as pessoas a entenderem e a interagirem com o conteúdo sem nunca competirem com ele); e
profundidade (camadas visuais distintas e movimento realista transmitem hierarquia e
vitalidade e facilitam a compreensão). Portanto, a afirmação III também é correta.
2. Segundo o próprio guia do desenvolvedor Android, os usuários de aplicativos nessa
plataforma têm uma expectativa alta em relação à aparência e ao comportamento. Para
isso, é necessário que os desenvolvedores sigam as diretrizes do guia.
Assinale a alternativa que cita alguns exemplos dessas diretrizes.
Você acertou!
D. Usabilidade, animação e layout.
Nos guias de desenvolvedores, as diretrizes citadas estão relacionadas a conceitos de
usabilidade, animação, layout, padrão, estilo e componentes. Outras questões como
economia, performance e integração, apesar de serem itens a considerar em um projeto de
desenvolvimento, não fazem parte das diretrizes citadas nos guias.
3. No guia de desenvolvimento do iOS, está escrito que, como designer de aplicativo, você
tem a possibilidade de oferecer um produto extraordinário que estará no topo dos gráficos
da App Store. Para isso, é preciso atender às altas expectativas de qualidade e
funcionalidade.
Para a Apple, três temas principais diferenciam a plataforma iOS de outras. Assinale a
alternativa correta sobre os três temas.
Você acertou!
A. Clareza, deferência e profundidade.
No guia de padrões para a interface de usuário disponibilizado pela Apple, são classificadas as
diretrizes de padrões em três temas: clareza, deferência e profundidade. Os demais itens
como layout, desempenho e animação, apesar de citados e envolvidos nos padrões de
interface de usuário, não são classificados como temas.
4. Um dos temas abordados pela Apple é o conceito de profundidade.
Sobre esse conceito, assinale a alternativa que está correta de acordo com o descrito no guia
da Apple.
Você acertou!
D. São camadas visuais distintas que transmitem vitalidade e facilitam a compreensão.
É um conceito adotado há mais tempo pela Apple, estando diretamente ligado a facilitar a
compreensão dos usuário e transmitir vitalidade. Esse conceito não tem relação com outros
pontos, como o tamanho em 3D dos widgets, por exemplo ou com o alcance da execução de
um comando.
5. Segundo o guia do desenvolvedor Android, para fornecer aos usuários uma experiência
mais familiar, é necessário usar os padrões mais comuns do guia.
Assinale a alternativa correta sobre um dos padrões do guia.
Você acertou!
E. Mostrar e ocultar a navegação do seu aplicativo com a gaveta de navegação.
Os padrões mais comuns citados no guia são ações relacionadas com: permitir a ação principal
da sua interface com um botão de ação flutuante; mostrar a sua marca, navegação, pesquisa
e outras ações com a barra de aplicativos; e mostrar e ocultar a navegação do seu aplicativo
com a gaveta de navegação.
Outros padrões, apesar de adotados em comunidades de desenvolvedores, como o
reaproveitamento de bibliotecas e de código, não estão como os padrões comuns do guia.
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:
Você acertou!
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.
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 da Apple App Store, é correto
afirmar que:
Você acertou!
B. a Apple mantém uma política rígida de análise de desempenho de aplicações.
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:
Você acertou!
D. ambas as app stores apresentam normas explícitas que regulamentam o acesso a dados
e o uso que se dará aos dados coletados.
É 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:
Você acertou!
A. ambas as plataformas exigem conta de desenvolvedor paga e assinatura de contrato
digital.
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 podeser executada em Android e em iOS. Sobre a geração do
arquivo para publicação, é correto afirmar que:
Você acertou!
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.
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.
WebApps
1. WebApps estão no mercado mobile para preencher uma lacuna deixada pelos aplicativos
nativos de dispositivos móveis no que diz respeito à portabilidade e à facilidade de
desenvolvimento. Sobre WebApps, site responsivo e aplicativos nativos, assinale a
alternativa correta:
Você acertou!
E. WebApps são aplicativos que são disponíveis off-line e interagem com componentes
nativos dos dispositivos.
WebApps são aplicativos que ficam disponíveis off-line e interagem com componentes
nativos dos dispositivos. Aplicativos nativos são acessíveis apenas no sistema operacional
para o qual foram desenvolvidos (por exemplo, no Android). Além disso, não são acessíveis
em navegador. Sites responsivos não são a mesma coisa que os WebApps, sendo que
estes têm características particulares. Por exemplo, os WebApps são acessíveis off-line, e
os sites responsivos não.
2. Um recurso que pode ser adicionado ao seu aplicativo web é push notification. Esse tipo
de notificação está disponível na maioria dos aplicativos comerciais. Sobre essas
notificações, assinale a alternativa correta:
Você acertou!
E. Um exemplo de push notification são notificações de chegada de mensagens.
Push notification são mensagens que o usuário do aplicativo recebe sem que ele tenha feito
nenhuma ação para isso. As mensagens de confirmação e cancelamento são exemplos
de alert,e não de push notification. Atualmente, é possível adicionar push notification aos
PWAs; não é preciso utilizar nenhum tipo de emulador. As push notifications estão disponíveis
em todos os sistemas operacionais. Um exemplo de push notification são notificações de
chegada de mensagens, porque elas chegam sem o usuário programá-las, são exibidas na tela
de bloqueio e, quando clica nelas, é direcionado para o aplicativo de origem.
3. Um site responsivo já construído pode ser utilizado como porta de entrada para o
desenvolvimento de um WebApp. Para isso, algumas ações precisam ser tomadas. Sobre
essas ações, assinale a alternativa correta:
Você acertou!
C. O icone que será utilizado pelo aplicativo é informado no arquivo manifest.json.
O que precisa ser inserido no index da aplicação é uma referência ao arquivo service
worker.Além disso, o arquivo utilizado para, antes de fazer um request, buscar as informações
no cache, para que seja feito um request apenas quando não existe no cache, também é
o service worker. Já o arquivo manifest.json é usado para configurações iniciais do aplicativo
como, por exemplo, a definição do ícone do aplicativo e a permissão para que o aplicativo seja
instalado e, consequentemente, com a exibição de uma mensagem pra isso. Esse arquivo não
tem relação com a possibilidade de disponibilização do aplicativo no Google Play.
4. Um WebApp também pode ser chamado de PWA. Porém, para ser considerado um
PWA, o site precisa ter algumas características bem específicas. Sobre elas, assinale a
alternativa correta:
Resposta correta.
C. Reenvolvente: facilita o reengajamento com recursos nativos do dispositivo como, por
exemplo, notificações push.
As principais características de um PWA são:
Progressivo: deve funcionar para qualquer navegador.
Responsivo: deve ser adaptável a qualquer computador desktop, celular
e tablet, independente do tamanho de tela.
Seguro: deve utilizar o protocolo HTTPS para evitar invasões e garantir que o conteúdo não
seja adulterado.
Reenvolvente: facilita o reengajamento com recursos como notificações push.
Linkável: deve permitir compartilhamento por URL; não requer instalação complexa.
5. Uma das principais características de um PWA é estar sempre disponível mesmo off-
line; para que isso seja possível, é necessário efetuar a programação de um componente
específico no seu PWA, chamado de Service Worker. Assinale a alternativa que contém a
descrição correta de alguma característica desse componente:
Projeto de software WebApps
1. Uma característica essencial de uma aplicação web é seu dinamismo. As necessidades de
uma aplicação web podem mudar em pouquíssimo tempo, levando à necessidade de
projetos que tomem cada vez menos tempo e aplicações cada vez mais adaptáveis às
necessidades atuais de seus usuários. Sendo assim, qual das opções abaixo representa a
melhor decisão ao se iniciar um projeto de WebApp?
Você acertou!
B. Adaptar modelos tradicionais, realizando todas as etapas previstas no processo de
desenvolvimento, e, sempre que possível, realizar atividades em paralelo.
A coleta de requisitos deve ser a primeira atividade a ser realizada. Somente após, as demais
podem iniciar, e em aplicações web a modelagem dos requisitos é uma das atividades mais
importantes. Saiba que não se deve suprimir etapas do processo de desenvolvimento.
Qualquer modelo tradicional pode ser adaptado, não somente os modelos ágeis e desde que
seus objetivos sejam modificados para os objetivos de um projeto de WebApp.
2. A entrada de um usuário em um WebApp pode ocorrer a partir de diversas origens,
sendo um dos maiores desafios em projetos de WebApp. Em qual das atividades a
seguir esse tipo de problema deve ser tratado?
Você acertou!
D. Projeto de interface.
Em um projeto de WebApp, cada etapa tem suas responsabilidades. Veja que o projeto de
arquitetura preocupa-se com a forma como os componentes serão organizados internamente.
Na etapa projeto de componentes, a preocupação está na definição de quais serão e o que
fará cada um dos componentes do WebApp. No projeto de navegação, é determinado como
será o fluxo de transição entre os componentes, seja do ponto de vista do usuário, seja dos
componentes. No projeto de conteúdo, a preocupação maior está no que será inserido em
cada componente, e como serão apresentados. Por fim, no projeto de interface, é definido
como tudo será apresentado para o usuário, daí a preocupação em saber de onde este vem,
pois, dependendo da origem de entrada do usuário, a forma de apresentação do WebApp
deverá ser diferente.
3. Um projeto de arquitetura permite definir quais serão as regras de navegação em
um WebApp, ou seja, por quais caminhos o usuário poderá seguir uma vez que estiver
dentro da aplicação web. O modelo de arquitetura que permite o agrupamento de dois ou
mais objetos por categoria e que é altamente aplicado em modelos de e-commerce é
conhecido como:
Você acertou!
E. modelo em grade.
Dos modelos de arquitetura existentes, perceba que o linear é utilizado para determinar um
fluxo pré-definido, ótimo em casos de tutoriais, quando se deseja direcionar o usuário.
Semelhante a esse modelo, você pode considerar o linear de fluxo alternativo, quando o
usuário pode optar por seguir por outros caminhos, e o com desvio de fluxo, que, de acordo
com a interação com o usuário, direciona-o por determinados caminhos. Em um modelo de
estrela, a navegação é aberta, o usuário pode seguir de qualquer ponto para qualquer outro
ponto, o que pode causar confusão. Existe também o modelo hierárquico, nele o usuário pode
descer por uma hierarquia de componentes, podendo sempre que necessário subir na
hierarquia ou visitar os componentes que estão no mesmo nível ou níveis inferiores do ramo
hierárquico que decidiu seguir. Entretanto, o mais aplicadoem e-commerces, devido
principalmente ao fato de permitir o agrupamento de componentes, é o modelo em grade. O
modelo em grade permite que componentes "semelhantes" ou "de um mesmo grupo" sejam
organizados em conjuntos.
4. Todo projeto de WebApp deve levar em consideração alguns requisitos que, mesmo não
especificados pelo usuário, são necessários. O principal grupo de requisitos a ser
observado em um projeto de WebApp são os requisitos de qualidade, que devem estar
presentes em qualquer projeto. Assim sendo, a descrição a seguir é referente a qual
requisito de qualidade? “Capacidade de busca e recuperação de dados, facilidade de
navegação e leitura das informações, características relacionadas ao domínio da
aplicação, etc.”
Você acertou!
A. Funcionalidade.
O requisito usabilidade trata da facilidade da compreensão geral do site, feedback on-line,
recursos de ajuda, etc. Já o requisito funcionalidade tem a capacidade de busca e recuperação,
leitura das caraterísticas de navegação. Enquanto o requisito confiabilidade é para o correto
processamento dos links, recuperação de erros, validação e recuperação dos dados de
formulários, etc. Ao passo que o requisito eficiência está relacionado à velocidade de
carregamento das páginas, o tempo de resposta, velocidade de geração das imagens, etc. Por
fim, o requisito facilidade de manutenção, o site deve ser extensível, adaptável e fácil de
corrigir.
5. O desenvolvimento de um projeto de WebApp deve atender a uma série de objetivos
que, muitas vezes, não são especificados pelo usuário durante o processo de coleta de
requisitos, mas que são observados em inúmeros projetos web, uma vez que,
quando não aplicados, elevam as chances de fracasso do projeto. Observe a afirmação a
seguir e responda a qual objetivo se refere: “O usuário espera que o conteúdo seja
relevante às suas expectativas. A falta ou insuficiência de elementos pode levar ao fracasso
do WebApp”.
Você acertou!
E. Robustez.
O objetivo simplicidade diz que a aplicação deve fazer uso moderado de seus recursos. O
objetivo consistência: o conteúdo deve ser construído com consistência, o designer gráfico
deve ser semelhante em todas as partes, etc. Identidade: design e apresentação gráfica devem
ser coerentes como domínio da aplicação para a qual está sendo desenvolvida. Robustez:
trata-se de entender o que o usuário espera do conteúdo, ou seja, que o conteúdo seja
relevante às suas necessidades. Navegabilidade: a navegação deve ser projetada para ser
intuitiva e previsível. Apelo visual: o indicado é o equilíbrio entre os
componentes. Compatibilidade: uma aplicação web deve ser utilizada em uma variedade de
ambientes e deve ser projetada para executar perfeitamente em cada um deles.
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?
Você acertou!
E. Java
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?
Você acertou!
C. Android Studio
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:
Você acertou!
B. Android Emulator
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?
Você acertou!
E. Break points
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.
Você acertou!
A. Monitor de recursos
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.
Componentes dos aplicativos Android
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:
Você acertou!
C. Privilégio mínimo
O Android parte do princípio do privilégio mínimo, uma vez que todas as permissões devem
ser concedidas. VM isolada, ID único do aplicativo e liberar memória são informações
relacionadas a características de como os aplicativos são executados.Privilégio total somente
existe se o desenvolvedor do aplicativo assim implementar e o usuário assim permitir. Dessa
forma, não se caracteriza como um princípio.
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 é:
Você acertou!
A. Activity
Activity é o componente que disponibiliza a interface ou tela para o usuário. Services são
processos realizados em background e muitas vezes os usuários nem sabem da sua
existência. Broadcast receiver são componentes que trabalham recebendo e tratando os
eventos do dispositivo. Intent são objetos de comunicação entre os vários componentes de
um aplicativo e também dos componentes com o sistema Android. Content
provider implementa o acesso aos dados tanto do sistema quanto dados do próprio aplicativo.
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?
Você acertou!
D. Intent
Intent são objetos de comunicação entre os vários componentes de um aplicativo e também
dos componentes com o sistema Android. Activity é o componente que disponibiliza a
interface ou tela para o usuário. Services são processos realizados em background e, muitas
vezes, os usuários nem sabem da sua existência. Broadcast receiver são componentes que
trabalham recebendo e tratando os eventos do dispositivo. Content provider implementa o
acesso aos dados tanto do sistema quanto dados do próprio aplicativo.
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?
Você acertou!
E. Service
Services são processos realizados em background e, muitas vezes, os usuários nem sabem da
sua existência, dada esta característica são amplamente utilizada para a execução de
funcionalidades de longa duração. Intent são objetos de comunicação entre os vários
componentes de um aplicativo e também dos componentes com o sistema Android. Activity é
o componente que disponibiliza a interface ou tela para o usuário. Broadcast receiver são
componentes que trabalham recebendo e tratando os eventos do dispositivo. Content
provider implementa o acesso aos dados tanto do sistema quanto dados do próprio aplicativo.
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?
Você acertou!
C. Content provider
Content provider implementa o acesso aos dados tanto do sistema quanto dados do próprio
aplicativo e por meio dele podemos acessar contatos de um smartphone ou até mesmo dados
do calendário, como eventos da agenda. Services são processos realizados em background e,
muitas vezes, os usuários nem sabem da sua existência. Intent implícito ou explícito são
objetos de comunicação entre os vários componentes de um aplicativo e também dos
componentes com o sistema Android. Broadcast receiver são componentes que trabalham
recebendo e tratando os eventos do dispositivo.
Componente Activity
1. Activities são responsáveis pela exibição das interfaces de usuário. Por meio destas, os
usuários podem interagir com os aplicativos, usufruindo suas funcionalidades. Analise as
opções a seguir e marque a que representa determinada interação do usuário com uma
Activity.
Você acertou!
A. Informar login e senha para acessar o aplicativo.
Informar login e senha para acessar o aplicativo é exemplo de interação do usuário com a
interface de uma Activity. Receber notificação do sistema e processar ações adequadas são
ações realizadas pelo componente Broadcast Receiver. Processar rotinas de longa duração e
realizar conexões com a rede de dados normalmente são efetivadas em componentes do tipo
Service. O envio de solicitação para o sistema na busca de um aplicativo, normalmente, ocorre
por meio de intents.
2. Uma Activity é enviada para o segundo plano em virtude de segunda Activity ser
disponibilizada ao usuário. Ao ser enviada para segundo plano, essa Activity é colocada em
uma pilha, visando ao fato de que ela pode recuperar o foco novamente. A pilha utilizada
para empilhar as Activities no Android segue mecanismo básico. Entre as opções a seguir,
indique a que apresenta tal mecanismo.
Você acertou!
B. LIFO – Último a Entrar, Primeiro a Sair.
LIFO - Último a Entrar, Primeiro a Sair - é o mecanismo de empilhamento de Activities
utilizado pelo Android. FIFO, HIFO, LOFO e FEFO são estratégias de empilhamento usadas
em diversas áreas, porém não no empilhamento de Activities.
3. O ciclo de vida de uma Activity é um dos conceitos mais importantes a serem
compreendidos, tendo em vista que se trabalha com tal componente. Esse ciclo engloba
todos os comportamentos e estados que determinada Activity pode assumir durante o
período em que está em execução. No ciclo de vida da Activity, qual é o primeiro método a
ser chamado quando a sua execução é solicitada?
Você acertou!
D. onCreate()
"onCreate()" é o primeiro método a ser chamado ao criar uma Activity. "onResume()",
"onPause()", "onDestroy()" e "onStart()" são métodos que pertencem a uma Activity e seu ciclo
de vida, mas não são chamados antes do "onCreate()" em hipótese alguma.
4. A persistência de dados (processos de salvamento em uma base de dados) é tarefa
crucial em aplicativo normalmente, Android ou outro, independentemente de plataforma.
No Android, devido ao ciclo de vida de uma Activity, a persistência dos dados consiste em
processo delicado, uma vez que, dependendo da situação, é possível que alguns métodos
do ciclo de vida não sejam executados e a Activity seja eliminada sem a ação de salvar os
dados de modo adequado. Qual método presente no ciclo de vida do Android normalmente
é utilizado para a persistência de dados em uma Activity?
Você acertou!
E. onPause()
"onPause()" é o método recomendado para a implementação da persistência dos dados.
"onCreate()" e "onStart" são métodos do ciclo de vida que inicializam a Activity.
"setContentView()" e "findViewById()" manipulam a interface de usuário e os seus controles.
5. Em uma Activity, há diversos métodos disponíveis para a realização de várias
funcionalidades, desde o controle do ciclo de vida da Activity até procedimentos que
controlam parâmetros passados para ela e a definição de layouts para serem exibidos em
interação com o usuário, dentre vários outros. Qual dos métodos a seguir é utilizado para
finalizar e destruir uma Activity do sistema?
Você acertou!
B. finish()
"finish()" é o método que finaliza e destrói uma Activity. "onResume()", "onStart()" e "onCreate"
são métodos pertencentes à Activity que fazem parte do controle do ciclo de vida da Activity.
"findViewById()" busca controles da interface do usuário para tratá-los na Activity.
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:
Você acertou!
C. O LinearLayout permite o alinhamento de componentes tanto na horizontal como na
vertical.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:
Você acertou!
A. O RelativeLayout permite que um componente filho tenha a sua posição atribuída em
relação à posição de outro componente.
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:
Você acertou!
D. Permite que um item de maior peso possa expandir e usar mais espaço na tela.
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:
Você acertou!
B. Ocorre pelo fato da relatividade da posição de um com o outro.
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:
Você acertou!
E. Somente RelativeLayout.
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.
Tipos de layout ConstraintLayout e TableLayout
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 <TableRow> são necessários?
Você acertou!
C. São necessários dois TableRow.
O TableRow define a quantidade de linhas existentes em um TableLayout. Na imagem, há
apenasduas linhas, então, caso você usasse apenas um TableRow não existiria uma segunda
linha, já três, quatro e cinco TableRow criariam um leiaute com três, quatro e cinco linhas,
respectivamente.
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", informa-
se ao leiaute que a view em questão vai
Você acertou!
C. aparecer ao lado da view parent.
O atributo app:layout_constraintStart_toStartOf="parent" define que a view vai ser
exibida ao lado de uma determinada view. Como o atributo setado é parent, ele vai se
posicionar ao lado da ViewGroup em que ele se encontra. O atributo
app:layout_constraintStart_toBottomOf aparece abaixo da view. Já o
app:layout_constraintStart_toTopOf aparece acima.
O valor do atributo parent faz com que a view seja acorrentada ao "pai" da view, caso contrário
seria necessário mencionar a view que você quer relacionar.
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:
Você acertou!
B. Margens, posicionamento centralizado, chains e posicionamento circular.
Atualmente, o ConstraintLayout aceita as seguintes restrições: posicionamento relativo,
margens, posicionamento centralizado, posicionamento circular, comportamento de
visibilidade, restrições de dimensão, chains, objetos do Virtual Helpers e
otimizador. Layout_span e shrinkColumns são atributos de TableLayout.
As margens e os posicionamentos centralizados relacionam-se aos conteúdos das views em
si, e não à sua posição.
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
Você acertou!
B. a ordem em que foram escritos no leiaute apresentados na TableRow.
O TableLayout exibe o leiaute conforme especificado no TableRow, sendo cada view uma
coluna.
Os leiautes são montados de cima para baixo, conforme o render lê o arquivo xml
e constraint, chains e outros atributos não interferem num TableLayout.
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:
Você acertou!
A. android:layout_span.
Para expandir uma coluna no TableView é preciso atribuir o android:layout_span com o
número de colunas desejadas.
- shrinkColumns: especifica em quais colunas se quer reduzir o espaço, quando necessário.
- stretchColumns: especifica em quais colunas se quer aumentar o espaço, quando necessário.
- TableRow: define uma nova linha na tabela.
- Layout_merge: atributo que não existe no android.
Recursos e a classe R.java
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:
Você acertou!
B. a classe R não deve ser alterada diretamente; sua alteração se dá em decorrência de
alterações no código.
A classe R nunca deve ser alterada diretamente e é gerada no momento da compilação do
aplicativo. Além disso, ela não gera o arquivo XML, apenas realiza mapeamento entre este e
o código.
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.
Você acertou!
C. Todos os IDs de recursos são definidos pela classe R automaticamente.
A classe R define todos os IDs dos recursos automaticamente, não sendo necessário consultar
no arquivo XML e muito menos alterar na classe. Jamais deve-se realizar ajustes diretamente
nessa classe.
3. 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.
Refletindo sobre essa afirmação, assinale a alternativa correta.
Você acertou!
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.
A classe R define automaticamente todos os IDs dos recursos, que são compostos pelo tipo
seguido do nome. Sendo assim, não é necessário realizar consultas à classe ou ao arquivo .xml.
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?
Você acertou!
A. As alterações serão sobrepostas pela compilação e perdidas.
Jamais devem ser realizadas alterações na classe R diretamente. Qualquer alteração nessa
classe será sobreposta no momento em que o aplicativo for compilado de novo. Com o
arquivo .xml, não deve ocorrer problema.
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 é:
Você acertou!
C. possibilitar o mapeamento entre recursos e código de modo dinâmico, sem necessidade
de codificação.
O grande benefício da classe R é fazer o mapeamento entre o arquivo .xml dos recursos e o
código do aplicativo, não sendo necessário realizar codificação específica para tal
ligação. Além disso, não devem ser realizadas alterações na classe R diretamente.
Componentes de tela do usuário
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:
Você acertou!
C. A plataforma Android oferece componentes visuais sofisticados que não eram
possíveis nas plataformas antigas.
A atual plataforma Android oferece recursos visuais sofisticados que não eram possíveis em
plataformas mobile antigas. Quando se fala plataforma mobile, trata-se
de celular, tablet, etc. O Android, como plataforma, permite a evolução de muitos recursos
além dos visuais de que estamos falando nesta unidade.
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:
Você acertou!
C. Mensagens de texto, imagens e botão.
Todos os componentes que, de certa forma, são apresentados ao usuário por meio de um
"retângulo" na tela do aplicativo, sejam eles mensagens, botões, lista de dados e ícones,
são View. Porém, componentes de fundo, como conectores, XML, entre outros, apesar de
serem essenciais para o funcionamento, não entram nesse conceito.
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.
Você acertou!
E. ImageButton.
O componente TextView permite exibir uma mensagem na tela, e o ListView exibe uma série
de dados. Já o ImageView é usado para exibir uma imagem, e o DigitalClock, um relógio.
O ImageButton oferece um botão que permite a interação do usuário; por isso, essa é a opção
correta.
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, assinale a alternativa correta:
Você acertou!
D. O componente ImageView pode ser utilizado para exibir imagens baixadas da Internet.
O componente ImageView não possibilita a interação com o usuário. Para exibir um ícone, há
o componente específico, e, apesar de exibir o componente ImageButton, não é necessário o
componente Button. Já para uma lista de dados, o correto seria usar o
componente ListView. Assim, a resposta correta é "exibir imagens baixadas da Internet".
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.
Você acertou!
A. Usabilidade e transparência.
Ao trabalhar com os componentes visuais no Android, é importante ficar atento quanto a dois
itens em especial: a usabilidade do usuário e a transparência para não causar problemas de
visualização. As demais opções são importantes, mas podem não ser priorizadas ao se
trabalhar com layouts no Android.
Navegação entre telas
1. Durante o desenvolvimento de uma aplicação Android multitelas, o desenvolvedor
depara-se com a necessidade de enviar dados entre as telas. O fluxo de envio de dados é
linear e unidirecional, ou seja, os dados seguirão sempre de uma tela anterior para uma tela
posterior, não havendo comunicação de outra forma. Existem diversas possibilidades para
esse tipo de comunicação, porém, das opções a seguir, somente uma está correta. Assinale-
a:
Você acertou!
C. Uma das formas mais comuns de comunicação entre telas é utilizar objetos da
classe intent. Para a operação desejada, pode-se escrever a seguinte instrução:
Intent i = new Intent(contextoAtual.this, novaTela.class);
i.putExtra(“info”,”Informação”).
Existem variadas formas de resolver a questão do desenvolvedor; as mais comuns envolvem
a utilização de intents com ou sem bundles. Utilizando intents, o desenvolvedor
obrigatoriamente deverá criar um intent— por exemplo: Intent i = new
Intent(contextoAtual.this, novaTela.class). Como o uso de bundles não é obrigatório, pode-se
transferir os dados por meio da própria intent, com sintaxe semelhante a:
i.putExtras("info","dadosDaInformacao").
2. A invocação de novas telas/atividades (em Android) é realizada a partir de um objeto da
classe intent. Um objeto intent indica à aplicação alguma intenção. Intenções não
obrigatoriamente indicam nova tela; elas podem indicar qualquer outro serviço. Contudo,
supondo-se a criação de nova tela, qual das opções a seguir está correta para o comando
de invocação de nova tela?
Você acertou!
E. Ao se criar um objeto intent de forma explícita, deve-se utilizar a
instrução intent nome_objeto = new Intent(parâmetro1, parâmetro2), sendo o parâmetro1
referente ao contexto/pacote da classe da nova intenção, e o parâmetro2, a classe
propriamente dita.
Uma das formas de se utilizar intents para iniciar uma nova atividade é criar
um intent explícito. Em um intent explícito, a sintaxe é semelhante ao seguinte exemplo:
Intent novo_intent = new Intent(parâmetro1, parâmetro2), sendo o parâmetro1 referente ao
contexto/pacote da nova intenção, e o parâmetro2, referente à classe da nova intenção.
3. Em aplicações Android, diferentemente do que ocorre com aplicações Web e aplicações
para desktop, as telas que são apresentadas para o usuário são conhecidas como activity (ou
seja, atividade), e, para que uma atividade (que não seja a principal) seja invocada, é
necessária a utilização de um objeto intent, ou intenção. Sobre um intent, sua utilização e
caraterísticas, é correto dizer que:
Você acertou!
B. Intents são objetos para troca de mensagens entre objetos de uma aplicação Android.
Apesar de serem utilizados para abertura de novas telas, os intents podem ser utilizados para
iniciar serviços e transmissões de mensagens/dados entre objetos e aplicações.
Para a troca de mensagens entre objetos/componentes de uma aplicação Android, deve-se
utilizar a classe intent. Ela representa uma intenção e pode ser utilizada para representar a
intenção de iniciar uma nova atividade/activity/tela, serviços e até mesmo transmissão de
mensagens/dados entre objetos e aplicações distintas que dão suporte a esse tipo de
operação.
4. A combinação dos objetos intent e bundle permite que dados sejam enviados, ou seja,
trocados entre as telas de uma aplicação para Android. A respeito dessa troca de mensagens
entre atividades de uma aplicação para Android, é correto afirmar que:
Você acertou!
A. Ao armazenar os dados em um objeto bundle, garante-se que esses dados ficarão
armazenados até o momento em que forem novamente solicitados. Assim, os dados podem
ser recuperados posteriormente em qualquer uma das telas daaplicação.
Objetos do tipo bundle permitem que dados sejam armazenados (persistidos) em uma
aplicação Android até que sejam novamente necessários. Os dados em um bundle somente
serão apagados se a aplicação for reinicializada ou se os dados forem propositalmente
substituídos.
5. Acerca dos intents, sua invocação/criação pode ocorrer de forma explícita ou implícita
sobre sua segurança, sintaxe de utilização, etc. Em relação aos intents, quais das opções a
seguir está correta?
Você acertou!
D. Intents implícitos podem ser utilizados para invocação de atividades tanto internas
quanto externas ao aplicativo. Contudo, o fato de não especificar qual atividade será invocada
reduz a segurança da aplicação.
Intents implícitos podem ser utilizados para invocar atividades/serviços tanto internos quanto
externos à aplicação. Contudo, a utilização no modelo implícito reduz a segurança da
aplicação, haja vista que não é possível determinar qual atividade/serviço será executado.
Fornecimento de recursos
1. Ao desenvolver um aplicativo para o Android, é fundamental conhecer os recursos que
estão disponíveis e saber como utilizá-los na aplicação. Também é possível
desenvolver recursos próprios que serão utilizados por outros aplicativos. Sobre o conceito
de recursos, é correto afirmar:
Você acertou!
B. São exemplos de recursos originais, por exemplo, os relacionados a layout de interface.
Os recursos originais estão disponíveis pelo próprio Android e não em ambiente de
desenvolvimento. Os exemplos de recursos originais mais utilizados são os relacionados
a layout de interface. Pode-se estender recursos e também criar novos.
2. Um dos recursos que se pode trabalhar no Android são as strings. Por exemplo, se
quiser padronizar o rótulo de um botão para que todo lugar em que ele seja exibido fique
com a mesma informação, pode-se fazer isso alterando o arquivo string.xml. Acerca do
arquivo string.xml, é correto afirmar:
Você acertou!
B. O arquivo string.xml fica localizado no diretório de resources e é utilizado para
armazenar strings e seus valores.
O arquivo strings.xml não tem armazenadas as mensagens da aplicação. Ele fica localizado no
diretório de resources e é utilizado para armazenar valores de strings reutilizáveis. É um dos
recursos do Android e, assim como demais recursos, deve-se referenciar com um ID.
3. Em todo projeto Android existe a necessidade de externalizar alguns itens, por exemplo,
imagens, strings, para que seja possível mantê-los independentes e para que possam
suportar configuração específica, idioma do dispositivos, tamanho de tela, orientação,
etc. A pasta res, utiliza várias subpastas que, juntas, classificam os resources por tipo e
configuração.
Com base nessa explicação, é correto afirmar:
Você acertou!
C. A subdivisão em subpastas conforme a classificação dos recursos é importante para
organização e localização.
A pasta res existe em todo e qualquer projeto para Android. Além dos recursos naturais, pode-
se utilizar para arquivos necessários para externalizar a aplicação. A subdivisão por pastas
conforme a classificação do tipo de recurso é importante para organizar e classificar os
recursos.
4. A classe R.java é gerada automaticamente pelo plugin da IDE de desenvolvimento. Essa
classe tem papel fundamental, pois ela é responsável por fazer o relacionamento entre os
arquivos .xml e os .java do projeto. Essa classe não pode, de forma alguma, ser alterada, e a
sua alteração só será feita pela geração de uma nova compilação do projeto. Não é preciso
se preocupar com isso, mas é importante conhecer seus métodos.
Escolha a alternativa que está correta acerca da finalidade da classe R.java:
Você acertou!
D. A classe R.java é tem por finalidade manter a sincronia entre o arquivo .xml do projeto
e o .java do desenvolvimento.
A classe R.java tem o objetivo de manter a sincronização entre o xml do projeto e o java do
desenvolvimento. Não se deve alterá-la, pois sua alteração é consequência de uma nova
compilação, mas é fundamental conhecer seus métodos, pois é por meio deles que se pode
sincronizar o código com os recursos da estrutura.
5. Os recursos de string fornecem strings de texto para o aplicativo com estilo e formatação
de texto opcional. Existem três tipos de recursos que podem fornecer strings ao seu
aplicativo. A utilização do recurso de strings permite:
Você acertou!
B. criar recursos de strings reutilizáveis para aplicação.
Criar recursos reutilizáveis de strings é o principal objetivo. Não se utiliza o recurso string para
padronizar variáveis, mensagens de texto ou layout de tela.
Tela principal e componentes de menu
1. Ao se adicionar um menu na tela do aplicativo, é importante preenchê-locom itens que
auxiliem o usuário a utilizar o aplicativo de forma intuitiva e adaptável às suas
necessidades. Há um menu que é responsável por carregar o XML desse menu.
Qual das alternativas a seguir apresenta esse menu que carrega o XML do menu?
Você acertou!
D. Menu Inflater.
O Menu Inflater é especialista em carregar XML
de menu. O método Activity.onCreateOptionsMenu(Menu menu) nos oferece um
objeto menu vazio, que pode ser utilizado pelo Menu Inflater para carregar um XML, de modo
que o método Activity.getMenuInflater() nos devolve um Menu Inflater.
Inflate.inflate(): lê um XML e carrega um menu; essa é a especialidade dos Inflaters.
2. O uso de barra de ações ou do aplicativo tem sido uma boa prática no desenvolvimento
de aplicativo. Ela é um dos elementos mais importantes da Activity do aplicativo, pois
fornece uma estrutura visual e elementos interativos que são familiares aos usuários.
Qual das alternativas a seguir é considerada uma barra dentro do aplicativo?
Você acertou!
A. Toolbar.
OptionMenu é a coleção principal de itens de menu para uma atividade. É onde se devem
colocar as ações que têm impacto global no aplicativo, como "Buscar", "Escrever e-mail" e
"Configurações". ListView, ViewGroup e RadioButton são componentes de interface, ou seja,
são utilizados nas aplicações como entrada, saída e processamentos de dados. Já o Toolbar
através de um ActionBar, de acordo com a biblioteca de suporte v7 appcompat,permite
implementar como uma barra de aplicativo. O uso da Toolbar da appcompat facilita a
configuração de uma barra de aplicativo que funcione no conjunto mais amplo de
dispositivos, além de permitir que você a personalize posteriormente ao desenvolver seu
aplicativo.
3. Após criar uma ActionBar no aplicativo, é importante sobrescrever três
métodos. Qual método é executado sempre antes de o menu ser mostrado e que pode ser
usado para habilitar/desabilitar itens ou modificar algum conteúdo dinamicamente?
Assinale a alternativa correta.
Você acertou!
B. onPrepareOptionsMenu.
Esse método é executado sempre antes de o menu ser mostrado. Ele pode ser usado para
habilitar/desabilitar itens ou modificar algum conteúdo dinamicamente. Já
o método onCreateOptionsMenu infla o menu em XML que foi criado na tela, e o
onOptionsItemSelected gera a ação do item que foi selecionado no menu. onMenuItemClick
e onCreateContextMenu são métodos relacionado ao menu contextual.
4. É o menu que exibe seus itens abaixo do texto âncora, se houver espaço disponível na
tela do aplicativo, o menu é exibido acima do texto âncora. Seus itens aparecem na tela em
uma lista vertical e sua importância é em ações estendidas que são relacionados com a
Activity.
Que menu é esse? Assinale a alternativa correta.
Você acertou!
A. Menu PopUp.
Option Menu é um menu em que se desenvolvem as ações do aplicativo, e menu contextual é
o menu que oferece ações que afetam um item ou uma estrutura de contexto específico de
UI. Menu Inflater permite inflar o menu contextual do recurso do menu, e Navigation Drawer é
um painel da interface do usuário que mostra o menu de navegação principal do aplicativo. A
gaveta aparece quando o usuário toca no ícone da gaveta na barra de aplicativosou quando
o usuário passa o dedo pela borda esquerda da tela. Porém, o menu PopUp é um menu que
exibe itens abaixo do texto âncora, se houver espaço disponível; caso contrário, acima do
texto âncora. O menu PopUp exibe itens em uma lista vertical e serve para fornecer ações
adicionais relacionadas a um conteúdo específico ou ações de fornecimento de uma segunda
parte de comando. Suas ações não devem afetar um conteúdo correspondente diretamente;
é para isso que servem as ações contextuais. Geralmente, omenu PopUp serve para as ações
estendidas que relacionam os conteúdos da Activity.
5. Os dispositivos móveis estão em todos os lares, e dentro desses dispositivos estão os
aplicativos, que são uma extensão do mundo real direto pra a tela do celular. Sabe-se que
os aplicativos têm funcionalidades e recursos que facilitam a vida de seus usuários. Os
aplicativos são constituídos por menus e componentes que executam a aplicação. A tela
principal do aplicativo é a cara do app.
Esse componente é o padrão de design mais importante, que abriga botões com
ações, tabs e menus para interagir com usuários. Assinale a alternativa que define o
componente citado.
Você acertou!
B. ActionBar.
ActionBar é o padrão de design mais importante, é a barra de navegação que fica na parte
superior da aplicação, que contém os botões com ações, tabs e menus para interagir com o
usuário, mostrando-os de forma simples e consistente aos usuários; como estes já estão
acostumados com os aplicativos, por serem aplicativos nativos, essa é uma grande
vantagem. OptionMenu é um menu onde se desenvolvem as ações do aplicativo,
e menu contextual oferece ações que afetam um item ou uma estrutura de contexto
específicos de UI. ViewGroup e ListView são componentes de interface, ou seja, são utilizados
nas aplicações como entrada, saída e processamento de dados.
Telas de cadastro
1. Qual das alternativas abaixo descreve corretamente o objeto LiveData e a classe
MutableLiveData?
Você acertou!
E. Um objeto LiveData é parte integrante do ViewModel e naturalmente implementa o
padrão Observer. As classes MutableLiveData permitem que os objetos LiveData sejam
definidos manualmente.
Um objeto LiveData é parte integrante do ViewModel e naturalmente implementa o padrão
Observer. As classes MutableLiveData permitem que os objetos LiveData sejam definidos
manualmente. Um objeto que implemente um padrão Observer não pode implementar um
padrão Factory, uma vez que o padrão Factory seria uma fábrica de objetos, e não uma classe
que "observa" alterações em estados de objetos criados para determinar ações a serem
executadas. Além disso, é a classe MutableLiveData que permite alterar de forma manual um
objeto LiveData.
2. Com base no material estudado, marque abaixo a alternativa que apresenta as opções
mais adequadas para o desenvolvimento de uma tela de cadastro para aplicações móveis.
Você acertou!
B. Evitar cadastros extensos com solicitação de grande quantidade de dados. Quando isto
for necessário, o indicado é estimular o preenchimento gradativo, não impedindo a utilização
da ferramenta caso o cadastro não esteja completo.
Sempre que se cria telas de cadastro para aplicativos móveis, deve-se evitar telas extensas,
com grande quantidade de dados. Para os casos em que são necessárias muitas informações,
deve-se optar pelo preenchimento gradativo, não condicionando a utilização do aplicativo ao
preenchimento completo do cadastro. Dados que não são de extrema importância não devem
ser obrigatórios. Apesar de ser comum observar telas com rolagens, o mais indicado ainda é a
utilização de várias telas. Evite rolagens, pois o usuário pode se confundir. Lembre-se também
de que uma aplicação deve exigir tantos dados quanto forem necessários para seu
funcionamento correto e para operações futuras, mesmo que isso implique em vários campos
a serem preenchidos, nesse caso, o melhor a fazer é saber como organizá-los. Contudo,
lembre-se, somente exija que um usuário realize cadastro se realmente for necessário.
Algumas aplicações não dependem de cadastro prévio, não precisam de segurança de dados,
são simples e pontuais. Nesse caso, exigir cadastro é desnecessário.
3. Em diversos casos, como desenvolvedor, você terá que utilizar componentes do tipo
RadioGroup e RadioButton. Caso tenha que fazê-lo, qual seria a alternativa correta para
recuperação do RadioButton marcado na interface gráfica com o usuário?
Você acertou!
E. Integer sVip = rgVip.getCheckedRadioButtonId();
Button rbVip = (RadioButton)findViewById(sVip);
Integer sVip = rgVip.getCheckedRadioButtonId();
Button rbVip = (RadioButton)findViewById(sVip);
Para recuperar a identificação do botão marcado em um RadioGroup, é preciso recorrer ao
método getCheckedRadioButtonId() do objeto que representa o RadioGroup. Observe que
não existe uma função CheckedRadioButtonId() ou somente getCheckedRadioButton(), veja
também que os métodos iniciados com set tem o objetivo de atribuir valores e não
recuperar. O segundo passo é recuperar a instância do objeto RadioButton referente ao ID
que foi recuperado. O método é o findViewById(idDoObjeto), em quase todas as respostas
o método está correto, no entanto, seu antecessor não está.
4. Com base no que foi estudado no material, qual alternativa melhor se adequa aos
conceitos, descrições e funcionalidades da classe ViewModel?
Você acertou!
C. Uma classe ViewModel permite a persistência de dados durante todo o ciclo de vida
de uma aplicação. Por meio dessa classe, é possível transferir dados entre as diferentes
atividades de uma aplicação, além de criar ações de recuperação de dados em caso de falhas
no sistema.
5. Em algumas ocasiões, a necessidade de preencher cadastros para ter acesso ao
sistema/aplicativo pode ser suprimida, recuperando informações de outros sistemas ou
redes sociais das quais o usuário participa. Qual das opções abaixo representa uma forma
correta de implementar esta funcionalidade?
Você acertou!
B. Um acordo “lógico” é realizado entre as partes, utilizando plug-ins ou códigos
disponibilizados pelas proprietárias das redes sociais. Para o desenvolvedor Android, a
comunicação pode ser feita através do componente/plug-in Google Sign in.
Desenvolvedores de aplicativos móveis podem utilizar dados disponibilizados pelos usuários
em cadastros de redes sociais para preencher seus cadastros (ou parte deles). No caso dos
desenvolvedores Android, esta coleta de dados é feita através do componente Google
Identity Platform que mantém uma espécie de acordo "lógico" entre a aplicação e a rede
social, permitindo a troca de informações.
Alertas e a classe Toast
1. É de suma importância conhecer as principais funções da classe Toast. Com elas, o
programador altera o conteúdo a ser apresentado, bem como suas características de cor e
tamanho, entre outras.
Marque a opção que descreve a função makeText().
Você acertou!
A. Recebe 3 parâmetros: primeiro, o contexto em que o componente será apresentado;
segundo, o texto a ser apresentado; e terceiro, o tempo de duração do alerta na tela. O retorno
dessa função é um objeto do tipo Toast devidamente inicializado.
MakeText() recebe 3 parâmetros: primeiro, o contexto em que o componente será
apresentado; segundo, o texto a ser apresentado; e o terceiro, o tempo de duração do alerta
na tela. O retorno dessa função é um objeto do tipo Toast devidamente inicializado. A função
que define a posição é a setGravity(). A função que define o tempo do alerta é a setDuration().
Para exibir o alerta na tela, a função chamada é a show().
2. A empresa de produtos alimentícios está solicitando a criação de um aplicativo e quer
apresentar mensagem de erro caso haja falha de conexão quando o usuário finalizar o pedido
de compra de produtos.
Assinale a alternativa que representa o modo correto de codificar a apresentação da
mensagem em Java.
Você acertou!
A. Toast.makeText(getApplicationContext(), “Nãofoi possível enviar seu pedido, verifique
sua conexão com a internet.”, Toast.LENGTH_LONG).show();
A função da classe Toast que cria a instância do objeto é a makeText, que tem como
parâmetro o contexto em que será apresentado e é obtida por meio do método
getApplicationContext(), o texto a ser apresentado e o tempo que ficará visível na tela. O
método show, no final, serve para apresentar o objeto que foi instanciado no momento
anterior. A função setGravity serve para mudar a posição do alerta na tela.
3. Dependendo do desenho das telas do aplicativo, pode ser necessário reposicionar o
alerta na tela. Para isso, é preciso que o desenvolvedor saiba qual função utilizar.
Sendo assim, marque a alternativa que representa o uso correto da função responsável por
definir a posição do alerta.
Você acertou!
C. setGravity.
A função makeText cria a instância do objeto e tem como parâmetros o contexto em que será
apresentado, o conteúdo e o tempo que ficará visível na tela. A função show exibe o alerta na
tela. A setDuration altera o tempo de exibição, e a view conecta o alerta ao componente no
qual será exibido. A função que define a posição em que o alerta vai aparecer na tela é a
setGravity().
4. É muito comum o desenvolvedor passar parâmetros para funções, a fim de que sejam
processados como parte da lógica de negócio do seu projeto.
Marque a opção que representa o parâmetro passado para o método construtor no caso de
o desenvolvedor inicializar a variável com: Toast toast = new Toast().
Você acertou!
A. getApplicationContext.
Quando o usuário utiliza o construtor para inicializar um objeto do tipo Toast, o parâmetro
passado deve ser o do contexto da aplicação e, portanto, deve ser utilizado o método
getApplicationContext(). Está errado passar um valor numérico, bem como as funções show,
setGravity ou setView como parâmetro, já que elas retornam valores de tipo diferente do que
o esperado pelo construtor Toast.
5. Caso o programador tenha inicializado a variável por meio do construtor, mas precise
adicionar o texto em segundo momento, marque a opção que representa o comando
utilizado a fim de passar o texto para o objeto.
Você acertou!
A. setText(“mensagem”);
Caso o desenvolvedor não tenha inicializado a variável com o texto por meio do método
makeText ou queira alterar a mensagem a ser enviada, a função a ser utilizada é a setText().
Com exceção do método setView, que define em qual view o alerta vai aparecer, os demais
métodos não existem.
Persistência de dados em dispositivos móveis
1. Ao utilizar a plataforma Google para o desenvolvimento de aplicativos móveis, existem
algumas possibilidades de armazenamento dos dados do aplicativo.
Segundo a Google, quais seriam as opções possíveis de utilizar para armazenar os dados em
uma aplicação Android?
Você acertou!
B. Shared preferences, armazenamento interno, banco de dados relacional, conexão de
rede e servidores externos.
Quando for para o armazenamento das informações em dispositivos móveis na plataforma
Android, é possível armazenar os dados de cinco maneiras diferentes: shared preferences,
armazenamento interno, armazenamento externo, banco de dados relacional e conexão de
rede.
2. A persistência de dados pode ser conceitualizada como o armazenamento coerente e
confiável das informações em um sistema de armazenamento de dados.
Em outras palavras, como poderia ser um possível conceito de persistência de dados para
dispositivos móveis?
Você acertou!
E. Garantir que os dados que estão sendo manipulados em um aplicativo não sejam
perdidos quando a aplicação for encerrada.
A persistência de dados em aplicativos móveis pode ser conceitualizada como a garantia
de que os dados, os quais estão sendo manipulados em um aplicativo, não sejam perdidos
quando a aplicação for encerrada.
3. Um aplicativo móvel deve ser capaz de lidar com a troca de dados em ambientes
heterogêneos e com baixa confiabilidade, de maneira segura, consistente e com
desempenho.
Quando se fala em segurança da informação, quais são os três aspectos fundamentais de
serem observados?
Você acertou!
A. Confidencialidade, integridade e disponibilidade.
A segurança de dados pode ser vista como a proteção dos dados contra sua corrupção,
podendo ser chamada de segurança da informação. A segurança da informação se define em
três palavras: confidencialidade, integridade e disponibilidade, CID (do inglês
CIA, Confidentiality, Integrity and Availability).
4. As propriedades básicas de uma transação são popularmente conhecidas pelo acrônimo
ACID (atomicidade, consistência, integridade e durabilidade).
Qual alternativa representa uma informação correta?
Você acertou!
E. Uma transação atômica tem por conceito ser uma unidade de processamento que é ou
não realizada de forma integral.
Uma transação atômica pode ser conceitualizada como uma unidade de processamento, a
qual deve ser realizada de maneira integral ou não.
5. SQLite é uma das ferramentas mais utilizadas para armazenamento de dados em
aplicativos móveis.
Se houvesse uma tabela chamada “TabExer”, com os campos (id int primary key, enunciado
text, gabarito text) e você quisesse inserir um registro nessa tabela, qual dos comandos você
deveria executar?
Você acertou!
C. sqlite> INSERT INTO TabExer (id, enunciado, gabarito) values (1, “Nesta questão...”,
“A”).
No momento da inserção de um registro deve ser seguida a ordem dos campos que foram
listados antes do values “(id, enunciado, gabarito)”, respeitando o seu tipo (int, text, text).
Funcionalidades nativas
1. Quando se fala em desenvolvimento específico para cada plataforma, é possível chamar
essa abordagem de desenvolvimento nativo.
Sendo assim, marque a alternativa que melhor corresponde a esse tipo de desenvolvimento.
Resposta correta.
A. É quando toda e qualquer funcionalidade de uma determinada plataforma fica à
disposição, sem restrições, podendo implementar padrões de interface gráfica e de
experiência com o usuário.
É quando toda e qualquer funcionalidade de uma determinada plataforma fica à disposição. A
grande vantagem das aplicações nativas é a capacidade que elas têm de se comunicar com os
dispositivos do aparelho, como câmera, acelerômetro, entre outros. Isso faz com que a
aplicação fique mais completa.
2. Além do desenvolvimento nativo, é possível elencar o desenvolvimento híbrido, o qual
pode ser descrito como uma mistura do desenvolvimento nativo, utilizando os recursos
mais complexos de hardware, com o desenvolvimento Web, utilizando HTML5, CSS e
JavaScript.
Sendo assim, marque a alternativa que melhor conceitualiza o desenvolvimento híbrido.
Você acertou!
E. Uma aplicação híbrida é desenvolvida para funcionar em múltiplas plataformas, sendo
que os custos de apoio a uma aplicação híbrida podem ser maiores que os custos de apoio a
uma aplicação nativa.
Uma aplicação híbrida é desenvolvida para funcionar em múltiplas plataformas. É preciso
utilizar uma única linguagem de programação (como Java ou uma combinação de HTML5 e
Javascript) e, após a aplicação, pode ser compilada para ser executada em cada uma das
plataformas (como iOS e Android, por exemplo). A maior vantagem de aplicativos híbridos é
que eles permitem o suporte a vários sistemas operacionais com um custo mais razoável do
que desenvolver vários aplicativos nativos.
3. Devido ao não acesso direto às funcionalidades nativas do dispositivo, algumas das
interações mais específicas, serão, por padrão, controladas pelo auxílio de
alguns plugins e/ou ferramentas desenvolvidas para o sistema operacional específico.
Qual das opções a seguir é um possível exemplo de framework que possibilita a comunicação
com as funcionalidades nativas do dispositivo?
Resposta correta.
B. Apache Cordova.
O Apache Cordova é uma estrutura de desenvolvimento móvel de código aberto. Ele permite
que sejam utilizadas tecnologias padrões da Web, como HTML5, CSS3 e JavaScript, para odesenvolvimento em várias plataformas. Todos os recursos oferecidos por ele são nativos e
suportados por qualquer navegador de Internet, possibilitando, assim, o acesso de recursos
do aparelho, tais como câmera, contatos, GPS e diversos outros.
4. A grande vantagem em utilizar o Cordova é devido ao pacote de plugins que ele fornece.
Além dos plugins oferecidos pelo próprio framework, há também outros plugins de terceiros
que são compatíveis com a plataforma.
Conforme a arquitetura de uma aplicação Cordova, quais são os seus principais
componentes?
Resposta correta.
D. Web App, WebView e Cordova Plugins.
O Web App é o local que armazena o código da aplicação.
O WebView é responsável por fornecer à aplicação toda a interface do usuário.
O Cordova Plugins fornece uma interface para que o Cordova e os demais componentes
nativos consigam se comunicar entre si, possibilitando a vinculação com as APIs do
dispositivo.
5. Existe um conjunto de plugins padrões básicos, os quais fornecem à aplicação a
possibilidade de acessar os recursos do dispositivo, como o acelerômetro, o GPS, a bateria,
a câmera, os contatos, etc.
Como é chamado esse conjunto de plugins, conforme a documentação oficial do Apache
Cordova?
Resposta correta.
A. Core Plugins.
O projeto Apache Cordova mantém um conjunto de plugins chamado de Core Plugins.
Esses plugins básicos fornecem seu aplicativo para acessar os recursos do dispositivo, como
bateria, câmera, contatos, etc. É um conjunto de ferramentas de desenvolvimento, que tem
APIs de dispositivos disponíveis para cada plataforma.