Многие приложения, которые работают везде, на деле представляют собой одну веб-страницу, вставленную в разные рамки на каждом устройстве. Caliu выбирает более долгий путь: каждое приложение создано теми инструментами, для которых задумана его платформа. Это больше работы, и именно поэтому прокрутка, набор текста, сочетания клавиш и специальные возможности ведут себя так, как ожидает ваше устройство.
Веб-приложение
Веб-приложение написано на TypeScript с использованием React. Это Progressive Web App: service worker хранит копию всего приложения на вашем устройстве, поэтому оно запускается и работает без подключения, а установить его можно из браузера, как любое другое приложение. Когда выходит новая версия, она никогда вас не прерывает: приложение предлагает обновление и применяет его, когда вы решите.
iPhone, iPad и Mac
Приложения для Apple написаны на Swift с использованием SwiftUI на единой кодовой базе для iPhone, iPad и Mac. При этом у каждой платформы своя раскладка и свои привычки: боковая панель и сочетания клавиш на Mac, жесты на iPhone, и то и другое на iPad.
Поскольку они по-настоящему нативные, они встраиваются в остальную систему: виджеты, меню «Поделиться», Команды и Spotlight. Приложение для Apple Watch тоже написано на Swift и само по себе является полноценным клиентом синхронизации: оно общается с сервером напрямую, поэтому ваши заметки на запястье, даже когда телефона рядом нет.
Android
Приложение для Android написано на Kotlin с использованием Jetpack Compose, собственного набора инструментов Google для интерфейсов Android. Оно создано как тщательный перенос приложения для Apple: та же структура, то же поведение и те же тесты, переведённые случай за случаем, чтобы заметка вела себя одинаково на обеих платформах.
Как четыре приложения идут в ногу
Четыре приложения легко могли бы разойтись. Их удерживают вместе несколько привычек:
- Общие правила, общие тесты. Правила, которые никогда не должны различаться, например как распознаётся
#tag, как читается заголовок заметки и как наводится порядок в очереди синхронизации, написаны по одному разу на каждом языке и проверяются на одних и тех же тестовых случаях на всех платформах. - Один источник внешнего вида. Темы, шрифты и собственный набор значков Caliu описаны один раз и генерируются для каждого приложения, поэтому тема выглядит одинаково и на Mac, и на телефоне с Android.
- Один перевод для всех. Каждое приложение доступно на одних и тех же языках, а тексты приложения для Android генерируются из переводов приложения для Apple, поэтому формулировки совпадают на всех устройствах.
Работа остаётся на устройстве
Поскольку каждое приложение полноценное, а не окно на сервер, основная работа выполняется на вашем устройстве: поиск, экспорт во все форматы и отображение заметок работают офлайн.