Open City App
Prequisites (Mac OS X)
Please read Getting Started with React Native for more detailed instructions on how to setup the tools.
git clone https://github.com/City-of-Helsinki/open-city-app
npm install -g react-native-cli
Running on iOS simulator:
Running on Android (you have to have a device connected which has developer mode enabled, or simulator running)
cp ./android/app/src/main/res/values/api-keys.example.xml ./android/app/src/main/res/values/api-keys.xml
Generate a Google Maps Android API KEY (available from Google API Library) and add it to
Add fingerprint of debug keystore into Google API credentials
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
Add API key for sending service requests. It needs to be added to
config.jsonas the value for
If you run debug build on device you have to forward the dev server port to the device:
adb reverse tcp:8081 tcp:8081
adb -s <Device ID> reverse tcp:8081 tcp:8081 if multiple devices/simulators are connected.
HOX! Adding new react-native bridge libraries
You might have to add native dependencies manually. Using rnpm might break react-native-maps setup.
To link libraries with rnpm run:
Changing API urls
./src/config.js to change API urls.
Building Android release
Make sure you can run the app with
Generate signing key and place it in ./android/app (don't lose this when publishing the app. You can't make updates for the app unless the signing key is the same as the last release)
`keytool -genkey -v -keystore my-release-key.keystore -alias open-city-app -keyalg RSA -keysize 2048 -validity 10000`
Generate fingerprint from keystore and add it to your Google Maps API fingerprints
`keytool -list -v -keystore my-release-key.keystore -alias open-city-app -storepass PASSWORD -keypass PASSWORD`
Add these lines into
OPEN_CITY_APP_STORE_FILE=my-release-key.keystore OPEN_CITY_APP_KEY_ALIAS=open-city-app OPEN_CITY_APP_STORE_PASSWORD=*Keystore password* OPEN_CITY_APP_KEY_PASSWORD=*Keystore password*
3. Run `./gradlew assembleRelease` in ./android ## Building iOS release _TODO_ ## Developing Components with [Storybook](https://storybook.js.org) 1. Write stories in `storybook/stories/<component-name>/` 2. Start storybook `npm run storybook` 3. Run the app `react-native run-ios` to see your stories on the device. To preserve storybook state while making changes, enable hot reload from development menu 4. Optionally, navigate to [localhost:7007](localhost:7007) to see stories