Features
FieldBuddy Swift is full featured offline-first field service app. So it contains an agenda with work orders that are synchronized with the back-end when their data is changed.
Our end users are field engineers or technicians who retrieve appointments automatically from the back-end, and travel to a customer to complete a given task. It may be a regular maintenance visit, it may fix or installation. They use mobile navigation and as soon as their job is done, the customer signs up using a signature pad. The process is smooth and natural. Everything on the smartphone.
Development Workflow
Right tools are essential and luckily these days there are many great open-source tools that you can use on the daily basis. We’re not original here: we like what most of the developers like. So the following list contains:
- Visual Studio Code or Sublime as our IDE
- git to manage our source control
- Package management is done both with npm and yarn (but as many other say, we do love yarn).
- Expo Client and Expo XDE for debugging
- iOS Simulator and Xamarin Android Player
- Google Chrome DevTools for debugging
- Sketch for UI design
Major Open Source Libraries
The React Native’s technology stack is overwhelming and so is ours. We extend it and alter it as needed. It evolves with our experience. There are however few libraries, a few pillars, that just like the Expo SDK became the cornerstones of FieldBuddy Swift. These libraries address two essential areas of the React Native application: state management and navigation.
We chose MobX as the state management solution because it is conceptually simple yet complete and easier to implement comparing to any existing redux libraries.
We had more troubles with the navigation. That’s actually one of the biggest surprises for any developer who starts working with React Native: a navigation dilemma. Unlike in the web development, there’s no single and standard way to move between screens in the mobile development. Also if you compare iOS and Android, you may notice significant differences how these platforms deal with this topic. That’s why when you start your first React Native app, it’s quite likely that you’ll need to choose between at least a few major navigation libraries (or you can build yet another one). So the decision you make is crucial for your app. Such a choice can be hard or impossible if you’re a newbie. And then, it’s recommended to follow the mainstream. We made a few experiments and eventually we pick what seemed to be the mainstream choice: react navigation. It is easy to configure, predictable and have frequent updates.