Desenvolvimento de código iterativo

Como desenvolvedor para dispositivos móveis, você geralmente desenvolve a interface do seu app passo a passo, em vez do que desenvolver tudo de uma vez. O Android Studio adota essa abordagem o Jetpack Compose, que oferece ferramentas que não exigem um build completo para inspeção; modificar valores e verificar o resultado final.

Edição em tempo real

A Edição em tempo real permite atualizar elementos combináveis em emuladores e de dispositivos físicos em tempo real. Essa funcionalidade minimiza as mudanças de contexto entre a programação e a criação do app, permitindo que você se concentre em escrever o código por mais tempo sem interrupções.

A Edição em tempo real tem três modos:

  • Manual: as alterações de código são aplicadas quando são enviadas manualmente usando Control + ' (Command + ' no macOS)
  • Manual ao salvar: as alterações de código são aplicadas quando são salvas manualmente usando Control + S (Command + S no macOS).
  • Automática: as mudanças são aplicadas no dispositivo ou emulador quando você atualiza um função combinável.

O recurso de Edição em tempo real se concentra em mudanças no código relacionadas a IU e UX. Ele não oferece suporte a mudanças como atualizações de assinatura de método, adição de novos métodos ou mudanças na hierarquia de classes. Para saber mais, consulte a lista de Limitações do recurso Edição em tempo real.

Esse recurso não substitui a criação e execução do app ou o recurso Aplicar mudanças. Em vez disso, ele foi projetado para otimizar o fluxo de trabalho durante a criação, implantação e iteração para desenvolver a interface do Compose.

Confira as práticas recomendadas de fluxo de trabalho:

  1. Configure o aplicativo para que ele possa ser executado.
  2. Use a Edição em tempo real o máximo possível, até que seja necessário fazer uma mudança sem suporte desse recurso. Por exemplo: adicionar novos métodos enquanto o app estiver em execução.
  3. Depois de fazer uma mudança sem suporte, clique em Run Executar
ícone para reiniciar no app e retomar a Edição em tempo real.

Como fazer a Edição em tempo real

Para começar, siga estas etapas para criar uma atividade vazia do Compose: ative Use a Edição em tempo real para fazer mudanças no projeto.

Configurar o novo projeto

  1. Antes de começar, verifique se você tem o Android Studio Giraffe ou uma versão mais recente. instalado e se o nível da API do seu ambiente dispositivo ou emulador for pelo menos 30.

  2. Abra o Android Studio e selecione New Project no pop-up Welcome to Android Studio. Se você já tem um projeto aberto, crie uma em Arquivo > Novo > Novo projeto.

  3. Escolha o modelo Empty Compose Activity para Phone and Tablet e clique em Next.

    Seleção de modelos no Android Studio
    Figura 1. Modelos disponíveis. Na Edição em tempo real, selecione Empty Compose Activity.
  4. Preencha a caixa de diálogo New Project com as informações necessárias: nome, nome do pacote, local para salvar, SDK mínimo e idioma de configuração do build.

    Exemplo de configurações do projeto da etapa 4 inseridas no Android Studio
    Figura 2. Exemplos de configurações do projeto.
  5. Clique em Finish.

Ativar o recurso Edição em tempo real

  1. Acesse as configurações para ativar a Edição em tempo real.

    • No Windows ou no Linux, acesse File > Settings > Editor > Live Edit.
    • No macOS, acesse Android Studio > Settings > Editor > Live Edit.
  2. Selecione a opção Live Edit e o modo que você quer executar nas configurações.

    No modo manual, as alterações de código são enviadas sempre que você pressiona Control + ' (Command + ' no macOS). Modo manual ativado salvar, as alterações no código são aplicadas sempre que você salva manualmente, Use Control + S (Command + S na macOS). No modo automático, as alterações de código são aplicadas no dispositivo ou emulador enquanto você faz as alterações.

    IU da caixa de seleção da Edição em tempo real nas configurações do Android Studio
    Figura 3. Configurações da Edição em tempo real.
  3. No editor, abra o arquivo MainActivity, que é o ponto de entrada do app.

  4. Clique em Run Botão da interface para implantar o app.

  5. Depois que você ativa a Edição em tempo real, a marca de seleção verde Atualizado aparece na No canto superior direito da janela de ferramentas Running Devices:

    interface da marca de seleção verde da Edição em tempo real

Fazer e revisar mudanças

À medida que você faz mudanças com suporte no editor, o dispositivo de teste virtual ou físico é atualizado automaticamente.

Por exemplo, edite o método Greeting existente em MainActivity para a seguinte:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

As mudanças feitas aparecem instantaneamente no dispositivo de teste, conforme mostrado na Figura 4.

Mudanças feitas no método de saudação mostradas em um dispositivo
Figura 4. O dispositivo de teste que mostra as mudanças da Edição em tempo real no método Greeting.

Resolver problemas do recurso Edição em tempo real

Se as edições não aparecerem no dispositivo de teste, talvez o Android Studio tenha falhado para atualizar suas edições. Verifique se o indicador "Edição em tempo real" mostra Desatualizado, conforme mostrado na Figura 5, que indica um erro de compilação. Para saber mais sobre o erro e receber sugestões para resolvê-lo, clique no indicador.

Ícone "out of date" da Edição em tempo real
Figura 5. Indicador de status da Edição em tempo real.

