Farmdog develops a system for farmers to help scout their fields and log their visits.
Farmdog had an existing app written with ionic, that was sluggish and poorly written. We re-developed the app from scratch using React Native and their existing APIs. We maintained feature parity and increased the level of polish and user experience.
During the development, Farmdog recruited in-house developers, who worked together with our technical lead and other developers. The project ended ahead of schedule, and we did a full transition of the app and codebase to their in-house team.
The farmer can add custom fields using a simple Polygon selection.
There was no built-in polygon creation to React Native Maps, so we created one of our own. After the user touches a location on the map we render a point, then they touch another location, and we render a polyline, and each location they touch further - we render a polygon.
One of the app’s requirements is to allow users to work in offline mode as they are scouting the field.
We had to implement a custom tile caching logic, as it is not supported by the React Native Maps engine. When the user selects an area to visit, we get a grid of coordinates at different zoom levels, get the relevant tiles from Google/Mapbox, and cache them on the disk. When the user is offline - we get the tiles from the cache instead of online sources.
The user can select from existing observation types, or add new observation types that will be visible to all users in the same group.
He can then reorder them, or remove them, which allows for full flexibility when logging the visit.
Each user can belong to a number of different groups, with each group having different data and even a different provider for map tiles (Google Maps or Mapbox)
Quick filtering is available, as each group can have thousands of different fields
Users can also select numerous fields, and update them at once
The app also enables the user to select specific fields, create, preview, and send reports to their customers