11# mappy
22
3- O mappy surgiu de uma necessidade ** minha** — de campo mesmo, no sentido literal .
3+ O mappy surgiu de uma necessidade minha de campo.
44Eu precisava mapear uma região, marcar pontos, tirar fotos amarradas ao GPS,
55gravar tracks, anotar o que estava vendo, e voltar pra casa com tudo isso
66organizado num projeto. Procurei aplicativo, baixei uns dez, nenhum fazia
@@ -12,7 +12,7 @@ fica no celular até você exportar. Foi pensado pra geologia de campo, mas
1212serve pra qualquer atividade que precise de "ponto + foto + descrição + GPS"
1313em lugares onde não tem sinal.
1414
15- > Status honesto : está em desenvolvimento ativo, sou o único usuário, então
15+ > Status: está em desenvolvimento ativo, sou o único usuário, então
1616> coisas quebram. A APK assinada com debug-key, distribuição é instalação
1717> direta. Se você caiu aqui e quer experimentar, beleza — só não espere
1818> Play Store.
@@ -47,7 +47,7 @@ em lugares onde não tem sinal.
4747 área.
4848- ** Lista de observações** com busca por descrição.
4949- ** Lixeira** — soft-delete, dá pra restaurar.
50- - ** Export tudo** num ZIP em ` Downloads/mappy/ ` :
50+ - ** Exporta tudo** num ZIP em ` Downloads/mappy/ ` :
5151 - ` observations.geojson ` (FeatureCollection com pontos e tracks)
5252 - ` observations.csv `
5353 - ` tracks.csv ` (uma linha por ponto GPS gravado)
@@ -80,30 +80,22 @@ gerenciador de arquivos, abre o `.apk` e instala.
8080
8181Tem um workflow do GitHub Actions (` .github/workflows/release.yml ` ) que roda
8282a cada push na ` main ` , builda a APK e publica como release com tag
83- ` vX.Y.Z-build.N ` . Se o repo for público, a APK é baixável direto da página
84- de releases sem login.
83+ ` vX.Y.Z-build.N ` . Como o repo é público, tu consegue baixar via: https://github.com/gstvschlz/mappy/releases
8584
8685---
8786
8887## Stack
8988
90- Tudo Flutter/Dart. Nada de backend.
89+ Tudo Flutter/Dart.
9190
9291- ** Riverpod** pra state.
93- - ** go_router** pra navegação (legado — boa parte do app ainda usa Navigator
94- direto).
92+ - ** Navigator** pra navegação.
9593- ** Drift** (SQLite) pro banco local, com codegen via ` build_runner ` .
9694- ** flutter_map** + ** FMTC** (Flutter Map Tile Caching, com backend ObjectBox)
97- pro mapa e cache offline. ** Importante:** o mapa "ao vivo" usa
98- ` NetworkTileProvider ` direto, sem FMTC, porque o backend dele tem dado
99- problema em release build (provavelmente R8 minificando demais). O FMTC
100- só entra quando você usa o pre-download explícito.
95+ pro mapa e cache offline.
10196- ** geolocator** pro GPS (foreground e streaming).
10297- ** camera** + ** flutter_image_compress** + ** native_exif** pra fotos.
10398- ** flutter_local_notifications** pro banner de tracking na lock screen.
104- - Ícone do app gerado por um script Dart (` tools/gen_icon.dart ` ) que desenha
105- um pin de mapa estilizado com bandas estratigráficas e um martelo de
106- geólogo. Placeholder até eu fazer um decente.
10799
108100---
109101
@@ -143,4 +135,3 @@ Os requests de tile mandam um User-Agent identificável (`mappy/0.1
143135(geological field mapping; com.scholze.mappy)`) — se você for forkar isso,
144136troca o package name pra um seu antes de bater nos servidores deles. OSM e
145137OpenTopoMap rate-limitam quem se faz passar pelos outros.
146-
0 commit comments