wiki/work/fsight/archive/TrainingCorrections.md

7.3 KiB

от себя.

дока крайне сильно устарела, как мне показалось. и вся инфа с примерами есть в моей pdf доке фрейма, оттуда можно брать инфу и примеры. ссылка на репозиторий, там для последней версии взять архив и читать README.pdf.

комментарии.

главная статья.

сервером ФМП через FMP.

как-то запутанно очень. может просто клиент/сервер? ...достаточный объём знаний для взаимодействия с сервером через клиент.

Фреймворк FMP предназначен для приложений написанных на языке kotlin.

для языка Java тоже предназначен.

понадобится установленная среда разработки Android Studio, файлы фреймворка.

файлы фреймворка уже не нужны и не получится. у нас через Maven идёт установка. в самом конце документа прилеплю как работать с мавеном.

общий подход.

в "инициализация FMP" метод .host() был переименован в address().

в "Проверка наличия ошибки" старый пример, у нас вместо простой строчки ошибки есть полноценные Exception.

интеграция фреймворка.

нужно заменить на "работа с maven" в конце этого документа.

подключение к платформе.

сохраняются в переменные ядра

у нас нет ядра. просто устанавливаются при инициализации.

в начале работы установить параметры подключения:

тут не все параметры обязательные. обязательные:

  • версия апи сервера.
  • адрес сервера.
  • название среды.
  • название проекта.
  • имя пользователя (username).
  • ID устройства.
  • путь к директории на устройстве, где фреймворк будет хранить свои файлы.

ещё обязателен пароль для первого входа.

новый пример настройки подключения:

fun fmpInitMinimal(context: Context)
{
  /*
   * Пример минимальной инициализации FMP.
   * Далее все параметры являются обязательными.
   */
  val storage:   String = context.filesDir.absolutePath
  val device_id: String = Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID)
  val fmp: FMP = FMP.Builder()  // Создать конструктор FMP.
    .api(FMP.API.V1)            // Указать версию API сервера.
    .address("https://HOST")    // Адрес сервера платформы.
    .environment("ENVIRONMENT") // Среда на сервере.
    .project("PROJECT")         // Проект внутри среды.
    .username("USERNAME")       // имя пользователя.
    .deviceID(device_id)        // Указать ID устройства.
    .storage(storage)           // Указать рабочую директорию.
    .build()                    // Создать FMP.
}

новый пример проверки доступности подключения:

fun connectionStatus(fmp: FMP)
{
  val is_connectable: Boolean = fmp.util.checkConnection().result // Проверить подключение.
}

тут также можно добавить инфу про многопользовательский режим. что можно инициализировать несколько FMP с разными username.

работа с учётной записью пользователя.

тут нужно добавить новую информацию по работе с токенами. кратко: для первого входа нужно передавать пароль. можно проверить, работают ли токены, вызвав метод fmp.user.auth() без пароля. если будет true, то пользователь аутентифицирован (токены работают). если false, то нужен пароль.

пример аутентификации не актуален - создавать пользователя не нужно. данные пользователя указываются при инициализации.

Схема загружается автоматически при первом запросе к ресурсу. Также есть возможность ручной загрузки по требованию:

новый пример:

val download: Boolean = fmp.user.downloadResources().result
val resources: List<FMPResource> = fmp.user.getResources().result

Примеры запросов

в примерах где есть val query: FMPQuery = нужно убрать строчку с .database(database). БД вручную не указывается.

Для удаления кэшированных таблиц из локальной БД, относящихся к определенному ресурсу

пример изменился:

val is_cleared: Boolean = resource.dropCache().result

работа с файлами.

можно добавить, что при инициализации файла теперь можно выключить шифрование для конкретного файла/директории при скачивании через параметр .encryption(false).

Шифрование файлов

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

работа с пушами.

можно разве что добавить, что есть методы sendUser() и sendTopic() с которыми с телефона можно отправить пуши другим.

работа с maven.

Добавить репозоторий FMP в проект.

Для build.gradle добавить:

repositories {
  ...
  maven {
    url "https://fmp-maven.fsight.cloud/"
  }
}

Для build.gradle.kts добавить:

repositories {
  ...
  maven(url = "https://fmp-maven.fsight.cloud/")  
}

Добавить зависимость в модуль приложения.

Для app/build.gradle добавить:

dependencies {
  implementation "ru.fsight.fmp:android:$version"
}

Для app/build.gradle.kts добавить:

dependencies {
  implementation("ru.fsight.fmp:android:$version")
}