Etapas para criar um projeto de aplicativo Android simples
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 classeActivity
. 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.