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-installif 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 startornpx react-native start - For iOS:
npx react-native run-ios, runnpx react-native run-ios -hfor options like specific device/simulator names - For Android:
npx react-native run-android, runnpx react-native run-androidfor options like specific device/simulator ids - Important option to note for both platforms:
--mode Debug/--mode Releaseinstalls and runs the respective version of the app, whereDebugsupports a connection to the metro dev server and hot reloads, whileReleaseis a full build that stands and runs on its own
- The other repos in our organization
- Figma: our design document
- SVGR: useful to convert
.svgfiles 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
Debugmode 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-consolebabel plugin in/babel.config.js. This is automatically done for theReleasemode, but when developing things like the WebSocket connection and the map one might want to disable logs, otherwise the app becomes unresponsive inDebugmode. - 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).