В привычной схеме сервер держит настоящую копию, а телефон — кэш. Вы открываете приложение при плохой связи и видите крутящийся индикатор, потому что того, на что вы смотрите, там на самом деле нет. Local-first переворачивает это: настоящая копия у устройства, расчёты идут там же, а сеть становится тем, что вы используете намеренно, а не тем, от чего зависите.
Для тренировок это подходит на удивление хорошо. Сессия рождается там, где её делают, она маленькая и почти никогда не редактируется двумя людьми одновременно — так что самая тяжёлая проблема распределённых систем, слияние конкурирующих правок, почти не возникает. Остаётся быстрое приложение, которое открывается мгновенно и работает в подвале.
Цена в том, что синхронизация становится явной. Нет невидимого процесса, сводящего устройства; есть зашифрованный файл, который вы экспортируете, или передача, которую вы запускаете. Это честнее и немного больше работы — таков обмен, на который идёт cronoWiz.
-
Оригинал у устройства
в IndexedDB лежат настоящие данные, а не кэш чего-то удалённого.
-
Открывается мгновенно
ничто не ждёт ответа сервера, прежде чем первый экран станет рабочим.
-
Синхронизация — решение
зашифрованный файл или прямая передача, запущенная вами.
-
Модель не требует аккаунта
без сервера, хранящего истину, личность просто не для чего использовать.
Бесплатно. Приватно. Ваше.
Никакого аккаунта. Никакого сервера. Никаких cookie. Только вы, ваш телефон и приложение, которое занимается своим делом. cronoWiz — бесплатное PWA, работающее целиком на вашем устройстве: ваши данные никуда не уходят. Никогда.
Вопросы, которые задают на самом деле
Local-first означает вообще без интернета?
Нет. Карты, интернет-радио и однократная загрузка модели используют сеть. Разница в том, что приложение продолжает работать, когда их нет, потому что ни одно из них не хранит ваши данные.
Что происходит на втором устройстве?
У него своя копия. Вы сводите их, перенеся резервную копию или открыв прямую передачу, а импорт сопоставляется по идентификаторам, так что одна и та же сессия не появится дважды.
Это то же самое, что offline-first?
Близко, но не одно и то же. Offline-first — про то, чтобы пережить потерю связи; local-first — про то, какая копия главная. cronoWiz — и то и другое, и именно второе снимает нужду в аккаунте.
