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

Material Components vs Cupertino dentro do MaterialApp?

Bom dia, tudo bem? Fiquei com algumas dúvidas, durante a vídeo aula foi dito que o MaterialApp() envolverá todos os componentes, isso vale tanto para o Material Components e para o Cupertino? Caso não, qual o envólucro do Cupertino? Existe outra opção além do MaterialApp()?

1 resposta
solução!

Bom dia. Existe sim um CupertinoApp e funciona da mesma forma que o MaterialApp. Sobre quando usar cada um, você deve usar o CupertinoApp apenas para o iOS (você pode rodar no Android e em outras plataformas mas as fontes podem não ser renderizadas corretamente). Já o MaterialApp pode ser usado para todas as plataformas (iOS incluso).

Dentro do MaterialApp você pode sim colocar componentes do Cupertino sem nenhum problema. Caso você queira que, por exemplo, um botão tenha o estilo Cupertino no iOS e Material no Android, você pode utilizar Platform.IsAndroid ou Platform.isIOS para saber em qual sistema está rodando. Exemplo real:

// Dentro do build do seu Widget

return Culumn(
        children: [
            Container(
                child: Platform.isIOS
                   ? CupertinoActivityIndicator()
                   : CircularProgressIndicator(),
        ),
      ]
    );

Dessa forma, caso o app esteja rodando no iOS, eu recebo um indicador de progresso no estilo Cupertino. Já no Android recebo um indicador de progresso no estilo Material. Esse é um exemplo real do meu app e eu usei apenas o MaterialApp, mesmo tendo componentes do Cupertino.

Espero ter ajudado.

Rafael.