У Флатера упор на анимации, у React Native тоже есть анимация но у флатера она гораздо удобнее, там больше возможностей и делается она проще. Но «паровозный» код флаттера мне лично не нравится и хуже читается чем у RN.
Это значит — если тот, кто писал этот код уволиться или что-то иное, то команда не сможет завершить этот проект адекватно или за адекватные сроки, т.к. этот код будет непонятным, не очевидным, не поддерживаемым.
Иными словами если с первой попытки проект не вывести в прод, до тех пор пока тот кто его делал с начала не уволится, то шанс его вывести в прод будет крайне мал)
Ну что значит проект не можно будет завершить? На любом языке можно написать тонны макарон и паровозов. Чтобы не было длинных паровозов нужно выделять код в отдельные функции/виджеты. И в Dart-е никто же не отменял нормальных практик написания кода.
Под Android это выглядит как нативное приложение на Java/Kotlin с одной Activity, в которой либа на Flutter рисует весь интерфейс. Эта либа компилится под конкретную архитектуру процессора при помощи NDK и подключенная через JNI.
С одной стороны это надстройка над Java, с другой стороны работает быстро как системные библиотеки.
Рисование производится при помощи SKIA, которая используется в том числе и самим Android для рисования интерфейса.
Больше на 5 метров? У меня Hello World на iOS собирается либо в 56 Мб в отладочной версии, либо в 13 Мб для финальной. Плюс после десятка запусков «данные приложения» распухли до 6 Мб.
На досуге как-то посмотрел флаттер (основное занятие у меня — это android и kotlin) — так вот весьма понравилось мне. По тьюториалам, конечно, сложно судить, но то, что я видел и пробовал, очень неплохо. Понравилось, как работают с состояниями и как изменения в состояниях рендерится на UI.
Длинный код (всё описание view в коде) с непривычки — да, необычно. Можно нагородить нечитаемых вещей. Но, как я понимаю, в Compose будет примерно так же.
Что такое Flutter и почему вы должны изучать его в 2020 году