O contexto
Uma associação funciona com ferramentas que não são suas: um grupo de mensagens onde as mensagens se perdem, uma página de rede social que nem todos seguem, um ficheiro de sócios que só uma pessoa sabe manter. A necessidade é sempre a mesma — um único lugar que leve o nome da associação — e o orçamento nunca chega para financiar um desenvolvimento dedicado.
A App Community Suite é a resposta que construímos: uma única base aplicacional, declinada numa app própria para cada associação.
O desafio
A armadilha deste tipo de produto é conhecida: a partir do segundo cliente, a base duplica-se. Cada associação pede um ajuste, faz-se «só para ela», e seis meses depois existem quatro aplicações diferentes que é preciso corrigir quatro vezes. O produto morre antes de ter sido vendido.
A isto juntam-se três condicionantes.
A associação tem de ser a editora visível. Uma associação que põe uma app nas mãos dos seus sócios não quer ver o nome do seu prestador no ecrã inicial. A aplicação leva o seu nome, o seu logótipo, as suas cores e a sua própria ficha nas lojas.
Um visitante tem de poder ver sem conta. Uma app cujo conteúdo está todo atrás de um convite não é promovível: não se partilha, não se indexa e é recusada em revisão por falta de conteúdo visível.
A associação escolhe o que sai do círculo de sócios. Não como um ajuste global, mas objeto a objeto — este evento sim, esta galeria não — por voluntários que não tiveram qualquer formação.
O que fizemos
- Um back-end Django com sócios, eventos, galeria, mensagens, votações, inquéritos, tesouraria, moderação e notificações, exposto como uma API REST comum a todas as declinações.
- Uma separação estrita entre o código de produto e a personalização de cliente. O produto vive num único ramo; cada associação tem um ficheiro de configuração e uma pasta de imagens. Uma correção escrita uma vez chega a todas as declinações por rebase, nunca por copiar e colar.
- Uma única aplicação Flutter para iOS e Android, cuja identidade visual é lida da configuração em vez de escrita nos ecrãs.
- Páginas públicas renderizadas no servidor, para que a agenda, as notícias e a galeria sejam consultáveis — e indexáveis — sem conta, com um percurso de adesão que devolve o visitante a um convite validado por um responsável.
- Uma ferramenta de administração web com quatro níveis de papel e uma fila de moderação, porque um espaço onde os sócios publicam precisa de um sítio onde alguém decide.
O resultado
A primeira associação está em produção: a sua aplicação está publicada com o seu próprio nome e os sócios usam-na todos os dias. Estão preparadas mais duas declinações sobre a mesma base.
A lição deste produto cabe numa frase: o difícil não é escrever a segunda aplicação, é a disciplina que proíbe escrevê-la. Tudo o que parece um ajuste específico é primeiro examinado como uma necessidade genérica mal formulada — e na maioria das vezes é exatamente isso.