REFACTOR END

This commit is contained in:
2025-09-28 10:10:01 +03:00
parent 394e0040de
commit 9b914b2904
117 changed files with 3070 additions and 5447 deletions

View File

@@ -0,0 +1,42 @@
# План рефакторинга `app` модуля
## 1. Контекст
`app` модуль содержит `ui` код, который должен быть вынесен в `feature` модули. Это приводит к ошибкам сборки после рефакторинга `feature:dashboard`.
## 2. План действий
### Шаг 1: Удаление `ui` кода из `app`
Удалить пакет `app/src/main/java/com/homebox/lens/ui`.
### Шаг 2: Создание `feature` модулей
Создать следующие `feature` модули:
* `feature:inventorylist`
* `feature:itemdetails`
* `feature:itemedit`
* `feature:labeledit`
* `feature:labelslist`
* `feature:locationedit`
* `feature:locationslist`
* `feature:search`
* `feature:settings`
* `feature:setup`
### Шаг 3: Перемещение `ui` кода
Переместить `ui` код из `app` в соответствующие `feature` модули.
### Шаг 4: Обновление `app/build.gradle.kts`
Добавить зависимости от новых `feature` модулей в `app/build.gradle.kts`.
### Шаг 5: Обновление `settings.gradle.kts`
Включить новые `feature` модули в `settings.gradle.kts`.
### Шаг 6: Исправление `NavGraph.kt`
Исправить `NavGraph.kt` для использования экранов из `feature` модулей.

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<work_order>
<meta>
<version>1.0</version>
<timestamp>2025-09-26T14:08:01Z</timestamp>
<description>Рефакторинг app модуля.</description>
<priority>high</priority>
</meta>
<task>
<id>refactor_app_module</id>
<name>Рефакторинг app модуля</name>
<instructions>
<step>
<description>Удалить ui пакет из app модуля.</description>
<detail>
<!CDATA[
Удалить пакет app/src/main/java/com/homebox/lens/ui.
]>
</detail>
</step>
<step>
<description>Создать feature модули для каждого экрана.</description>
<detail>
<!CDATA[
Создать следующие feature модули:
- feature:inventorylist
- feature:itemdetails
- feature:itemedit
- feature:labeledit
- feature:labelslist
- feature:locationedit
- feature:locationslist
- feature:search
- feature:settings
- feature:setup
]>
</detail>
</step>
<step>
<description>Переместить ui код из app в соответствующие feature модули.</description>
</step>
<step>
<description>Обновить app/build.gradle.kts для добавления зависимостей от новых feature модулей.</description>
</step>
<step>
<description>Обновить settings.gradle.kts для включения новых feature модулей.</description>
</step>
<step>
<description>Исправить NavGraph.kt для использования экранов из feature модулей.</description>
</step>
</instructions>
</task>
</work_order>

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<work_order>
<meta>
<version>1.0</version>
<timestamp>2025-09-26T13:23:47Z</timestamp>
<description>Исправление ошибок сборки в модуле feature:dashboard.</description>
<priority>high</priority>
</meta>
<task>
<id>fix_unresolved_references</id>
<name>Исправить неразрешенные ссылки в build.gradle.kts и .kt файлах</name>
<instructions>
<step>
<description>Убедиться, что Libs из buildSrc доступны для всех модулей.</description>
<detail>
<!CDATA[
Проблема "Unresolved reference: composeMaterialIconsExtended" в feature/dashboard/build.gradle.kts указывает на то, что Libs из buildSrc/src/main/java/Dependencies.kt не распознается модулем feature:dashboard.
Возможные причины:
1. Проблема с кэшем Gradle (уже пытались решить с помощью clean build).
2. Неправильная конфигурация buildSrc (проверили, kotlin-dsl используется).
3. Проблема с версиями Gradle или Kotlin.
Поскольку buildSrc должен быть автоматически доступен, необходимо убедиться, что его содержимое корректно скомпилировано и доступно для зависимых модулей.
]>
</detail>
</step>
<step>
<description>Проверить файл buildSrc/build.gradle.kts.</description>
<detail>
<!CDATA[
Убедиться, что buildSrc/build.gradle.kts содержит `plugins { `kotlin-dsl` }` и `repositories { mavenCentral() }`.
]>
</detail>
</step>
<step>
<description>Проверить файл feature/dashboard/build.gradle.kts.</description>
<detail>
<!CDATA[
Убедиться, что в файле feature/dashboard/build.gradle.kts правильно используются Libs.
В частности, строка `implementation(Libs.composeMaterialIconsExtended)` должна разрешаться.
]>
</detail>
</step>
<step>
<description>Исправить DashboardScreen.kt.</description>
<detail>
<!CDATA[
1. Заменить `homeboxLensTheme` на `HomeboxLensTheme`.
2. Проверить импорты для `ExperimentalLayoutApi`, `FlowRow` и `QrCodeScanner`. Они должны быть:
`import androidx.compose.foundation.layout.ExperimentalLayoutApi`
`import androidx.compose.foundation.layout.FlowRow`
`import androidx.compose.material.icons.automirrored.filled.QrCodeScanner`
]>
</detail>
</step&gt>
<step>
<description>Исправить MainScaffold.kt.</description>
<detail>
<!CDATA[
Проверить импорты для `AutoMirrored` и `ArrowBack`. Они должны быть:
`import androidx.compose.material.icons.AutoMirrored`
`import androidx.compose.material.icons.filled.ArrowBack`
Использование должно быть `Icons.AutoMirrored.Filled.ArrowBack`.
]>
</detail>
</step>
<step>
<description>Запустить сборку проекта.</description>
<detail>
<!CDATA[
После внесения всех изменений, запустить команду `./gradlew clean build` и убедиться, что сборка проходит без ошибок.
]>
</detail>
</step>
</instructions>
</task>
</work_order>