Нативные приложения с Flutter и React Native?

Попав на сайт Flutter, вы найдете цитату Создавайте красивые нативные приложения в рекордно короткие сроки и на сайте React Native Создавайте нативные мобильные приложения с помощью JavaScript и React.

Обе платформы обещают нативные приложения? Посмотрим, как это возможно.

Означает ли это, что вы сможете отказаться от ObjC / Swift и Java / Kotlin и просто написать то же самое на JavaScript (React Native) или Dart (Flutter)? Нет, дело не в этом. Это правда, что в зависимости от приложения, которое вы собираетесь создать, вам может не понадобиться писать код для конкретной платформы. Но не это причина, по которой они утверждают, что вы можете создавать собственные приложения.

У каждой из этих платформ есть разные причины, по которым они говорят, что вы можете создать собственное приложение.

Сначала давайте посмотрим на React Native. Даже если вы пишете код JavaScript, WebView не используется. Вместо этого каждый компонент пользовательского интерфейса (так его называют в React) отображается на собственный виджет.

React Native взаимодействует с платформой с помощью так называемого «моста», чтобы указать, какие виджеты и как следует использовать. Таким образом вы получите приложение, состоящее только из нативных виджетов, а значит, это нативное приложение.

Благодаря этой «системе сопоставления» вы также можете взять любой существующий компонент Android или iOS и использовать его в своем приложении React Native. Это в основном используется для некоторых сложных компонентов пользовательского интерфейса, которые могут вызвать проблемы с производительностью, если будут реализованы непосредственно в React Native (из-за моста).

Flutter позволяет избежать проблем с производительностью, вызванных мостом, за счет использования скомпилированного языка программирования - Dart. Dart поддерживает предварительную компиляцию AOT в собственный код ARM. Это также сокращает время запуска приложения.

Несмотря на то, что Dart скомпилирован для производственных сборок, он также поддерживает JIT-компиляцию (точно в срок) для быстрых итераций разработки. (В следующей статье мы узнаем, чем это полезно.)

Вас устраивает такое объяснение? Для получения дополнительной информации посетите Сайт React Native или Часто задаваемые вопросы по Flutter. Или, если у вас есть вопросы, оставьте комментарий ниже.