Des apps natives, pas un simple habillage

Beaucoup d'apps qui tournent partout ne sont en réalité qu'une page web glissée dans un cadre différent sur chaque appareil. Caliu prend le chemin le plus long : chaque app est construite avec les outils pour lesquels sa plateforme a été conçue. C'est plus de travail, et c'est la raison pour laquelle le défilement, la frappe, les raccourcis clavier et l'accessibilité se comportent comme votre appareil s'y attend.

L'app web

L'app web est écrite en TypeScript avec React. C'est une Progressive Web App : un service worker garde une copie de toute l'app sur votre appareil, si bien qu'elle démarre et fonctionne sans connexion, et vous pouvez l'installer depuis votre navigateur comme n'importe quelle autre app. Quand une nouvelle version est publiée, elle ne vous interrompt jamais : l'app propose la mise à jour et l'applique quand vous le décidez.

iPhone, iPad et Mac

Les apps Apple sont écrites en Swift avec SwiftUI, à partir d'une base de code unique partagée par l'iPhone, l'iPad et le Mac. Chaque plateforme garde pourtant sa propre mise en page et ses habitudes : une barre latérale et des raccourcis clavier sur Mac, des gestes tactiles sur iPhone, les deux sur iPad.

Comme elles sont vraiment natives, elles s'intègrent au reste du système : widgets, feuille de partage, Raccourcis et Spotlight. L'app Apple Watch est elle aussi écrite en Swift, et c'est un client de synchronisation à part entière, qui parle directement au serveur pour que vos notes soient à votre poignet même quand votre téléphone ne l'est pas.

Android

L'app Android est écrite en Kotlin avec Jetpack Compose, la boîte à outils de Google pour les interfaces Android. Elle a été construite comme un portage soigneux de l'app Apple : la même structure, le même comportement et les mêmes tests, traduits cas par cas, pour qu'une note se comporte de façon identique sur les deux.

Garder quatre apps au même pas

Quatre apps pourraient facilement s'éloigner les unes des autres. Quelques habitudes les maintiennent ensemble :

  • Des règles partagées, des tests partagés. Les règles qui ne doivent jamais différer, comme la façon de reconnaître un #tag, de lire le titre d'une note ou de ranger la file de synchronisation, sont écrites une fois par langage et vérifiées avec les mêmes cas de test sur chaque plateforme.
  • Une seule source pour l'apparence. Les thèmes, les polices et le jeu d'icônes propre à Caliu sont définis une seule fois puis générés pour chaque app, si bien qu'un thème a le même aspect sur un Mac et sur un téléphone Android.
  • Une seule traduction, partout. Chaque app est disponible dans les mêmes langues, et les textes de l'app Android sont générés à partir des traductions de l'app Apple, pour que la formulation soit la même d'un appareil à l'autre.

Le travail reste sur votre appareil

Comme chaque app est une app complète et non une fenêtre sur un serveur, le gros du travail se fait sur votre appareil : la recherche, l'export dans tous les formats et l'affichage de vos notes fonctionnent tous hors ligne.