Limitações do recurso Edição em tempo real

Veja abaixo uma lista das limitações atuais.

  • [Aplicável apenas ao Android Studio Giraffe e versões mais recentes] A Edição em tempo real requer o Compose Runtime. versão 1.3.0 ou mais recente. Se o projeto usa uma versão anterior do Compose, a Edição em tempo real é desativado.

  • [Aplicável apenas ao Android Studio Giraffe e versões mais recentes] A Edição em tempo real requer o AGP 8.1.0-alpha05 ou mais alto. Caso seu projeto use uma versão anterior do AGP, a Edição em tempo real é desativada.

  • A Edição em tempo real exige um dispositivo físico ou emulador que esteja executando o nível da API 30 ou mais.

  • A Edição em tempo real só oferece suporte à edição de um corpo de função, ou seja, não é possível mudar o nome ou a assinatura da função, adicionar ou remover uma função ou mudar campos que não sejam de função.

  • A Edição em tempo real redefine o estado do app na primeira vez que você muda uma função do Compose. um arquivo. Isso só acontece após a primeira mudança de código. O estado do app não é redefinidas por mudanças de código subsequentes feitas nas funções do Compose nesse arquivo.

  • As classes modificadas na Edição em tempo real podem ter problemas de performance. Execute seu e use um build de lançamento limpo se estiver avaliando a compatibilidade e desempenho do seu app.

  • É necessário executar uma execução completa para que o depurador funcione nas classes modificados com a Edição em tempo real.

  • Um app em execução pode falhar quando você usa a Edição em tempo real. Se isso acontecer, você pode reimplantar o app com o botão Run Botão da
interface.

  • A Edição em tempo real não faz nenhuma manipulação de bytecode definida no seu do arquivo de build do projeto, por exemplo, manipulação de bytecode que seria são aplicadas quando o projeto é criado usando as opções do menu Build ou clicando nos botões Build ou Run.

  • As funções não combináveis são atualizadas em tempo real no dispositivo ou emulador, e uma a recomposição completa é acionada. A recomposição completa pode não invocar a função atualizada. Para funções não combináveis, é necessário acionar as funções recém-atualizadas ou executar o app novamente.

  • A Edição em tempo real não é retomada após a reinicialização do app. Execute o app novamente.

  • A Edição em tempo real só oferece suporte a processos depuráveis.

  • A Edição em tempo real não oferece suporte a projetos que usam valores personalizados para moduleName em kotlinOptions na configuração do build.

  • A Edição em tempo real não funciona com implantações múltiplas. Isso significa que não é possível implantar em um dispositivo e depois em outro. A Edição em tempo real só está ativa nestes dispositivos o último conjunto de dispositivos em que o app foi implantado.

  • A Edição em tempo real funciona com implantações em vários dispositivos dispositivos criados em Selecionar vários dispositivos no destino lista suspensa de dispositivos. No entanto, ele não tem suporte oficial e pode haver problemas. Se você tiver problemas, envie uma denúncia.

  • Esse recurso não é compatível com a Edição em tempo real e exigem a reinicialização do app em execução.

  • No momento, a Edição em tempo real não oferece suporte a projetos do Android Automotive.

Perguntas frequentes sobre o recurso Edição em tempo real

  • Qual é o status atual da Edição em tempo real?

    A Edição em tempo real está disponível no Android Studio Giraffe. Para ativar, faça o seguinte: Acesse Arquivo > Configurações > Editor > Edição em tempo real (Android Studio > Configurações > Editor > Edição em tempo real no macOS).

  • Quando usar a Edição em tempo real?

    Use a Edição em tempo real quando quiser conferir rapidamente o efeito das atualizações na UX elementos (como atualizações de modificadores e animações) no app geral do usuário.

  • Quando devo evitar usar a Edição em tempo real?

    O recurso de Edição em tempo real se concentra em mudanças no código relacionadas a IU e UX. Não suporta alterações, como atualizações de assinatura de métodos, adição de novos métodos ou mudanças na hierarquia. Para mais informações, consulte Limitações da transmissão ao vivo Editar.

  • Quando usar a visualização do Compose?

    Use a Visualização do Compose ao desenvolver elementos combináveis. Visualizar visualiza os elementos do Compose e é atualizado automaticamente para exibir o o efeito das alterações de código. A visualização também suporta a visualização de elementos da interface em diferentes configurações e estados, como tema escuro, localidades e fonte escala.

Edição em tempo real de literais (descontinuado)

O Android Studio pode atualizar, em tempo real, literais constantes usados em elementos combináveis nas visualizações, no emulador e no dispositivo físico. Veja alguns tipos compatíveis:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Vídeo do usuário mudando literais no código-fonte e na visualização
atualizando
dinamicamente

É possível visualizar literais constantes que acionam atualizações em tempo real sem o de compilação ativando decorações literais com a Edição em tempo real do indicador de interface literal:

Ativando a edição em tempo real de
Literais

Apply Changes

Apply Changes permite atualizar código e recursos sem precisar reimplantar o app em um emulador ou dispositivo físico, limitações).

Sempre que você adicionar, modificar ou excluir elementos combináveis, poderá atualizar o app sem sem precisar reimplantá-lo clicando no botão Apply Code Changes:

Usuário clicando em "Aplicar alterações"
botão