1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/didiopensource-echo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Эхо — это настольный инструмент для отладки клиентских приложений, который называется «эхо» на китайском языке и символизирует взаимодействие между настольными компьютерами Mac и мобильными устройствами, как эхо.

Предыстория

В процессе разработки и тестирования клиентских приложений обычно интегрируются некоторые инструменты отладки для отображения информации о сетевых запросах приложения, обнаружения зависаний и других данных, которые помогают инженерам по обеспечению качества (QA) и разработчикам (RD) выявлять и устранять проблемы. В настоящее время эти инструменты отладки в основном встроены в само приложение. Хотя эти инструменты для отладки на маленьком экране могут удовлетворить повседневные потребности разработчиков, работающих над клиентскими приложениями, они также имеют некоторые недостатки:

  • Из-за ограничений экрана мобильного устройства существующие инструменты отладки не предоставляют достаточно удобных функций для просмотра и взаимодействия с данными, что делает опыт использования менее удовлетворительным.
  • В процессе разработки и отладки необходимо часто переключаться между приложением и инструментами отладки, чтобы проверять и анализировать проблемы, что может прерывать работу с приложением и снижать эффективность. Обычно для улучшения опыта разработки и отладки мы предпочитаем использовать такие инструменты, как Charles или Reveal, доступные на настольных компьютерах Mac.

Основываясь на текущей ситуации и проблемах, инструмент отладки Echo для больших экранов не только удовлетворяет потребности в разработке и тестировании клиентских приложений, но и предлагает следующие преимущества по сравнению с другими инструментами отладки:

  • Большой экран: обеспечивает более качественное отображение и не влияет на работу пользователей с исходным приложением, обеспечивая лучший опыт использования.
  • Расширяемость: встроенные универсальные шаблоны и механизм плагинов позволяют быстро расширять новые функции, снижая затраты на разработку новых функций.
  • Интеграция: объединяет инструменты отладки для клиентских приложений в единое целое, повышая эффективность работы RD и QA.
  • Механизм кэширования: плагины имеют встроенный механизм кэширования, позволяющий быстро подключаться и выполнять поиск и устранение проблем даже после отключения от большого экрана.

Введение

Echo — это простой в использовании, расширяемый с помощью плагинов, предназначенный для работы с большими экранами инструмент отладки для разработки клиентских приложений. Он позволяет в реальном времени просматривать различные типы данных приложения (сетевые запросы, журналы, точки отслеживания и т. д.) и вносить изменения в предварительный просмотр приложения без необходимости изменять код.

Особенности

  • Простота использования: достаточно подключить Echo и приложение к одной локальной сети, без дополнительной настройки.
  • Полнота функций: в настоящее время доступно около десяти функций, включая сетевые запросы, просмотр и изменение уровней представления и другие, охватывающие большинство сценариев разработки клиентских приложений.
  • Высокая расширяемость: механизм плагинов и модулей позволяет легко добавлять новые функции.

Функции

Текущие поддерживаемые функции Echo разделены на четыре категории:

  1. Основные функции: сетевые запросы, просмотр и модификация NSUserDefaults, просмотр журналов, просмотр сбоев, имитация GPS, просмотр уведомлений.
  2. Просмотр уровня представления: просмотр и изменение уровня представления, просмотр границ представления.
  3. Обнаружение производительности: обнаружение утечек памяти, обнаружение зависаний.
  4. Бизнес-функции: возможность быстрого расширения собственных бизнес-функций на основе механизма плагинов.

Расширяемость

Плагины

Каждая из возможностей, представленных в разделе функций, разрабатывается как отдельный плагин. Каждый плагин требует внимания только к сбору данных и ответам на операции, что упрощает быстрое расширение новых функций. Ниже приведён пример того, как быстро расширить новый плагин:

  1. Создайте класс, наследующийся от ECOBasePlugin, и установите имя плагина и зарегистрированный шаблон пользовательского интерфейса в методе инициализации.
