É provável que o Flutter substitua o Java para o desenvolvimento de aplicações Android? Artboard
[Resposta actualizada em Fevereiro de 2018]
tl;dr Provavelmente não.
Background: Eu sou o líder técnico para uma aplicação móvel interna no Google. Nossa audiência está principalmente em telefones Android, então desenvolvemos nossa versão atual lançada na plataforma nativa Android. Quando começamos a pensar no desenvolvimento do iOS, Flutter era um forte competidor para nós. Construímos um protótipo em 2016 e agora o nosso aplicativo está em produção via Flutter tanto no iOS quanto no Android há um ano. Os usuários nem notaram.
Overdict: O Flutter é fantástico. Ficamos tão impressionados com ele que assumi o papel de construir uma infra-estrutura para aplicações Flutter dentro do Google.
Porquê?
Produtividade: Levou-nos cerca de 3 meses com 3 engenheiros para chegarmos à nossa versão 1 para o Android nativo. Levou 1 engenheiro 3 meses para chegar à versão 1 do Flutter em cerca de 1/3 do código que escrevemos para o Android.
Cross Platform Performance: É realmente bastante nativo no iOS e Android. A maioria das pessoas que eu mostrei o protótipo para não acreditar que o aplicativo não era nativo.
Flutter é muito diferente de uma boa maneira. Dart se sente mais parecido com Java do que com JS. Segundo, por enquanto não há linguagem de templates, então você constrói sua IU aninhando widgets. No início, isto parece estranho mas você percebe que faz todo o sentido e reduz a quantidade de troca de contexto entre a lógica e o template. Na verdade, todo o seu aplicativo é um "widget".
É fácil construir aplicativos de alto desempenho com o Flutter. Flutter guia você para se acostumar com bons padrões, como composição e desenvolvimento reativo. Isto paga dividendos à medida que o seu aplicativo cresce.
Não importa quantas pessoas na sua equipe ou qual é o seu alvo, Flutter é uma ótima opção para ter uma base de código. Tente codificar em Dart por um tempo e veja se você gosta. Não é muito diferente de tentar Swift ou Kotlin.
...
Mas substituirá o desenvolvimento nativo?
Não é provável. Eu acho que uma revolução maior é necessária.
Apenas os dispositivos se tornam rápidos o suficiente para que você possa construir interações de design de materiais em um site móvel, Flutter (ou qualquer aplicativo nativo) não tem chance contra webapps progressivos. É incrivelmente atraente pegar seu conhecimento existente na web FE e apenas criar um site que possa ser ancorado na tela inicial, carrega instantaneamente, funciona offline e funciona como um aplicativo nativo enquanto fornece uma experiência quase sem atritos para novos usuários.
[O último bastião dos proponentes de aplicativos nativos foi o iOS que, por muito tempo, se opôs à idéia de suportar PWAs. No entanto, a partir de agosto de 2017, eles estão entrando a bordo apoiando os prestadores de serviços e provavelmente outros recursos.]