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

OSCHINA-MIRROR/xiaojinziCoder-Component

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 04:26 b52604c

Компонент будет решать ваш issue максимально быстро, предоставляя решения.

KComponent чистая версия на Kotlin уже давно доступна, приветствуем использование всех!!!

Можно сказать, что до сих пор среди всех маршрутизаторов на основе URI (ARouter, WMRouter, ActivityRouter...) Компонент является наиболее мощной и полной компонентной системой.

Выбор лучшего, более полного, стабильного и перспективного фреймворка — это задача вашего технического отдела или руководителя технологий!

Сравнение Компонента и ARouter

Просмотреть, какие болевые точки разработки решает Компонент

Компонент

Мощная компонентная система, которая очень заботится о пользовательском опыте, приносит вам удовольствие от использования. Приглашаем вас использовать её, если вы столкнетесь с любыми проблемами во время использования, пожалуйста, задайте вопрос в QQ группе ниже или создайте issue.Узнать больше о последних выпусках JitPack Узнать больше о последних выпусках JitPack AndroidX Узнать больше о последних выпусках Узнать больше о тэгах

1. Демо опытаСканирование или нажмите на изображение для загрузки

2. Пример "Hello World"

Наиболее простой пример "Hello World"

3. Полная документация- Зависимости и конфигурация

Статьи Что такое модульная архитектура?

4. Описание функций Component

Конечно, вот ваш текст переведён на русский язык:

Этот компонентный подход действительно имеет множество преимуществ по сравнению с открытыми компонентными фреймворками, такими как ARouter, WMRouter, ActivityRouter, CC, DDComponent.

  • Поддержка нескольких модулей

  • Поддержка архитектуры Google App Bundle

  • Поддержка проектов с Flutter, H5 и другими гибридными проектами

  • Поддержка androidx, что практически не реализовано в других компонентных фреймворках

  • Проектирование максимально приближено к нативному, минимальное вторжение в нативный код

  • Поддержка внедрения зависимостей и маршрутизация целевых интерфейсов

  • Кросс-модульные вызовы

  • Поддержка жизненного цикла бизнес-компонентов (загрузка и выгрузка)

  • Встроенный плагин IDEA для удобной навигации, регулярно обновляемый плагин

  • Полная поддержка RxJava2 (использует библиотеку rx)

  • Отделение службы от маршрутизации

    • На самом деле эти две части являются двумя разными аспектами, поэтому мне не совсем понятно, почему многие решения объединяют их вместе.- [x] Усиление декоратора для обнаружения служб
  • Индивидуальное выполнение бизнес-модулей

  • Возможность перехода между маршрутами

    • Поддержка создания документации
    • Получение прокси-маршрута для целевой точки
    • Поддержка использования стандартного URI
    • Безболезненная интеграция с H5
      • Для H5 достаточно использовать URL для перехода к любому интерфейсу (необходим один общий метод перехода, который полностью игнорирует необходимость авторизации, локализации или прав доступа).