+ (void)load {
    //регистрируем плагин
    [[ECOClient sharedClient] registerPlugin:[self class]];
}
- (instancetype)init {
    self = [super init];
    if (self) {
        self.name = @"Журнал";
        [self registerTemplate:ECOUITemplateType_ListDetail data:nil];
    }
    return self;
}
  1. Если вы хотите отправлять данные соединения или другую функциональную информацию при подключении к настольному компьютеру Mac, реализуйте метод device:didChangedAuthState: следующим образом:
//изменение состояния подключения
- (void)device:(ECOChannelDeviceInfo *)device didChangedAuthState:(BOOL)isAuthed {
    if (isAuthed) {
        id yourData = "Информация для отправки";
        !self.deviceSendBlock ?: self.deviceSendBlock(device, yourData);
    }
}
  1. Если вы хотите обрабатывать команды, отправленные настольным компьютером Mac, реализуйте следующий метод didReceivedPacketData:
#pragma mark - ECOBasePlugin methods
- (void)didReceivedPacketData:(id)data {
    // Реализуйте здесь свою бизнес-логику
    NSDictionary *dict = (NSDictionary *)data;
}

Это основные шаги для расширения нового плагина. Новому плагину нужно уделять внимание только своей собственной логике данных, а процесс расширения и интеграции довольно прост.

Шаблоны

Echo для настольных компьютеров Mac включает три универсальных шаблона: List-Detail, Outline и H5, которые удовлетворяют большинству потребностей бизнес-плагинов в отображении и позволяют новым пользователям быстро подключаться, даже если они не знакомы с разработкой для Mac. Опытные разработчики для Mac или те, у кого есть особые требования, могут создавать собственные шаблоны отображения плагинов и интегрировать их, просто сопоставляя имена шаблонов с пользовательским интерфейсом в Echo.

Техническое решение

На изображениях ниже представлено техническое решение Echo.

Как использовать

  1. Добавьте зависимость CocoaPods:
pod 'EchoSDK', :configurations => ["Debug"]
  1. Поскольку система iOS 14 ограничивает локальное сетевое разрешение, необходимо добавить NSLocalNetworkUsageDescription и NSBonjourServices в файл Info.plist проекта. В Xcode выберите файл Info.plist, щёлкните правой кнопкой мыши и выберите Open As Source Code, затем добавьте следующее содержимое:
<key>NSLocalNetworkUsageDescription</key>
<string></string>
<key>NSBonjourServices</key>
<array>
    <string>_ECHO._tcp</string>
</array>

Отображение в Xcode выглядит следующим образом:

  1. Добавьте следующий код при запуске приложения:
#ifdef DEBUG
#import <EchoSDK/ECOClient.h>
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    #ifdef DEBUG
        [[ECOClient sharedClient] start];
    #endif
}
  1. Запустите настольный компьютер Mac с Echo: После выполнения команды pod install вручную в каталоге /Mac вы можете запустить Echo.xcworkspace и запустить его.

Адаптация к iOS 14

Система iOS 14 строго ограничила локальные сетевые разрешения, учитывая, что Echo использует службу Bonjour в фоновом режиме. Необходимо добавить NSLocalNetworkUsageDescription и NSBonjourServices в файл Info.plist проекта в Xcode. Выберите файл Info.plist в Xcode, щёлкните его правой кнопкой мыши и выберите Open As Source Code. Затем добавьте следующее содержимое:

<key>NSLocalNetworkUsageDescription</key>
<string></string>
<key>NSBonjourServices</key>
<array>
    <string>_ECHO._tcp</string>
</array>

Добавление этого содержимого приведёт к следующему отображению в Xcode:

Обратите внимание, что даже без этой адаптации функция автоматического подключения Echo всё равно будет работать. Вы можете использовать USB-соединение для подключения к устройству или запустить симулятор на том же компьютере для автоматического подключения.

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

При разработке Echo использовались и были адаптированы части кода из следующих проектов:

Лицензия

Apache-2.0 license. Эхо распространяется и используется на основе протокола Apache-2.0. Дополнительную информацию см. в лицензионном соглашении.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/didiopensource-echo.git
git@gitlife.ru:oschina-mirror/didiopensource-echo.git
oschina-mirror
didiopensource-echo
didiopensource-echo
master