Skip to content

Commit fcae758

Browse files
author
Yuriy Elistratov
committed
release: Update readme, changelog, migration guide
1 parent 961cf27 commit fcae758

3 files changed

Lines changed: 94 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
## [Unreleased]
2-
3-
### Changes
4-
5-
- *No changes*
6-
7-
## [1.2.0] (2026-06-05)
1+
## [Unreleased]
2+
3+
### Changes
4+
5+
* **Breaking changes:** `plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature-ui]. Собственная реализация экрана, `ViewModel`, диалога редактирования и `JsonConverter` удалены — UI, состояние и хранение переопределений теперь предоставляет `konfeature-ui`. См. [migration guide](docs/migration_guide.md).
6+
* **Breaking changes:** Удалён `KonfeatureDebugPanelInterceptor`. Вместо него используется `KonfeatureDebugPanelConfig`, который объединяет хранилище переопределений (DataStore) и интерцептор. Создайте конфиг через `KonfeatureDebugPanelConfig.create(context)`, подключите его к `Konfeature` через `applyDebugPanelConfig(config)` и передайте тот же конфиг в `KonfeaturePlugin(konfeature, config)`.
7+
* **Breaking changes:** Изменена сигнатура конструктора `KonfeaturePlugin`: параметр `debugPanelInterceptor` заменён на `config: KonfeatureDebugPanelConfig`.
8+
* **Breaking changes:** Для debug-сборок теперь необходимо подключать `konfeature-ui`, а для release-сборок — `konfeature-ui-noop`.
9+
* Изменено поведение переопределения значений: в панели инлайн-переключаются только `Boolean`-тогглы, значения остальных типов отображаются только для чтения.
10+
* Обновлён каталог версий зависимостей (2026.02.23 → 2026.07.10).
11+
* Gradle обновлён с 9.1.0 до 9.4.1.
12+
13+
## [1.2.0] (2026-06-05)
814

915
### Changes
1016

@@ -139,3 +145,4 @@
139145
* Исправлены мелкие баги.
140146

141147
[migration-guide]: migration_guide.md
148+
[konfeature-ui]: https://github.com/RedMadRobot/Konfeature

README.md

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
Библиотека предоставляет встроенную отладочную панель для Android-приложений, предназначенную для использования в debug и QA-сборках.
44

5-
<img width="1925" height="1090" alt="debug_preview" src="https://github.com/user-attachments/assets/52d83dcb-a8e6-4c86-9d65-87b27d4796bf" />
5+
<video src="https://github.com/user-attachments/assets/c8935f5d-1458-4e4d-9008-120ef0300013" width="300" controls>
6+
<a href="https://github.com/user-attachments/assets/c8935f5d-1458-4e4d-9008-120ef0300013">Watch the debug-panel demo</a>
7+
</video>
68

79
[![Maven Central Version](https://img.shields.io/maven-central/v/com.redmadrobot.debug/panel-core?style=flat-square)](https://central.sonatype.com/search?namespace=com.redmadrobot.debug)
810
[![License](https://img.shields.io/github/license/RedMadRobot/debug-panel-android?style=flat-square)][license]
@@ -46,7 +48,9 @@ dependencies {
4648
// Плагин для работы с remote config на основе Konfeature
4749
debugImplementation("com.redmadrobot.debug:plugin-konfeature:${debug_panel_version}")
4850
// Так же необходимо подключить саму библиотеку konfeature
49-
debugImplementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
51+
implementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
52+
// UI плагина Konfeature (для release используется no-op вариант, см. шаг 3)
53+
debugImplementation("com.redmadrobot.konfeature:konfeature-ui:${konfeature_version}")
5054

5155
// Плагин для отображения информации о приложении
5256
debugImplementation("com.redmadrobot.debug:plugin-about-app:${debug_panel_version}")
@@ -58,6 +62,8 @@ dependencies {
5862

5963
```kotlin
6064
releaseImplementation("com.redmadrobot.debug:panel-no-op:${debug_panel_version}")
65+
// no-op вариант UI Konfeature для release-сборок
66+
releaseImplementation("com.redmadrobot.konfeature:konfeature-ui-noop:${konfeature_version}")
6167
```
6268

6369
## Использование библиотеки в коде
@@ -97,6 +103,9 @@ fun openDebugPanel() {
97103
## Работа с плагинами
98104

99105
### ServersPlugin
106+
107+
<img width="300" alt="servers-screen" src="https://github.com/user-attachments/assets/5247295a-00d4-45a0-833a-eb5a589fd456" />
108+
100109
Используется для работы с тестовыми серверами
101110

102111
Доступна возможность задать список предустановленных серверов
@@ -168,29 +177,35 @@ val selectedServer = getPlugin<ServersPlugin>().getSelectedServer()
168177

169178
### Konfeature Plugin
170179

180+
<img width="300" alt="konfeature-screen" src="https://github.com/user-attachments/assets/b9608e53-2c8d-42ce-9c9f-715ac5fc6f3a" />
181+
171182
В основе плагина лежит библиотека [Konfeature][konfeature], которая позволяет:
172183

173184
- отображать конфигурации feature, используемые в Konfeature
174185
- просматривать источник каждого элемента конфигурации (Default, Firebase, AppGallery и др.)
175-
- переопределять значения элементов конфигурации с типами Boolean, String, Long, Double
186+
- переопределять значения тогглов типа `Boolean` прямо в панели (значения остальных типов отображаются только для чтения)
187+
188+
Экран, список фич и хранение переопределений (DataStore) предоставляет библиотека [`konfeature-ui`][konfeature]. Плагин лишь встраивает её экран в дебаг-панель. Переопределённые значения сохраняются между перезапусками приложения.
176189

177-
Для подключения плагина необходимо передать объект класса `KonfeatureDebugPanelInterceptor` и экземпляр `Konfeature`
190+
Для подключения нужно создать `KonfeatureDebugPanelConfig`, подключить его к экземпляру `Konfeature` через `applyDebugPanelConfig(...)` и передать тот же самый конфиг в `KonfeaturePlugin`:
178191

179192
```kotlin
180-
val debugPanelInterceptor = KonfeatureDebugPanelInterceptor(context)
193+
// создаётся один раз на старте приложения; create() — suspend-функция
194+
val config = KonfeatureDebugPanelConfig.create(context)
181195

