Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Ultra Cloud Sample
## Как подключить
Чтобы подключить sdk, необходимо добавить данные приватного репозитория:
```groovy
repositories {
google()
mavenCentral()
maven {
url 'https://gitlab.typi.team/api/v4/projects/19/packages/maven'
name 'GitLab'
credentials(HttpHeaderCredentials) {
name = 'Deploy-Token'
value = '{some-token}'
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
```
Токен нужно получить у соответствующих лиц.
После добавления приватного репозитория, добавляем зависимость в **gradle файл**:
```groovy
implementation 'com.typi.ultra:ultra:x.x.x'
```
Пример подключения можете посмотреть в модуле `sample`.
## Немного о Component Holder
При разработке был использован подход Component Holder. Если вы не знакомы с этим подходом, рекомендую прочитать статью
[Ленивая склейка модулей Android-приложения](https://habr.com/ru/articles/536106/).
### Инициализация ComponentHolder
Чтобы инициализировать `UltraComponentHolder` нужно передать зависимости. Зависимости обьявлены в `UltraDependencies`
который содержит интерфейсы которые нужно реализовать. Теперь **component holder** готов к использованию.
Вы можете внедрить предоставляемые классы в свой DI граф. Получить предоставляемые классы нужно через
`UltraComponentHolder.get()` которая возвращает интерфейс `UltraApi`. В нем содержатся необходимые классы.
# Начало работы
Необходимо передать конфигурацию и реализовать все интерфейсы-делегаты `CloudDependencies` для работы SDK. Также нужно
добавить FileProvider в манифест для корректной работы файлов.
В UltraConfiguration передаются такие данные как, режим работы SDK, сетевые и пуш настройки, ключ шифрования БД и режим
работы аватарок.
## Реализация делегатов
Делегаты созданы для получения данных клиента со стороны SDK.
- `UltraAuthDelegate`: используется для получения необходимых данных для авторизации;
- `UltraThemeDelegate`: используется для переопределения дизайн-системы;
- `UltraFeatureToggle`: используется для вкл/выкл некоторых функциональностей;
- `UltraErrorRecorder`: используется для передачи ошибок;
- `UltraLocaliseDelegate`: используется для получения локализации.
ВАЖНО: Перед запуском SDK, нужно вызвать `UltraInitializer.init` для инициализации компонентов. Для запуска SDK, нужно
пройти авторизацию.
После авторизации нужно вызвать метод `UltraAuthProvider.login`, куда нужно передать `UltraAuthCredential`. (Для **Cloud
** версий нужно использовать `JwtToken`).
После выхода из профиля, нужно вызвать метод `UltraAuthProvider.logout` для очистки данных.
## Пуш-уведомления
Для создания канала нужно вызвать метод `UltraPushProvider.createNotificationChannel`.
При обновлений пуш-токена нужно вызвать метод `UltraPushProvider.onNewToken`.
При получений пуш-уведомления, нужно вызвать метод `UltraPushProvider.parseUltraPush`, которая возвращает
модель `UltraPush`. Если результат `UltraPush.isSdkPush == true`, то нужно вызвать метод
`UltraPushProvider.showNotification`.
Навигация релизовывается на стороне клиента, так как SDK предоставляет только экраны. Необходимые экраны вы можете найти
в `UltraNavigator`. При желаний, в нужных callback-ах можете открывать свои экраны.