Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
## [Unreleased]

### Changes

- *No changes*

## [1.2.0] (2026-06-05)
## [Unreleased]

### Changes

* **Breaking changes:** `plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature-ui]. Собственная реализация экрана, `ViewModel`, диалога редактирования и `JsonConverter` удалены — UI, состояние и хранение переопределений теперь предоставляет `konfeature-ui`. См. [migration guide](docs/migration_guide.md).
* **Breaking changes:** Удалён `KonfeatureDebugPanelInterceptor`. Вместо него используется `KonfeatureDebugPanelConfig`, который объединяет хранилище переопределений (DataStore) и интерцептор. Создайте конфиг через `KonfeatureDebugPanelConfig.create(context)`, подключите его к `Konfeature` через `applyDebugPanelConfig(config)` и передайте тот же конфиг в `KonfeaturePlugin(konfeature, config)`.
* **Breaking changes:** Изменена сигнатура конструктора `KonfeaturePlugin`: параметр `debugPanelInterceptor` заменён на `config: KonfeatureDebugPanelConfig`.
* Изменено поведение переопределения значений: в панели инлайн-переключаются только `Boolean`-тогглы, значения остальных типов отображаются только для чтения.
* Обновлён каталог версий зависимостей (2026.02.23 → 2026.07.10).
* Gradle обновлён с 9.1.0 до 9.4.1.

## [1.2.0] (2026-06-05)

### Changes

Expand Down Expand Up @@ -139,3 +144,4 @@
* Исправлены мелкие баги.

[migration-guide]: migration_guide.md
[konfeature-ui]: https://github.com/RedMadRobot/Konfeature
31 changes: 22 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

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

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

[![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)
[![License](https://img.shields.io/github/license/RedMadRobot/debug-panel-android?style=flat-square)][license]
Expand Down Expand Up @@ -46,7 +48,7 @@ dependencies {
// Плагин для работы с remote config на основе Konfeature
debugImplementation("com.redmadrobot.debug:plugin-konfeature:${debug_panel_version}")
// Так же необходимо подключить саму библиотеку konfeature
debugImplementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
implementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")

// Плагин для отображения информации о приложении
debugImplementation("com.redmadrobot.debug:plugin-about-app:${debug_panel_version}")
Expand Down Expand Up @@ -97,6 +99,9 @@ fun openDebugPanel() {
## Работа с плагинами

### ServersPlugin

<img width="300" alt="servers-screen" src="https://github.com/user-attachments/assets/5247295a-00d4-45a0-833a-eb5a589fd456" />

Используется для работы с тестовыми серверами

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

### Konfeature Plugin

<img width="300" alt="konfeature-screen" src="https://github.com/user-attachments/assets/b9608e53-2c8d-42ce-9c9f-715ac5fc6f3a" />

В основе плагина лежит библиотека [Konfeature][konfeature], которая позволяет:

- отображать конфигурации feature, используемые в Konfeature
- просматривать источник каждого элемента конфигурации (Default, Firebase, AppGallery и др.)
- переопределять значения элементов конфигурации с типами Boolean, String, Long, Double
- переопределять значения тогглов типа `Boolean` прямо в панели (значения остальных типов отображаются только для чтения)

Экран, список фич и хранение переопределений (DataStore) предоставляет библиотека [`konfeature-ui`][konfeature]. Плагин лишь встраивает её экран в дебаг-панель. Переопределённые значения сохраняются между перезапусками приложения.

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

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

val konfeatureInstance = konfeature {
if (isDebug) {
addInterceptor(debugPanelInterceptor)
}
register(MyFeatureConfig())
applyDebugPanelConfig(config)
}

KonfeaturePlugin(
debugPanelInterceptor = debugPanelInterceptor,
konfeature = konfeatureInstance,
config = config,
)
```

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

В builder Konfeature доступны следующие настройки:

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

### AboutApp Plugin

<img width="300" alt="about-app-screen" src="https://github.com/user-attachments/assets/37f42693-0fb0-4475-89a3-384d21e74e97" />

Предназначен для отображения информации о приложении: версии, номера сборки и других произвольных данных.

Для подключения плагина необходимо передать список объектов `AboutAppInfo`, содержащий хотя бы один элемент:
Expand Down
44 changes: 43 additions & 1 deletion docs/migration_guide.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,46 @@
# Миграция

## Миграция на версию 1.3.0

### Переход plugin-konfeature на библиотеку konfeature-ui

`plugin-konfeature` переведён на публичную библиотеку [`konfeature-ui`][konfeature]: экран, список фич и хранение переопределений (DataStore) теперь предоставляет она. Собственный `KonfeatureDebugPanelInterceptor`, экран, `ViewModel` и диалог редактирования удалены.

Вместо `KonfeatureDebugPanelInterceptor` используется `KonfeatureDebugPanelConfig` — он объединяет хранилище переопределений и интерцептор, гарантируя, что панель и `Konfeature` работают с одним и тем же store.

> Миграция хранимых значений не предусмотрена: ранее переопределённые значения после обновления сбрасываются к значениям из источников.

#### Инициализация

`KonfeatureDebugPanelConfig.create(...)` — `suspend`-функция, вызовите её на старте приложения из подходящего scope. Тот же `config` необходимо подключить к `Konfeature` через `applyDebugPanelConfig(...)` и передать в `KonfeaturePlugin`.

```diff
- val debugPanelInterceptor = KonfeatureDebugPanelInterceptor(context)
- val konfeatureInstance = konfeature {
- addInterceptor(debugPanelInterceptor)
- }
- KonfeaturePlugin(
- debugPanelInterceptor = debugPanelInterceptor,
- konfeature = konfeatureInstance,
- )

+ val config = KonfeatureDebugPanelConfig.create(context)
+ val konfeatureInstance = konfeature {
+ register(MyFeatureConfig())
+ applyDebugPanelConfig(config)
+ }
+ KonfeaturePlugin(
+ konfeature = konfeatureInstance,
+ config = config,
+ )
```

> Конструктор `KonfeaturePlugin` упадёт с ошибкой, если переданный `config` не был подключён к `Konfeature` через `applyDebugPanelConfig(...)`.

#### Переопределение значений

Инлайн-переопределение в панели теперь доступно только для тогглов типа `Boolean`. Значения остальных типов отображаются только для чтения.

## Миграция на версию 1.0.0

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


[readme]: /README.md
[readme]: /README.md
[konfeature]: https://github.com/RedMadRobot/Konfeature
Loading