O que há de novo no Flutter 3.13?
Rolagem 2D, gráficos mais rápidos, atualizações do Material 3 e muito mais
Bem-vindo de volta ao nosso lançamento estável trimestral do Flutter, desta vez para o Flutter 3.13! Em apenas três meses desde nosso último lançamento, tivemos 724 pull requests mesclados e 55 membros da comunidade criando seu primeiro commit no Flutter!
Continue lendo para saber mais sobre todas as novas adições e melhorias que a comunidade Flutter contribuiu para este último lançamento!
Motor
Fizemos diversas melhorias no Impeller — nosso novo renderizador gráfico — e adicionamos novas APIs de mecanismo para dispositivos dobráveis.
Impulsor
Melhorias de desempenho do iOS
Graças ao feedback de alta qualidade dos usuários do Flutter, nesta versão continuamos a melhorar o desempenho do Impeller no iOS. Como resultado de muitas otimizações diferentes, o renderizador Impeller no iOS agora não apenas tem latência mais baixa (eliminando completamente a instabilidade de compilação de shader), mas em alguns benchmarks também tem rendimento médio mais alto. Em particular, em nosso benchmark de desempenho de transições de vibração/galeria, o tempo médio de rasterização de quadros é agora cerca de metade do que era com o Skia.
Melhorias no tempo médio de rasterização de quadros no benchmark de desempenho de transições da Flutter Gallery em um iPhone 11. O período de tempo coberto é aproximadamente o tempo desde o corte da ramificação 3.10 até o corte da ramificação 3.13.
Esse progresso foi graças a essas e outras otimizações, incluindo:
- Habilitado gerenciamento de região suja e repintura parcial ( flutter/engine#40959 )
- Implementada codificação de passagem de renderização simultânea ( flutter/engine#42028 )
- Foram feitas inúmeras melhorias na renderização de texto ( flutter/engine#41290 , flutter/engine#41780 , flutter/engine#42417 )
- Adicionado um caminho rápido para formas convexas para evitar chamadas caras de mosaico ( flutter/engine#41834 )
- Começou a usar shaders de computação para algumas operações ( flutter/engine#42192 )
- Seleção mais ansiosa de operações de sorteio fora dos limites ( flutter/engine#41606 )
- Melhorias de fidelidade
- Na versão 3.10, anunciamos que uma ampla gama de cores estava disponível sob uma bandeira ao usar o Impeller. Depois de ouvir e responder aos comentários dos usuários, a ampla gama de cores agora é o padrão no iOS ao usar o Impeller.
Atualização de progresso no Impeller no Android
Continuamos progredindo no back-end do Vulkan para o Impeller, porém ele ainda não atingiu o nível de qualidade em que um período de visualização oficial seria útil. Queremos garantir que a primeira experiência de nossos usuários com o Impeller no Android seja de alta qualidade e ainda não chegamos lá. Esperamos entrar em um período de visualização do Impeller no Android em uma versão estável ainda este ano. Embora o Impeller no Android ainda não esteja pronto para visualização, os back-ends OpenGL e Vulkan se beneficiaram de muitas das otimizações independentes de back-end que fizemos no HAL do Impeller durante o ano passado. Em particular, os tempos médios de rasterização de quadros para Android também melhoraram significativamente no benchmark de desempenho de transições de vibração/galeria. Outras melhorias estão em andamento para que a visualização no Android possa ser de alta qualidade.
Mais uma vez, nosso progresso foi bastante acelerado pelas contribuições da comunidade, em particular do usuário do GitHub ColdPaleLight , que criou vários patches muito apreciados relacionados ao Impeller, melhorando a fidelidade e o desempenho, incluindo a adição de suporte para gradientes cônicos .
Continue acompanhando nosso progresso no Impeller usando o painel do projeto Impeller no GitHub. Agradecemos imensamente todos os comentários e incentivamos os usuários a continuar registrando problemas de fidelidade e desempenho no rastreador de problemas .
Impulsor (e maravilhoso) no macOS
Em nossa última versão estável, anunciamos que o Impeller, uma reescrita do nosso mecanismo de renderização, seria ativado por padrão no iOS. Desde então, ouvimos ótimos comentários dos clientes. Agora, temos o prazer de anunciar que o Impeller para macOS está disponível em versão prévia. Você pode testar o Impeller e ativá-lo em seu aplicativo seguindo as orientações na página do Impeller .
Estamos ansiosos para que você teste isso e forneça feedback. A melhor maneira de nos ajudar a melhorar o Impeller para macOS é estabelecer métricas básicas executando seu aplicativo macOS sem aquecimento SkSL e usar DevTools para encontrar instâncias de instabilidade devido à compilação de shader. Em seguida, teste seu aplicativo usando o Impeller – clique e verifique se há bugs, melhorias de desempenho ou regressões de desempenho. Se você notar algum problema, recomendamos enfaticamente que você o registre no GitHub. Certifique-se de incluir informações sobre o dispositivo em que você está executando, gravações de vídeo e uma exportação do seu rastreamento de desempenho.
Melhores detalhes no link abaixo: