Etapas para criar um projeto de aplicativo Android simples

Tempo de leitura: 5 minutes

No tutorial anterior, aprendemos como podemos configurar nosso sistema para Android Application Development e como criar um AVD (Android Virtual Device) para testar nossos aplicativos. Portanto, agora neste tutorial, estaremos criando nosso primeiro aplicativo Android e tentaremos entender os fundamentos do desenvolvimento de aplicativos Android.

 

Noções básicas do aplicativo

Nosso primeiro aplicativo será um aplicativo simples com uma atividade e um layout, no qual imprimiremos apenas Hello World! na tela do dispositivo. Aqui estão algumas coisas que você deve saber, não se preocupe, você vai entender tudo isso, à medida que avançarmos:

  • Uma atividade (activity) é uma instância de Activity, uma classe no Android SDK. Uma atividade é responsável por gerenciar a interação do usuário com uma tela de informações. Sempre que criamos uma nova atividade, na verdade estamos escrevendo uma subclasse da classe Activity. Um aplicativo simples pode precisar de apenas uma subclasse, enquanto um aplicativo complexo pode ter várias. Em nosso primeiro aplicativo, FirstAppActivity será nossa subclasse de atividades.
  • Um layout define um conjunto de objetos de interface do usuário (IU) (Visualizações e Widgets) e sua posição na tela do dispositivo. Um layout é composto de definições escritas em XML. Cada definição é usada para criar um objeto (uma interface de usuário) que aparece na tela do dispositivo, como um botão ou algum texto ou uma imagem.

Em palavras simples, podemos dizer que o backend será tratado pela classe que estende a classe Activity, e o frontend, ou seja, a interface do usuário é definida no arquivo XML de layout.

 

Etapas para criar um aplicativo Android

A primeira etapa é criar um novo projeto Android. Um projeto Android contém todos os arquivos que constituem um aplicativo. Abra o Android Studio, vá para File → New → New Project…

Nesta primeira etapa, será solicitado que você escolha um modelo para a primeira tela de seu aplicativo, escolha Atividade vazia e clique em Avançar.

Na próxima etapa, você deve ver o novo assistente de projeto. Insira FirstApp como o nome do aplicativo. Para o Domínio da empresa, digite br.com.capsistema.firstapp ou você pode usar seu próprio nome para isso, por exemplo br.com.teste Ao entrar no Domínio da Empresa, você verá que o nome do pacote é gerado automaticamente, logo abaixo do campo Domínio da Empresa. Deixe a localização do projeto como está, você pode alterá-la se quiser.

Nesta mesma tela você entrara com as demais configurações do projeto, contem as informações sobre Linguagem por padrão atualmente é ‘Kotlin‘, a próxima é sobre a verão mínima do SDK da API 21: Android 5.0 (Lollipop). A versão mínima do SDK especifica a versão mínima do Android necessária em um dispositivo para executar nosso aplicativo.

Observe que o nome do pacote (gerado abaixo do campo Domínio da empresa) usa uma convenção DNS reversa na qual o nome de domínio da sua organização é invertido e sufixado com identificadores adicionais, como o nome do aplicativo. Esta convenção mantém os nomes dos pacotes exclusivos e distingue os aplicativos uns dos outros em um dispositivo e no Google Play.

O nome do layout será atualizado automaticamente para activity_first_app para refletir o nome da atividade. O nome do layout inverte a ordem do nome da atividade, tudo em minúsculas e tem sublinhados entre as palavras.

Ao clicar em ‘Finish‘, o Android Studio levará algum tempo para preparar o projeto para você.

 

Navegando no Android Studio

O Android Studio abrirá seu projeto em uma janela conforme mostrado abaixo:

Os diferentes painéis no Android Studio são chamados de janelas de ferramentas.

A vista esquerda é a janela da ferramenta Projeto. A partir daqui, você pode visualizar e gerenciar os arquivos associados ao seu projeto.

A visão do meio é o Editor. Para começar, o Android Studio abriu os arquivos activity_main.xml e MainActivity.kt no editor.

Você também pode alternar para o modo Design, para ver como seu layout aparecerá, clicando na guia Design no canto inferior esquerdo da janela do Editor, quando o layout xml estiver aberto. No modo Design, você pode arrastar e soltar elementos diretamente, e o Android Studio escreverá automaticamente o código para o widget adicionado em seu arquivo xml de layout.

Você também pode mudar de código para design, indo para aba superior para mudar de Code para Split ou para Design

O layout de atividade padrão define dois widgets: um coordinatorlayout e um floatingactionbutton.

Além de um Include com a área de conteúdo, denominada ‘@layout/content_main’

Quando dizemos widgets, os widgets são os blocos de construção que você usa para compor uma interface de usuário (IU). Um widget pode mostrar texto ou gráficos, interagir com o usuário ou organizar outros widgets na tela. Botões, controles de entrada de texto e caixas de seleção são todos os tipos de widgets. Aprenderemos sobre visualizações e widgets nas próximas lições.

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/Theme.FirstApp.AppBarOverlay">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/Theme.FirstApp.PopupOverlay" />

    </com.google.android.material.appbar.AppBarLayout>

    <include layout="@layout/content_main" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_marginEnd="@dimen/fab_margin"
        android:layout_marginBottom="16dp"
        app:srcCompat="@android:drawable/ic_dialog_email" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Nossa classe MainActivity.kt dentro do método onCreate() e está iniciando os métodos que iniciam e carregam os componentes do conteúdo,  estendendo AppCompactActivity. AppCompactActivity é uma subclasse da classe Activity do Android SDK.

class MainActivity : AppCompatActivity() {

    private lateinit var appBarConfiguration: AppBarConfiguration
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        setSupportActionBar(binding.toolbar)

        val navController = findNavController(R.id.nav_host_fragment_content_main)
        appBarConfiguration = AppBarConfiguration(navController.graph)
        setupActionBarWithNavController(navController, appBarConfiguration)

        binding.fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()
        }
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        return when (item.itemId) {
            R.id.action_settings -> true
            else -> super.onOptionsItemSelected(item)
        }
    }

    override fun onSupportNavigateUp(): Boolean {
        val navController = findNavController(R.id.nav_host_fragment_content_main)
        return navController.navigateUp(appBarConfiguration)
                || super.onSupportNavigateUp()
    }
}

Portanto, trata-se de sua primeira aplicação. Espero que você tenha entendido os conceitos básicos relacionados ao desenvolvimento de aplicativos Android e agora saiba como usar o Android Studio.

Não se preocupe muito com o código se você não entendê-lo. Explicaremos tudo em detalhes nos próximos tutoriais. A partir de agora, lembre-se de que qualquer classe que estenda a classe Activity criará uma visualização no aplicativo e o design dessa visualização será definido usando o arquivo layout.xml. Na classe MainActivity, a linha ActivityMainBinding.inflate(layoutInflater) inicializara a tela de layout activity_main.xml.