Mobile App Data Synchronization

The TroopWebHost mobile app maintains a copy of much of your pack's data in your device's local memory.  This lets the app run faster and also allows you to use the app when you do not have an Internet connection, like when you're on a wilderness campout.

Whenever you open a page in the app, it first pulls the information from local storage and displays that on the screen.  If you have access to the Internet, it will then check to see if there are any recent changes to this information available from the server.  If any of the data has changed, it will then redisplay the page.  This process usually happens very quickly, depending on your connection speed.

Off-line Operation

Most functions in the app will work when you do not have Internet access.  The primary exception is signing up for events.

You must have Internet access to sign up for events so we can verify your current eligibility for that event, which may be restricted based on membership in a dynamic subgroup or other requirements.

While you are off-line, any information you enter into the app - including taking attendance and signing off on requirements - will be stored in a queue in your device's local memory.  Once you regain Internet access, those updates will be applied to the server.

You can view any pending updates from the General Settings page of the app; scroll to the bottom of that page to find the button View Update Queue.

While this rarely happens, your updates may fail to be applied to the server if someone else changed that same information since you last accessed the server.  This prevents you from overwriting their changes.  For that reason, you should only have one leader take attendance in the app for any particular event.

Full Data Download

When you log on to the app for the first time, it will do a full data download from the server, which looks like this:

The same process runs when you tap the Reload Data button from the General Settings page.

This process builds a new database on your device and downloads a complete copy of your pack's information into that database.  While it usually downloads 100% of the data for each table, there is one table which is only partially loaded to save time:

As you use the app, it will continue to load data into the Event Participants table every time you access the Home page, the Calendar, or the Directory.  This happens in the background and won't be noticeable.  In addition, whenever you open an event from the calendar it will instantly download the participants for that event if they are not already present.

Incremental Data Refresh

On the server, we track every time a row has been inserted, updated or deleted.  From time to time, the app will perform an incremental data refresh that pulls these recent changes from the server.  This happens when:

As mentioned earlier, the app will also refresh individual tables as needed to ensure that you have current data for whatever page is being displayed.