В этой статье даны пояснения по основным концепциям разработки расширения Агрегатор поисковых машин, описаны общие принципы системы выпуска экспериментальных версий (ECR), а также приведены некоторые технические подробности и особенности применения аддона. В этой статье:
Основные концепции и подходы к разработке
Условия и особенности примененияПри работе с расширением и, особенно, при выполнении различных настроек, пользователь должен чётко представлять себе смысл и назначение каждой опции или функции. Это позволит избежать отдельных проблем и "непоняток" при эксплуатации "Агрегатора". Для лучшего понимания что, как и зачем "крутить", следует не только читать встроенные подсказки к отдельным опциям, но и уметь самостоятельно разбираться в отдельных вопросах. Агрегатор предназначен в первую очередь для пользователей, желающих получить в своё распоряжение максимальное число доступных сервисов поиска. При этом у каждого пользователя есть возможность полностью настроить требуемые сервисы под свои конкретные задачи, а также создать "под себя" необходимое множество вариантов поисковых шаблонов, подстраивая их под вполне конкретные частные условия применения. Тем не менее, при всей объёмности доступных настроек АПМ остаётся простым в применении и нетребовательным к ресурсам приложением. Работать с АПМ можно практически на любом браузере семейства Chromium (минимальная "теоретическая" версия – не ниже 27, рекомендуемая – 31 и новее). Кроме того, АПМ не имеет никаких фоновых процессов и не потребляет ресурсов кроме как на момент вызова его интерфейсной части (окон поиска или настроек). Исходный код, интерфейс и задействованные APIКод использует только чистый JS (ES5), все неподдерживаемые в "старых" браузерах функции заменены на аналоги. Все скрипты работают в "строгом" режиме – для гарантированного выполнения функций и облегчения отлова ошибок. Всё управление работой расширения осуществляется через попап-окно, вызываемое по щелчку на иконке на тулбаре. Интерфейс прост и интуитивно понятен, для всех "кликабельных" элементов добавлены тултипы и подсказки. Страница настроек всех основных и дополнительных опций и функций, включая управление параметрами поиска и самого АПМ, может быть открыта либо в этом же попапе, либо в отдельной вкладке. В текущих версиях АПМ в манифесте расширения отдельная страница настроек не указана – исключительно в связи с тем, что гораздо удобнее (и быстрее!) вызвать Настройки "в один клик" прямо со значка на тулбаре.) Для отрисовки интерфейса попапа и страницы настроек не используются никакие сторонние JS/CSS библиотеки, весь интерфейс работает на чистом HTML с минимально необходимым набором стилей и скриптов. Язык интерфейса, сообщений, подсказок и описания – только русский (жёстко зашит в коде). Расширение имеет модульную структуру скриптов, загружаемых по необходимости. Выгрузка модулей и очистка занимаемой ими памяти производится автоматически – как только прекращается использование конкретного модуля (например, при закрытии окна ввода поискового запроса). Это снижает общий текущий расход памяти и позволяет достаточно легко добавлять новые возможности и функции в системе "ECR". Для вызова попапа (или окна настроек вместо него) применяется API chrome.browserAction. Для выполнения действий на веб-страницах применяется API chrome.tabs (опциональное разрешение). Также применяется разрешение activeTab, упрощающее отдельные контекстные действия на текущих страницах. Для текущего хранения всех пользовательских настроек используется API chrome.storage, в манифесте АПМ это разрешение отдельно не указывается в силу достаточности объёма хранимых данных по умолчанию. Для обеспечения корректной работы отдельных дополнительных функций аддона с любыми хостами и протоколами в манифесте запрашивается опциональное разрешение "<all_urls>". Для обеспечения работы с локальными файлами пользовательских данных (экспорт/импорт, иконки, стили интерфейса и настройки) указано разрешение "file:///*/*". При обработке частных стилей оформления интерфейса, заданных пользователем, все CSS-правила сохраняются как текст, сохранение (экспорт/импорт) пользовательских настроек – в json-формате. Аддон не имеет практических ограничений по версии браузера, используемые API работают в версиях 27+. Исходный код НЕ обфусцирован, исключительно с целью удобства при возможных доработках и для облегчения читаемости кода при его исследовании. Если кому-то это критично – удалите комментарии и пропустите через компрессоры.) Версии в системе ECR – Experimental Concept ReleaseПри разработке применяется специальная система выпуска версий – ECR или "экспериментальная концепт-версия". Термин введён автором и применяется не только для "Агрегатора", но и для других расширений. ECR – это система развития дополнительного функционала, позволяющая енд-юзеру выбрать именно ту версию, которая подходит ему больше всего. При этом каждое из таких "ответвлений" является полноценным продуктом, обеспечивающим решение основной задачи (ввод и выполнение поисковых запросов). ECR – это экспериментальная версия расширения, имеющая одну или несколько "нестандартных фишек", направленных на повышение удобства использования и/или использующих "нестандартный" способ решения отдельных типовых задач. ECR отличается от "стабильной" версии только способом реализации функций, работоспособность кода в целом гарантируется точно также, как и в "обычных" версиях – в ECR не применяются нестабильные или "новомодные" фишки, которые могут послужить причиной возникновения ошибок или иных проблем у пользователя. Проще говоря, ECR – это не отладочный "дев-билд", это именно отработка концепций иных способов решения каких-либо задач в браузере, поэтому ECR-версии могут использоваться для повседневной работы точно также, как и любые стабильные версии. Все ECR-версии также выпускаются под одним ID, что позволяет сохранять преемственность настроек при переходе от одной к другой (с учётом прямой совместимости отдельных настроек и применяемых функций). Ссылки для интересующихся
| ||||||||||
Бармалей 27.12.2013 30.01.2021 289 Общие технические сведения о разработке
|
Всего комментариев: 0 |