REFACTOR END
This commit is contained in:
42
tasks/temp/app_refactoring_plan.md
Normal file
42
tasks/temp/app_refactoring_plan.md
Normal 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` модулей.
|
||||
53
tasks/temp/work_order_app_refactoring.xml
Normal file
53
tasks/temp/work_order_app_refactoring.xml
Normal 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>
|
||||
78
tasks/temp/work_order_dashboard_fix_final.xml
Normal file
78
tasks/temp/work_order_dashboard_fix_final.xml
Normal 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>>
|
||||
<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>
|
||||
Reference in New Issue
Block a user