ラッパーではない、ネイティブアプリ

どこでも動くアプリの多くは、実は 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 のアプリの翻訳から生成されるので、デバイスが変わっても言い回しはそろっています。

作業はデバイスの上で

どのアプリも、サーバーをのぞく窓ではなく完全なアプリなので、重い処理はデバイス上で行われます。検索、あらゆる形式へのエクスポート、ノートの表示は、どれもオフラインで動きます。