Dev (Back & Front)ARTIGO

Atualize interfaces no simulador em tempo real (sem SwiftUI)

Interfaces no simulador: 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…

Atualize interfaces no simulador em tempo real (sem SwiftUI)
Imagem: Herlandro Hermogenes

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 iOSiOS38 conteúdosO X do Xamarin Forms – O guia das funcionalidades nativas – Parte 01: iOSDev (Back & Front) · abr 2019Desenvolvedores: Apple libera terceiro beta do iOS 12.4Dev (Back & Front) · mai 201910 bibliotecas que todo desenvolvedor iOS deve substituir ainda em 2024Dev (Back & Front) · out 2024Ver tudo em Dev (Back & Front) , 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.

Artigo original:
https://bit.ly/H2-Medium-202410

Nascido no coração cultural de Minas Gerais, comecei minha carreira como Designer Gráfico, onde percebi o poder da união entre criatividade e tecnologia. Dois anos de voluntariado no Amazonas me mostraram como a tecnologia pode transformar vidas. Em São Paulo, trabalhei em empresas como Capgemini e Rede Globo e fundei uma startup de marketing de proximidade, sempre em busca de soluções inovadoras. Atualmente em Portugal, atuo na Randstad France, liderando projetos de inovação e transformação digital. Sou um colaborador ativo no StackOverflow e GitHub, mentor de novos talentos pela APDList e escrevo sobre tecnologia para um público global. Minha trajetória é guiada pela fé, família, natureza e crossfit, sempre acreditando que a tecnologia, usada com propósito, pode transformar realidades.

Ver perfil