João Gilberto Saraiva

desenvolvedor de software | professor | escritor


Woche: da necessidade à aplicação | João Gilberto Saraiva

Woche: da necessidade à aplicação

27-04-2024

Woche em alemão significa “semana”, se trata de um aplicativo minimalista para organização semanal. Ele nasceu da minha busca por uma ferramenta prática e acessível para gerenciar tarefas, compromissos e notas. Por que fazer mais uma agenda ou “to-do list” em um mundo com Evernote, Notion, Google Keep, etc.? A resposta passa pelo propósito da aplicação e pela expriência de usuário. Como estudante da língua, me inspirei na cultura alemã de simplicidade, organização e praticidade. Ao mesmo tempo, adicionei adaptabilidade e portabilidade ao Woche para atender às minhas necessidades como pesquisador, professor e programador.

Concebendo a ideia

Nos últimos dez anos cultivei o hábito de ter agendas, bloquinhos de anotações e afins. Descobri que é mais fácil lembrar, entender e conectar assuntos quando produzo notas e tópicos em papel. Percebi que ter à mão uma agenda de atividades - seja do trabalho ou vida pessoal -facilita meu planejamento e me ajuda ter em mente o que foi feito, o que preciso fazer.

Empiricamente, descobri que ciclos semanais começando nas segundas-feiras me permitem me organizar melhor entre trabalho, atividades físicas, contas a pagar, compromissos etc. Quando o volume de anotações por semana cresceu, passou a não ser tão rápido achar um registro pessoal ou profissional. Neste momento eu já estava usando menos o papel e mais o celular ou computador para as anotações, então decidi separar as agendas. Ao nomear a aplicação, lembrei das conversas com diversos brasileiros na Alemanha sublinhando como seus colegas de trabalho europeus tem um separação firme entre vida profissional e pessoal. Algo não tão comum no Brasil, mas bem importante para a saúde.

Usabilidade e gestão dos dados

Utilizando diariamente apps de agenda e notas, percebi alguns aspectos que me incomodavam. Anotar um comentário sobre uma reunião é algo trivial, mas nem sempre é simples e rápido. Abrir a página ou app, logar, encontrar o lugar de comentar e finalmente por a informação desejada. Há uma quebra no fluxo de trabalho e, se você estiver compartilhando a tela, pode estar exibindo sem querer suas anotações. O ideal seria fazer isso em um comando simples, que retornasse apenas o que foi anotado e onde.

Muitos aplicativos são fechados dentro de um ecossistema, como Google e Microsoft. Quando meu empregador troca de serviço ou eu mudo de trabalho, não é tão simples exportar e consumir minhas anotações por questões técnicas e legais. Há também aplicações open-source em que é possível ter controle sobre onde suas anotações e agenda são salvas. Tomei-as como base para pensar em um app que salva as anotações localmente e, se o usuário quiser, integra a pasta delas em alguma nuvem.

Optei por um tipo de extensão de arquivo leve e fácil de ler/editar em qualquer tipo de dispositivo, o Markdown. Ele é comum da documentação de projetos e produção blogs, como este que você está lendo, e é fácil de usar. Assim fica simples ler, copiar, editar e compartilhar as informações para e-mails, chats, editores de texto, etc.

As escolhas técnicas

No meu dia-a-dia como programador, o terminal está sempre aberto, então optei por disparar dele os comandos de criar arquivo, adicionar atividade, mostrar conteúdo, etc. Diversas linguagens manipulam textos e arquivos, como Python e Ruby, mas optei por utilizar algo nativo do Linux, os shell script. A ideia foi alinhar a simplicidade com meu propósito de fazer uma aplicação ao mesmo tempo em que aprendo novas técnicas e tecnologias.

A produção de Woche é um exercício de desenvolvimento com CI/CD. Desde os primeiros commits o projeto possui testes automatizados das ações disponíveis ao usuário. Esses testes estão integrados em uma pipeline que roda automaticamente a cada pull request ou commit na para a branch de produção.

A aplicação utiliza tags de versão e tem releases. Além disso, possui um README com funções disponíveis e como fazer customizações - trocar a língua, como e onde salvar as anotações, etc. É um projeto de caráter aberto e experimental que se vale amplamente de experiências e ideias da comunidade do software livre, está sob licença GNU 3.

LINK DO PROJETO NO GITHUB: https://github.com/0jonjo/woche

Imagens: Prints de tela utilizando a aplicação para mostrar agenda da semana e adicionar uma task.