Мини-приложение DevTools

Опыт разработчика

Теперь, когда я рассмотрел мини-приложения как таковые , я хочу сосредоточиться на опыте разработчика для различных платформ супер-приложений. Разработка мини-приложений на всех платформах происходит в IDE, которые предоставляются бесплатно платформами супер-приложений. Хотя их больше, я хочу сосредоточиться на четырех самых популярных и пятом для Quick App для сравнения.

IDE для мини-приложений

Как и суперприложения, большинство IDE доступны только на китайском языке. На самом деле вам нужно убедиться, что вы устанавливаете китайскую версию, а не иногда доступную английскую (или зарубежную) версию, поскольку она может быть неактуальной. Если вы разработчик macOS, имейте в виду, что не все IDE подписаны, что означает, что macOS отказывается запускать установщик. Вы можете, на свой страх и риск , обойти это, как описано в справке Apple .

Стартовые проекты мини-приложений

Чтобы быстро приступить к разработке мини-приложений, все поставщики суперприложений предлагают демонстрационные приложения, которые можно загрузить и протестировать немедленно, а иногда они также интегрируются в мастера «Новый проект» различных IDE.

Поток развития

После запуска IDE и загрузки или создания (демонстрационного) мини-приложения первым шагом всегда является вход в систему. Обычно вам просто нужно отсканировать QR-код с помощью суперприложения (где вы уже вошли в систему), который генерируется IDE. Очень редко вам нужно вводить пароль. После того, как вы вошли в систему, IDE узнает вашу личность и позволяет вам начать программирование, отладку, тестирование и отправку вашего приложения на проверку. Ниже вы можете увидеть скриншоты пяти IDE, упомянутых в абзаце выше.

Окно приложения WeChat DevTools, отображающее симулятор, редактор кода и отладчик.
WeChat DevTools с симулятором, редактором кода и отладчиком.
Окно приложения Alipay DevTools, отображающее редактор кода, симулятор и отладчик.
Alipay DevTools с редактором кода, симулятором и отладчиком.
Окно приложения Baidu DevTools, отображающее симулятор, редактор кода и отладчик.
Baidu DevTools с симулятором, редактором кода и отладчиком.
Окно приложения ByteDance DevTools, отображающее симулятор, редактор кода и отладчик.
ByteDance DevTools с симулятором, редактором кода и отладчиком.
Окно приложения Quick App DevTools, отображающее редактор кода, симулятор и отладчик.
Quick App DevTools с редактором кода, симулятором и отладчиком.

Как вы можете видеть, основные компоненты всех IDE очень похожи. У вас всегда есть редактор кода на основе Monaco Editor , того же проекта, который также поддерживает VS Code . Во всех IDE есть отладчик на основе интерфейса Chrome DevTools с некоторыми модификациями, подробнее о них позже (см. Отладчик ). Сами IDE реализованы либо как NW.js , либо как приложения Electron , симуляторы в IDE реализованы как тег NW.js <webview> или тег Electron <webview> , которые, в свою очередь, основаны на теге Chromium <webview> . Если вас интересуют внутренние компоненты IDE, вы часто можете просто проверить их с помощью Chrome DevTools с помощью сочетания клавиш Control + Alt + I (или Command + Option + I на Mac).

Chrome DevTools, используемый для проверки DevTools Baidu, отображает тег webview симулятора на панели элементов Chrome DevTools.
Проверка Baidu DevTools с помощью Chrome DevTools показывает, что симулятор реализован в виде тега Electron <webview> .

Тестирование и отладка симуляторов и реальных устройств

Симулятор сопоставим с тем, что вы, возможно, знаете из режима устройства Chrome DevTools. Вы можете имитировать различные устройства Android и iOS, изменять масштаб и ориентацию устройства, а также имитировать различные состояния сети, нагрузку на память, событие считывания штрих-кода, неожиданное завершение и темный режим.

Хотя встроенного симулятора достаточно, чтобы получить приблизительное представление о том, как ведет себя приложение, тестирование на устройстве, как и в случае с обычными веб-приложениями, незаменимо. Тестирование мини-приложения, находящегося в разработке, осуществляется всего лишь сканированием QR-кода. Например, в ByteDance DevTools сканирование QR-кода, динамически сгенерированного IDE, с помощью реального устройства приводит к размещенной в облаке версии мини-приложения, которую затем можно немедленно протестировать на устройстве. Для ByteDance это работает следующим образом: URL-адрес за QR-кодом ( пример ) перенаправляет на размещенную страницу ( пример ), которая содержит ссылки со специальными схемами URI, такими как, например, snssdk1128:// , для предварительного просмотра мини-приложения в различных суперприложениях ByteDance, таких как Douyin или Toutiao (вот пример ). Другие поставщики суперприложений не проходят через промежуточную страницу, а открывают предварительный просмотр напрямую.

