iOS

29 out, 2024

Atualize interfaces no simulador em tempo real (sem SwiftUI)

Publicidade

Descubra uma técnica avançada para alterar a aparência do seu app iOS em tempo real, sem recompilar e aproveitando ao máximo o poder do LLDB, ideal para quem ainda trabalha com UIKit.

Interfaces no simulador

No desenvolvimento iOS, especialmente ao trabalhar com projetos baseados em UIKit, há momentos em que precisamos fazer pequenos ajustes na interface durante a depuração, sem reiniciar o simulador ou o aplicativo. Isso pode ser feito facilmente usando o LLDB, uma poderosa ferramenta de depuração do Xcode.

Neste guia, vou mostrar como você pode atualizar a cor de fundo (backgroundColor) de uma UIView em tempo de execução, usando LLDB e a main thread. Essa técnica é especialmente útil para projetos que ainda não migraram para o SwiftUI, onde a visualização e o layout dinâmicos são muito mais fáceis de gerenciar.

O Problema das interfaces no simulador

Mudar a interface de um aplicativo durante o desenvolvimento geralmente requer recompilar ou reiniciar o simulador, o que pode ser demorado. O LLDB permite que façamos essas alterações diretamente no simulador, facilitando a interação durante o desenvolvimento de interfaces com UIKit.

2. Configurando um Breakpoint

  1. Execute o projeto no simulador.
  2. Defina um breakpoint na linha onde a cor de fundo é definida (view.backgroundColor = UIColor.green).

O Xcode irá pausar a execução do aplicativo assim que o breakpoint for atingido.

3. Usando o LLDB

Com o simulador pausado no breakpoint, podemos agora usar o LLDB para mudar a cor de fundo da view diretamente, sem precisar reiniciar o simulador. O truque aqui é lembrar que qualquer atualização na interface precisa ocorrer na main thread. No console do LLDB, execute o seguinte comando:

Aqui, estamos garantindo que a alteração ocorra na thread principal, usando DispatchQueue.main.async. Isso evita problemas comuns com manipulação da interface em threads de background.

4. Retomando a Execução

Após rodar o comando acima no LLDB, a cor de fundo da UIView no simulador mudará imediatamente para azul. Você pode agora continuar a execução do aplicativo pressionando o botão “Continue” no Xcode ou executando o comando:

Isso lhe permite iterar rapidamente sobre mudanças na UI, testando diferentes cores ou propriedades visuais sem a necessidade de recompilar ou reiniciar o aplicativo.

Dicas Extras

  • Esse método pode ser usado para alterar qualquer propriedade de UI dinamicamente, como o texto de um UILabel ou a imagem de um UIImageView.
  • Embora o LLDB seja uma ferramenta poderosa, lembre-se de que alterações feitas desta forma são temporárias e não persistem após a reinicialização do aplicativo.

Conclusão

Este guia mostra como o LLDB pode ser uma ferramenta extremamente útil para desenvolvedores que trabalham com UIKit e precisam depurar ou alterar elementos de interface em tempo de execução. Com essa técnica, é possível iterar rapidamente durante o processo de desenvolvimento, economizando tempo e aumentando a produtividade.