Снова апрель, и прошло много времени с момента последнего релиза.Углубленный фреймворк кросс-энд разработкиПрошел целый год.
В этом году мини-программы добились больших успехов с точки зрения пользовательского масштаба и коммерциализации. Ежедневно активные пользователи мини-программ WeChat превысили 300 миллионов, а ежемесячные активные пользователи мини-программ Alipay, Baidu и ByteDance также превысили 300 миллионов.
Что касается области разработки малых программ, в этом году также произошли большие изменения. Среда разработки изменилась с простой разработки апплета WeChat на многотерминальную структуру, которая стала стандартной конфигурацией, и дальнейшее повышение эффективности разработки стало настоятельной потребностью разработчиков.
В этом годуmpvue
остановить обновление,Taro
начать исследоватьtaro next
,uni-app
Продукты и экология продолжают улучшаться, и WeChat недавно запустила новое мобильное приложение, которое поддерживает мини-программы H5 и WeChat.kbone
Рамка...
В прошлогодних развернутых комментариях многие ветераны ушли с арены, а некоторые новички привлекли внимание, поэтому настало время новой волны выпусков 2020 года.
Оценка целевого скрининга
Кросс-энд фреймворк — это большие инвестиции.В соревновании каждого фреймворка на протяжении не одного года многие фреймворки постепенно отказывались от разработчиков из-за недостаточных вложений.uni-app
иtaro
Опираясь на непрерывные крупномасштабные инвестиции, он стал основным направлением рынка.
taro
Основанная на стабильной версии, она также недавно была запущенаtaro next
, эти две версии совершенно разные и на этот раз будут оцениваться отдельно.
kbone
Несмотря на то, что фреймворк вышел не так давно, официально он все-таки был выпущен WeChat, и многие люди обратили на него внимание, так что в этот раз мыkbone
Включите цели оценки.
Таким образом, объекты этой оценки (в порядке времени публикации):
- Нативная разработка WeChat
- таро, производство Jingdong Bump Lab, официальный адрес сайта:taro.jd.com/
- uni-app, созданный DCloud, адрес официального сайта:uniapp.dcloud.net.cn
- kbone, созданный командой Tencent WeChat, адрес официального сайта:wechat-miniprogram.github.io/kbone/docs/
В дополнение к фактическим измеренным данным, таким как беговая производительность, эта оценка должна собирать данные публично через официальный веб-сайт фреймворка и github, Nuggets, классную комнату Tencent и другие трехсторонние сообщества, насколько это возможно, в надежде дать вам всестороннюю основу для оценки. .
Реализация функции
taro
иuni-app
Это типичная многотерминальная структура, которую можно опубликовать на всех терминалах. иkbone
Поддерживаются только апплет WeChat и H5.
taro
иuni-app
Часто используемые интерфейсы и компоненты инкапсулированы в кросс-энд API и кросс-энд компоненты. Спецификации компонентов соответствуют спецификации апплета WeChat, а некоторые платформы имеют уникальные API. Эти две платформы также имеют решения:
- Таро: поддержкаСмешанный с кодом апплета, вы можете вызвать новый API апплета, который не был инкапсулирован фреймворком, путем смешивания
- уни-приложение: поддержкаУсловная компиляция, вы можете свободно вызывать новые API и компоненты каждой платформы в блоке кода условной компиляции.
taro
иuni-app
Все API и компоненты каждой платформы апплета могут вызываться без ограничений.
kbone
продолжать использоватьweb
привычки развития, используяhtml
этикетки иjs api
; Когда дело доходит до специфичных для WeChat API, вы можетеprocess.env.isMiniprogram
Оцените среду, а затем напишите нативный код WeChat. заhtml
Встроенные компоненты WeChat (например,swiper
), нужно использоватьwx-component
маркировать или использоватьwx-
префикс, такие встроенные компоненты будут обернуты слоем пользовательских компонентов, что приведет к соответствующему снижению производительности.
В дополнение к интерфейсам и компонентам мы возьмем апплет WeChat в качестве примера, чтобы найти несколько типичных возможностей для сравнения поддержки фреймворка:
Рамка | taro | uni-app | kbone |
---|---|---|---|
Пользовательские компоненты WeChat | ⭕️ | ⭕️ | ⭕️ |
сторонний плагин | ⭕️ | ⭕️ | ❌ |
Загрузка подпакета | ⭕️ | ⭕️ | ⭕️ |
sitemap | ⭕️ | ⭕️ | ⭕️ |
wxs | ❌ | ⭕️ | ❌ |
облачная разработка | ⭕️ | ⭕️ | ⭕️ |
Дополнительные инструкции:
- Если в проекте Taro есть ссылки на собственные сторонние компоненты апплета, проект больше не будет иметь возможности многотерминального преобразования.Например, если сторонние компоненты апплета WeChat используются, проект может быть преобразовано только в апплет WeChat, а затем передано в апплет WeChat.Другие платформы Yicheng будут недействительны.Подробнее см.официальный сайт таро
- Если вы используете пользовательские компоненты WeChat в uni-приложении, оно поддерживает компиляцию и публикацию на 4 платформах App/H5/апплета WeChat/апплета QQ.Подробности см.официальный сайт уни-приложения
- Основание для таро, не поддерживающего wxs:#2959
- Причины, по которым kbone не поддерживает сторонние плагины WeChat:#58; основание для отказа от поддержки wxs:#129
- Облачная разработка поддерживается на платформе WeChat, поддерживаются все три фреймворка, но taro/kbone поддерживает только платформу апплетов WeChat, поддерживает uni-app
App/H5/小程序
Все платформы используют облачную разработку, подробности см. ниже.serverless/云开发
глава.
wxs
Это важный инструмент для повышения производительности, за исключением апплета WeChat.wxs
Кроме того, есть AlipaySJS
, БайдуFilter
, эти передовые технологииuni-app
Полностью поддерживается. Ссылаться на:Тайна wxs, как uni-приложение может использовать его для значительного повышения производительности
Из сравнения вышеперечисленных функций: WeChat native ~ uni-app > таро > kbone
Производительность (апплет WeChat)
Мы продолжаем использовать тестовую модель прошлого года, чтобы увидеть, улучшилась ли производительность каждой среды разработки за последний год. Подробности следующие:
-
Контент для разработки: разработка сложного длинного списка, имитирующего домашнюю страницу апплета Weibo, поддержка всплывающего обновления, переворачивания страниц и т. д.
-
Интерфейс выглядит следующим образом:
-
Версия для разработчиков: всего было разработано 5 версий, включая нативную версию WeChat, версию таро, версию uni-app и версию kbone.
cli
Он установлен по умолчанию. -
Текущая стабильная версия таро — это версия 2.0, но кросс-фреймворк таро некст продвигается недавно, поэтому мы протестировали данные как таро 2.0, так и таро некст на основе одного и того же кода реакции.
-
Тестовый код с открытым исходным кодом (Адрес репозитория Github: https://github.com/dcloudio/test-framework),Советы. Если некоторые учащиеся считают, что код теста написан неправильно, отправьте PR илиIssus
-
Тестовые модели: Redmi 6 Pro, стабильная версия MIUI 11.0.5 (последняя версия), WeChat версии 7.0.12 (последняя версия)
-
Тестовая среда: перед тем, как каждая платформа начнет тестирование, завершите каждый процесс приложения и очистите память, чтобы убедиться, что среда тестовой машины в основном одинакова; каждый раз считывайте статические данные с локального компьютера, чтобы скрыть различия в сети.
Мы возьмем приведенный выше имитационный апплет Weibo в качестве примера, чтобы протестировать два момента, которые подвержены проблемам с производительностью: загрузка длинного списка и отклик на большое количество лайков компонентов.
загрузка длинного списка
Список имитации Weibo — это список со многими компонентами, такой сложный список оказывает большее давление на производительность и очень подходит для тестирования производительности.
Требуется точное время от запуска подтягивающей загрузки до обновления данных и завершения рендеринга страницы. Человеческого зрительного хронометража явно недостаточно, мы применяем метод встраивания программ и формулируем следующий хронометраж:
- Время начала синхронизации: событие взаимодействия запускается до назначения кадра, например: начало функции загрузки подтягивания (onReachBottom)
- Время окончания времени: рендеринг страницы завершен (начало функции обратного вызова WeChat setData)
Советы:setData
Начало функции обратного вызова можно считать моментом завершения рендеринга страницы, т.к. WeChatsetData
определяется следующим образом (Спецификация WeChat):
Метод тестирования: начиная с пустого списка на странице, программа автоматически запускает подтягивающую загрузку, каждый раз добавляя 20 списков и записывая время, затрачиваемое за один раз; запуская N раз подтягивающей загрузки непрерывно при фиксированной интервалы, чтобы страница достигла 20 * N списков. Рассчитайте среднее время, затрачиваемое с момента запуска подтягивания до завершения рендеринга.
Результаты теста следующие:
Описание: Возьмем в качестве примера список из 400 микроблогов, начиная с пустого списка на странице, инициируем подтягивающую загрузку каждую 1 секунду (добавляется 20 новых микроблогов), записываем время, затрачиваемое на один раз, и останавливаем после запуска 20 раз (страница достигает 400 Weibo), посчитайте среднее время этих 20 раз, и в результате получится, что WeChat является нативным в этих 20 раз.触发上拉 -> 渲染完成
Среднее время составляет 538 миллисекунд, самое быстроеuni-app
составляет 446 мс, самый медленныйkbone
составляет 4057 мс
При первом взгляде на эти данные вы можете растеряться, не волнуйтесь, ниже есть подробная инструкция.
Объяснение 1: Почему данные теста taro next/kbone неполные?
так какtaro next
иkbone
Принята динамическая схема рендеринга, которая значительно увеличивает количество страниц, когда страница сложная и содержит много компонентов.dom
Количество узлов даже превышает количество узлов WeChat.dom
Ограничение на количество узлов (следующая тревожная информация). Мы измеряли на Redmi 6 Pro, когда компонентов страницы более 600,taro next
,kbone
Внедренная имитация приложения Weibo сообщит о ненормальной работе и прекратит рендеринг (белый экран страницы).Поэтому тестовые данные этих двух тестовых фреймворков будут неполными, когда будет много компонентов. Это также означает, что эти 2 фреймворка нельзя использовать, когда компонентов страницы слишком много.
dom limit exceeded please check if there's any mistake you've made
Кроме того, на официальном сайте kbone есть следующее введение:
kbone использует некоторую потерю производительности в обмен на более полную поддержку веб-функций.
Следовательноtaro next
,kbone
Тестовые данные, очевидно, иtaro 2.0
,uni-app
Не на порядок.
Если ваше приложение представляет собой сценарий с длинным списком, тоtaro next
,kbone
Явно не подходит.
Примечание 2. Почему тестовые данные показывают, что производительность uni-app немного выше, чем у собственной платформы WeChat?
Эта проблема была объяснена в прошлогодней оценке. Во избежание путаницы для новых студентов, вот еще одно объяснение.
Нативная структура WeChat отнимает много времени в основном вsetData
При вызове, если разработчик не проводит оптимизацию отдельно, каждый раз будет передаваться большой объем данных;uni-app
,taro
звонятsetData
сделать это автоматически передdiff
Вычислить, каждый раз передавая только измененные данные.
Например, текущая страница содержит фрагменты данных 20. Когда срабатывает подтягивающая загрузка, вновь загружаются фрагменты данных 20. В это время, когда собственный фреймворк проходит следующий тест кода,setData
будет передано 40 единиц данных
data: {
listData: []
},
onReachBottom() { //上拉加载
let listData = this.data.listData;
listData.push(...Api.getNews());//新增数据
this.setData({
listData
}) //全量数据,发送数据到视图层
}
Используя нативный фреймворк WeChat, разработчики могут сами оптимизировать и упростить передачу данных (каждый раз передается всего 20 штук измененных данных), например, модификация выглядит следующим образом:
data: {
listData: []
},
onReachBottom() { //上拉加载
// 通过长度获取下一次渲染的索引
let index = this.data.listData.length;
let newData = {}; //新变更数据
Api.getNews().forEach((item) => {
newData['listData[' + (index++) + ']'] = item //赋值,索引递增
})
this.setData(newData) //增量数据,发送数据到视图层
}
После вышеуказанной оптимизации и модификации, а также повторного тестирования, данные о производительности собственной платформы WeChat выглядят следующим образом:
По результатам испытаний видно, что:
- После ручной оптимизации разработчиками собственный фреймворк WeChat может добиться более высокой производительности;
-
uni-app
По сравнению с оригинальным WeChat производительность близка, что на порядок, а по мере увеличения объема данных потребление производительности увеличивается незначительно, с 438 до 454, изменение всего 16 миллисекунд. -
taro 2.0
По мере увеличения объема данных увеличивается потеря производительности, с 595 до 790, происходит изменение почти на 200 миллисекунд; -
taro next
иkbone
Напротив, разрыв относительно велик.
этот результат иweb
развитие аналогичное,web
Также есть нативные js-разработки,vue
,react
рамки и т.д. Если не проводить специальную оптимизацию, производительность веб-страниц, написанных на нативном js, зачастую не так хороша, какvue
,react
производительность кадра.
именно потому, чтоVue
,react
Фреймворк отличный, производительность хорошая, опыт разработки хороший, поэтому использование нативной разработки js постепенно сокращается.
Объяснение 3. Почему данные тестов производительности за этот год отличаются от прошлогодних?
Внимательные студенты обнаружат, что тот же тестовый мобильный телефон, тот же тестовый код, почему данные о производительности в этом году будут лучше, чемданные прошлого годаПроизошло существенное увеличение?
- taro, uni-app и WeChat native, данные трех фреймворков были значительно улучшены.Когда записей 400, оптимизация занимает не менее 300 миллисекунд.
- uni-app и оптимизированный нативный WeChat, с увеличением объема данных трудоемкое изменение данных не очевидно, но в прошлом году это был очевидный линейный рост
На самом деле, сравнивая данные нативного проекта WeChat, можно сделать вывод, что в 2019 году WeChat провел значительную оптимизацию производительности для выполнения небольших программ.
Это должно бытьхорошие новости, мини-программа имеет лучшую производительность и может предоставлять более качественные услуги для пользователей.
Сложный длинный список, загружающий следующую страницу, вывод оценки: собственная разработка WeChat (оптимизация вручную) ~uni-app
> Собственная разработка WeChat (не оптимизированная вручную) ~taro 2.0
> taro next
> kbone
Нравится скорость отклика компонента
Для компонента в длинном списке, такого как похожий компонент, могут ли состояния «не нравится» и «нравится» изменяться во времени при нажатии? является оценочной точкой этого теста.
Метод испытания:
- Выберите микроблог и нажмите кнопку «Нравится», чтобы переключить статус «Нравится» (понравилось выделено, не понравилось серым),
- Нравится кнопка
onclick
Функция начинает считать в начале,setData
Функция обратного вызова запускает и заканчивает отсчет времени;
Проведите несколько тестов на Redmi 6 Pro и найдите среднее значение, результаты следующие:
Примечание. То есть, когда количество списков равно 400, требуется 26 миллисекунд, чтобы кнопка «Нравится» изменилась от щелчка до состояния приложения, изначально разработанного WeChat.
Описание данных результатов теста:
- Причина, по которой тестовые данные taro next/kbone неполны, та же, что и выше: когда компонентов много, страница перестает отображаться.
- Производительность taro 2.0, uni-app и WeChat native на аналогичном компоненте близка, но существует большой разрыв в производительности между taro next и kbone, что также вызвано динамической средой выполнения.
Оценка производительности обновления данных компонента:uni-app
~ taro 2.0
> taro next
> kbone
Подводя итог, этот тест производительности провел 2 теста, загрузку длинного списка и обновление состояния компонента, синтезируя 2 эксперимента, выводы следующие:
Нативная разработка WeChat (ручная оптимизация) ~uni-app
> Собственная разработка WeChat (не оптимизированная вручную) ~taro 2.0
> taro next
> kbone
Производительность (апплет Alipay)
В этом году был добавлен тест производительности на основе апплета Alipay, а также протестированы два сценария загрузки лонг-листа и отклика подобных компонентов, как описано выше.
Сценарий 1: загрузка длинного списка
количество списков | taro 2.0 | uni-app |
---|---|---|
200 | 1954 | 850 |
400 | 3155 | 1012 |
600 | 4284 | 1119 |
800 | 5278 | 1258 |
1000 | 6555 | 1452 |
Сценарий 2. Ответ компонента «Мне нравится»
количество компонентов | taro 2.0 | uni-app |
---|---|---|
200 | 38 | 33 |
400 | 34 | 45 |
600 | 37 | 37 |
800 | 40 | 39 |
1000 | 51 | 48 |
Советы:
- Поскольку kbone не поддерживает другие домашние апплеты, на этот раз тестируются только данные о производительности taro 2.0 и uni-app.
- Основываясь на принципе реализации таро некст, производительность таро некст будет намного хуже, чем у таро 2.0.Здесь представлены только данные таро 2.0 (измеренные данные апплета WeChat в предыдущей главе также подтвердили этот вывод )
- Когда апплет Alipay выполняет автоматическое тестирование производительности, включите параметр компиляции component2 в конфигурации проекта.
Благодаря приведенным выше тестовым данным, рабочие характеристики апплета Alipay, uni-app> taro 2.0
Кросс-энд поддержка
Все эти три фреймворка предназначены для решения проблемы изоморфизма платформ, поэтому необходимо перекрестное сравнение.
taro
иuni-app
Он относительно зрелый и поддерживает все основные платформы. kbone поддерживает только апплет WeChat и веб-терминал. Давайте сравнимtaro
иuni-app
.
Мини программная платформа
taro
иuni-app
Все поддерживают WeChat, Alipay, Baidu, апплет ByteDance, и функции могут быть в основном согласованы.
Обе стороны имеют много больших заводских корпусов,taro
Есть небольшие программные кейсы таких компаний, как JD.com, Huolala и TaopiaoPiao.uni-app
Известны случаи небольших программ от таких компаний, как Tencent, Huawei, vivo, Lenovo и China Talent Network.
Платформа приложения
- Способность
taro
Уровень согласования с движком апплета WeChat низок, и многие функции требуют, чтобы разработчики выполняли нативную разработку для iOS и Android. Например, общий трехсторонний вход в систему, оплата, совместное использование и другие возможности на стороне приложения,taro
Не упаковано.
uni-app
Он предоставляет богатые возможности на уровне базового движка, а также предоставляет богатый рынок подключаемых модулей, который может эффективно повысить эффективность разработчиков.
- представление
taro
используется в приложенииreact native
Хотя пользовательский интерфейс уровня рендеринга является родным, его производительность была низкой при взаимодействии в реальном времени и операциях пользовательского интерфейса с высокими требованиями к ответу.Потеря связи между уровнем js и уровнем представления заставляет многих разработчиков чувствовать себя беспомощными.
uni-app
Механизм приложения также предоставляет разработчикам решение с двойным выбором собственного механизма рендеринга и механизма апплета, а также предоставляетrenderjs
технология и поддержкаwxs
,bindingx
и другие технологии, он решает проблему потери связи между уровнем js и уровнем представления и имеет лучшую производительность в операциях пользовательского интерфейса с высокими требованиями к ответу. Например, вот такая анимация холста:
- опыт разработки
Разработчикам таро необходимо создавать собственную среду разработки для iOS/Android, что довольно громоздко (Официальный текст выглядит следующим образом):
Если вы раньше не сталкивались со средой разработки Android, будьте готовы к довольно утомительному процессу. Пожалуйста, внимательно прочитайте следующие инструкции и выполняйте операции по настройке строго в соответствии с документацией.
uni-app
Это можно сделать так, чтобы фронтенд-разработчики не полагались на местных инженеров в самостоятельной доработке приложения. Небольшие программы, которые она разрабатывает, можно более плавно превратить в коммерческие приложения.
Основная привлекательность использования кросс-платформенной разработки заключается в повышении эффективности.Если разработка приложения выполняется тремя командами инженеров, включая фронтенд, iOS и Android, эффективность на самом деле очень низкая.
Кроме того,uni-app
Он также предоставляет uni applet sdk, инструмент, который может помочь родным приложениям быстро создать собственную платформу апплета. Это не предусмотрено другими фреймворками.
Платформа H5
Платформа Taro H5 добилась большего прогресса за последний год, и ее удобство использования значительно улучшилось. но по сравнению сuni-app
, поддержка wxs и компонентов апплета по-прежнему отсутствует.
Быстрое приложение
taro
Время поддерживать быстрые приложенияuni-app
утро.
Однако в 2020 году произошли некоторые изменения в разработке быстрых приложений.uni-app
В ответ на новую ситуацию предоставляются 2 решения для выпуска быстрых приложений (обе версии в настоящее время находятся на обслуживании сообщества):
- версия quickapp-vue:Разрабатывайте быстрые приложения с помощью Vue. В этом решении доминирует Xiaomi, но пока оно не поддерживается Huawei Quick Apps.
- quickapp-light version: Быстрое приложение (облегченная версия) на основе архитектуры апплета, см. подробностиwww.hellohub.cn. В этом решении доминирует Huawei, но Xiaomi Quick App пока его не поддерживает.
Кросс-конечная гибкость
Кросс-энд разработка неотделима от условной компиляции. Потому что унификация не может использоваться для уничтожения характеристик каждой платформы.
Отличные возможности условной компиляции имеют решающее значение для гибкости разработки со всех сторон, позволяя разработчикам легко переключаться между совместным использованием и персонализацией.
taro
,uni-app
иkbone
поддерживаются вjs
проход кодаprocess.env
Оцените платформу, а затем напишите код для конкретной платформы.
taro
Дополнительная поддержка многоконечного кодирования файлов с унифицированным интерфейсом и использование в файлах стилей.ifdef
Условная компиляция.
uni-app
Полностью условно компилируемый, каталоги, файлы, конфигурации, компоненты, js, css, все можно передатьifdef
Условная компиляция.
Краткий вывод о поддержке кросс-энда:uni-app
> taro
> kbone
опыт разработки
taro
,uni-app
,kbone
Оба поддерживаютcli
режим, который может быть разработан в основных интерфейсных инструментах, и в основном поставляется с библиотекой синтаксических подсказок d.ts. Поддерживаются все три фреймворкаvue
илиreact
Популярный синтаксис фреймворка, богатая цепочка инструментов IDE, идеальная раскраска, проверка и форматирование.
По сравнению с нативным WeChat опыт разработки этих трех сред разработки лучше.
Но в измерении инструментов разработки фреймворк, который значительно выше, этоuni-app
, чья производственная компания также является производственной компанией HBuilderX.DCloud.io, HBuilderX этоuni-app
Сделано много оптимизаций, подсказок по коду, переход к определению, easycom, запуск отладки... так чтоuni-app
Эффективность разработки и простота использования находятся за пределами досягаемости других фреймворков.
Измерение опыта разработки, результаты сравнения:uni-app
> taro
,kbone
бессерверная/облачная разработка
В настоящее время бессерверные технологии — это горячая концепция, известная как облачная технология следующего поколения, которая и является настоящим «облаком».
WeChat первым внедрил бессерверную технологию в область разработки небольших программ, а именнооблачная разработка, чтобы помочь разработчикам завершить свой бизнес в одном облаке. Впоследствии Alipay и Baidu запустили собственную облачную разработку. Согласно общедоступным данным WeChat, уже 500 000 разработчиков используют облачную разработку WeChat.
Однако существует естественное ограничение облачной разработки под руководством мелких производителей программ, то есть она слишком жестко привязана к платформе и не может обмениваться данными с другими платформами.
Возьмем в качестве примера облачную разработку WeChat.Если вы разрабатываете только мини-программы WeChat, а данные хранятся исключительно на платформе WeChat, то проблем нет, но если у вас также есть приложения или другие мини-программы, данные Мини-программы WeChat хранятся на платформе WeChat, данные других платформ хранятся на собственном сервере разработчика, и в это время происходит фрагментация данных. Предположим, что пользователь сначала использует апплет, а личные данные хранятся на платформе WeChat; после обновления до приложения с липкостью приложение не может считывать данные на платформе WeChat, а пользователь не может просматривать предыдущие исторические данные в апплете. или даже требуется перерегистрация на платформе приложения. Эта ситуация плоха для разработчиков.
Поэтому кросс-серверное решение является оптимальным решением для разработчиков.
Текущие основные платформы поддерживают облачную разработку:
- Taro: поддерживает только апплет WeChat, см. подробности.Мини-шаблон разработки облачных программ
- uni-app: DCloud сотрудничает с Alibaba Cloud и Tencent Cloud, чтобы предоставить платформу облачной разработки, основанную на бессерверном режиме и программировании js, и поддерживает все платформы программ App/H5/Mini.uniCloud
- kbone: поддерживает только апплет WeChat, см. подробностиоблачная разработка
В бессерверном измеренииuni-app
Значительно опережает другие фреймворки.
Рынок плагинов
Независимо от того, может ли среда разработки быть успешной или нет, помимо высокой степени продуктивности самой среды, построение экосистемы разработчиков также имеет решающее значение.
uni-app
Впервые запущен в конце 2018 г.Рынок плагинов, поддерживает интерфейсные компоненты, js sdk, шаблоны страниц, шаблоны проектов, встроенные плагины и другие типы, а также предоставляет средства оценки и платные покупки, чтобы стимулировать творческую страсть авторов колес. В настоящее время на рынке выпущено около 1500 подключаемых модулей, и многие подключаемые модули были загружены более 10 000 раз.
Taro
Запущен в мае 2019 г.рынок материалов, на данный момент на рынке выпущено 90 материалов, с точки зрения списка популярных, объем скачивания невелик, а самых скачиваемых материалов всего несколько сотен.
kbone
Магазина плагинов пока нет.
Tips:
- Время сбора данных по количеству плагинов и загрузок 2020.04.03 16:00
измерение рынка плагинов,uni-app
Доминирование.
Образовательные ресурсы
Помимо официальных веб-сайтов основных фреймворков, разработчики обычно систематически учатся с помощью видеоуроков, блогов сообщества и т. д.
Обилие соответствующих учебных ресурсов также может отражать популярность фреймворка, поэтому мы собрали данные с нескольких трехсторонних сайтов.
видеоурок
Рамка | Тенсент Класс | Облачный класс NetEase | МООК |
---|---|---|---|
taro | 4 | 1 | 2 |
uni-app | 16 | 16 | 1 |
Советы:
- Время сбора данных видеоурока 2020.04.05 22:00
связь развития
В дополнение к вводным учебным ресурсам, общение в период разработки также очень важно.В основном мы рассматриваем сообщество и группы общения, организованные официальной организацией.
форум сообщества
uni-app
изСообщество вопросов и ответов, есть много сообщений и больше депозитов; в настоящее время размещено более 20 000 связанных сообщений, сотни сообщений обновляются каждый день, а ежемесячный uv составляет один миллион.
Для пользователей, которые привыкли использовать проблемы github для сообщения о проблемах,uni-app
Также поддерживается, в настоящее время существует 1391 выпуск.
Taro начал управление ошибками продукта на основе проблем github в первые дни и накопил почти 4898 проблем; он будет запущен в мае 2019 года.сообщество разработчиков, и время запуска рынка материалов такое же.В настоящее время существует более 1300 сообщений, и каждый день обновляется около 10 сообщений.Метод расчета соответствующих данных выглядит следующим образом:
- Всего сообщений: Лучшие выборы сообщества Таро
板块
, подсчитайте общее количество всех тем в каждом разделе, как показано ниже. - Ежедневные обновления сообщений: подсчитывает общее количество потоков с ответами или комментариями в течение 24 часов на основе времени последнего ответа в списке сообщений.
kbone добавил нового в открытое сообщество WeChatОфициальный фреймворк KboneВ специальной области из-за позднего выпуска продукта в настоящее время всего более 100 сообщений.
Если обобщить сообщения сообщества и данные о проблемах, то ситуация следующая (время сбора 2020.04.03 23:00):
группа обмена
Рамка | Группа WeChat | QQ группа | Разработчики группы обмена (оценка) |
---|---|---|---|
taro | 16 | - | 8k |
uni-app | 20 | 40+ | 90k |
kbone | - | 1 | 0.5k |
Tips:
- Согласно официальному сайту Таро, у Таро 16 групп WeChat.
Taro 开发交流 15 群 已满
Можно сделать вывод, что в каждой группе WeChat 500 человек, а количество групп общения: 500*16 = 8000 человек. - На официальном сайте uni-app 35 QQ-групп, 20 WeChat-групп и более десятка специальных QQ-групп, из них 30 QQ-групп охватили 2000 человек.Количество групп общения: 30*2000+5*1000 + 20*500 + 5000 = 90000 человек
- kbone имеет группу обмена qq в файле readme github, и он показывает, что 500 человек заполнены при подаче заявки на вступление
В дополнение к биржевой группе, DCloud анонсировалаuni-app
Количество разработчиков достигло миллиона, еще не виделиtaro
иkbone
опубликовать такие данные.
В целом, результаты сравнения параметров коммуникации в целях развития выглядят следующим образом:uni-app
> taro
> kbone
Другие показатели
github
Рамка | star | Автор |
---|---|---|
taro | 24.6k | 122 |
uni-app | 19.7k | 72 |
kbone | 2.7k | 7 |
Со стороны сообщества открытого исходного кода,Taro
Он по-прежнему был очень успешным и привлекал больше разработчиков, которые добавляли к нему код и документацию.
Индекс Байду
пройти черезindex.baidu.com, вы можете просмотреть поисковый индекс основного фреймворка, который представляет собой объем поиска пользователей сети и объем коллекции связанных статей. В настоящее времяkbone
Еще не включенный в индекс Baidu, ниже приводится недавнийuni-app
иtaro
Таблица сравнения индексов Baidu:
Эпилог
Все оценки служат лишь основой для принятия решений, а окончательный результат по-прежнему зависит от технологического стека команды разработчиков, требований бизнеса и планов на будущее.
Однако в качестве заключения статьи мы все же вынуждены дать свой собственный совет:
- Если вы знакомы с React и не понимаете Vue.js, рекомендуется Taro;
- Если вы знакомы с Vue.js, рекомендуется использовать uni-app;
- Если у вас уже есть код H5, вы просто хотите увеличить платформу апплета WeChat и не предъявляете высоких требований к производительности, вы можете рассмотреть kbone;
- Если ваш бизнес включает в себя несколько целей, более рекомендуется использовать uni-app;
- Если вы хотите быстро запустить свой бизнес с помощью бессерверного решения, рекомендуется использовать uni-app.
Если читатели считают, что какая-либо оценка в этой статье искажена, сообщите об этом здесь.issuse.