This is the mobile app for the Mow-E system developed for the Intelligent Mobile Systems course. It's a cross-platform mobile app developed with React Native.
- Install system-wide prerequisites
- Clone the repository
- Install dependencies:
npm install
, alsonpx pod-install
if building the project for iOS
- Setup project and make sure that all dependencies are installed
- Make sure the device has developer options enabled and is set-up for running a react-native app
- Start metro in separate terminal:
npm start
ornpx react-native start
- For iOS:
npx react-native run-ios
, runnpx react-native run-ios -h
for options like specific device/simulator names - For Android:
npx react-native run-android
, runnpx react-native run-android
for options like specific device/simulator ids - Important option to note for both platforms:
--mode Debug
/--mode Release
installs and runs the respective version of the app, whereDebug
supports a connection to the metro dev server and hot reloads, whileRelease
is a full build that stands and runs on its own
- The other repos in our organization
- Figma: our design document
- SVGR: useful to convert
.svg
files into react components - The React Native guides and components reference
The react-native based source lies in /src
and the automated tests lie in /__tests__
.
- In
Debug
mode nearly everything is logged. That's nice to see what's going on under the hood, but it also slows down performance drastically. Logs can be disabled, e.g. with thetransform-remove-console
babel plugin in/babel.config.js
. This is automatically done for theRelease
mode, but when developing things like the WebSocket connection and the map one might want to disable logs, otherwise the app becomes unresponsive inDebug
mode. - The map drawing is just a simple prototype feature and not fully stable. It might happen that the size of the map is not always updated as it should be or that the current position marker runs outside the current borders.
- iOS and Android handle some displaying-related things differently, so there might be some differences or slight UI-bugs (very rarely).