182196
val konfeatureInstance = konfeature {
183-
if (isDebug) {
184-
addInterceptor(debugPanelInterceptor)
185-
}
197+
register(MyFeatureConfig())
198+
applyDebugPanelConfig(config)
186199
}
187200

188201
KonfeaturePlugin(
189-
debugPanelInterceptor = debugPanelInterceptor,
190202
konfeature = konfeatureInstance,
203+
config = config,
191204
)
192205
```
193206

207+
> Важно: в `KonfeaturePlugin` необходимо передать тот же самый `config`, который был подключён к `Konfeature` через `applyDebugPanelConfig(...)`. Если конфиг не был подключён, конструктор плагина упадёт с ошибкой, так как панель показывала бы значения, которые не может переопределить.
208+
194209
В builder Konfeature доступны следующие настройки:
195210

196211
- добавление конфигурации конкретной фичи — `register(FeatureConfigN())`
@@ -199,6 +214,8 @@ KonfeaturePlugin(
199214

200215
### AboutApp Plugin
201216

217+
<img width="300" alt="about-app-screen" src="https://github.com/user-attachments/assets/37f42693-0fb0-4475-89a3-384d21e74e97" />
218+
202219
Предназначен для отображения информации о приложении: версии, номера сборки и других произвольных данных.
203220

204221
Для подключения плагина необходимо передать список объектов `AboutAppInfo`, содержащий хотя бы один элемент:

docs/migration_guide.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
11
# Миграция
22

3+
## Миграция на версию 1.3.0
4+
5+
### Переход plugin-konfeature на библиотеку konfeature-ui
6+
7+
`plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature]: экран, список фич и хранение переопределений (DataStore) теперь предоставляет она. Собственный `KonfeatureDebugPanelInterceptor`, экран, `ViewModel` и диалог редактирования удалены.
8+
9+
Вместо `KonfeatureDebugPanelInterceptor` используется `KonfeatureDebugPanelConfig` — он объединяет хранилище переопределений и интерцептор, гарантируя, что панель и `Konfeature` работают с одним и тем же store.
10+
11+
> Миграция хранимых значений не предусмотрена: ранее переопределённые значения после обновления сбрасываются к значениям из источников.
12+
13+
#### Gradle
14+
15+
Для debug-сборок необходимо подключить `konfeature-ui`, для release-сборок — `konfeature-ui-noop`. Зависимость `konfeature` переведена в `implementation`, так как нужна в обеих конфигурациях.
16+
17+
```diff
18+
- debugImplementation("com.redmadrobot.konfeature:konfeature:<version>")
19+
+ implementation("com.redmadrobot.konfeature:konfeature:<version>")
20+
+ debugImplementation("com.redmadrobot.konfeature:konfeature-ui:<version>")
21+
+ releaseImplementation("com.redmadrobot.konfeature:konfeature-ui-noop:<version>")
22+
```
23+
24+
#### Инициализация
25+
26+
`KonfeatureDebugPanelConfig.create(...)``suspend`-функция, вызовите её на старте приложения из подходящего scope. Тот же `config` необходимо подключить к `Konfeature` через `applyDebugPanelConfig(...)` и передать в `KonfeaturePlugin`.
27+
28+
```diff
29+
- val debugPanelInterceptor = KonfeatureDebugPanelInterceptor(context)
30+
- val konfeatureInstance = konfeature {
31+
- addInterceptor(debugPanelInterceptor)
32+
- }
33+
- KonfeaturePlugin(
34+
- debugPanelInterceptor = debugPanelInterceptor,
35+
- konfeature = konfeatureInstance,
36+
- )
37+
38+
+ val config = KonfeatureDebugPanelConfig.create(context)
39+
+ val konfeatureInstance = konfeature {
40+
+ register(MyFeatureConfig())
41+
+ applyDebugPanelConfig(config)
42+
+ }
43+
+ KonfeaturePlugin(
44+
+ konfeature = konfeatureInstance,
45+
+ config = config,
46+
+ )
47+
```
48+
49+
> Конструктор `KonfeaturePlugin` упадёт с ошибкой, если переданный `config` не был подключён к `Konfeature` через `applyDebugPanelConfig(...)`.
50+
51+
#### Переопределение значений
52+
53+
Инлайн-переопределение в панели теперь доступно только для тогглов типа `Boolean`. Значения остальных типов отображаются только для чтения.
54+
355
## Миграция на версию 1.0.0
456

557
### Миграция с FlipperPlugin на KonfeaturePlugin
@@ -255,4 +307,5 @@ VariablePlugin позволял изменять значения перемен
255307
Планируется развивать и улучшать KonfeaturePlugin, так что следите за обновлениями.
256308

257309

258-
[readme]: /README.md
310+
[readme]: /README.md
311+
[konfeature]: https://github.com/RedMadRobot/Konfeature

0 commit comments

Comments
 (0)