Перейти к основному содержанию

Как это работает

Приложения с синхронизацией в реальном времени хранят локальную базу данных на устройстве. Чтение происходит мгновенно (локально), запись ставится в очередь локально, и всё синхронизируется с сервером в фоне.
Запись пользователя -> Локальная БД -> Очередь загрузки -> Сервер -> Postgres
                                                                        |
Чтение пользователя  <- Локальная БД <- Репликация синхронизации <----+
Результат: мгновенное чтение, без спиннеров загрузки, и приложение, которое работает при плохом соединении или в автономном режиме.

Что настраивает ИИ

Попросите ИИ создать приложение с синхронизацией в реальном времени. Он переиспользует подходящую активную базу данных, если она существует; иначе создаёт базу данных, включает сервис синхронизации и строит двухчастное приложение:
  • UI — клиентское приложение с локальной базой данных, живыми запросами и коннектором синхронизации
  • Process — endpoint токена, маршрут загрузки синхронизации и runner миграций
Учётные данные хранятся в хранилище. ИИ подключает переменные окружения базы данных в компонент процесса с помощью инструмента db. Перед тем как приложение считается готовым, база данных должна показать sync: ready. Если синхронизация не готова, приложение может отрендериться, но синхронизация данных в реальном времени между устройствами не будет работать.

Практические советы

  • Пишите локально в первую очередь. Дайте синхронизации загружать в фоне.
  • Показывайте пустые состояния, а не спиннеры загрузки, когда локальные данные существуют.
  • Храните видимое пользователю состояние в синхронизируемых таблицах, чтобы оно сохранялось при обновлении и в автономном режиме.
  • Группируйте связанные локальные записи вместе, чтобы UI обновлялся одним шагом.
  • Проверьте здоровье синхронизации перед тем как считать приложение готовым.

Оболочка приложения для автономного режима

Шаблоны UI могут включать оболочку приложения для автономного режима, чтобы приложение могло переоткрыться после первого посещения без сети. Оболочка приложения — это статический HTML, JS, CSS и иконки.
  • Оболочка для автономного режима позволяет приложению открыться без сети
  • Синхронизация держит данные приложения пригодными для использования в автономном режиме
Вместе: приложение открывается без сети, показывает последние синхронизированные данные, ставит новые записи в очередь и синхронизируется при восстановлении соединения.

Когда использовать синхронизацию в реальном времени

ПодходитИзбыточно
Менеджеры задач и приложения заметокСтатические маркетинговые страницы
Совместные инструментыОдноразовые отправки форм
Полевые приложения со слабым соединениемСайты-брошюры только для чтения
Всё, что должно ощущаться мгновеннымПриложения без ценности в автономном режиме

Переменные платформы

Kazzle автоматически внедряет небольшой набор переменных окружения в каждый процесс приложения. Они отделены от ваших собственных секретов хранилища.
ПеременнаяЧто это
PORTПорт, на котором должен слушать ваш процесс
HOSTИмя хоста для привязки (обычно 0.0.0.0)
KAZZLE_API_URLБазовый URL, используемый вспомогательными функциями Kazzle
KAZZLE_APP_COMPONENT_<NAME>_URLURL компонента-соседа во время выполнения

URL компонентов-соседей

Когда приложение имеет несколько компонентов (например, UI web и процесс server), Kazzle может внедрять URL для компонентов-соседей:
# В части "web":
KAZZLE_APP_COMPONENT_SERVER_URL=http://localhost:3001

# В части "server":
KAZZLE_APP_COMPONENT_WEB_URL=http://localhost:3000
Когда компонент-сосед уже развёрнут, внедрённое значение указывает на этот развёрнутый компонент. Иначе оно указывает на текущий адрес разработки для этого компонента-соседа.