Módulos

O que é um módulo Avançado

Um módulo é um painel seu. Você (ou um agente seu) escreve uma página, e ela passa a viver no canvas como qualquer painel nativo: abre pelo ⌘K, entra no arranjo, minimiza para a estante e pode ser aberta por voz.

Serve para o que só faz sentido para você: o saldo de uma conta, o painel de uma máquina que você administra, um contador do seu jeito, a tela de um sistema interno que ninguém mais usa.

Onde ele mora

Numa pasta dentro da pasta do app, uma por módulo. Duas peças são obrigatórias: o manifesto, que declara o que o módulo é, e a página inicial.

Não há instalador nem registro. O app vigia a pasta: criar faz o módulo aparecer, corrigir o traz de volta, apagar o tira do app. Enquanto você escreve, salvar um arquivo recarrega os painéis daquele módulo sem reiniciar nada.

O módulo é da sua máquina, não do projeto. Ele fica disponível em todos os canvases, e cada abertura cria um painel daquele canvas: a página sabe em que projeto está, e o mesmo módulo pode mostrar coisas diferentes em cada um.

O que ele ganha por estar dentro do canvas

Uma página comum num navegador não consegue nada disto:

  • Fazer requisição sem restrição de origem, porque quem busca é o app.
  • Rodar um script da própria pasta, com a saída de volta para a página.
  • Saber em que projeto está, e adotar o tema e a fonte daquele canvas.
  • Guardar dados entre aberturas e entre canvases.
  • Notificar você dentro do app, com som, leitura em voz alta e um botão que leva até o painel.
  • Dar ferramentas à Nina e aos agentes, para que eles usem o módulo falando.

O detalhe de cada uma está em as capacidades de um módulo.

O que ele não é

  • Não é uma extensão do app. Ele desenha dentro do painel dele e não altera o resto da interface.
  • Não é distribuível. Não há loja, registro nem instalação por link: a pasta é sua.
  • Não roda sem você. Um módulo que precisa de segredo guarda o segredo num script da pasta, e não no HTML.

Por onde seguir