Skip to content

About

App do Aresta Climb

Resources

Contributing

Stars

5 stars

Watchers

1 watching

Forks

Repository files navigation

Aresta Climb App

Aplicativo de escalada da ARESTA — guia digital offline para centralizar e distribuir informações de picos.

Estrutura do Repositório

aresta_app/
├── docs/              Documentação do sistema e especificações arquiteturais
│   ├── arquitetura/   Modelagem de UIDs estáveis, PowerSync, contas e design docs
│   └── sistema_de_acesso.md
├── frontend/          Aplicativo Flutter (Android / iOS)
├── openspec/          Especificações e propostas de mudanças (OpenSpec)
├── AGENTS.md          Princípios de Engenharia e diretrizes inegociáveis para agentes
├── CONTRIBUTING.md    Guia de contribuição (DCO)
└── README.md

O submodule aresta_api (definições .proto e código Protobuf gerado) fica em frontend/lib/aresta_api/.


O que é o Aresta Climb?

O Aresta Climb é um guia de escalada digital. O app permite que alpinistas baixem informações completas de picos — croquis, betas, mapas GPS e descrições — para acesso completamente offline no campo, sem depender de sinal de celular.

Os dados são distribuídos no formato .binarypb e imagens WebP, sincronizados a partir do nosso servidor remoto ou consumidos em tempo real pelo Live Reload do Editor Desktop.

Arquitetura e Padrões

O aplicativo é desenvolvido com uma arquitetura MVVM (Model-View-ViewModel) robusta e utiliza classes Protobuf geradas automaticamente (ResumoCroqui, Indice, Croqui) como seus Models centrais, fortemente tipados de ponta a ponta.

A sincronização de picos com a nuvem é de última geração: o SyncService utiliza Isolates em background para realizar cálculos de criptografia (SHA256) e persistência de arquivos sem travar a interface (Main Thread). Os downloads são do tipo Delta Syncs (Atômicos) — o aplicativo só baixa imagens e arquivos que sofreram mutação na nova versão, economizando banda e validando integridade bit a bit.

Adicionalmente, a navegação principal foge da tradicional pilha (Push/Pop) em favor de uma Árvore de Navegação baseada em IDs de nós. Isso se estende para Navegação em Carrossel para múltiplos mapas de forma horizontal (swiping). Em conjunto com o PageListenableBuilder e o ValueNotifier de progresso, o aplicativo possui uma arquitetura reativa que injeta passivamente as versões em memória dos objetos na UI e exibe o andamento do download através de barras de progresso lineares, tudo em tempo real e sem piscar a tela.


Documentação

Documento Conteúdo
frontend/README.md Ponto de entrada para desenvolvedores: tecnologias, funcionalidades, estrutura e como rodar
frontend/lib/README.md Arquitetura interna: MVVM, serviços, páginas, funções e widgets
frontend/lib/view/README.md Camada de apresentação: separação entre function_library e view_models
frontend/lib/services/README.md Descrição dos serviços centrais, Modo Experimental e ciclo de importação
frontend/lib/services/http/README.md Módulo HTTP: Sincronização, downloads atômicos e streaming sob demanda
frontend/lib/services/firebase/README.md Isolamento e integração com Firebase (Analytics, Crashlytics, Remote Config)
frontend/test/README.md Suíte de testes: estrutura, como executar e convenções
docs/arquitetura/mds/arquitetura_unificada_contas_cadenas_uids.md Especificação técnica unificada: NanoID 14c universal, PowerSync, contas e dados abertos ODbL
docs/arquitetura/pdfs/oficial/ Documentos oficiais de design e arquitetura diagramados em PDF
docs/sistema_de_acesso.md Especificação das regras e fluxos do sistema de acesso a croquis
docs/guia_configuracao_observabilidade_e_alertas.md Guia completo de configuração: Sentry Open Source, GitHub Issues, WAHA em GCP e2-micro e fallback Resend
AGENTS.md Princípios de Engenharia Aresta App (Tudo em Português, 100% Test Coverage, TDD, Anti-Abstração)

Referências


Licença, Marca e Termos de Uso

Código-Fonte

O código-fonte deste projeto é distribuído sob a licença Mozilla Public License 2.0 (MPL 2.0). Consulte o arquivo LICENSE para obter o texto integral dos termos da licença.

Marca e Identidade Visual

O nome "Aresta", "Aresta Climb", bem como os logotipos, ícones e identidades visuais associadas são marcas registradas e de propriedade exclusiva dos mantenedores do projeto. O uso da licença MPL 2.0 aplica-se exclusivamente ao código-fonte e não concede direitos de uso comercial das marcas ou logotipos para produtos derivados. Caso crie um fork ou distribuição independente, altere o nome e os elementos visuais.

Conteúdo dos Guias e Croquis

Os dados de escalada, croquis, betas, imagens e traçados de vias distribuídos através dos servidores oficiais ou comercializados no aplicativo são de propriedade de seus respectivos autores/conquistadores e da Aresta, sendo protegidos pela legislação de direitos autorais de conteúdo. O acesso ao código-fonte do aplicativo não concede licença sobre a base de dados comercial de croquis.


💜 Apoio Open Source — Sentry

Monitorado com Sentry

O ecossistema Aresta Climb conta com o apoio oficial do Sentry através do seu programa de incentivo a projetos Open Source (Sponsored Business Plan), garantindo monitoramento de erros, rastreamento de releases e estabilidade em tempo real no aplicativo móvel, no Editor Desktop e nos serviços de borda.


Contribuindo

Contribuições da comunidade são muito bem-vindas!

Adotamos o Developer Certificate of Origin (DCO v1.1) para gerenciar as contribuições de forma ágil e sem a necessidade de contratos burocráticos de CLA. Ao enviar um Pull Request, você certifica que tem o direito de disponibilizar o código sob a licença MPL 2.0 assinando seus commits com a flag -s (Signed-off-by).

Consulte o guia completo em CONTRIBUTING.md e nossos Princípios de Engenharia.

About

App do Aresta Climb

Resources

Contributing

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages