Skip to content
 
 

Repository files navigation

StreetComplete + React Native

This is an experimental fork of the official StreetComplete with the sole purpose of testing brownfield support for Expo and React Native in large native-first codebases. Its commits serve as a reference for anyone interested in integrating React Native into an existing Android app, especially those that don't want to refactor the whole project structure to accommodate React Native.

This project uses Expo's brownfield isolated approach, consuming a prebuilt fused AAR (a single artifact bundling the brownfield library, all autolinked Expo/React Native modules, and the release JS bundle) from a remote Maven repository — no local React Native toolchain is required to build this fork.

Integration steps

Check commits for detailed steps, full instructions can be found in the expo-brownfield documentation. The fused AAR is built with npx expo-brownfield build:android --fused from the Expo app in briones-agent/packages and published there as a static Maven repository.

  1. Add the Maven repository: In settings.gradle.kts, add https://raw.githubusercontent.com/briones-agent/packages/main/maven to dependencyResolutionManagement.repositories.
  2. Add the dependency: implementation("dev.expo.brownfield:expobrownfield-fused-release:1.0.1") in the app's androidMain source set (app/build.gradle.kts).
  3. Add React Native view: Subclass dev.expo.brownfield.BrownfieldActivity (shipped inside the AAR), call showReactNativeFragment(), register the activity in the manifest, and launch it from an "Expo" button in the main menu dialog.
StreetComplete

StreetComplete

StreetComplete is an easy to use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data. The app is aimed at users who do not know anything about OSM tagging schemes but still want to contribute to OpenStreetMap.

StreetComplete automatically looks for nearby places where a survey is needed and shows them as quest markers on its map. Each of these quests can then be solved on site by answering a simple question. For example, tapping on a marker may show the question "What is the name of this road?", with a text field to answer it. More examples are shown in the screenshots below.

The user's answer is automatically processed and uploaded directly into the OSM database. Edits are done in meaningful changesets using the user's OSM account. Since the app is meant to be used on a survey, it can be used offline and is economic with data usage.

To make the app easy to use, quests are limited to those answerable by asking simple questions.

Screenshots

Download

Get it on Google PlayGet it on F-DroidDownload APK from GitHub

Quests

There are quite a few different quest types now and more will be added over time. You can see a community-managed list of all quests in the OSM wiki.

FAQ

You can find a list of frequently asked questions in the wiki.

Contributing

This is an active open-source project, so you can get involved in it easily! You can do so without any programming or OpenStreetMap knowledge! Just choose a task that you like.

Here are a few things you can do:

Also, if you like StreetComplete, spread the word! ❤️

License

This software is released under the terms of the GNU General Public License v3.0 only.

Sponsors

nlnet
The NLnet foundation sponsored development on this app in four individual grants with funds from the European Commission:

  • A grant from 2025 will allow Tobias Zwick to finish migrating the app to a multiplatform, so that it runs also on iOS (see ticket)
  • In 2021, a grant enabled Tobias Zwick to work about five months on the app - most notably, implement the overlays functionality and measuring with AR.
  • In 2019 and 2021, Mateusz Konieczny each got a grant to work on StreetComplete with a focus on improvements on UI and data collection

GitHub Sponsors Liberapay Patreon
Many users are currently supporting this app through GitHub sponsors, Liberapay and Patreon. If you like the app, you can join them ☺️ to support the continued development and maintenance of the app.

JawgMaps
Since mid 2020, JawgMaps provides their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.

Past Sponsors

German Federal Ministry of Education and ResearchPrototype Fund
Within the frame of Prototype Fund round 15 (March 2024 to August 2024), the German Federal Ministry of Education and Research sponsored Tobias Zwick to work on StreetComplete for iOS (see progress report)

Development on this app was also sponsored in round 8 (September 2020 to February 2021) of the Prototype fund, with focus on collecting more data points and on general improvements of this app.

OpenStreetMap foundation
In August 2020, the OpenStreetMap foundation funded the development of Map Maintenance with StreetComplete within the frame of the microgrants program.

About

Easy to use OpenStreetMap editor for Android

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages