Skip to content

Commit ca8c8ec

Browse files
authored
docs: add the Google Play listing and refresh project status (#1545)
* docs: add the Google Play listing and refresh project status GeoLibre is now published on Google Play as org.geolibre.app, so the README badges, Getting Started, Downloads, and Android pages point users at the store instead of only the sideload APKs. The Project status summary had also stalled at 2.2 while the repo shipped 2.4. * docs: raise the Google Play badge contrast The 414141 fill sat almost on top of the badge's default gray label half, so the two sides ran together. Google Play's brand green separates them the way the Microsoft Store badge already does. * Address Claude review feedback - docs/android.md: "Routine updates are steps 2-3" was wrong. Step 2 is Play App Signing, a one-time console action; only step 3 (upload the AAB, bump versionCode) recurs per release. - docs/features.md: reword the Android bullet so the App Bundle and the sideload APKs read as two outputs of the same workflow. * Address Claude review feedback - docs/getting-started.md: drop "and tablets" from the Android touch-layout claim. The rest of the docs scope the responsive layout to phones, and widening it is unrelated to adding the Play listing.
1 parent 58725f6 commit ca8c8ec

7 files changed

Lines changed: 68 additions & 9 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
[![Conda Recipe](https://img.shields.io/badge/recipe-geolibre-green.svg)](https://github.com/conda-forge/geolibre-feedstock)
1010
[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/p/github/opengeos/geolibre)
1111
[![Microsoft Store](https://img.shields.io/badge/Microsoft%20Store-GeoLibre-0078D4?logo=windows)](https://apps.microsoft.com/detail/9nwt67rv531x)
12+
[![Google Play](https://img.shields.io/badge/Google%20Play-GeoLibre-01875F?logo=googleplay&logoColor=white)](https://play.google.com/store/apps/details?id=org.geolibre.app)
1213
[![AUR version](https://img.shields.io/aur/version/geolibre-bin?logo=archlinux&label=AUR)](https://aur.archlinux.org/packages/geolibre-bin)
1314
[![FlatPark](https://img.shields.io/badge/FlatPark-GeoLibre-4A90D9?logo=flatpak)](https://flatpark.org/apps/app.geolibre.GeoLibre/)
1415
[![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -20,6 +21,7 @@ GeoLibre is built with **Tauri v2**, **React**, **TypeScript**, **MapLibre GL JS
2021

2122
- **[Launch GeoLibre Web](https://web.geolibre.app/)** — the full app in your browser, nothing to install
2223
- **[Download the desktop app](https://geolibre.app/downloads/)** — Windows, macOS, and Linux installers
24+
- **[Get it on Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app)** — the native Android app
2325
- **[Get started](https://geolibre.app/getting-started/)** — install, run from source, and configure
2426
- **[Features](https://geolibre.app/features/)** — the complete feature list
2527

docs/android.md

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ GeoLibre runs as a native Android app built from the same React codebase via
55
the app shell works offline; map tiles and the heavier engines are fetched on
66
demand (same as the desktop build).
77

8+
## Install
9+
10+
GeoLibre is published on
11+
[Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app).
12+
The Play build is signed and updates automatically:
13+
14+
[Get GeoLibre on Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app){ .md-button .md-button--primary }
15+
16+
Prefer to sideload? Every [release](https://github.com/opengeos/GeoLibre/releases)
17+
attaches signed, per-ABI APKs — see [Downloads](downloads.md#android-installation).
18+
The rest of this page is for developers building the app themselves.
19+
820
## What works on Android vs desktop
921

1022
The Android build ships the full map workspace, Add Data, the Vector tools
@@ -205,8 +217,12 @@ adb install -r geolibre-x86_64.apk
205217
206218
## Publishing to Google Play
207219

208-
The build side is covered by the CI workflow above; the rest is Play Console
209-
onboarding.
220+
GeoLibre is live on Play as
221+
[`org.geolibre.app`](https://play.google.com/store/apps/details?id=org.geolibre.app);
222+
this section records the onboarding for reference and for anyone publishing a
223+
fork. Only step 3 recurs per release: build the AAB with the upload key and bump
224+
the `versionCode`. The build side is covered by the CI workflow above; the rest
225+
is one-time Play Console onboarding.
210226

211227
1. **Developer account** ($25, one-time). Register as an **organization** rather
212228
than a personal account if you can: personal accounts created after
@@ -231,10 +247,10 @@ onboarding.
231247
backend that retains user data, but the form asks per-purpose.
232248
7. **Content rating** questionnaire and target audience.
233249

234-
Before the first public release, re-read *Known limitations* below: several Add
235-
Data paths are inert on Android. A reviewer tapping one and getting nothing is a
236-
one-star review, so consider gating them on mobile the way the sidecar tools
237-
already are via `isMobile()`.
250+
Keep *Known limitations* below in mind for each update: several Add Data paths
251+
are still inert on Android. A user tapping one and getting nothing is a one-star
252+
review, so gate them on mobile the way the sidecar tools already are via
253+
`isMobile()`.
238254

239255
## Known limitations / follow-ups
240256

docs/downloads.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Release builds are produced for:
1313
- Windows x64: unsigned desktop binary
1414
- macOS Apple Silicon: Developer ID signed and notarized DMG and app bundle (v1.4.1+)
1515
- macOS Intel: Developer ID signed and notarized DMG and app bundle (v1.4.1+)
16+
- Android: signed APKs, one per ABI (`geolibre-android-arm64.apk` and friends)
1617

1718
The Windows GitHub Release build is unsigned and may require a platform-specific
1819
trust prompt; the [Microsoft Store](#windows-installation) build is signed and
@@ -190,6 +191,40 @@ appimageupdatetool GeoLibre.Desktop_<version>_amd64.AppImage
190191
Check what an AppImage points at with
191192
`./GeoLibre.Desktop_<version>_amd64.AppImage --appimage-updateinfo`.
192193

194+
## Android installation
195+
196+
### Google Play (recommended)
197+
198+
GeoLibre is on
199+
[Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app) as
200+
a native Android app, built from the same codebase as the desktop and web builds.
201+
The Play build is signed and updates automatically:
202+
203+
[Get GeoLibre on Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app){ .md-button .md-button--primary }
204+
205+
### Sideload an APK
206+
207+
Each [release](https://github.com/opengeos/GeoLibre/releases) also attaches
208+
signed, per-ABI APKs. Download the one matching your device
209+
(`geolibre-android-arm64.apk` for nearly every modern phone), allow installs
210+
from unknown sources, and tap it — or install it over ADB:
211+
212+
```bash
213+
adb install -r geolibre-android-arm64.apk
214+
```
215+
216+
Sideloaded builds do not update themselves, so download a newer APK to upgrade.
217+
218+
!!! note
219+
220+
The Play build and the sideloaded APKs are signed with different keys, so
221+
Android will not upgrade one into the other. Uninstall the existing copy
222+
(`adb uninstall org.geolibre.app`) before switching between them.
223+
224+
Tools that need a local desktop process — the Whitebox, Raster, Conversion, and
225+
AI Segmentation toolboxes, and the PostgreSQL data source — are hidden on
226+
Android. See [Android](android.md) for the full list and for build instructions.
227+
193228
## Build from source
194229

195230
```bash

docs/features.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,6 @@ See the [Plugin API](plugin-api.md) to build your own.
115115
- Browser deployment with Docker (with optional HTTP Basic Auth for the web container), embed-friendly URL parameters (including `?url=` project deep links that skip the welcome wizard and a `?welcome=0` param to opt out of onboarding), and a `maponly` chrome-free mode. See [Embedding & Sharing](user-guide/embedding.md)
116116
- Versioned `postMessage` API for a host page that frames the app: load a project, move the camera, highlight features, and open a processing tool at runtime, with `ready`, `projectLoaded`, `selectionChanged`, `viewChanged`, `toolCompleted`, and `serverFileWritten` events back out. Off unless the deployment names its trusted origins (`GEOLIBRE_EMBED_ORIGINS`), which are enforced in both directions. See [Talking to the map at runtime](user-guide/embedding.md#talking-to-the-map-at-runtime)
117117
- Desktop diagnostics panel (capturing native Tauri HTTP requests in the network log and classifying failed `fetch()` errors), OS trust store and mTLS client-certificate support for native HTTP, automatic layer reload when local files change on disk, a guided update workflow with a startup update check and update preferences, and MSIX packaging support, with macOS installers signed with an Apple Developer ID certificate and notarized by Apple so they open without a Gatekeeper workaround, plus Windows Package Manager (winget) distribution as `OpenGeos.GeoLibre`, a Windows portable zip build that runs without installation, and Linux AppImages that carry embedded update information and a published `.zsync`, so AppImageUpdate, AppImageLauncher, AppManager, and AM can update the app by transferring only the blocks that changed
118-
- Native Android app built from the same codebase with Tauri v2 mobile, producing signed, per-architecture APKs (~40 MB) plus a Google Play-ready universal App Bundle (permanent `org.geolibre.app` package id, API level 36, 16 KB page-size alignment verified in CI) through a GitHub Actions workflow; tools that depend on a local desktop process (Whitebox, Raster, Conversion, AI Segmentation, PostgreSQL/Martin) are hidden on mobile so nothing is shown that cannot run. See [Android](android.md)
118+
- Native Android app built from the same codebase with Tauri v2 mobile, published on [Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app); a GitHub Actions workflow builds both the universal App Bundle that Play ships and signed, per-architecture sideload APKs (~40 MB), with a permanent `org.geolibre.app` package id, API level 36, and 16 KB page-size alignment verified in CI; tools that depend on a local desktop process (Whitebox, Raster, Conversion, AI Segmentation, PostgreSQL/Martin) are hidden on mobile so nothing is shown that cannot run. See [Android](android.md)
119119
- iOS build scaffolding on the same codebase, with Tauri iOS configuration, location permissions, and a CI workflow that signs and exports an `.ipa` when Apple signing secrets are present (bring-up: no iOS build has shipped yet). See [iOS](ios.md)
120120
- Installable, offline-capable Progressive Web App (PWA) build, plus a **Download Offline Area** tool that pre-caches the current map view's basemap tiles, and service-worker caching of the CDN-loaded Pyodide and PGlite/PostGIS engines so browser SQL and Python keep working offline after first use

docs/getting-started.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
[![Conda Recipe](https://img.shields.io/badge/recipe-geolibre-green.svg)](https://github.com/conda-forge/geolibre-feedstock)
1010
[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/p/github/opengeos/geolibre)
1111
[![Microsoft Store](https://img.shields.io/badge/Microsoft%20Store-GeoLibre-0078D4?logo=windows)](https://apps.microsoft.com/detail/9nwt67rv531x)
12+
[![Google Play](https://img.shields.io/badge/Google%20Play-GeoLibre-01875F?logo=googleplay&logoColor=white)](https://play.google.com/store/apps/details?id=org.geolibre.app)
1213
[![AUR version](https://img.shields.io/aur/version/geolibre-bin?logo=archlinux&label=AUR)](https://aur.archlinux.org/packages/geolibre-bin)
1314
[![FlatPark](https://img.shields.io/badge/FlatPark-GeoLibre-4A90D9?logo=flatpak)](https://flatpark.org/apps/app.geolibre.GeoLibre/)
1415
[![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -54,7 +55,11 @@ See the [Python Package](python.md) reference to get started.
5455

5556
### On Android
5657

57-
GeoLibre ships as a native Android app built from the same codebase, with a responsive touch layout for phones. See [Android](android.md) for install details.
58+
GeoLibre ships as a native Android app built from the same codebase, with a responsive touch layout for phones. Install it from Google Play and it updates automatically:
59+
60+
[Get GeoLibre on Google Play](https://play.google.com/store/apps/details?id=org.geolibre.app){ .md-button .md-button--primary }
61+
62+
Signed APKs are also attached to each [GitHub release](https://github.com/opengeos/GeoLibre/releases) if you prefer to sideload. See [Android](android.md) for what runs on mobile, sideloading instructions, and build details.
5863

5964
## Video tutorials
6065

0 commit comments

Comments
 (0)