Обзор
Что такое флаттер? Flutter — это набор кроссплатформенных фреймворков пользовательского интерфейса с открытым исходным кодом, запущенных Google, которые могут быстро создавать высококачественные нативные пользовательские интерфейсы для Android, iOS и веб-платформ. В последние два года частота обновлений Flutter довольно высока, и многие компании начали использовать его для разработки кроссплатформенных приложений.Можно сказать, что не будет преувеличением назвать Flutter самой популярной кроссплатформенной технологией. в 2019. .
Как ветеран мобильного Интернета, я изучал кроссплатформенные технологии, такие как Hybrid APP, React Native и Weex, и мне посчастливилось опубликовать соответствующие книги. Что касается Flutter, я считаю, что Flutter, несомненно, является лучшим решением для кроссплатформенной разработки на данный момент, как с точки зрения сообщества и активности сообщества, так и с точки зрения технологии.
В Китае, в дополнение к крупным фабрикам, таким как Alibaba, Tencent и Meituan, многие малые и средние команды в Китае также начали использовать Flutter в качестве первого выбора для разработки мобильных приложений, и многим компаниям также требуется опыт работы с Flutter. Развитие мобильного рекрутмента. Так как же Apple относится к новинке Flutter? Будет ли он заблокирован в будущем, как и предыдущий JSPatch и так далее.
RN, Weex, мини-программа
Во-первых, давайте познакомимся с RN и Weex. RN и Weex фактически используют схожие технические решения, то есть обе используют JavaScript в качестве языка программирования, а затем преобразуют их в компоненты нативной платформы через промежуточный слой, а затем используют движок рендеринга нативной платформы для выполнения операций рендеринга. . И все они являются студентами, которые ожидают, что команда по развитию бизнеса может разработать набор кода для многоцелевого использования, а также стремиться к кросс-платформенным возможностям, выполняя эту программу, она также имеет динамические возможности.
Что касается самого динамического аспекта, существует определенный риск аудита.Здесь четко указано, что он не соответствует требованиям.Пожалуйста, обратитесь к пункту правила аудита 2.5.2 Apple о динамическом аудите, но риск RN и Weex не так велик, как что JSPatch, поэтому Apple также Открыть один глаз и закрыть другой.
Решения для оперативного исправления, такие как JSPatch в прошлом, позволяли разработчикам вызывать любой собственный код на языке JS с помощью базовых операций, что напрямую приводило к возможности обширных изменений в приложении пользователя после проверки Apple, что сделало бы механизм проверки Apple. бесполезный. Представьте, что ваше приложение, которое на первый взгляд является новостным, после одобрения превращается в приложение другого типа. Apple., что является серьезной причиной для блокировки JSPatch.
RN и Weex Apple предлагает не защищать, а не обещать не блокировать. Насколько я понимаю, Apple относится к таким решениям с относительно низким уровнем риска, чтобы подождать и посмотреть. Не решается блокировать, если страница динамически изменяется через этот тип технологии в течение рассматриваемого периода, она, скорее всего, будет напрямую отклонена.
Что касается апплета, то он фактически является расширением стандартизации синтаксиса разработки оффлайн-пакета H5. У него есть кроссплатформенные и динамические возможности. Судя по текущему настрою Apple, пока он не заходит слишком далеко, он в настоящее время возможно Да, особенно сейчас, когда основные платформы придумали свои собственные мини-программные решения и открытые платформы, мы не можем убить все эти приложения.
Flutter
Самая большая разница между Flutter и RN, Weex и Mini Programs заключается в том, что Flutter — это кроссплатформенное, а не динамическое решение. Если вы прочитаете введение во Flutter, то обнаружите, что Flutter напрямую использует движок skia для рендеринга представлений, а виджет Flutter построен с использованием современной адаптивной среды, которая не имеет прямого отношения к платформе.
С точки зрения технической реализации, Flutter напрямую компилируется в нативную библиотеку (libflutter.so) через NDK, то есть выполнение Flutter является выполнением AOT (статическая компиляция), а не JIT (компиляция точно в срок), и там не проблема в производительности. В реальной производительности это также лучше, чем эффективность нативного JIT-состояния Android.Характеристики нативных библиотек также делают Flutter неспособным к горячему обновлению. И такие вещи, как JSPatch, похожий на встроенный в Android фреймворк для исправлений Tinker, влияют на эффективность компиляции, особенно на скорость запуска. Из соображений удобства пользователей он определенно будет заблокирован, и Google Play делает то же самое в этом отношении.
В настоящее время, с точки зрения тенденции развития Flutter, Google хочет сделать Flutter новым поколением стандартов разработки мобильных терминалов и будет учитывать вопросы соответствия при любых действиях, поэтому он по-прежнему будет учитывать динамические возможности iOS. поддержку этой функции, потому что, как только Flutter получит эту возможность на iOS, возникнет риск аудита, и этот риск аудита носит системный характер.
Apple дала понять, что Flutter в настоящее время не имеет комплаенс-рисков, потому что само по себе не является динамическим решением, но также придерживается принципа не выступать, не обещать не блокировать, потому что подъем Flutter съест долю нативных разработчиков Apple App, Apple не рекомендует использовать нативные решения для разработки, отличные от официального, и Apple никогда не допустит масштабного исчезновения разработчиков. Как только это произойдет, экология Apple будет ограничена, поэтому отец Apple встанет на защиту местных разработчиков приложения Apple.В это время также уменьшается доля Flutter и его влияние.Apple также постоянно продвигать Swift и SwiftUI, ждать решений, более дружественных к нативным разработчикам, пытаться противостоять каннибализации нативных разработчиков Apple App различными кроссплатформенными решениями.
Ссылаться на:Сравнение мобильных кроссплатформенных решений: WEEX, React Native, Flutter и PWA