• Inconsistência: Diferentes recursos nativos, ou diferentes equipes de
desenvolvimento desenvolvendo recursos de maneiras ligeiramente diferentes, podem
levar a inconsistências entre aplicativos, incomodando os usuários e tornando o diagnóstico de relatórios de bugs mais complicado. Flutter não é a primeira tentativa de criar uma única base de código e existem frameworks disponíveis que têm promessas semelhantes. No entanto, eles podem sofrer algumas desvantagens sérias: • Desempenho: algumas estruturas usam soluções alternativas para permitir consistência da experiência do usuário entre plataformas. Uma delas é ter efetivamente uma página da Web em execução dentro de um aplicativo nativo usando um webview (um navegador da Web integrado). Isso tende a ter um desempenho muito pior do que os aplicativos nativos, levando a uma experiência do usuário ruim. • Restrições de design: algumas estruturas são baseadas em linguagens que foram projetadas antes da criação da experiência móvel. Isso pode significar que eles não são bem projetados para determinadas interações do usuário ou determinados recursos do dispositivo, levando a códigos complicados ou obscuros e aos problemas de manutenção inerentes que isso pode causar. • Não é bem uma base de código: embora alguns frameworks sugiram uma abordagem de base de código única para o desenvolvimento de aplicativos, depois de entrar nos detalhes, você descobre que ainda precisa escrever algum código específico da plataforma, o que causa duplicação de código e permite bugs de plataforma única para se infiltrar. Agora vamos ver como o Flutter combate esses problemas. Alta performance No momento, é difícil dizer que o desempenho do Flutter é sempre melhor na prática do que outros frameworks, mas é seguro dizer que seu objetivo é ser. Por exemplo, sua camada de renderização foi desenvolvida com uma alta taxa de quadros em mente. Como veremos na seção de renderização do Flutter, algumas das estruturas existentes dependem da renderização de JavaScript e HTML, o que pode causar sobrecarga no desempenho porque tudo é desenhado em uma visualização da web (um componente visual como um navegador da web). Alguns usam widgets de fabricante de equipamento original (OEM), mas contam com uma ponte para solicitar a API do SO para renderizar os componentes, o que cria um gargalo no aplicativo porque precisa de uma etapa extra para renderizar a interface do usuário (UI). Consulte a seção de renderização do Flutter para obter mais detalhes da abordagem de renderização do Flutter em comparação com outras. Alguns pontos que tornam o desempenho do Flutter ótimo são os seguintes: • Flutter possui os pixels: Flutter renderiza o aplicativo pixel por pixel (veja a próxima seção), interagindo diretamente com o motor gráfico Skia. • Sem camadas extras ou chamadas adicionais à API do SO: Como o Flutter é o proprietário da renderização do aplicativo, ele não precisa de chamadas adicionais para usar os widgets OEM, portanto, não há gargalos. • Flutter é compilado para código nativo: Flutter usa o compilador Dart AOT para produzir código nativo. Isso significa que não há sobrecarga na configuração de um ambiente para interpretar o código Dart em tempo real, e ele é executado como um aplicativo nativo, iniciando mais rapidamente do que estruturas que precisam de algum tipo de interpretador. 1. Full control of the UI