Native apps, geen omhulsel

Veel apps die overal draaien, zijn eigenlijk één webpagina die op elk apparaat in een ander kader is gestopt. Caliu neemt de langere weg: elke app is gebouwd met de tools waarvoor zijn platform is ontworpen. Dat is meer werk, en het is de reden dat scrollen, typen, sneltoetsen en toegankelijkheid aanvoelen zoals je apparaat verwacht.

De web-app

De web-app is geschreven in TypeScript met React. Het is een Progressive Web App: een service worker bewaart een kopie van de hele app op je apparaat, zodat hij zonder verbinding start en werkt, en je kunt hem vanuit je browser installeren zoals elke andere app. Als er een nieuwe versie verschijnt, onderbreekt die je nooit: de app biedt de update aan en voert hem uit wanneer jij dat wilt.

iPhone, iPad en Mac

De Apple-apps zijn geschreven in Swift met SwiftUI, vanuit één codebase die iPhone, iPad en Mac delen. Elk platform krijgt toch zijn eigen indeling en gewoontes: een zijbalk en sneltoetsen op de Mac, aanraakgebaren op de iPhone, allebei op de iPad.

Omdat ze echt native zijn, sluiten ze aan op de rest van het systeem: widgets, het deelmenu, Opdrachten en Spotlight. De Apple Watch-app is ook in Swift geschreven, en het is een volwaardige synchronisatieclient op zich, die rechtstreeks met de server praat, zodat je notities om je pols zitten, ook als je telefoon ergens anders ligt.

Android

De Android-app is geschreven in Kotlin met Jetpack Compose, Googles eigen toolkit voor Android-interfaces. Hij is gebouwd als een zorgvuldige port van de Apple-app: dezelfde structuur, hetzelfde gedrag en dezelfde tests, geval voor geval vertaald, zodat een notitie zich op beide precies hetzelfde gedraagt.

Vier apps in de pas

Vier apps kunnen makkelijk uit elkaar groeien. Een paar gewoontes houden ze bij elkaar:

  • Gedeelde regels, gedeelde tests. De regels die nooit mogen verschillen, zoals hoe een #tag wordt herkend, hoe de titel van een notitie wordt gelezen en hoe de synchronisatiewachtrij wordt opgeruimd, zijn per taal één keer geschreven en worden op elk platform getoetst aan dezelfde testgevallen.
  • Eén bron voor het uiterlijk. Thema's, lettertypen en de eigen pictogrammenset van Caliu worden één keer gedefinieerd en voor elke app gegenereerd, zodat een thema er op een Mac hetzelfde uitziet als op een Android-telefoon.
  • Eén vertaling, overal. Elke app is beschikbaar in dezelfde talen, en de teksten van de Android-app worden gegenereerd uit de vertalingen van de Apple-app, zodat de bewoordingen op alle apparaten overeenkomen.

Het werk blijft op je apparaat

Omdat elke app een volledige app is en geen venster op een server, gebeurt het zware werk op je apparaat: zoeken, exporteren naar elk formaat en het weergeven van je notities werken allemaal offline.