Mobile scouting app for Farmdog


  • Interactive map
  • Offline support
  • Dynamic forms


  • iOS
  • Android


  • React Native
  • Redux
  • Maps APIs
  • SQLite


3 people
17 weeks


November 2018

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.

Our people behind the project:
Eran Keren
Kostya Belenkiy
Vova Porton

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.

The app saves large datasets in persistent storage, and loads them if the user is offline

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.

Farmers can log visits and input their observations. Each visit contains observation types, with different form controls - according to the form metadata. He can then save the form and load saved forms.
After the farmer logs a visit, he is prompted to input a schedule for the next visit. He can then view and edit the schedule.

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

Each field's observation can be edited from within the sending report screen
Farmers can also add photos of plantings they're checking to their reports

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

More projects

Moving planner for Unpakt AngularJS Ruby on Rails CoffeeScript
Advanced analytics platform for ThetaRay AngularJS Angular MobX RxJS D3 SVG AG Grid HighCharts
Mimic 2 React
Web, iOS and Android apps for Phytech React React Native Google Maps API Web Workers
Project management application for Proggio React NodeJS Redux SVG WebSockets
Reach out
We reply within 24h

© 500Tech. Building high-quality software since 2012.