Android Jetpack compose – Tutorial HelloWorld

Tempo de leitura: 4 minutes

Jetpack compose – Introdução

O Jetpack Compose é um kit de ferramentas de interface do usuário declarativo moderno para Android. O Compose facilita a criação e a manutenção da interface do usuário do aplicativo, fornecendo uma API declarativa que permite renderizar a interface do usuário do aplicativo sem alterar imperativamente as exibições de front-end.

Portanto, antes de mergulhar na nova abordagem de programação de IU declarativa, precisamos entender a programação de IU imperativa, que atualmente está acompanhando o desenvolvimento de aplicativos Android. Isso significa que o código que reage aos eventos da interface do usuário, aqui o design se concentra no como e não no quê. Por exemplo, usando XML, você declara a aparência da sua UI, mas implementa o comportamento em um código de programa separado em Java ou Kotlin.

A composição do Jetpack é claramente articulada como o futuro do Android nativo 💡

O Jetpack Compose transforma o estado em UI seguindo o conceito de UI declarativa (sem XML, semelhante ao SwiftUI). Aqui seu código descreve como a interface do usuário deve ser para um determinado estado. Não há necessidade de sincronização extra com o bloco de código e a UI.

A boa notícia é que você pode começar a implementar o Compose em seu código existente substituindo uma simples exibição e, gradualmente, implementar o aplicativo inteiro, conforme mostrado na figura.

Jetpack compose – Aplicativo Hello World

Agora podemos dar uma olhada na parte prática. Atualmente, o Compose já está disponível com o Android Studio estável, portanto, você precisa fazer o download do Android Studio Hedgehog aqui. Se necessário, você pode manter sua versão estável junto com a visualização.

Studio -> New Project; escolha “Empty Activity” (Atividade de composição vazia)

Na próxima janela New Project, você precisa fornecer o nome do projeto e o nome do pacote. Depois de fornecer os dados, clique no botão Finish (Concluir).

Agora, quando o studio gerar o projeto, você poderá abrir o arquivo “build.gradle” em HelloWorld -> app. O arquivo contém três novas dependências para a biblioteca de composição do Jetpack. Essas dependências ajudam você a usar o recurso Compose em seu projeto. Você também pode adicionar essas dependências ao seu projeto existente se quiser ativar o Jetpack Compose nele (certifique-se de que esteja usando o Kotlin 1.9.0 ou mais recente em seu projeto).

android {
 ...
    buildFeatures {
        compose true
    }
 ...
}

dependencies {

   ..
    implementation("androidx.compose.ui:ui:1.6.2")
    implementation("androidx.compose.material:material:1.6.2")
    implementation("androidx.compose.ui:ui-tooling:1.6.2")
  ...
}

implementação “androidx.compose.ui:ui:1.6.2” – Suporte a ferramentas (visualizações, etc.)

implementação “androidx.compose.material:material:1.6.2” – Suporte ao design de materiais

implementação “androidx.compose.ui:ui-tooling:1.6.2” – Fundação (borda, plano de fundo, caixa, imagem, rolagem, formas, animações etc.)

Agora você deve estar se perguntando por que não há nenhum arquivo XML de layout nos recursos, esse é o poder da programação de IU declarativa. Aqui está a interface do usuário que estamos declarando no arquivo MainActivity.java. Quando abrirmos a classe de atividade, haverá duas janelas: uma é o código e a outra é a visualização do seu código. Você pode alternar entre elas usando os botões disponíveis no canto superior direito.

Agora vamos dar uma olhada no código

MainActivity.kt

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            HelloWorldTheme {
                // A surface container using the 'background' color from the theme
                Surface(color = MaterialTheme.colors.background) {
                    Greeting("Android")
                }
            }
        }
    }
}

@Composable
fun Greeting(name: String) {
    Text(text = "Hello $name!")
}

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
    HelloWorldTheme {
        Greeting("Android")
    }
}

A primeira coisa que podemos notar aqui é que estamos estendendo o ComponentActivity em vez do AppCompactActivity/Activity. De acordo com a documentação do desenvolvedor, ComponentActivity é uma classe básica para atividades que permite a composição de componentes de nível superior.

@Compose – Todas as funções compostas são anotadas com a anotação “@Compose” nesse método. Isso informa ao compilador Compose que sua função deve ser tratada como um componente de IU.

@Preview – Para obter uma visualização ao vivo, precisamos adicionar a tag @Preview antes da tag @Composable e a função deve ter algo para renderizar.

Tentei simplificar o máximo possível essa introdução. Se você descobrir algo útil neste artigo, não se esqueça de enviar um e-mail para some👏🏼