Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas sobre NavigationLink

Eu tenho uma dúvida quanto ao navigationLink implementado na SignInView e SignUpView. Por colocar um navigationLink de uma tela para a outra (SignInView -> SignUpView -> SignInView -> SingUpView...), isso pode ser um problema para a performance do aplicativo? Pois na minha cabeça, o app fica carregando e armazenando view infinitas, ocupando mais memória do dispositivo. Isso acontece de fato?

No meu caso, eu preferi colocar um dismiss na tela, seria correto fazer dessa forma? No lugar do navigationLink, eu fiz o seguinte:

struct SignUpView: View {
    @Environment(\.dismiss) private var dismiss
    ... 
    ...
              Button(action: {
                    dismiss()
                }, label: {
                    Text("Já possui uma conta? Faça o login.")
                        .bold()
                        .foregroundStyle(.accent)
                        .frame(maxWidth: .infinity, alignment: .center)
                })

O commit aqui se ficar mais fácil: https://github.com/xDhii/VollMed-Crud/commit/93c96a2c99d89a4a0646d4d1fc078967a58733d8

1 resposta
solução!

Sim, a utilização excessiva de NavigationLinks podee afetar o desempenho, principalmente se houver mts navegações encadeadas, como no exemplo que você deu (SignInView -> SignUpView -> SignInView -> SignUpView...). Isso pode aumentar o consumo de memória do dispositivo, já que cada nova view é adicionada à hierarquia de views e mantida em memória até que seja descartada.

Masss SwiftUI é inteligente o suficiente para otimizar a renderização de views e gerenciar a memória de forma eficiente. Ele usa um sistema de "pilha de views" para controlar a navegação, onde as views são empilhadas e removidas conforme necessário.

Então usar o dismiss é uma boa saída :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software