Какое офлайн-приложение для задач лучше подходит для работы на объекте?

Лучшее пишет сначала в телефон, а в сеть — потом. Проверьте любого кандидата в режиме полёта: добавьте задачу, отредактируйте её, прикрепите фото, затем полностью закройте приложение и откройте снова. Если кнопка гаснет, сохранение не проходит или запись исчезает после перезапуска, приложение кэширует то, что вы читаете, а не хранит то, что вы пишете.

Четверть четвёртого, среда, подполье одноэтажного дома в Гелфе. Хозяин хочет перенести стирку наверх, и есть четыре вещи, которые стоит записать до того, как лестница вернётся в кузов: балка, которую нельзя подрезать, вытяжка сушилки, идущая не в ту сторону, запорный кран, который никто никогда не подписал, и уголок, который надо взять по дороге домой. Телефон показывает одну палочку, а потом ни одной.

И четыре вещи уходят на обратную сторону чека, или в голосовую заметку, или в ту часть рабочей памяти, где уже лежат два других объекта. К пятнице из них выживают три. Четвёртая — как раз та, о которой клиент спросит в понедельник.

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

Что обычно значит «работает офлайн»

Самый слабый вариант — кэш только для чтения. Вчерашний график на экране, потому что его скачали, пока была связь, и это действительно выручает, когда вы стоите в подземном паркинге и пытаетесь вспомнить адрес. Потом вы пробуете что-то добавить. Кнопка гаснет, или крутится индикатор, или красная полоса сообщает, что связи нет. Свой день видно, а изменить его нельзя.

Средний вариант принимает набранное и держит его в памяти. Выглядит так, будто всё получилось. Он переживает блокировку экрана и обычно переживает дорогу до машины. Чего он часто не переживает — так это того, что операционная система закроет приложение, чтобы освободить память: она делает это не спрашивая и не оставляет ничего. Это худший из трёх, потому что он целый месяц приучает вас себе доверять, а потом теряет запись.

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

Десятиминутный тест в режиме полёта

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

  1. Включите режим полёта. Не слабый сигнал, а именно режим полёта, чтобы не осталось неясности, до чего приложение может дотянуться.
  2. Создайте что-то новое: объект, задачу внутри объекта, встречу на четверг.
  3. Прикрепите к записи фото и наберите заметку такой длины, чтобы её было жалко потерять.
  4. Отредактируйте то, что существовало до отключения: измените время, отметьте задачу выполненной.
  5. Полностью закройте приложение, затем откройте снова, всё так же в режиме полёта. Всё, что вы только что сделали, должно остаться ровно там, где вы это оставили.
  6. Выключите режим полёта, отложите телефон и отойдите на две минуты, не открывая приложение. Затем посмотрите на другом устройстве или снова откройте те же записи и проверьте, ушла ли загрузка сама.

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

Во что на самом деле обходится забытая заметка

Дорого стоит никогда не сама заметка. Дорого стоит четверг, который начинается с поездки обратно к поставщику за фитингом: решение о нём приняли во вторник и нигде не записали.

Мастер в брезентовой рабочей куртке ждёт у прилавка поставщика, держа телефон в одной руке

Посчитайте эту поездку честно. Сорок пять минут за рулём и двадцать пять у прилавка — это семьдесят минут, а при ставке 95 $ в час выходит около 111 $ вашего времени, за которое никто не платит, и это ещё без топлива. Дважды в месяц — двадцать четыре поездки в год: примерно двадцать восемь часов, то есть 2 660 $. Это неделя работы, потраченная на то, чтобы добыть сведения, которые у вас уже были.

Число потише — материалы, которые так и не доходят до счёта. Фитинг за 60 $, купленный по дороге на объект, вспомнившийся у машины и забытый к моменту выставления счёта, четыре раза в месяц — это 2 880 $ в год ваших собственных денег, потраченных на чужой дом. Прогоните свои цифры через стоимость часа, который нельзя выставить, если арифметика кажется отвлечённой: большинство удивляется собственной ставке.

