Что такое offline first

Коротко:

Offline first это способ строить программу так, чтобы она сначала сохраняла данные в базу на вашем устройстве, а на сервер отправляла их потом. Обычные веб-приложения замирают вместе с соединением. Приложение offline first этого просто не замечает.

🎬 Поток и скачанный файл

Сравните просмотр фильма онлайн и просмотр того, что уже лежит у вас.

  • Только онлайн. Нажали воспроизведение, пошла буферизация, связь пропала, и вы смотрите на крутящийся кружок. Вы привязаны к кабелю.
  • Offline first. Файл уже на диске. Нажали, и он играет. Сеть здесь ни при чём.
  • Синхронизация. А теперь представьте, что этот файл тихо обновляется сам, когда вы всё-таки оказываетесь в сети.

TaskNote работает по второму сценарию. Заметки не тянутся с сервера каждый раз, когда вы их открываете. Они живут у вас.

🐌 Что не так с привычным подходом

Большинство современных сервисов построены как online first.

  • Каждое действие идёт на сервер. Нажатие клавиши, щелчок, галочка.
  • Вы ждёте. Обычно долю секунды. Иногда заметно дольше.
  • Лифт, тоннель, гостиничный Wi-Fi. Приложение переходит в режим только для чтения или показывает ошибку, и работа останавливается.

⚡ Как это устроено

Основная копия данных лежит на вашем устройстве. Облако это резервная копия, а не оригинал.

  1. Запись на месте. Пока вы печатаете, текст попадает в зашифрованную базу на устройстве, за сотые доли секунды.
  2. Синхронизация в фоне. Отдельный процесс следит за сетью и отправляет изменения наверх, когда связь есть. Когда её нет, он ждёт.
  3. Слияние. Правили одну заметку на двух устройствах без сети, и правки сводятся вместе, как только устройства снова встретятся.
Сначала сохранение на устройстве, потом отправка в фоне

🏆 Почему мы так делаем

Дело не только в скорости. Больше в том, чтобы не подвести вас.

Вместе с шифрованием на стороне клиента получается скорее личное хранилище, чем веб-страница:

  • Ничего не тормозит. Интерфейс не ждёт ответа сервера, чтобы показать букву, которую вы только что набрали.
  • Работает где угодно. Самолёт, поезд, подвал, дача. Заметки поехали с вами.
  • Даже наш плохой день не помеха. Если наши серверы недоступны, вы спокойно продолжаете работать локально.

Мысли не должны ждать сигнала.

❓ Частые вопросы

Это занимает место в телефоне?

Текст почти ничего не весит. «Война и мир» это около трёх мегабайт. Тысячи ваших заметок займут меньше места, чем одна фотография.

А если закрыть вкладку до синхронизации?

Написанное уже сохранено в постоянном хранилище браузера. Закрыли без сети, а при следующем запуске с интернетом всё уйдёт наверх.

Нужен ли интернет, чтобы войти?

Один раз нужен. Первый вход загружает ключи и сами заметки. Дальше можно оставаться без сети сколько угодно.

Ваши мысли принадлежат вам, а не серверу

Хватит отдавать личное компаниям, которые могут это прочитать.

Попробовать TaskNote бесплатно