Muitas aplicações que correm em todo o lado são, na verdade, uma página web metida numa moldura diferente em cada dispositivo. O Caliu escolhe o caminho mais longo: cada aplicação é construída com as ferramentas para as quais a sua plataforma foi pensada. Dá mais trabalho, e é a razão pela qual o deslocamento, a escrita, os atalhos de teclado e a acessibilidade se comportam como o teu dispositivo espera.
A aplicação web
A aplicação web está escrita em TypeScript com React. É uma Progressive Web App: um service worker guarda uma cópia da aplicação inteira no teu dispositivo, por isso arranca e funciona sem ligação, e podes instalá-la a partir do navegador como qualquer outra aplicação. Quando sai uma versão nova, nunca te interrompe: a aplicação propõe a atualização e aplica-a quando decidires.
iPhone, iPad e Mac
As aplicações Apple estão escritas em Swift com SwiftUI, a partir de um único código-base partilhado pelo iPhone, iPad e Mac. Ainda assim, cada plataforma tem o seu próprio esquema e os seus hábitos: barra lateral e atalhos de teclado no Mac, gestos táteis no iPhone, ambos no iPad.
Como são verdadeiramente nativas, ligam-se ao resto do sistema: widgets, a folha de partilha, Atalhos e Spotlight. A aplicação para Apple Watch também está escrita em Swift e é um cliente de sincronização completo por direito próprio, que fala diretamente com o servidor, para que as tuas notas estejam no teu pulso mesmo quando o telemóvel não está.
Android
A aplicação Android está escrita em Kotlin com Jetpack Compose, o conjunto de ferramentas da própria Google para interfaces Android. Foi construída como uma adaptação cuidadosa da aplicação Apple: a mesma estrutura, o mesmo comportamento e os mesmos testes, traduzidos caso a caso, para que uma nota se comporte de forma idêntica em ambas.
Manter quatro aplicações em sintonia
Quatro aplicações poderiam facilmente afastar-se umas das outras. Alguns hábitos mantêm-nas juntas:
- Regras partilhadas, testes partilhados. As regras que nunca podem divergir, como a forma de reconhecer uma
#tag, de ler o título de uma nota e de arrumar a fila de sincronização, são escritas uma vez em cada linguagem e verificadas contra os mesmos casos de teste em todas as plataformas. - Uma só fonte para o aspeto. Os temas, os tipos de letra e o conjunto de ícones próprio do Caliu são definidos uma vez e gerados para cada aplicação, por isso um tema tem o mesmo aspeto num Mac e num telemóvel Android.
- Uma tradução, em todo o lado. Cada aplicação está disponível nos mesmos idiomas, e os textos da aplicação Android são gerados a partir das traduções da aplicação Apple, para que as palavras coincidam entre dispositivos.
O trabalho fica no teu dispositivo
Como cada aplicação é uma aplicação completa e não uma janela para um servidor, o trabalho pesado acontece no teu dispositivo: a pesquisa, a exportação para todos os formatos e a apresentação das tuas notas funcionam todas offline.