Skip to content

Commit ae0a9e0

Browse files
committed
docs: update docs by release 1.0.0
1 parent cc481cd commit ae0a9e0

4 files changed

Lines changed: 275 additions & 166 deletions

File tree

CHANGELOG.md

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,28 @@
44

55
- *No changes*
66

7+
## [1.0.0] (2026-03-06)
8+
9+
### Changes
10+
11+
* **Breaking changes:** Удалён `plugin-flipper`. Вместо него используйте плагин Konfeature. См. гайд по миграции: [migration guide](docs/migration_guide.md).
12+
* **Breaking changes:** Удалён `DebugStage` из `plugin-servers`. Вместо него используйте `DebugServer`. См. [migration guide](docs/migration_guide.md).
13+
* **Breaking changes:** Удалён `plugin-accounts`. Плагин для работы с тестовыми аккаунтами полностью удалён. См. [migration guide](docs/migration_guide.md).
14+
* **Breaking changes:** Удалён `plugin-app-settings`. Плагин для просмотра и редактирования `SharedPreferences` полностью удалён. См. [migration guide](docs/migration_guide.md).
15+
* **Breaking changes:** Удалён `DebugPanelConfig` и shaker mode. Параметр `config` убран из `DebugPanel.initialize()`. Открытие панели по встряхиванию устройства больше не поддерживается. См. [migration guide](docs/migration_guide.md).
16+
* **Breaking changes:** Повышен `minSdk` с 21 до 23. Библиотека больше не поддерживает Android 5.0–5.1 (API 21–22).
17+
* **Breaking changes:** Java compatibility повышена с 11 до 17. Требуется JDK 17+.
18+
* **Breaking changes:** Gradle обновлён с 8.11 до 9.1.
19+
* **Breaking changes:** Обновлён каталог версий зависимостей (2025.03.10 → 2026.02.23). Подробнее [здесь](https://github.com/RedMadRobot/gradle-version-catalogs/releases/tag/2026.02.23).
20+
* Повышены `compileSdk` и `targetSdk` с 35 до 36.
21+
* Удалён модуль `panel-common`. Зависимости перенесены в `panel-core` и отдельные плагины.
22+
* Дебаг-панель теперь открывается как полноэкранная `Activity` вместо bottom sheet.
23+
* Хранение серверов переведено с Room на DataStore.
24+
* Добавлен статический анализатор detekt.
25+
* Добавлен `plugin-about-app` для отображения информации о приложении в дебаг-панели.
26+
* Добавлена возможность поиска тогглов по ключу в `plugin-konfeature`.
27+
* Исправлена утечка памяти в `DebugPanelBroadcastReceiver`.
28+
729
## [0.9.3] (2025-04-24)
830

931
### Changes
@@ -50,9 +72,9 @@
5072
* Исправлен краш на SDK 34 (#7)
5173
* Исправлен краш при доступе к БД (#5)
5274
* Обновлены зависимости:
53-
* Kotlin 1.6.20 → 1.9.23
54-
* Room 2.4.0 → 2.6.1
55-
* KotlinX Coroutines 1.3.9 → 1.8.0
75+
* Kotlin 1.6.20 → 1.9.23
76+
* Room 2.4.0 → 2.6.1
77+
* KotlinX Coroutines 1.3.9 → 1.8.0
5678
* Удалено использование синтетиков
5779
* Обновлено окружение сборки проекта
5880

README.md

Lines changed: 53 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
# Debug-panel
22

3-
[![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)
4-
5-
Бибилиотека для отладки приложений.
3+
Библиотека для отладки приложений.
64

7-
> [!WARNING]
8-
>
9-
> Библиотека находится в стадии разработки.
5+
![Превью](assets/debug_preview.png)
106

11-
---
7+
[![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)
8+
[![License](https://img.shields.io/github/license/RedMadRobot/debug-panel-android?style=flat-square)][license]
9+
[![Android](https://img.shields.io/badge/Android-3DDC84?style=flat-square&logo=android&logoColor=white)](#)
1210

13-
**[Changelog][changelog]** | **[Документация по разработке плагинов][plugin-development-doc]** | **[Миграция на новые версии][migration-guide]**
11+
**[Changelog][changelog]** | **[Миграция на новые версии][migration-guide]**
1412

15-
Тебе надоело каждый раз вручную вбивать логин и пароль тестового пользователя или пересобирать приложение для того чтобы поменять сервер в настройках? Эта библиотека разрабатывается с идеей решить эти и другие проблемы, и сделать процесс отладки приложения более удобным.
13+
Тебе надоело пересобирать приложение для того чтобы поменять сервер в настройках или переключить feature toggle? Эта библиотека разрабатывается с идеей решить эти и другие проблемы, и сделать процесс отладки приложения более удобным.
1614

1715
В данный момент библиотека предоставляет следующий функционал:
1816

19-
1. **Добавление, редактирование и выбор юзера.**
20-
2. **Добавление, редактирование и выбор сервера.**
21-
3. **Просмотр и редактирование SharedPreferences.**
22-
4. **Управление Feature toggle на основе Flipper.**
23-
5. **Управление remote config на основе Konfeature.**
17+
1. **Добавление, редактирование и выбор сервера.**
18+
2. **Управление feature-toggles и remote config на основе Konfeature.**
19+
3. **Отображение информации о приложении.**
2420

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

@@ -30,46 +26,38 @@
3026

3127
1. Подключить `Core` модуль для работы самой панели:
3228

33-
```groovy
29+
```kotlin
3430

3531
dependencies {
36-
//core модуль панели
37-
debugImplementation 'com.redmadrobot.debug:panel-core:${debug_panel_version}'
32+
// Core модуль панели
33+
debugImplementation("com.redmadrobot.debug:panel-core:${debug_panel_version}")
3834
}
3935
```
4036

4137

4238

4339
2. Подключить необходимые плагины
4440

45-
```groovy
41+
```kotlin
4642
dependencies {
47-
//Плагин для работы с аккаунтами
48-
debugImplementation 'com.redmadrobot.debug:plugin-accounts:${debug_panel_version}'
49-
50-
//Плагин для работы с серверами
51-
debugImplementation 'com.redmadrobot.debug:plugin-servers:${debug_panel_version}'
43+
// Плагин для работы с серверами
44+
debugImplementation("com.redmadrobot.debug:plugin-servers:${debug_panel_version}")
5245

53-
//Плагин для работы с SharedPreferences
54-
debugImplementation 'com.redmadrobot.debug:plugin-app-settings:${debug_panel_version}'
46+
// Плагин для работы с remote config на основе Konfeature
47+
debugImplementation("com.redmadrobot.debug:plugin-konfeature:${debug_panel_version}")
48+
// Так же необходимо подключить саму библиотеку konfeature
49+
debugImplementation("com.redmadrobot.konfeature:konfeature:${konfeature_version}")
5550

56-
//Плагин для работы с Feature Toggle на основе Flipper
57-
debugImplementation 'com.redmadrobot.debug:plugin-flipper:${debug_panel_version}'
58-
//Так же необходимо подключить саму библеотеку flipper
59-
debugImplementation "com.redmadrobot:flipper:${flipper_version}"
60-
61-
//Плагин для работы с remote config на основе Konfeature
62-
debugImplementation 'com.redmadrobot.debug:plugin-konfeature:${debug_panel_version}'
63-
//Так же необходимо подключить саму библиотеку konfeature
64-
debugImplementation "com.redmadrobot.konfeature:konfeature:${konfeature_version}"
51+
// Плагин для отображения информации о приложении
52+
debugImplementation("com.redmadrobot.debug:plugin-about-app:${debug_panel_version}")
6553
}
6654

6755
```
6856

6957
3. Для того чтобы библиотека не попала в релизную сборку необходимо подключить `no-op` версию библиотеки
7058

71-
```groovy
72-
releaseImplementation 'com.redmadrobot.debug:panel-no-op:${debug_panel_version}'
59+
```kotlin
60+
releaseImplementation("com.redmadrobot.debug:panel-no-op:${debug_panel_version}")
7361
```
7462

7563
## Использование библиотеки в коде
@@ -81,16 +69,13 @@ class App : Application() {
8169

8270
override fun onCreate() {
8371
super.onCreate()
84-
85-
DebugPanel.initialize(
72+
73+
DebugPanel.initialize(
8674
application = this,
87-
config = DebugPanelConfig(shakerMode = false),
8875
plugins = listOf(
89-
AccountsPlugin(/*arguments*/),
9076
ServersPlugin(/*arguments*/),
91-
AppSettingsPlugin(/*arguments*/),
92-
FlipperPlugin(/*arguments*/),
9377
KonfeaturePlugin(/*arguments*/),
78+
AboutAppPlugin(/*arguments*/),
9479
)
9580
)
9681
}
@@ -101,81 +86,16 @@ class App : Application() {
10186

10287
```kotlin
10388
fun openDebugPanel() {
104-
DebugPanel.showPanel(supportFragmentManager)
89+
DebugPanel.showPanel(activity)
10590
}
10691
```
10792

10893
Так же в панель можно войти через уведомление которое появляется при запуске приложения использующее библиотеку. Через это же уведомление можно перейти в ручную настройку панели. Для этого нужно нажать кнопку `SETTINGS` в раскрытом уведомлении.
10994

11095
![Режим редактирования](assets/debug_notification.png)
11196

112-
## Конфигурация
113-
114-
Для дополнительной конфигурации **DebugPanel**, нужно добавить свою версию `DebugPanelConfig` класса при инициализации панели.
115-
116-
```kotlin
117-
DebugPanel.initialize(
118-
application = this,
119-
config = DebugPanelConfig(),
120-
plugins = listOf(/*plugins*/)
121-
)
122-
```
123-
124-
### Доступные возможности для конфигурации
125-
126-
`shakerMode: Boolean` - Открытие **DebugPanel** при встряхивании устройства.
127-
12897
## Работа с плагинами
12998

130-
### AccountsPlugin
131-
Используется для работы тестовыми аккаунтами.
132-
133-
Можно задать список предустановленных аккаунтов
134-
135-
```kotlin
136-
AccountsPlugin(
137-
preInstalledAccounts = listOf(
138-
DebugAccount(
139-
login = "user_login",
140-
password = "user_password",
141-
pin = "pin" //необязательное поле
142-
)
143-
)
144-
)
145-
```
146-
147-
Чтобы реагировать на смену пользователя вы можете подписаться на события `DebugPanel` внутри любого `LifecycleOwner`
148-
149-
```kotlin
150-
DebugPanel.subscribeToEvents(lifecycleOwner = this) { event ->
151-
when (event) {
152-
is AccountSelectedEvent -> {
153-
val account = event.debugAccount
154-
//Реализация перелогина
155-
}
156-
}
157-
}
158-
```
159-
160-
Так же вы можете использовать интерфейс `DebugAuthenticator` чтобы реализовать логику перелогина в отдельном классе который можно передать в плагин.
161-
162-
```kotlin
163-
class UserAuthenticator : DebugAuthenticator {
164-
override fun onAccountSelected(account: DebugAccount) {
165-
//Реализация перелогина
166-
}
167-
}
168-
```
169-
170-
```kotlin
171-
AccountsPlugin(
172-
preInstalledAccounts = listOf(),
173-
debugAuthenticator = UserAuthenticator()
174-
)
175-
```
176-
177-
Метод `onAccountSelected` будет вызываться при каждом выборе аккаунта
178-
17999
### ServersPlugin
180100
Используется для работы с тестовыми серверами
181101

@@ -246,57 +166,6 @@ val selectedServer = getPlugin<ServersPlugin>().getSelectedServer()
246166

247167

248168

249-
### AppSettingsPlugin
250-
251-
Используется для просмотра и редактирования `SharedPreferences` в проекте
252-
253-
Для подключения плагина, необходимо передать в него список `SharedPreferences` с которыми хотите работать:
254-
255-
```kotlin
256-
AppSettingsPlugin(
257-
sharedPreferences = listOf(
258-
primarySharedPreferences,
259-
secondarySharedPreferences
260-
)
261-
)
262-
```
263-
264-
### FlipperPlugin
265-
266-
Используется для просмотра и редактирования Flipper feature toggle'ов в проекте
267-
268-
Для подключения плагина, необходимо передать в него map id поддерживаемых фичей и их значений
269-
270-
```kotlin
271-
FlipperPlugin(
272-
featureStateMap = mapOf(
273-
"Toggle Id" to FlipperValue()
274-
)
275-
)
276-
```
277-
278-
Для изменения значений в рамках проекта необходимо использовать метод FlipperPlugin.observeChangedToggles():
279-
280-
```kotlin
281-
FlipperPlugin
282-
.observeChangedToggles() // Пришлёт map размером = [0, yourFeatures.size]
283-
.onEach { changedToggles -> // Первый раз пришлёт сохранённые значения
284-
this.yourDebugPanelChangedToggles = changedToggles
285-
}
286-
.flowOn(Dispatchers.Main)
287-
.launchIn(debugScope)
288-
```
289-
290-
В FlipperConfig должно быть что-то наподобие
291-
292-
```kotlin
293-
override fun getValue(feature: Feature): FlipperValue {
294-
return yourDebugPanelChangedToggles[feature.id]
295-
?: localConfig[feature.id]
296-
?: FlipperValue.BooleanValue(false)
297-
}
298-
```
299-
300169
### Konfeature Plugin
301170

302171
В основе плагина лежит библиотека [Konfeature][konfeature], которая позволяет:
@@ -328,6 +197,31 @@ KonfeaturePlugin(
328197
- настроить работу с remote config через реализацию интерфейса `FeatureSource` - `addSource(featureSource)`
329198
- настроить логирование - `setLogger(logger)`
330199

200+
### AboutApp Plugin
201+
202+
Используется для отображения информации о приложении: версии, номера билда и других произвольных данных.
203+
204+
Для подключения плагина необходимо передать список `AboutAppInfo`. Требуется хотя бы один элемент:
205+
206+
```kotlin
207+
AboutAppPlugin(
208+
aboutAppInfo = listOf(
209+
AboutAppInfo(
210+
title = "Версия",
211+
value = BuildConfig.VERSION_NAME
212+
),
213+
AboutAppInfo(
214+
title = "Номер билда",
215+
value = BuildConfig.VERSION_CODE.toString()
216+
)
217+
)
218+
)
219+
```
220+
221+
Каждый `AboutAppInfo` содержит:
222+
- `title` — название поля (например, «Версия»)
223+
- `value` — значение поля (например, «1.0.0»)
224+
331225
# Безопасность!
332226
Для того чтобы тестовые данные не попали в релизные сборки рекомендуется не задавать их явно в Application классе, а использовать реализации DebugDataProvider, которые можно разнести по разным buildType. Для release версии следует сделать пустую реализацию.
333227

@@ -361,10 +255,6 @@ ServersPlugin(
361255
)
362256
```
363257

364-
## License
365-
366-
[MIT][license]
367-
368258
[plugin-development-doc]:docs/plugin_development.md
369259
[changelog]: ./CHANGELOG.md
370260
[migration-guide]: docs/migration_guide.md

assets/debug_preview.png

290 KB
Loading

0 commit comments

Comments
 (0)