alphaspirit - Fotolia

Concur app enables offline users with Realm Mobile Database

Concur app developers switched to Realm to add offline functionality and faster real-time synchronization to their business travel and expense mobile app.

Business travelers need regular access to their expense reports, but they can't always get online when they're on the go. When Concur Technologies Inc. addressed this problem with its mobile app, the travel and expense management provider used offline access and data synchronization capabilities from development software vendor Realm.

"The Concur app has a dual challenge in that it has to work great online and nicely even in offline mode," said Pavan Adavi, lead mobile software design engineer at Concur, based in Bellevue, Wash. "People want their money back, and so they don't want to worry about the app working well. That's where Realm helps us."

Concur mobile app users can book transportation and hotels, and organize, submit and approve expense reports. The Realm Mobile Database saves any data the user enters into an app while it's offline directly on the device. Once the device regains connectivity, the database automatically syncs the stored data with the app to send it where it needs to go. This approach prevents users from losing data when their phone signal cuts out, Realm said.   

Concur used this capability to allow users to take pictures of receipts and add them as expense items while offline. The app automatically reads the contents of a receipt's image, such as the amount, vendor, location and date, and saves that data in the Realm Mobile Database until the device regains connectivity. Receipts are then synced to a server, and users can add them to an expense report and send them to their approving manager. Concur said it plans to use Realm to support more offline features in the future.

Concur's app processes over 19 million receipts from over 7 million users per month, so it's important for any feature in the app to work well with no latency issues, Adavi said.  

The mobile app works for Apple iOS, Google Android, Windows and BlackBerry mobile devices. Concur first adopted Realm to improve the app about two years ago. The Realm Mobile Database is available as a stand-alone product and now as part of the broader Realm Mobile Platform, which launched earlier this month.

The data sync challenge

Syncing data in real time is incredibly challenging for developers.
Michael Facemireprincipal analyst at Forrester Research

Concur also wanted to improve the app's real-time data synchronization capabilities, so there would be less latency when users send data to each other. For example, a manager receives an expense report from an employee faster with real-time synchronization.

Prior to Realm, Concur used the Core Data development framework for offline and data synchronization. Core Data works with SQLite, a database that uses table data structures to store data. But mobile apps rely on object-oriented data structures, so Core Data has to translate the data into a table format so SQLite can store it. Realm is different because it stores data as objects in the first place, which eliminates the transition step and allows data to move faster from one point to another.

Typically, this type of feature is complicated to incorporate into an app and requires a lot of code, but with the Realm API, developers can do it with just three lines of code.

"Syncing data in real time is incredibly challenging for developers," said Michael Facemire, principal analyst at Forrester Research. "The biggest thing is making it easier to interact with data from a developer perspective."

Other companies that offer developers real-time synchronization and offline capabilities include Couchbase and Zumero.

Next Steps

How Realm has simplified going mobile

The top tips for mobile app deployment

Why mobile analytics are a must-have for business

Dig Deeper on Mobile enterprise application development