ByteDance DevTools показывает QR-код, который пользователь может отсканировать с помощью приложения Douyin, чтобы увидеть текущее мини-приложение на своем устройстве.
ByteDance DevTools показывает QR-код, который пользователь может отсканировать с помощью приложения Douyin для немедленного тестирования на устройстве.
Промежуточная целевая страница для предварительного просмотра мини-приложения ByteDance в различных суперприложениях компании, открытая в обычном браузере настольного компьютера для обратного проектирования процесса.
Промежуточная целевая страница ByteDance для предварительного просмотра мини-приложения (открывается в браузере настольного компьютера для демонстрации процесса).

Еще более убедительной функцией является удаленная отладка с предварительным просмотром в облаке. После простого сканирования специального QR-кода, также сгенерированного IDE, мини-приложение открывается на физическом устройстве, а на компьютере запускается окно Chrome DevTools для удаленной отладки.

Мобильный телефон, на котором запущено мини-приложение с частями пользовательского интерфейса, выделенными отладчиком ByteDance DevTools, запущенным на ноутбуке и проверяющим его.
Беспроводная удаленная отладка мини-приложения на реальном устройстве с помощью ByteDance DevTools.

Отладчик

Отладка элементов

Опыт отладки мини-приложений хорошо знаком любому, кто когда-либо работал с Chrome DevTools. Однако есть некоторые важные отличия, которые делают рабочий процесс адаптированным для мини-приложений. Вместо панели Elements Chrome DevTools IDE мини-приложений имеют настраиваемую панель, которая адаптирована к их конкретному диалекту HTML. Например, в случае WeChat панель называется Wxml , что означает WeiXin Markup Language. В Baidu DevTools она называется Swan Element . ByteDance DevTools называет ее Bxml . Alipay называет ее AXML , а Quick App ссылается на панель просто как на UX . Я углублюсь в эти языки разметки позже .

Проверка изображения с помощью панели WeChat DevTools 'Wxml'. Она показывает, что используемый тег - это тег `image`.
Проверка элемента <image> с помощью WeChat DevTools.

Пользовательские элементы под капотом

Проверка WebView на реальном устройстве через about://inspect/#devices показывает, что WeChat DevTools намеренно скрывает правду. Там, где WeChat DevTools показывает <image> , на самом деле я смотрю на пользовательский элемент с именем <wx-image> с <div> в качестве его единственного дочернего элемента. Интересно отметить, что этот пользовательский элемент не использует Shadow DOM . Подробнее об этих компонентах позже .

Проверка мини-приложения WeChat, запущенного на реальном устройстве, с помощью Chrome DevTools. Там, где WeChat DevTools сообщал, что я смотрю на тег `image`, Chrome DevTools показывает, что я на самом деле имею дело с пользовательским элементом `wx-image`.
Проверка элемента <image> с помощью WeChat DevTools показывает, что на самом деле это пользовательский элемент <wx-image> .

Отладка CSS

Еще одним отличием является новая единица длины rpx для адаптивного пикселя в различных диалектах CSS (подробнее об этой единице позже ). WeChat DevTools использует независимые от устройства единицы длины CSS, чтобы сделать разработку для разных размеров устройств более интуитивной.

Проверка представления с заданным верхним и нижним отступом `200rpx` в WeChat DevTools.
Проверка отступов, указанных в адаптивных пикселях ( 200rpx 0 ) представления с помощью WeChat DevTools.

Аудит эффективности

Производительность — это центральная тема для мини-приложений, поэтому неудивительно, что WeChat DevTools и некоторые другие DevTools имеют интегрированный инструмент аудита, вдохновленный Lighthouse. Основные направления аудита — Total, Performance, Experience и Best Practice. Вид IDE можно настраивать. На снимке экрана ниже я временно скрыл редактор кода, чтобы освободить больше места на экране для инструмента аудита.

Проведение аудита производительности с помощью встроенного инструмента аудита. Оценки показывают Total, Performance, Experience и Best Practice, каждая по 100 из 100 баллов.
Встроенный инструмент аудита в WeChat DevTools, показывающий общие показатели, производительность, опыт и передовой опыт.

API-мок

Вместо того, чтобы требовать от разработчика настройки отдельной службы, имитация ответов API является непосредственной частью WeChat DevTools. С помощью простого в использовании интерфейса разработчик может настроить конечные точки API и желаемые имитационные ответы.

Настройка фиктивного ответа для конечной точки API в WeChat DevTools.
Интегрированная функция имитации ответов API WeChat DevTools.

Благодарности

Эту статью рецензировали Джо Медли , Кейс Баскес , Милица Михайлия , Алан Кент и Кейт Гу.