Seja Premium

Desafio II Temporada

Seja Premium e tenha acesso liberado!

São milhões de conteúdos disponíveis pra você.

Já tem cadastro?

Você viu 1 do total de 7 páginas deste material

Prévia do material em texto

1º Desafio - Componente Activity
Activities são importantes componentes de um aplicativo Android, pois, pela sua implementação, é possível disponibilizar interfaces visíveis na tela. Por meio de tal interface, o usuário pode operar as funcionalidades que ela disponibiliza.
A equipe de desenvolvimento tem determinado problema quanto à definição do modo com que a nova tela de autenticação de usuário será disponibilizada.
Dentre as possibilidades analisadas, duas foram definidas como as prováveis soluções:
OPÇÃO A – alterar o layout da tela inicial atual (em que o aluno insere seu código e pressiona certo botão para consultar as notas), disponibilizando um botão que, ao ser acionado, abre a nova Activity de autenticação do usuário para que ele acesse o sistema da instituição.
OPÇÃO B – eliminar a antiga Activity que representa a atual tela inicial do aplicativo e alterar o manifesto do projeto, editando as configurações da Activity de login para implementar "intente-filter" com a ação “android.intent.action.MAIN” e com a categoria “android.intent.category.LAUNCHER”. Desse modo, ela passa a ser a primeira tela exibida pelo aplicativo.
Qual opção você recomendaria como adequada à empresa que é cliente? Indique motivos que o levaram a tal resposta.
Padrão de resposta esperado
A opção B é a mais adequada no caso exposto.
A opção A não seria a mais indicada, por não ter função além de redirecionar o usuário para a tela correta. Além de gerar mais desenvolvimento desnecessário, essa opção ainda geraria um processo desnecessário ao usuário, visto que ele já poderia acessar a autenticação diretamente e as informações desejadas, em vez de iniciar o aplicativo e realizar certo procedimento sem necessidade antes de chegar ao ponto desejado.
________________________________________________________________________________
2º Desafio - Recursos e a classe R.java
O teste é parte fundamental no desenvolvimento de um aplicativo, considerando que as possibilidades de falhas são muito grandes durante esse processo. Sendo assim, é necessário que o desenvolvedor saiba decifrar todas as informações contidas nas mensagens que acusam algum tipo de erro.
Você está trabalhando com um código na compilação e execução de determinado aplicativo Android. Ao rodar tal código, a seguinte mensagem de erro está retornando:
"Error: No resource found that matches the given name (at 'text' with value '@string/surpeendame')."
Diante disso, você resolveu analisar e comparar o código do arquivo activity_main.xml com o arquivo de recurso strings.xml.
Veja.
​​​​​​​Após a análise feita, identifique e descreva o que pode estar ocasionando a mensagem de erro.
Padrão de resposta esperado
Comparando os arquivos, é possível perceber que o problema está ocorrendo porque há nomes diferentes nas strings dos arquivos:
activity_main.xml:
android:text="@string/surpeendame"
strings.xml:
<string name="surpeenda_me">Surpeenda-me</string>
Portanto, para que isso seja solucionado e a classe de código consiga executar sem erro, devem ser utilizados os mesmos nomes.
3º Desafio - Fornecimento de recursos
Ao construir seus aplicativos, você percebe que muitas vezes é necessário escrever mais de uma string referente às mensagens a serem exibidas na tela. Esse tipo de problema pode ser facilmente solucionando utilizando o conceito de recursos no Android. Assim, como um desenvolvedor que procura utilizar os recursos da prataforma Android, você vai utilizar os recursos para resolver isso. Enquanto profissional de desenvolvimento de aplicativos, é importante conhecer bem os recursos disponíveis pela plataforma do Android e principalmente como estes funcionam e podem ser implementados.
Você trabalha como desenvolvedor e se depara com uma situação como a mencionada anteriormente. Sinalize uma alternativa de correção que poderia resolver essa questão, utilizando a estrutura de recursos para solucioná-la.
Padrão de resposta esperado
Os arquivos .xml com os recursos ficam localizados no diretório res; o arquivo strings.xml mantém todos as strings que podem ser referenciadas, por exemplo, em mensagens de tela do aplicativo. Sendo assim, uma alternativa seria criar duas strings diferentes no arquivo .xml, dessa forma não existiria a necessidade de alteração no código.
4º Desafio - Componentes de tela do usuário
A plataforma Android possibilita trabalhar com vários componentes visuais que permitem facilitar a interação dos usuários com o aplicativo.
Considere a seguinte situação:
De acordo com os requisitos solicitados, seu desafio é citar alguns componentes de tela que podem ser usados para atender aos requisitos. Apresente o código xml dessa proposta.
Padrão de resposta esperado
Para a criação da tela, deverão ser usados um componente View com dois componentes EditText, em que o usuário deverá informar o nome e o e-mail, e dois componentes spinner para seleção do sexo e da categoria.
Logo abaixo seriam inseridos dois componentes Button para salvar ou cancelar o cadastro.
O código XML seria:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Nome"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <EditText
        android:id="@+id/txtNome"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:ems="10" >
        <requestFocus />
    </EditText>
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="E-mail"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <EditText
        android:id="@+id/txtEmail"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:ems="10"
        android:inputType="textEmailAddress" >
    </EditText>
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Sexo:"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <Spinner
        android:id="@+id/spnSexo"
        android:layout_width="match_parent"
        android:layout_height="50dp" />
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Categoria:"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    <Spinner
        android:id="@+id/spnCategoria"
        android:layout_width="match_parent"
        android:layout_height="50dp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal" >
        <Button
            android:id="@+id/btnSalvar"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:text="Salvar" />
        <Button
            android:id="@+id/btnCancelar"
            android:layout_width="100dp"
            android:layout_height="50dp"
            android:text="Cancelar" />
    </LinearLayout>
</LinearLayout>