Tempo можно открыть в браузере, установить на Mac или Android. Везде один аккаунт и одни задачи. Но за кулисами устройства работают немного по-разному, и это полезно понимать, чтобы не пугаться.
Ниже — как устроена синхронизация, что происходит без сети и какие ограничения есть у офлайн-режима.
Один аккаунт — одни данные
Задачи Tempo хранятся не в браузере и не в приложении. Они лежат на сервере в базе SQLite. Устройство — это окно в одни и те же данные.
Поэтому:
- задачу, созданную на телефоне, видно на Mac после синхронизации;
- выполненная задача исчезает из «Сегодня» на всех устройствах;
- проекты, теги и настройки общие;
- пароль и сессия привязаны к аккаунту, а не к конкретному приложению.
Чтобы войти на новом устройстве, нужен интернет и ваша почта с паролем. После входа сессия сохраняется, и приложение не просит пароль каждый раз.
Что такое офлайн-режим
Офлайн-режим — это не отдельная копия Tempo. Это кэш на устройстве плюс очередь изменений.
После первого запуска с интернетом приложение:
- сохраняет оболочку — HTML, стили и скрипты;
- сохраняет последние задачи, проекты, теги и настройки;
- запоминает сессию входа.
После этого Tempo открывается без сети. Вы видите последние сохранённые данные и можете с ними работать. Изменения записываются в очередь и уходят на сервер, когда связь возвращается.
Если приложение ни разу не открывали с интернетом, ему нечего показать без сети. Это не ошибка: кэш и сессия просто ещё не созданы.
Как выглядит офлайн в интерфейсе
В верхней панели появляется значок с состоянием:
- «Офлайн» — сеть пропала, приложение работает с сохранёнными данными.
- «В очереди: N» — есть изменения, которые ждут отправки.
- «Синхронизация…» — очередь отправляется на сервер.
На телефоне текст может скрываться, остаётся цветной значок. Нажмите на него, чтобы попробовать синхронизироваться вручную.
Если сеть вернулась, Tempo отправит очередь автоматически. Обычно это занимает секунды.
Что можно делать офлайн
Можно:
- смотреть задачи, проекты и теги;
- создавать задачи и подзадачи;
- менять название, заметки, даты, приоритет, проект и теги;
- завершать и возвращать задачи;
- удалять и восстанавливать задачи;
- создавать проекты, области и теги;
- переключать тему и язык.
Нельзя:
- войти в аккаунт впервые без интернета;
- синхронизировать изменения с другим устройством прямо сейчас;
- получить свежие изменения, которые появились на сервере, пока вы были офлайн;
- загрузить файл или получить уведомление от сервера.
Что происходит при синхронизации
Изменения отправляются по одному, в том порядке, в котором вы их сделали. Сервер принимает их и возвращает актуальное состояние. После этого приложение обновляет экран.
Созданные офлайн задачи получают идентификаторы заранее, поэтому повторная отправка не создаёт дубликаты. Если связь оборвалась посередине, Tempo попробует снова.
Если сервер ответил ошибкой, которая не связана со связью, операция снимается с очереди, а приложение перезагружает состояние. Это нужно, чтобы не застрять на невозможном изменении.
Конфликты: что если изменить одно и то же на двух устройствах
Синхронизация не real-time. Если вы offline изменили задачу на телефоне, а в это же время изменили её на Mac, при восстановлении связи победит последнее дошедшее изменение.
Это простой и предсказуемый принцип, но он не идеален:
- название может перезаписаться;
- статус выполнения может откатиться;
- теги могут замениться версией с другого устройства.
Если работаете с одного устройства — проблемы нет. Если с нескольких — старайтесь не редактировать одну задачу одновременно и синхронизируйте перед переключением.
Специального разрешения конфликтов и истории версий в Tempo пока нет.
Приложения для macOS и Android
Обе программы — нативные оболочки вокруг одного и того же Tempo. Они загружают сайт, сохраняют сессию и кэшируют оболочку. Поэтому офлайн-режим работает и там.
macOS: Apple Silicon, macOS 12+. Архив .zip, первый запуск — правой кнопкой → «Открыть». Приложение не нотаризовано Apple, поэтому Gatekeeper может предупредить.
Android: Android 7.0+. APK устанавливается напрямую, вне Google Play. Нужно разрешить установку из неизвестных источников.
Скачать: svoytemp.ru/skachat.
После первого онлайн-запуска приложения работают без сети так же, как веб-версия. Переустанавливать их при обновлении веб-части не нужно: они загружают актуальную версию с сервера.
Безопасность и общий компьютер
Локальный кэш хранится в браузере или в памяти приложения. Он не зашифрован отдельным ключом.
Это значит:
- на общем компьютере лучше выходить из аккаунта;
- не оставляйте открытым Tempo на чужом устройстве;
- после выхода локальный кэш и очередь очищаются;
- пароль хранится не в кэше, а сессия — в защищённой cookie.
Сам сервер использует HTTPS, сессионные cookie с HttpOnly и Secure, а пароли хранятся в виде scrypt-хэшей.
Частые проблемы
Приложение не открывается без сети. Скорее всего, не было первого онлайн-запуска или очищены данные сайта. Откройте Tempo с интернетом один раз и не очищайте хранилище.
Значок офлайна не появляется. Проверьте, что сеть действительно пропала, а не просто медленная. Если интернет есть, но сервер недоступен, Tempo тоже уйдёт в офлайн после ошибки запроса.
Изменения не уходят на сервер. Нажмите на значок синхронизации. Если не помогает, проверьте интернет и войдите заново. Очередь сохраняется, пока вы не вышли из аккаунта.
На двух устройствах разные списки. Синхронизация не мгновенная. Откройте приложение на устройстве с интернетом и дайте ему обновиться.
Задача пропала после конфликта. Проверьте «Журнал»: возможно, она была выполнена на другом устройстве. Восстановить старую версию нельзя — истории изменений пока нет.
Что запомнить
- Данные живут на сервере, устройства показывают их и кэшируют.
- Офлайн становится доступен после первого запуска с интернетом.
- Изменения без сети попадают в очередь и синхронизируются позже.
- Конфликты решаются по принципу «последнее изменение побеждает».
- Локальный кэш не зашифрован; на общем устройстве выходите из аккаунта.
Если хочется понять, как встроить всё это в систему, читайте «GTD в Tempo». Если только начинаете — первый день в Tempo.