---
title: "BioRadar: Flora and Fauna Scanner App — Survival Apps"
description: "How BioRadar is built: the Android app that turns the wildlife and plants around you into targets on a cyberpunk radar, with live data from iNaturalist."
url: https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/
---

TRANSMISSION 015 · 19 JUL 2026 ARCHIVE: [ZONE 2 — MOBILE / ANDROID](https://survival-apps.com/en/zone-2/) · CASE STUDY

# BioRadar: a flora and fauna scanner built on the iNaturalist API (Expo + Capacitor)

The Weaver — build log

 ![BioRadar main screen: BIO RADAR header with IT/EN language switch, selected point Rome, Italy with coordinates, a circular cyan radar with a central marker and sweeping beam, a 20/60/100 km radius selector and a START SCAN button](https://survival-apps.com/assets/img/bioradar-radar.webp)

Fig. 1 — BioRadar: the radar is the interface, and the scan is a real query to the iNaturalist API.

You don't read the land from a map: you read it from its traces. A footprint, a leathery leaf, a call you don't recognize. This tool invents nothing — it queries a living archive, kept by people who have been watching the land for years, and hands it back as a target on a screen. The radar doesn't see ghosts: it sees what someone else has already spotted, close to you.

## What BioRadar is

**BioRadar** is an Android app for identifying plants and animals, with a cyberpunk radar-scanner interface: concentric circles, a central marker, a beam that “sweeps” the area. But under the aesthetic the data is real: BioRadar queries **[iNaturalist](https://www.inaturalist.org/)**[[1]](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#nota1), the citizen science platform with hundreds of millions of nature observations, and shows the species actually sighted within 20, 60 or 100 km of your position (or of a point you pick by hand on a map).

Next to the scanner there's a second, offline mode: a hand-curated archive of **eight biomes** — Mediterranean, temperate forest, alpine, wetlands, tropical, steppe/semi-arid, boreal, savanna — with bilingual cards on typical flora and fauna, useful when the connection is gone or you just want to explore without scanning. It's a **Zone 2** project: mobile, from concept to build, shown for how it's made inside.

## How it's built

BioRadar started out as an **Expo Router**[[2]](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#nota2) app (React Native, TypeScript) and is shipped as an Android APK through **Capacitor**[[3]](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#nota3): Expo's web export becomes the WebView that runs inside the native wrapper. It's the same base as EcoSurvivor with one extra piece, because here the app also has to talk to a real external service.

- **EXPO ROUTER + CAPACITOR** — the three tabs (Radar, Explore, Saved) and the species detail screen come from the files under `app/`, as per expo-router convention. The Android build goes from `expo export --platform web` to `cap sync android`: the resulting WebView runs inside Capacitor, with `@capacitor/geolocation` for native positioning when needed.
- **REAL DATA, NOT A STATIC DATASET** — the Radar screen calls iNaturalist's `GET /v1/observations/species_counts` with latitude, longitude and radius: a real-time response, sorted by number of observations, with a photo, IUCN conservation status and scientific name for each species. No hand-written species database for this part: it's the real world, with today's date.
- **TWO CONTEXTS FOR STATE** — `LocationContext` handles the current position, the hand-picked position and the saved points (with `expo-location` on native, `@capacitor/geolocation` inside the WebView); `LanguageContext` handles Italian/English with a typed translation dictionary. Everything else reads from here.
- **IN-MEMORY CACHE** — iNaturalist responses are kept in a `Map` keyed by rounded coordinates and radius, and taxonomic details (including the Wikipedia summary linked to each species) go in a second cache: the same scan or the same detail, requested twice, doesn't start from zero again.
- **HAND-DRAWN IN SVG** — the radar, the radius indicator and the UI textures are **react-native-svg**, not static images. *Inter* font, Feather and Material Community Icons, a neon palette (cyan, magenta, green) on near-pure black.

 Zone note Zone 2, but with one foot outside the usual perimeter: here the app depends on a third-party service (the public iNaturalist API) for its main function. Without a network, the scanner goes silent — but the biome archive stays entirely offline, precisely so the app isn't left mute when the signal drops.

## The scanner: from radius to list

The Radar screen flow is short: pick a radius (20, 60 or 100 km), hit **START SCAN**, and the app queries iNaturalist on the active coordinates — either the GPS ones or a point you picked by hand on the map. The response becomes a list you can filter by *all / flora / fauna / birds* (and other taxonomic groups), each entry with a photo, common name, scientific name in italics, a color-coded IUCN conservation status[[4]](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#nota4) code (green for “least concern”, up to red for endangered species) and the number of observations recorded in the area.

 ![Scan results in BioRadar: radius set to 20 km, NEW SCAN button, header 60 SPECIES DETECTED, All/Flora/Fauna/Birds filters, and a list of species with photo, common name, scientific name in italics and LC conservation code — including Yellow-legged Gull and Hooded Crow](https://survival-apps.com/assets/img/bioradar-lista-specie.webp)

Fig. 2 — a real scan: the species come from the iNaturalist API, not from a hand-written list.

Tapping a species opens the detail screen: larger photos, the Wikipedia summary linked to the taxon (when available), and a share button. The screen can also fetch an extra photo by searching on the scientific name, for the cases where the first photo returned by the API is poor.

## Explore: the offline biome archive

The second tab flips the approach: instead of querying the network, it shows a **curated, hand-written dataset**, bilingual Italian/English, organized by biome. Each biome has a handful of representative flora and fauna species, with a description, habitat and distinguishing traits — meant to be read, not just scanned. The app also works out the most likely biome from your current coordinates, and flags it at the top of the list as the “current biome”.

 ![BioRadar Explore screen: EXPLORE Biomes of the Planet header, current biome indicator Temperate Forest, and a list of all biomes with flora and fauna counts — Mediterranean, Temperate Forest, Alpine, Wetlands, Tropical](https://survival-apps.com/assets/img/bioradar-esplora-biomi.webp)

Fig. 3 — eight biomes, a hand-written archive that doesn't depend on the connection.

This half of the app answers a practical limit of the scanner: iNaturalist is extremely rich where there are active observers, and sparser elsewhere. The biome archive fills the gap with stable content, always available, built more for learning than for discovery in the field.

## Saved and the points on the map

The third tab keeps track of your **saved points**: coordinates you want to find again quickly, so you can go back and scan a specific place without relying only on the GPS of the moment. From here you can also reach the app's general disclaimer, which you can recall at any time after the first acceptance.

 root@survival:~$ arch --project bioradar
 > ui: expo router (react native) · wrapper capacitor · typescript
 > live data: iNaturalist API · species_counts by lat/lng/radius · in-memory cache
 > offline data: hand-written biome dataset · it/en · no network required
 > position: expo-location (native) / @capacitor/geolocation (webview)
 > graphics: react-native-svg · inter font · feather + material community icons

## Frequently asked questions

### What is BioRadar built with?

It's an **Expo Router** app (React Native, TypeScript), exported as web and packaged with **Capacitor** to produce the Android APK. Positioning uses `expo-location` or `@capacitor/geolocation` depending on the platform.

### Where do the species shown in the scanner come from?

From the public **iNaturalist** API, queried in real time with the coordinates and radius you choose. They're real observations uploaded by the iNaturalist community, not a static catalog written for the app.

### Does it work without a connection?

The scanner doesn't, because it depends on the API. The **Explore** tab, with the archive of the eight biomes, is entirely offline: no network calls, data already included in the app.

### Does the app track my position anywhere?

Your position is only used to query iNaturalist and for the points you choose to save locally on your phone. There's no BioRadar server collecting or storing your coordinates.

### Is BioRadar part of a bigger catalog?

Yes: it's the first of the [three pillars](https://survival-apps.com/en/transmissions/023-three-survival-pillars/) of the Survival Apps catalog, the one dedicated to knowing and respecting the nature around you.

A radar creates nothing: it shows what's already there, and makes it readable at a glance. Whether the next target on your screen is a heron on a canal bank or an oak that was here before you — the signal was always there. It just needed someone to stop and look.

### Notes

1. **iNaturalist** — a citizen science platform that started as a university project and is now run together with the California Academy of Sciences and the National Geographic Society: anyone can upload photos of plants and animals they've observed, which are identified by the community and become open data available through an API. [↑ back to text](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#ref1)
2. **Expo Router** — Expo's file-based navigation system: the folder structure under `app/` defines the screens and their routes, the way the pages of a website work. [↑ back to text](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#ref2)
3. **Capacitor** — a native wrapper that packages a web app (here: Expo's web export) inside an Android/iOS WebView, giving it access to native features such as geolocation, filesystem and notifications through plugins. [↑ back to text](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#ref3)
4. **IUCN conservation status** — the International Union for Conservation of Nature scale that classifies a species' risk of extinction, from LC (“least concern”) to EX (“extinct”), passing through NT, VU, EN and CR. [↑ back to text](https://survival-apps.com/en/transmissions/015-bioradar-flora-fauna-scanner/#ref4)

root@survival:~$ buy --app bioradar

7.99 €

VAT included · one-time payment, no subscription

Pay by card — no account needed · or with PayPal

 [Buy BioRadar](https://payhip.com/b/aVqMf) [Full details](https://survival-apps.com/en/bioradar/)

## // FROM THE SAME ZONE

 [

 TRANSMISSION 038 20 OCT 2026

ZONE 2 — MOBILE / ANDROID · APP PRESENTATION

### Item90: home supplies, room by room

Do you know what's in your pantry, how long it lasts and what's about to expire? Item90 is the Android app for planning home supplies, in '90s pixel style.

 ](https://survival-apps.com/en/transmissions/038-item90-home-supplies/) [

 TRANSMISSION 037 18 OCT 2026

ZONE 2 — MOBILE / ANDROID · DECISION GUIDE

### Offline maps: download them before the network is gone

Google Maps, Organic Maps or OsmAnd? What really works without internet, what doesn't, and how to prepare your phone in ten minutes, before you need it.

 ](https://survival-apps.com/en/transmissions/037-offline-maps-android/) [

 TRANSMISSION 034 29 SEP 2026

ZONE 2 — MOBILE / ANDROID · DECISION GUIDE

### Your phone already knows how to call for help: turn these features on

Emergency SOS and emergency contacts are already built into Android and iPhone. Here's how to switch them on.

 ](https://survival-apps.com/en/transmissions/034-emergency-sos-already-in-your-phone/)
