Confira a seguir os novos recursos do Android Studio Iguana.
Versões de patch
Esta é uma lista das versões de patch do Android Studio Iguana e do Plug-in do Android para Gradle 8.3.
Android Studio Iguana | 2023.2.1 Patch 2 e AGP 8.3.2 (abril de 2024)
Esta atualização secundária inclui estas correções de bugs.
Android Studio Iguana | 2023.2.1 Patch 1 e AGP 8.3.1 (março de 2024)
Esta atualização secundária inclui estas correções de bugs.
Atualização da plataforma IntelliJ IDEA 2023.2
O Android Studio Iguana inclui as atualizações do IntelliJ IDEA 2023.2, que melhoram a experiência do ambiente de desenvolvimento integrado do Studio. Para mais detalhes sobre as mudanças, consulte as notas da versão do IntelliJ IDEA 2023.2 (link em inglês).
Integração do sistema de controle de versão nos insights de qualidade do app
Agora, os Insights de qualidade do app permitem navegar de um stack trace do Crashlytics para o código relevante no momento em que a falha ocorreu. O AGP anexa dados de hash de confirmação do git aos relatórios de falhas, o que ajuda o Android Studio a navegar até o código e mostrar como ele estava na versão em que o problema ocorreu. Ao visualizar um relatório de falha no App Quality Insights, você pode navegar até a linha de código no seu git checkout atual ou conferir uma diferença entre o checkout atual e a versão da base de código que gerou a falha.
Para integrar seu sistema de controle de versões ao App Quality Insights, você precisa atender aos seguintes requisitos mínimos:
- Versão canário mais recente do Android Studio Iguana
- Versão Alfa mais recente do Plug-in do Android para Gradle 8.3
- SDK do Crashlytics v18.3.7 ou a Lista de materiais do Firebase para Android v32.0.0
Para usar a integração do controle de versões em um tipo de build depurável, ative a
flag vcsInfo
no arquivo de build do módulo. Para builds de lançamento (não depuráveis),
a flag é ativada por padrão.
Kotlin
android { buildTypes { getByName("debug") { vcsInfo { include = true } } } }
Groovy
android { buildTypes { debug { vcsInfo { include true } } } }
Agora, quando você cria e publica seu app no Google Play, os relatórios de falha incluem os dados necessários para que o ambiente de desenvolvimento integrado (IDE, na sigla em inglês) se conecte a versões anteriores do app no stack trace.
Conferir as variantes de falha do Crashlytics nos Insights de qualidade do app
Para ajudar a analisar as causas raiz de um crash, agora você pode usar os Insights de qualidade do app para conferir eventos por variantes de problemas ou grupos de eventos que compartilham rastreamentos de pilha semelhantes. Para conferir os eventos em cada variante de um relatório de erros, selecione uma variante no menu suspenso. Para agregar informações de todas as variantes, selecione Todas.
Verificação da interface do Compose
Para ajudar os desenvolvedores a criar interfaces mais adaptáveis e acessíveis no Jetpack Compose, o Android Studio Iguana Canary 5 introduziu um novo modo de verificação de interface na visualização do Compose. Esse recurso funciona de forma semelhante ao lint visual e às verificações de integração de acessibilidade para visualizações. Quando você ativa o modo de verificação da interface do Compose, o Android Studio audita automaticamente a interface do Compose e verifica problemas de adaptação e acessibilidade em diferentes tamanhos de tela, como texto esticado em telas grandes ou baixo contraste de cores. O modo destaca os problemas encontrados em diferentes configurações de visualização e os lista no painel de problemas.
Teste esse recurso clicando no botão de verificação da interface na visualização do Compose e envie seu feedback:
Problemas conhecidos do modo de verificação da interface:
- O problema selecionado no painel de problemas pode perder o foco.
- A regra "Suprimir regra" não funciona
Renderização progressiva para a visualização do Compose
O Android Studio Iguana Canary 3 apresenta a renderização progressiva na prévia do Compose. Como parte de um esforço contínuo para tornar as visualizações mais eficientes, agora para qualquer visualização que esteja fora da tela, diminuímos intencionalmente a qualidade de renderização para economizar memória usada.
Esse recurso foi desenvolvido com o objetivo de melhorar ainda mais a usabilidade das visualizações, permitindo processar mais visualizações ao mesmo tempo em um arquivo. Teste o recurso hoje mesmo e envie seu feedback.
Assistente de módulo de perfis de referência
No Android Studio Iguana, você pode gerar perfis de referência para o app usando o modelo Baseline Profile Generator no assistente de novo módulo (File > New > New Module).
Esse modelo configura seu projeto para oferecer suporte a perfis de referência. Ele usa o novo plug-in do Gradle para perfis de referência, que automatiza o processo de configuração do projeto da maneira necessária com uma tarefa do Gradle.
O modelo também cria uma configuração de execução que permite gerar um perfil de referência com um clique na lista suspensa Select Run/Debug Configuration.
Testar mudanças de configuração com a API Espresso Device
Use a API Espresso Device para testar seu app quando o dispositivo passa por mudanças de configuração comuns, como rotação e desdobramento da tela. A API Device do Espresso permite simular essas mudanças de configuração em um dispositivo virtual e executa os testes de forma síncrona, para que apenas uma ação ou declaração de IU aconteça por vez e os resultados do teste sejam mais confiáveis. Saiba mais sobre como escrever testes de IU com o Espresso.
Para usar a API Espresso Device, você precisa do seguinte:
- Android Studio Iguana ou mais recente
- Plug-in do Android para Gradle 8.3 ou mais recente
- Android Emulator 33.1.10 ou mais recente
- Um dispositivo virtual Android que executa o nível 24 da API ou mais recente
Configurar o projeto para a API Espresso Device
Para configurar seu projeto para oferecer suporte à API Espresso Device, faça o seguinte:
Para permitir que o teste transmita comandos ao dispositivo de teste, adicione as permissões
INTERNET
eACCESS_NETWORK_STATE
ao arquivo de manifesto no conjunto de origemandroidTest
:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
Ative a sinalização experimental
enableEmulatorControl
no arquivogradle.properties
:android.experimental.androidTest.enableEmulatorControl=true
Ative a opção
emulatorControl
no script de build do módulo:Kotlin
testOptions { emulatorControl { enable = true } }
Groovy
testOptions { emulatorControl { enable = true } }
No script de build do módulo, importe a biblioteca Espresso Device para seu projeto:
Kotlin
dependencies { androidTestImplementation("androidx.test.espresso:espresso-device:3.6.1") }
Groovy
dependencies { androidTestImplementation 'androidx.test.espresso:espresso-device:3.6.1' }
Testar com mudanças de configuração comuns
A API Espresso Device tem várias orientações de tela e estados dobráveis que você pode usar para simular mudanças na configuração do dispositivo.
Testar a rotação da tela
Confira um exemplo de como testar o que acontece com o app quando a tela do dispositivo gira:
Primeiro, para um estado inicial consistente, defina o dispositivo no modo retrato:
import androidx.test.espresso.device.action.ScreenOrientation import androidx.test.espresso.device.rules.ScreenOrientationRule ... @get:Rule val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
Crie um teste que defina o dispositivo para a orientação paisagem durante a execução dele:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) ... }
Depois que a tela girar, verifique se a interface se adapta ao novo layout conforme o esperado:
@Test fun myRotationTest() { ... // Sets the device to landscape orientation during test execution. onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE) composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist() }
Testar contra a abertura da tela
Confira um exemplo de como testar o que acontece com seu app se ele estiver em um dispositivo dobrável e a tela for aberta:
Primeiro, chame
onDevice().setClosedMode()
para testar o dispositivo no estado dobrado. Confira se o layout do app se adapta à largura da tela compacta:@Test fun myUnfoldedTest() { onDevice().setClosedMode() composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed() composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist() ... }
Para fazer a transição para um estado totalmente desdobrado, chame
onDevice().setFlatMode()
. Verifique se o layout do app se adapta à classe de tamanho expandida:@Test fun myUnfoldedTest() { onDevice().setClosedMode() ... onDevice().setFlatMode() composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed() composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist() }
Especificar quais dispositivos são necessários para os testes
Se você estiver executando um teste que realiza ações de dobramento em um dispositivo que não é
dobrável, o teste geralmente falha. Para executar apenas os testes relevantes
para o dispositivo em execução, use a anotação @RequiresDeviceMode
. O executor de testes
pula automaticamente os testes em dispositivos que não oferecem suporte à
configuração que está sendo testada. É possível adicionar a regra de requisito do dispositivo a cada teste
ou a uma classe de teste inteira.
Por exemplo, para especificar que um teste só pode ser executado em dispositivos que oferecem suporte
à abertura para uma configuração plana, adicione o seguinte código @RequiresDeviceMode
ao teste:
@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
...
}