Overview

SpatialConnect is a a collection of open-source libraries that enables developers to build mobile applications with geospatial capabilities. This includes native SDKs for Android and iOS, Javascript bridge libraries for developing apps with React Native, other supporting libraries, and a reference implementation of "mobile a backend as a service" that works with the SDKs. This repo is a landing page for developers who want to develop on the SpatialConnect project.

Prerequisites

If you are going to develop apps for iOS, you need to run macOS, therefore the following instructions assume you are using a Mac.

First install the useful package manager for macOS, Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

Then install a few required prerequisite packages if they are not already installed.

brew install node
brew install git
brew install watchman

For Android development, use the installers to install Java, and Android Studio.

For iOS, download and install Xcode from the App Store.

Many of the projects also use Docker containers for running services locally, so make sure you install Docker.

SpatialConnect git repositories

There are several repos that you will need to clone before starting to develop for SpatialConnect.

spatialconnect-android-sdk - the native SDK for the Android platform.

git clone https://github.com/boundlessgeo/spatialconnect-android-sdk

After cloning this repo, you can open it in Android Studio and follow the prompts to install the required Android SDK platforms and build tools.

spatialconnect-ios-sdk - the native SDK for the iOS platform.

git clone https://github.com/boundlessgeo/spatialconnect-ios-sdk

The iOS SDK uses Carthage to manage its dependencies so install it with brew install carthage if you haven't already.

spatialconnect-js - the Javascript bridge which allows a Javascript runtime (web view, React Native app, etc) to communicate to the native SDKs.

git clone https://github.com/boundlessgeo/spatialconnect-js

spatialconnect-mobile - a reference implementation of a React Native app that uses the native SDKs.

git clone https://github.com/boundlessgeo/spatialconnect-mobile

Make sure you installed the react-native-cli npm install -g react-native-cli so you can use it to start the apps from the command line.

spatialconnect-server - a reference implementation of a mobile backend as a service that includes user management, push notifications, device configuration, a form builder for data collection, and other features.

git clone https://github.com/boundlessgeo/spatialconnect-server

There are a few other supporting repos that you might also need to clone, depending on what you're developing.

react-native-spatialconnect - a Javascript library used to integrate SpatialConnect with React Native applications

git clone https://github.com/boundlessgeo/react-native-spatialconnect

spatialconnect-form-schema - a Javascript library used to integrate with tcomb-form which allows us to render forms based on JSON schemas.

git clone https://github.com/boundlessgeo/spatialconnect-form-schema

schema - a repo holding protobuf message schemas

git clone https://github.com/boundlessgeo/schema