wikistreets / wikistreets-nativescript-client

Front-end mobile native clients using Svelte and Nativescript. Currently under development.
0 stars 0 forks source link

Wikistreets Nativescript Client

Native mobile app developed with Nativescript, Svelte, and TailwindCSS.

Projects that make this possible

OpenStreetMap data

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.

OpenStreetMap map tiles

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.

Alternate tile servers

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.

Installation

Camera permissions

The app uses the camera plugin - follow the setup instructions there to grant permissions to the camera on both Android and iOS.

GPS permissions

It may be necessary to grant permission to use the device's GPS. I haven't thoroughly tested this yet.

Testing

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.

Troubleshooting

Hot Module Reloading (HMR)

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.

Android

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"))

Documentation

Nativescript and Svelte Native are woefully underdocumented. However, here are a few useful links:

Toolkit

Built with almost entirely open source platforms and tools, including but not limited to:

Icons:

Useful reading/watching

Svelte

Leaflet

Nativescript