Quite a lot of this architecture has already been implemented in other apps I use, and a few I designed and/or wrote at a Really Big Software Company ;) . Here's the brief version:
1) Local app, local data, with 'standard' data elements plus the ability to add custom elements
2) Ability to sync with an online data store. Allow this to be automated if the user so chooses. Don't sync custom elements.
3) When the sync happens, check for client updates
4) Make absolutely certain that you either don't collect, or allow users to 'opt in', to collect PID (Personally Identifiable Data). There are legal issues (none of them good) if you don't address this correctly.
5) Provide a web UI so users can see what's going on in the bee world
So basically, you have a local app and data store, and allow users to sync both the data and the app at the same time. Being able to export the data is a Good Thing (for data analysis at the client, of the client's data).
As others have pointed out, having a totally online app has it's own issues, and if it's a local app, you loose the trend analysis capability.
If you want some help designing the thing, send me an email.