Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS EM ANDROID 1. Na definição de papéis existentes no framework OAuth2, é função do proprietário do recurso: A) Provê os recursos e determinar o mecanismo de controle de acesso sob os quais os mesmos serão disponibilizados. B) Fornecer o serviço de autenticação e validação de credenciais. C) Fornecer o serviço de autorização de acessos remotos. D) Conhecer todas as aplicações clientes que desejam utilizar os recursos por ele disponibilizados. E) Gerar novas senhas a cada requisição recebida a partir de clientes externos. CORRETA: A ________________________________________________________________________ 2. A resposta de uma requisição realizada com a biblioteca Axios pode ser acessada através do objeto: A) responseText. B) JSONResponse. C) JSON.stringify(). D) innerHTML. E) Response.data. CORRETA: E ________________________________________________________________________ 3. Assinale qual destas opções corresponde ao propósito do componente ScrollView. A) O ScrollView é um elemento com a função de container, que pode conter em si vários elementos, mantendo uma altura previamente definida e permitindo a navegação entre os elementos nele contidos por meio de rolagem, que pode ser tanto vertical quanto horizontal. B) Controlar a exibição de textos muito extensos. C) O ScrollView tem como função exibir dados em formato de listas, permitindo a rolagem desses dados de maneira performática. D) O ScrollView é um componente disponível apenas para a plataforma iOS, cuja função é permitir a conteinerização de elementos de forma a manter sempre um tamanho predefinido da tela. E) O propósito do componente ScrollView é permitir o carregamento de conteúdo dinâmico a partir da interação de arrastar e soltar. CORRETA: A ________________________________________________________________________ 4. É muito comum carregarmos uma quantidade limitada de dados na renderização inicial de nosso aplicativo e, a partir daí, novos dados. Nesse contexto, assinale a alternativa que corresponde ao comportamento dos componentes de lista no que diz respeito ao carregamento de dados adicionais. A) O VirtualizedList é o único componente que não possui suporte nativo ao carregamento de dados adicionais, uma vez que é otimizado para lidar com dados imutáveis. B) Os componentes de lista disponíveis em React Native possuem um atributo chamado state, definido dentro do componente e responsável pelo controle do estado dos dados atribuídos a uma variável. C) As propriedades ou props recebidas como herança de componentes-pai, como View ou ScrollView, permitem aos componentes de lista monitorar eventuais atualizações nos dados por ele renderizados. D) Todos os componentes de lista presentes no React Native possuem propriedades e métodos nativos para tratar o carregamento de dados adicionais. Por meio deles, é possível tanto monitorar o acréscimo de novos dados como carregá-los sob demanda mediante uma interação por parte do usuário. E) Tal funcionalidade não está disponível nos componentes de lista. Por outro lado, podemos capturar novos dados ''ouvindo'' seu estado (state) em outros componentes do aplicativo. CORRETA: D ________________________________________________________________________ 5. As diversas áreas do desenvolvimento de software sempre estão associadas a diversos ferramentais da matemática. No caso específico dos bancos de dados relacionais, quais são os elementos matemáticos que os regem? A) Cálculo Relacional e Álgebra Relacional. B) Lógica Booleana e Álgebra Relacional. C) Cálculo Lambda e Inferência Lógica. D) Cálculo Relacional e Lógica Fuzzy. E) Álgebra Linear e Cálculo Relacional. CORRETA: A ________________________________________________________________________ 6. Para trabalhar com as coleções do MongoDB, a partir de um serviço Web, construído com base no Node.js, devemos inicialmente obter uma conexão com a base, através da classe MongoClient, oferecida na biblioteca MongoDB. A partir da conexão, acessamos as coleções, e podemos utilizar os métodos disponibilizados por elas para manipulação e consulta de documentos. Qual desses métodos permite a inclusão de um documento? A) find B) insertOne C) findAll D) create E) persist CORRETA: B ________________________________________________________________________ 7. JSX é uma sintaxe de extensão à linguagem JavaScript familiar ao XML. Com base em sua definição e características, é correto afirmar que: A) JSX não é uma linguagem, e sim uma extensão para arquivos JavaScript, a fim de diferenciá-los de arquivos JavaScript que utilizam a extensão ''.js''. B) JSX não permite que o código responsável pela lógica dos componentes e o mark-up de manipulação do DOM coexistam em um mesmo código. C) JSX é a única linguagem disponível para o desenvolvimento híbrido de aplicativos mobile. D) JSX exerce o papel de uma linguagem de estilos que permite a construção de componentes de interface ricos. E) Durante o processo de building da aplicação (seja uma aplicação web utilizando ReactJS ou um aplicativo mobile empregando React Native), há uma etapa na qual o código JSX é convertido em código JavaScript. CORRETA: E ________________________________________________________________________ 8. A exemplo do que é possível fazer em aplicações web, também se pode validar dados inseridos em componentes do tipo TextInput em React Native. Normalmente, tal validação é realizada na ocorrência de dois eventos. Marque a alternativa que corresponde a esses eventos. A) Submit e clear. B) Onfocus e onblur. C) Focus e blur. D) Oninit e onexit. E) Onpress e onclick. CORRETA: C ________________________________________________________________________ 9. O uso da arquitetura MVC permitiu uma boa organização das responsabilidades de cada tipo de componente utilizado na programação do aplicativo. Segundo o padrão arquitetural, no ambiente do React Native, em que camadas ficariam, respectivamente, uma classe DAO e um componente nativo JSX? A) Controller e View. B) Controller e Model. C) Model e View. D) View e Model. E) View e Controller. CORRETA: C ________________________________________________________________________ 10. A camada View, na arquitetura MVC, corresponde às interfaces gráficas, e deve englobar apenas componentes para interação com o usuário e críticas de formatação. Ela depende de uma camada Controller, fazendo com que a obtenção e manipulação de dados sejam sempre intermediadas por um controlador. Considerando um componente FlatList, alimentado por uma coleção de entidades interna, como podemos garantir que a lista seja atualizada, a partir da chamada ao método de consulta do controlador, sempre que a janela é exibida? A) É necessário efetuar uma chamada assíncrona para o método de consulta do controlador, e na cláusula then definir um bloco do tipo componentDidUpdate. B) Devemos invocar o método de consulta do componente DAO, no modelo assíncrono, em um bloco do tipo useIsFocused, filtrado para useEffect. C) Precisamos utilizar uma função na sintaxe Java Script, acionada pelo evento onLoad. D) Devemos invocar o método obterTodos,ou equivalente, a partir do controlador, dentro de um bloco useEffect, filtrado para o ganho de foco, com base em useIsFocused. E) Basta ignorar o controlador e efetuar a chamada ao componente DAO diretamente, mas sempre no bloco componentDidMount. CORRETA: D ________________________________________________________________________ 11. Aponte qual alternativa corresponde ao conjunto de propriedades disponível nos três componentes de lista do React Native: A) section - extraData - data B) items - item - index C) height - style - index D) extraData - renderItem - keyExtractor E) foreach -renderItem - getItem CORRETA: D ________________________________________________________________________ 12. O React Native possui três principais modelos de navegação. A respeito das características de cada um desses modelos e considerando um aplicativo que possua dez telas, é correto afirmar: A) O Drawer Navigation é o modelo indicado para essa quantidade de ícones, pois permite que todas as opções de navegação fiquem expostas o tempo todo, sem a necessidade de nenhuma ação por parte dos usuários. B) Por padrão de boas práticas, deve-se adotar sempre (e no máximo) dois modelos de navegação, porque os usuários tendem a ter dificuldade quando colocados diante de muitas opções de escolha. C) A adoção dos três modelos de navegação consiste em uma boa estratégia, uma vez que é possível, por exemplo, exibir, por meio de Tab Navigation, os links mais importantes e combinar os demais links nos outros modelos de navegação. Isso permitiria a criação de uma tela e um modelo de navegação concisos. D) Para facilitar a navegação e não confundir o usuário, deve-se adotar apenas um modelo de navegação, como acontece na maioria dos aplicativos mobile. E) Todas as telas do aplicativo devem ser incluídas como itens (screens) de todos os modelos de navegação. Isso, além de deixar o código mais limpo e simples, daria ao usuário a autonomia de escolher como quer navegar pelo aplicativo. CORRETA: C ________________________________________________________________________ 13. O armazenamento com SQLite é bastante simples na plataforma React Native, com um conjunto de objetos preparados para a execução de comandos SQL dentro de blocos transacionais. Para iniciar a programação necessária, devemos obter uma conexão com o banco de dados através da função A) transaction. B) openDatabase. C) executeSQL. D) getConnection. E) createTable. CORRETA: B ________________________________________________________________________ 14. Os bancos de dados orientados a objetos permitem que utilizemos um sistema de armazenamento com estrutura similar à utilizada pelas linguagens de programação da atualidade, diminuindo a distância semântica do modelo relacional. Qual alternativa se refere a um banco de dados que, embora também use o modelo documental, é reconhecido como orientado a objetos? A) Realm B) SQLite C) MongoDB D) Oracle E) SQL Server CORRETA: A ________________________________________________________________________ 15. Pacotes instalados por intermédio de gerenciadores de pacotes são armazenados em que local? A) Na raiz do projeto. B) Na memória do dispositivo móvel. C) O local de armazenamento pode variar, devendo ser indicado no momento da instalação de cada pacote. D) Na pasta ''node_modules'', dentro da pasta do projeto. E) Na pasta Arquivos de Programas do ambiente Windows. No Linux, isso pode variar de acordo com a distribuição, mas os pacotes normalmente são armazenados na pasta /opt/. CORRETA: D ________________________________________________________________________ 16. (Vunesp - 2020 - técnico em gestão - informática) Um programador, durante o desenvolvimento de um programa, descobriu que ele não está funcionando de acordo com a especificação. No processo de depuração, ele resolveu inserir um breakpoint nesse programa, o que permite... A) Inspecionar variáveis e conteúdo da memória durante a parada intencional do programa. B) Executar uma rotina de trás para frente, buscando rastrear a forma como as variáveis foram alteradas. C) Fornecer ao programa n conjuntos de entradas de dados e executar, de uma só vez, n vezes o programa, uma para cada conjunto. D) Executar o programa, instrução a instrução, do seu início ao fim. E) Compilar seletivamente o programa, gerando o código executável somente com as partes que realmente serão executadas. CORRETA: A ________________________________________________________________________ 17. Ao final do processo de desenvolvimento, com todos os testes executados com sucesso e melhorias de performance implementadas, um aplicativo deve ser empacotado para que possa ser distribuído. Para o ambiente Android, qual será o programa utilizado na criação de uma versão para distribuição em um projeto do tipo nativo? A) Expo B) gradlew C) Expo Client D) XCode E) keytool CORRETA: B ________________________________________________________________________ 18. Os padrões de desenvolvimento são muito úteis na construção de sistemas complexos, pois permitem o reuso de soluções para problemas já conhecidos no desenvolvimento de softwares, com modelos padronizados, que recebem um nome, descrição geral acerca de objetivos, contexto de utilização e restrições. Qual padrão busca simplificar a utilização de subsistemas complexos? A) Composite B) Facade C) Flyweight D) Proxy E) Template Method CORRETA: B ________________________________________________________________________ 19. Em relação ao ambiente de programação para dispositivos móveis, marque a alternativa verdadeira. A) Para testar aplicativos Android, é necessário ter um dispositivo móvel que utilize tal sistema operacional. B) O Android Studio é a única IDE que pode ser usada para a codificação de aplicativos em React Native. C) É possível existir um ambiente de desenvolvimento heterogêneo, não havendo restrições quanto à utilização apenas de um gerenciador de pacotes, de uma mesma IDE ou mesmo de uma única forma de desenvolver e testar nossos aplicativos. D) Quando utilizamos o Expo CLI para criarmos nossas aplicações, não é possível, em um mesmo computador/ambiente, criar aplicações utilizando o React Native CLI. E) A utilização de gerenciadores de pacotes facilita a configuração do ambiente de desenvolvimento. Com eles, nenhuma configuração se faz necessária em termos de softwares ou mesmo de configurações no sistema operacional. CORRETA: C ________________________________________________________________________ 20. Há duas formas para se instalar um pacote utilizando o NPM: local e global. Marque a alternativa correspondente ao comando para instalação local do Expo Cli. A) npx init expo-cli B) npm install expo-cli local C) local install expo-cli D) npm install expo-cli E) install expo-cli CORRETA: D ________________________________________________________________________ 21. O Stack Navigator permite criar uma ''pilha de telas''. Em relação a seu modelo de navegação, é correto afirmar: A) Após navegar para determinada tela, não é possível voltar à tela anterior sem antes recarregar todo o aplicativo. B) As opções de navegaçãoficam dispostas em um menu, que, por padrão, fica escondido à esquerda da tela. C) O Stack Navigator permite a navegação pelas telas do aplicativo por meio do método ''navigate'' ou do botão de voltar, inserido por default no topo de cada tela. Com isso, é possível acessar qualquer uma das telas que tenha sido incluída em seus ''screens''. D) Os botões de navegação nesse modelo ficam, por padrão, alocados na parte inferior da tela. E) A navegação no modelo Stack Navigator é realizada apenas por meio do botão de voltar no topo da tela. CORRETA: C ________________________________________________________________________ 22. Um botão é um elemento de interação que permite ao usuário executar algumas ações ao pressioná-lo. Há alguns componentes disponíveis em React Native com essa função. A respeito deles, escolha a alternativa correta. A) Os componentes do tipo Pressable, em React Native, permitem ao usuário realizar uma série de ações, exceto controlar outros componentes, como, por exemplo, abrir ou fechar uma janela modal. B) O componente Button é o que possui a melhor capacidade de ser estilizado, o que permite a alteração completa de sua aparência. C) O framework React Native possui vários componentes nativos cuja função é permitir a interação do usuário por intermédio do toque/pressionamento sobre tais componentes. Entre as opções disponíveis, devemos dar preferência ao Pressable. D) Embora estejam disponíveis alguns componentes nativos, como o Pressable, o Button e o TouchableHighLight, entre outros, nem todos estão disponíveis para as plataformas Android e iOS. E) A principal limitação desses componentes em React Native é o fato de eles não permitirem a inclusão de ícones com os títulos que indicam a função do componente. CORRETA: C ________________________________________________________________________ 23. Observe o fragmento de código apresentado a seguir, parte de um aplicativo criado na plataforma React Native. | openDatabase({name: "Escola.db", location:"default"}).then( | (db) => db.transaction( | (tx) => tx.executeSql( | " INSERT INTO ALUNOS (MATRICULA, NOME) "+ | " VALUES(?, ?)", | [120076,"Luiz Paulo"]) | ) | ); Qual será o resultado da execução desse trecho de código? A) Uma conexão será obtida de forma síncrona, sendo utilizada, em seguida, para gerar uma transação e, a partir dela, alterar os dados do aluno 120076. B) Será criado um banco de dados com o nome ALUNOS, e na sequência os registros 120076 e ''Luiz Paulo'' serão removidos da tabela ''Escola.db''. C) Uma conexão será obtida de forma assíncrona, sendo utilizada, a seguir, para iniciar uma transação e, a partir dela, inserir um registro no banco de dados. D) Será efetuada uma conexão com o banco de dados, configurado para o arquivo ''Escola.db'', e na sequência a tabela ALUNOS é gerada no banco. E) Será criada uma tabela com o nome ''Escola.db'', sendo inserido um registro com o nome ALUNOS, e valores indefinidos, devido ao uso de interrogações. CORRETA: C ________________________________________________________________________ 24. As bases de dados NoSQL podem oferecer diferentes formas de armazenamento e representação de dados, normalmente sem um esquema fixo, motivo pelo qual temos a classificação de seus dados como semiestruturados. Qual das opções apresentadas a seguir se refere a um banco de dados NoSQL baseado em documentos? A) Google Big Quey B) Hbase C) SQL Lite D) Neo4J E) MongoDB CORRETA: E ________________________________________________________________________ 25. Assinale, dentre as opções abaixo, a alternativa que representa o conjunto de elementos normalmente presentes em requisições realizadas com controle de acesso utilizando o framework OAuth2: A) Usuário, senha, e-mail; B) LDAP, HTTPS, SSL; C) Chave Privada, Chave Pública, Aplicativo Cliente, Servidor Aplicação. D) Aplicativo cliente, Servidor de Recurso externo/API, Servidor de autorização, Token; E) SSO, Servidor de Criptografia, Algoritmo Criptografia; CORRETA: D ________________________________________________________________________ 26. No contexto do modelo Offline First, uma interface otimista pode ser definida como uma interface que: A) Forneça elementos de interação que deem ao usuário a sensação de que a aplicação realizou uma tarefa que dependa de recursos remotos, mesmo sem que tal comunicação já tenha sido concluída. B) Funcione da mesma forma quando o dispositivo esteja ou não conectado à internet. C) Implementa recursos de acessibilidade. D) Possui elementos de interação, como títulos de botões e textos que contenham frases amigáveis, utilizados como resposta a requisições feitas a recursos remotos. E) Seja agradável de utilizar, possuindo um conjunto de cores e elementos visuais que chamem a atenção do usuário. CORRETA: A ________________________________________________________________________ 27. Ao efetuar a persistência em banco de dados, pode ser necessário ocultar informações de determinados campos, com a possibilidade de recuperação posterior, ou seja, devem ser adotados algoritmos de criptografia simétrica, em que o AES tem sido a principal opção para as plataformas móveis mais populares. Tendo como base a biblioteca CryptoJS, como podemos utilizar o algoritmo AES no desenvolvimento com React Native? A) Devemos invocar o método encrypt, fornecendo o valor original, chave AES e IV, ou o método decrypt, com o valor criptografado, chave e IV, sempre por meio do módulo AES. B) Não é possível trabalhar com o algoritmo AES no React Native, pois a biblioteca CryptoJS não fornece um gestor apropriado para ele. C) É necessário instanciar um objeto do tipo Cipher, com a passagem do algoritmo AES, chave e IV, e utilizar os métodos encrypt e decrypt do objeto. D) Basta invocar a classe Base64, pois os valores já são codificados no formato AES. E) Precisamos utilizar o método digestStringAsync, fornecendo chave AES e IV, tanto para a criptografia quanto para a recuperação da informação. CORRETA: A ________________________________________________________________________ 28. Muitas vezes, precisamos testar a conexão com um banco de dados ou servidor na rede, antes que ele seja implementado. Qual instrumento de programação poderia ser utilizado para viabilizar os testes na situação descrita? A) componente mock B) modificador async C) função test D) operador toEqual E) função expect CORRETA: A
Compartilhar