Есть и третья статья, и она вылезает только в плохой год. Налоговое агентство Канады (CRA) требует хранить деловые записи шесть лет с конца последнего налогового года, к которому они относятся, а фотография повреждённой балки, которая никогда не покидала телефон, записью не является. И заметка, которую вы больше не можете найти, тоже. Когда клиент спорит о том, о чём договорились в подвале, выигрывает тот, у кого есть заметка с датой.

Очередь — это та часть, которую нужно видеть

Приложение, которое пишет локально, всё равно однажды обязано передать работу дальше, и именно в этой передаче живёт второй класс проблем. Вам нужно открыть экран и увидеть, что ещё не дошло до сервера, — не крутящийся значок, а список. Одиннадцать элементов в очереди — нормально. Одиннадцать элементов, ждущих со вторника, — вопрос, который стоит задать во вторник, а не в конце месяца.

Что происходит, когда один и тот же объект правят двое

Вы переименовываете объект в подвале, а офис в это же время переносит его на четверг. Обе правки настоящие, и одна из них пришла второй. Приложение, которое молча оставляет пришедшую последней, тихо отменит чью-то работу — иногда на месяцы, пока никто не заметит. Приложение, которое останавливается и спрашивает, поступает правильно, хотя вопрос и слегка раздражает. Это часть самого ведения объекта, а не техническая деталь.

Где здесь Zeus

Zeus сначала пишет в базу данных на телефоне и только потом говорит с сервером. Любая запись проходит без связи и встаёт в исходящую очередь на устройстве — в этом и разница между заметкой сделанной и заметкой потерянной. Когда телефон снова находит сеть, очередь уходит сама.

То, что можно создавать и править без связи, — это бо́льшая часть приложения, а не его уголок: клиенты, адреса объектов, сами объекты, задачи по объекту, встречи, заметки, фото, расходы и счета со строками и платежами. Очередь — это экран, который можно открыть, так что всё не дошедшее до сервера превращается в список, который вы читаете. Когда сервер возвращается со встречной правкой той же записи, она попадает на экран конфликтов, где вы выбираете, какая версия останется.

База данных на телефоне зашифрована ключом, который создаётся на вашей собственной установке. Единственное, что редеет без связи, — автоподстановка адреса: подсказки пропадают, а адрес, набранный руками, всё равно сохраняется. Остальное из того, что покрывает приложение, ведёт себя так же. Стартовый размер ничего не стоит и не заканчивается; что входит в каждый размер, написано на странице цен.

Возвращаясь в подполье: ничего из этого не вопрос вкуса в программах. Четыре важные вещи были живы секунд девяносто, и весь вопрос был в том, примет ли их телефон. Тест занимает десять минут — на том, чем вы пользуетесь сейчас, или на приложении Zeus.

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

Офлайн-приложение сильнее сажает батарею или забивает телефон?

Запись в телефон не стоит почти ничего; вопрос места — это фотографии, и они занимают столько же, лежат ли они в приложении или в галерее. Проверять стоит другое: даёт ли приложение посмотреть и очистить то, что уже загружено, — чтобы забитый телефон оставался делом обслуживания, а не аварией посреди работы.

Сколько можно оставаться офлайн, прежде чем это станет проблемой?

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

Нужно ли помнить о кнопке синхронизации?

Не должно быть нужно. Приложение, которое пишет локально, отправляет данные, как только замечает сеть, и ещё раз по таймеру, а нажатие кнопки — это всегда только нетерпение. Показатель — шестой шаг теста выше: если ничего не двигается, пока вы не откроете приложение на Wi-Fi, это ритуал, о котором вы забудете в августе, то есть ровно тогда, когда заняты сильнее всего.

Хватит ли приложения для заметок плюс камеры?

Одному человеку на одном объекте — честно говоря, иногда хватает. Хватать перестаёт там, где написанное вами должен увидеть кто-то ещё: партнёр, офис, ученик, — или там, где заметку надо привязать к объекту спустя полгода, чтобы отстоять счёт. У заметки в приложении для заметок нет привязанного объекта, и в этом вся разница.