どこでも動くアプリの多くは、実は 1 つの Web ページを、デバイスごとに違う枠で包んだものです。Caliu は遠回りの道を選びました。各アプリを、そのプラットフォームのために作られたツールで作っています。手間はかかりますが、スクロール、入力、キーボードショートカット、アクセシビリティが、あなたのデバイスで期待どおりに感じられるのはそのためです。
Web アプリ
Web アプリは TypeScript と React で書かれています。Progressive Web App なので、サービスワーカーがアプリ全体のコピーをデバイスに保持し、接続がなくても起動して動作します。ほかのアプリと同じように、ブラウザからインストールすることもできます。新しいバージョンが公開されても作業を邪魔することはありません。アプリがアップデートを知らせ、あなたが選んだときに適用します。
iPhone、iPad、Mac
Apple 向けのアプリは Swift と SwiftUI で書かれていて、iPhone、iPad、Mac で 1 つのコードベースを共有しています。それでも各プラットフォームには、それぞれのレイアウトと流儀があります。Mac にはサイドバーとキーボードショートカット、iPhone にはタッチジェスチャー、iPad にはその両方です。
本当にネイティブなので、システムのほかの部分ともつながります。widget、共有シート、ショートカット、そして Spotlight です。Apple Watch アプリも Swift で書かれていて、それ自体が完全な同期クライアントです。サーバーと直接やり取りするので、iPhone が手元になくても、ノートは手首にあります。
Android
Android アプリは、Kotlin と、Android のインターフェースを作るための Google 純正のツールキットである Jetpack Compose で書かれています。Apple のアプリを丁寧に移植して作られました。同じ構造、同じふるまい、同じテストを 1 つずつ置き換えているので、どちらでもノートはまったく同じようにふるまいます。
4 つのアプリの足並みをそろえる
4 つのアプリは、放っておけばすぐにばらばらになります。いくつかの習慣がそれらをまとめています:
- 共通のルール、共通のテスト。
#tagの見分け方、ノートのタイトルの読み取り方、同期キューの整理の仕方など、決して違ってはならないルールは、言語ごとに一度だけ書かれ、すべてのプラットフォームで同じテストケースに照らして検証されます。 - 見た目の源は 1 つ。 テーマ、フォント、Caliu 独自のアイコンセットは一度だけ定義され、すべてのアプリ向けに生成されます。だからテーマは Mac でも Android スマートフォンでも同じに見えます。
- 翻訳も 1 つで、どこでも。 どのアプリも同じ言語で使え、Android アプリのテキストは Apple のアプリの翻訳から生成されるので、デバイスが変わっても言い回しはそろっています。
作業はデバイスの上で
どのアプリも、サーバーをのぞく窓ではなく完全なアプリなので、重い処理はデバイス上で行われます。検索、あらゆる形式へのエクスポート、ノートの表示は、どれもオフラインで動きます。