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

OSCHINA-MIRROR/heyclock-mvvm_modularization

Клонировать/Скачать
README.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 20:58 82309ef

Компоненты MVVM + LiveData + ViewModel + Repository — Eventbus-Rx2 — AndroidX Jetpack — AS 3.6.1

  • lib_base: компоненты AndroidX, зависимости Arouter и аннотации, а также базовая конфигурация.

  • lib_annotation: все классы, которые необходимо защитить от запутывания (например, классы сущностей), должны быть снабжены аннотациями (включая внутренние классы).

  • lib_common: общие модули зависимостей, включая lib_base, lib_anotation и lib_network.

  • lib_network: модуль семейства R для сетевой инфраструктуры, который был упакован и может быть расширен и улучшен.

  • lib_miniui: небольшие пользовательские элементы управления, в том числе:

    • Badge (значок): поддерживает красные точки и текстовые красные точки.
    • Изображения: круглые, с рамкой, с закруглёнными углами.
    • Перекрывающиеся изображения: горизонтальное наложение изображений, изображение с движением по кругу, прогресс загрузки.
    • Текст и изображение: текст над изображением, заголовок слева и содержимое справа, текст слева и изображение справа.
    • Кнопки: кнопки с одним выбором, группы кнопок, переключатели.
    • Tablayout с угловыми метками.
  • lib_refreshlayout: настраиваемый компонент обновления (уже интегрирован в главную страницу, находится на стадии тестирования).

  • lib_banner: настраиваемые баннеры (реализованы с использованием ViewPaper2, по умолчанию включают точечный индикатор Snake).

  • lib_media: расширение Google ExoPlayer для воспроизведения музыки и видео.

  • lib_pop: диалоги для обмена, оплаты, завершения задач, галереи/фотографирования, причём диалог для фотографирования имеет встроенные функции, которые могут быть вызваны напрямую.

  • lib_webview: расширение WebView, предоставляющее настройки расширения WebView (в будущем потребуется отдельный процесс и улучшение взаимодействия с JavaScript).

  • lib_sqlite: планируется улучшить с помощью Room (некоторые люди используют более эффективный LitePal).

Модули: другие модули, расширение новых модулей можно рассмотреть на примере module_login (в настоящее время включает перенаправление запросов).

  • module_location: управление адресом доставки (выбор местоположения с помощью Baidu Map).

  • module_pay: платёжный модуль (WeChat, Alipay, логика уже включена).

  • module_login: экран входа, где LoginActivity представляет собой обычный экран входа с номером телефона и кодом подтверждения.

  • module_productdetail: детали товара (демонстрация воспроизведения видео).

Третьи модули: сторонние модули.

  • lib-todaystepcounter: счётчик шагов из открытого исходного кода.

  • lib_stateview: глобальное вращение, загрузка сети/пустой вид (из открытого исходного кода, расширенный и улучшенный).

Обновление

1.0.0: базовая структура проекта поддерживает запутывание, базовую структуру, базовые сетевые инструменты и библиотеки инструментов.

1.1.0: добавлены несторонние библиотеки для погружения — возможно, это адаптация сторонних библиотек для погружения.

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

1.3.0: изучение и практика настраиваемого компонента обновления lib_refreshlayout, отладка и оптимизация.

1.4.0: настраиваемые баннеры lib_banner реализованы с использованием Viewpaper2 и теперь включают индикатор Dot_Snake.

1.4.1: модуль входа в систему module_login включает навигацию и позволяет переходить к регистрации после входа.

1.4.2: нижняя навигация реализована с использованием BottomNavigationView и включает настройку сетевого значка и возможность повторного нажатия для обновления.

2019.06.25: после завершения основных функций движения и электронной коммерции (списки, списки покупок, выбор адреса доставки, информация о заказе, информация о логистике и т. д.) проект будет повторно опубликован.

Архитектура программного обеспечения

Рассматриваются только высокочастотные или встроенные сторонние компоненты, и в будущем некоторые элементы управления будут постепенно добавляться в библиотеку пользовательских представлений UI.

  • DataBinding: используется только для привязки элементов управления и обработки событий.

  • ViewModel<->LiveData: используется для наблюдения за динамическими изменениями данных.

  • Repository<->ViewModel<->BaseView: используется для извлечения данных из базы данных, сети и других источников; конечное состояние возвращается в BaseView (реализуется через интерфейс View).

  • Eventbus: используется для уведомления об обновлении данных между страницами.

  • R: отвечает за упаковку модуля lib_network.

  • Gson: собственный обработчик JSON, который включает пользовательский конвертер для удобства пользовательской обработки.

  • Glide: библиотека загрузки изображений от Google.

  • NotProguard: lib_anotation используется для защиты классов от запутывания, обычно настраиваемые классы сущностей требуют этой аннотации для предотвращения запутывания.

  • Smart обновление компонентов.

  • Exoplayer: официальный проигрыватель аудио и видео.

  • Easypermissions: официальная библиотека разрешений (уже включена в основную страницу).

  • Arouter: сторонний компонент маршрутизации (приложение определяет перехватчики, обрабатывающие вход в систему).

Установка

AS 3.6.1 + classpath 'com.android.tools.build:gradle:3.6.1'.

Рекомендуется обратиться к файлу config.gradle.

Использование

Config.gradle: отвечает за переключение состояний модулей (приложения или библиотеки), имена пакетов приложений и версии, а также версии сторонних зависимостей.

Module_login: служит основным справочником, включая конфигурацию build.gradle, наследование страниц с сервисами и создание viewmodels, инициирование запросов и обработку ответов.

OK: требуется дальнейшее улучшение обработки запросов, вращения списков и обновления, а также завершение работы над модулем lib_network.

Также необходимо реализовать некоторые страницы, похожие на главную страницу рынка.

CONTINUE: необходимо тщательно проанализировать структуру, упростить и оптимизировать соответствующие конфигурации и уровни.

Изображения

В запросе представлены изображения, но без описания. #### Вклад участников

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

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

1
https://api.gitlife.ru/oschina-mirror/heyclock-mvvm_modularization.git
git@api.gitlife.ru:oschina-mirror/heyclock-mvvm_modularization.git
oschina-mirror
heyclock-mvvm_modularization
heyclock-mvvm_modularization
master