Миграция с SIDSDK на SIDSDK_CORE и SIDSDK_ELK
Монолитный SIDSDK был разделен на две специализированные библиотеки для повышения модульности и гибкости интеграции:
- SIDSDK_CORE (
sid.sdk.core.*): Содержит базовую функциональность аутентификации (инициализация, настройки, кнопка входа SIDButton). - SIDSDK_ELK (
sid.sdk.elk.*,sid.sdk.app_token.*): Содержит весь функционал, связанный с Единым Личным Кабинетом (ЕЛК) и работой с AppToken.
Данное руководство описывает необходимые шаги для перехода с единой библиотеки SIDSDK на новую разделенную архитектуру.
Шаг 1: Обновление зависимостей
Замените зависимость от SIDSDK в вашем проекте на две новые библиотеки.
Было:
implementation("io.github.sid-sdk:SIDSDK:1.8.16")
Стало:
implementation("io.github.sid-sdk:SIDSDK_CORE:1.1.0")
implementation("io.github.sid-sdk:SIDSDK_ELK:1.1.1") //Если у вас нет ЕЛК, вам не нужно имплементировать данную библиотеку
Шаг 2: Инициализация и основные настройки
Инициализация
Код инициализации SDK не изменился и остается в SIDSDK_CORE.
// В классе Application
SID.initialize.initialize(this)
Настройка основных параметров (setMainSettings)
Метод setMainSettings был изменен. Параметры partnerName и partnerProfileUrl удалены из основной конфигурации.
Было (SIDSDK):
SID.Settings.setMainSettings(
clientID = "ваш_clientID",
userID = "ваш_userID",
partnerName = "имя_партнера", // Устарело
partnerProfileUrl = "url_профиля_партнера", // Устарело
stand = StandName.PROM
)
Стало (SIDSDK_CORE + SIDSDK_ELK):
// 1. Настройка основных параметров в SIDSDK_CORE
SID.Settings.setMainSettings(
clientID = "ваш_clientID",
userID = "ваш_userID",
stand = StandName.PROM
)
// 2. Настройка URL профиля для ELK в SIDSDK_ELK
SID.ELK.setProfileUrl("url_профиля_партнера")
Шаг 3: Миграция UI-компонентов и настроек
Настройки интерфейса (SIDPreferences)
Единый класс SIDPreferences был разделен на SIDPreferencesCore и SIDPreferencesELK.
Было (SIDSDK):
val prefs = SIDPreferences(...)
SID.Settings.setUIPreferences(prefs)
Стало (SIDSDK_CORE + SIDSDK_ELK):
// 1. Настройки для CORE-компонентов
val corePrefs = SIDPreferencesCore(
themeColor = SIDColorCore(light = Color.WHITE, dark = Color.BLACK)
)
SID.Settings.setUIPreferencesCore(corePrefs)
// 2. Настройки для ELK-компонентов
val elkPrefs = SIDPreferencesELK(
primaryColor = SIDColorELK(light = Color.BLUE, dark = Color.CYAN),
fonts = SIDFontsELK(semiBoldResID = R.font.semi_bold, mediumResID = R.font.medium),
network = SIDNetworkELK(headersELK = "ваши заголовки")
)
SID.ELK.setUIPreferences(elkPrefs)
Устаревший класс CustomFonts был полностью удален. Используйте SIDFontsCore и SIDFontsELK для настройки шрифтов в соответствующих библиотеках.
Кнопка SIDButton
Компонент SIDButton остался в SIDSDK_CORE. Использование в XML и коде не изменилось, но необходимо обновить путь импорта.
Новый путь импорта:
import sid.sdk.core.auth.view.SIDButton
Отображение ЕЛК (ELKBlockFragment / ELKScreen → ELKContainerView / ELKContainer)
Устаревшие ELKBlockFragment и ELKScreen удалены. Вместо них используйте современные ELKContainerView (XML) и ELKContainer (Compose).
Было (SIDSDK) - XML:
<fragment
android:id="@+id/elk_fragment"
android:name="sid.sdk.ui.screens.view.elk.fragment.ELKBlockFragment"
... />