"Olá, Jetpack": como criar seu primeiro app Jetpack

Este documento orienta você pelo processo básico de criação de um app simples baseado no Jetpack. Este exemplo é baseado em um app Kotlin de exemplo chamado ComponentsBasicSample.

Para ver orientações sobre como criar apps em geral, consulte Como criar seu primeiro aplicativo. Para saber mais sobre as classes que este documento aborda, consulteComponentes de arquitetura do Android (link em inglês).

Como configurar o app

Execute as etapas abaixo para configurar seu app para usar o Jetpack:

  1. Abra o Android Studio 3.2 ou versão posterior e insira as informações em Create Android Project e Target Android Devices como de costume.
  2. Se você estiver escrevendo seu app em Kotlin, lembre-se de marcar a caixa Include Kotlin support na tela Create Android Project.

  3. Depois da tela Create Android Project, a tela Add an Activity to Mobile é exibida, oferecendo uma variedade de modelos para usar ao iniciar o projeto. O modelo Activity & Fragment + ViewModel, mostrado na figura 1, foi criado para facilitar a incorporação do Jetpack ao seu app. Clique nesse modelo e depois em Next.
  4. Figura 1. O modelo Activity & Fragment + ViewModel

  5. Na tela Configure Activity, insira os nomes da atividade, fragmento e objeto ViewModel iniciais que serão usados para começar seu projeto. Opcionalmente, também é possível inserir um caminho de pacote de fragmento. Em seguida, clique em Finish.
  6. Figura 2. A tela Configure Activity do modelo Activity & Fragment + ViewModel

Abrir a pasta java do seu projeto revela, como mostrado na figura 3, que o projeto inicialmente contém três classes: StartActivity, StartFragment e StartViewModel.

Figura 3. Classes iniciais que o modelo Activity & Fragment + ViewModel coloca em um projeto

  • StartActivity é o ponto de entrada do seu app. Esse é o stub de uma Activity para servir como o contêiner para os fragmentos que aparecem na tela inicial do seu app.

  • StartFragment é o stub de um Fragment inicial para você usar no seu app.

  • StartViewModel é o stub de um ViewModel inicial para você usar no seu app.

Aproveitar o Jetpack ao máximo

Com esses elementos já prontos, você poderá optar por implementar seu objeto ViewModel, como no exemplo a seguir:

    class StartViewModel : ViewModel() {
        private val _data = MutableLiveData<String>()
        val data: LiveData<String>
            get() = _data

        init {
            _data.value = "Hello, Jetpack!"
        }
    }

Se seu app contém mais de uma tela, adicione a classe Navigation para implementar os acionadores de navegação para seus fragmentos. O código mostrado a seguir é um exemplo de implementação de um acionador de navegação:

    // Set up a click listener on the login button
    view?.findViewById<Button>(R.id.navigate_bt)?.setOnClickListener {
       // Navigate to the login destination
       view?.let { Navigation.findNavController(it).navigate(R.id.end_action) }

Se seu app precisa de acesso local aos dados do SQLite, adicione também a biblioteca de persistência da Room. Se seu app precisa exibir grandes volumes de dados em uma única tela, considere a possibilidade de usar a biblioteca Paging.

Como configurar o arquivo do Gradle

Para usar o Jetpack, é necessário adicionar as linhas apropriadas ao arquivo do Gradle. Como o app usa ViewModel, LiveData e NavigationController, o arquivo do Gradle contém estas linhas:

       // LiveData + ViewModel

       implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"

       // Navigation

       implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
       implementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion

Saiba mais

Para saber mais sobre o exemplo e as classes discutidas neste documento, consulte os seguintes recursos:

O app de demonstração Sunflower usa muitos componentes diferentes do Jetpack para demonstrar as práticas recomendadas de desenvolvimento do Android.