Native mobile app developed with Nativescript, Svelte, and TailwindCSS.
This app depends upon OpenStreetMap (OSM) data, © OpenStreetMap contibutors, and made available for use under the Open Database License. If you notice any map data that should be updated or corrected, consider fixing it yourself or reporting the issue.
By default, we also use the OSM tile server, in accordance with their Tile Usage Policy. This tile server is entirely supported by donations and not meant to be used heavily by apps. Consider donating to OSM to support their mission to make map data and map image tiles freely available to the world. Should our app become so popular that we exceed their very reasonable tile usage limits, we have provided an in-app account setting that allows users to switch to a different tile server.
OpenStreetMap maintains a list of raster and vector tile providers that can be used within the app in place of the default OSM standard tile server.
npm install -g nativescript
npm install
tailwindcss
is at version 3.1.8
, since later versions are currently incompatible.env
file based on the env.example with correct values for each variablens debug ios
or ns debug android
ns run ios
or ns run android
The app uses the camera plugin - follow the setup instructions there to grant permissions to the camera on both Android and iOS.
It may be necessary to grant permission to use the device's GPS. I haven't thoroughly tested this yet.
The project is set up to run unit tests using jasmine. Tests should be placed in the app
/tests
directory. Run them with ns test ios
or ns test android
. Optional flags include --emulator
to launch the tests within the device emulator, --justlaunch
to quit the emulator once tests are complete, and --watch
to re-launch the tests automatically upon code change.
If running on iOS shows error messages mentioning hmr
, try running without that, e.g. ns debug ios --no-hmr
. This isn't a solution, since HMR should work, but could avoid the problem.
If running on Android produces errors about Duplicate class
in Kotlin, follow the solution mentioned here and insert the following line into the platforms/android/app/build.gradle
at the bottom of the dependencies { ... }
code block:
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
Nativescript and Svelte Native are woefully underdocumented. However, here are a few useful links:
actionItem
components with the ios.systemIcon
attribute.actionItem
components with the android.systemIcon
attribute.Built with almost entirely open source platforms and tools, including but not limited to:
Icons:
Svelte
Leaflet
Nativescript