@JavascriptInterface
public void openUrl(final String url) {
    Router.with(this).url(url).forward();
}
  • При запуске маршрута H5 не требуется беспокоиться о предварительных условиях целевого интерфейса (страница-перехватчик уже выполнила все необходимые действия).

    • внешняя ссылка переход

    • Поддерживает нативный анимацию перехода

    • Поддерживает переход Fragment (то есть получение Fragment между компонентами)

    • Поддерживает один Activity много Fragment архитектура

    • Направление маршрута имеет исполнение потока главного потока, в целом это асинхронное выполнение (это многие люди не понимают, ничего страшного. сначала используйте его, затем постепенно поймете) - В дизайне исполнительного потока маршрута было учтено, что большая часть кода, которую пользователи обычно пишут, составляет около 90% главного потока,
      поэтому исполнительный поток маршрута также был спроектирован как главный поток, позволяющий вам безопасно выполнять операции с UI, отображать диалоговые окна и т.д.
      При этом предоставляется механизм обратного вызова (Callback), который позволяет выполнять любую долгоживущую задачу внутри маршрутизатора.
      Это абсолютное преимущество, поскольку весь процесс является асинхронным, а внутри маршрутизатора можно писать реализацию так же, как обычно.

    • Отмена маршрута, практически ни один маршрутный фреймворк не поддерживает отмену маршрута, что является большим преимуществом!

      • Ручная отмена маршрута с помощью кода
      • Автоматическая отмена маршрута, когда запускающий маршрут Fragment или Activity уничтожается, маршрут автоматически отменяется.
    • Маршрутный перехватчик, полностью удовлетворяет всем бизнес-случаям (подробнее см. перехватчик wiki)) - [x] Глобальный перехватчик (для всех маршрутов)

      • Локальный маршрутный перехватчик

        • страница перехватчика (для всех маршрутов, переходящих на определенную страницу)
        • Альтернативное имя перехватчика, поддерживающее использование между модулями (что позволяет каждому перехватчику находиться в своём модуле) - [x] Переход
      • Поддерживает стандартный URI

      • Поддерживает пользовательский Intent, вы можете пометить любой Intent как маршрут, эта функция очень мощная!

      • Поддерживает программирование переходов по аналогии с Retrofit

      • Idea Plugin мощно поддерживает навигацию между кодом перехода и целевой страницей, а также между местом использования перехватчика и его объявлением

      • 0 конфигураций для получения ActivityResult, возвращаемого с целевой страницы, часто недоступной во многих фреймворках или требующей изменения базового класса BaseActivity. Абсолютное преимущество.

      • Ведёт себя так же, как система, когда контекст (Context) является контекстом приложения (Application), службой (Service) или провайдером содержимого (ContentProvider). Получение ActivityResult не поддерживается в этих случаях. Если вам действительно это нужно, вы можете использовать верхний активити стека в качестве контекста.

      • Кроме случаев, указанных выше, получение ActivityResult поддерживается во всех остальных ситуациях, включая получение контекста внутри диалога.

      • Если вы хотите использовать этот функционал отдельно, вы можете сделать это, используя зависимость от этого модуля, ссылка здесь

  • Аннотация-драйвер не поддерживает частичные обновления, пока неясно, как это реализовать## 5. Дополнительный плагин для Android Studio

Поиск плагина RouterGo в Android Studio позволяет скачать соответствующий плагин.

Исходный код RouterGo: помогает быстро навигировать до целевых экранов или целевых интерцепторов, вы этого заслуживаете!

6. Структура проекта Component (Пример + Исходный код библиотеки)

  • Пример кода
    • app --> Основной проект
    • Module1 --> Бизнес-модуль на Java
    • Module1run --> Отдельно запускаемый бизнес-модуль Module1 в виде приложения
    • Module2 --> Бизнес-модуль на Kotlin
    • ModuleHelp --> Модуль помощи, содержащий общие компоненты или системные зависимости
    • ModuleUser --> Модуль пользователя
    • ModuleBase --> Основной модуль для каждого бизнес-компонента, все остальные модули зависят от него
  • Реализационная библиотека
    • ComponentApi --> Библиотека API
    • ComponentCompiler --> Библиотека аннотации-драйвера
    • ComponentImpl --> Реализационная библиотека
    • ComponentRxImpl --> Расширение реализационной библиотеки для RxJava
    • ComponentPlugin --> Дополнительный Gradle-плагин, предоставляющий две возможности:
      • Улучшение способа инициализации, замена рефлексии на создание объектов через конструктор
      • Генерация документации маршрутов

7. Сканирование QR-кода для присоединения к группе

## 8. Если вам понравился проект, пожалуйста, сделайте мне подарок кофе! Любое количество — это знак внимания!

9. Лицензия

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/xiaojinziCoder-Component.git
git@api.gitlife.ru:oschina-mirror/xiaojinziCoder-Component.git
oschina-mirror
xiaojinziCoder-Component
xiaojinziCoder-Component
1.x/develop