Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major New Feature - App Heartbeat #391

Open
biblicabeebli opened this issue May 31, 2024 · 3 comments
Open

Major New Feature - App Heartbeat #391

biblicabeebli opened this issue May 31, 2024 · 3 comments
Assignees
Labels
ANNOUNCEMENT Listen up, devs and sysadmins should probably watch.

Comments

@biblicabeebli
Copy link
Member

biblicabeebli commented May 31, 2024

We have been working on a feature called App Heartbeart.

This work includes both apps and the backend repositories. It has been heavily tested and there are no known negative effects, so we have decided that to enable it by default across all studies once your backend servers are updated. The feature has a configurable timer and a configurable message that participants will see. Updating those settings has immediate effect, except for devices that are offline.

What is App Heartbeat?

This feature started as part of the 2.5.0 release of the iOS Beiwe app, as an effort to get it stable and more persistent. The app sends a "heartbeat" signal to the server every ~5 minutes in order to provide a consistent signal that the app is running. When this signal, along with other network activity from a given device, goes dark for an extended (configurable!) period your Data Processing server will send a push notification to the device asking the participant to open the Beiwe app.

Why do we need this?

There are scenarios that no amount of careful design can solve. iOS can still shut down an app, the participant may dismiss the app from the switcher, the device itself may be restarted or updated, and there are always, always bugs. Android is a little more consistent, but there have been many additions since Android 4.4 "KitKat" _(Yeah*.) that have introduced mechanisms we must fight with in order to keep the data coming in.

With this feature you are able to examine push notification history to determine whether your study participants were or are unreachable, and we are working to surface several other metadata streams to provide the best possible insight on participant compliance (and also to find and fix bugs!).

How do I configure it?

Go to your study's device settings page, there will be two new fields:

image

Status:

  • Backend: this feature has been stealthily present but disabled except on a per-participant basis while we got the kinks worked out.
    • The final commit enabling the feature globally is tracked on the branch finish-heartbeat, which is currently the same commit as staged-updates, and will be merged into main early next week.
    • This has been merged into main.
    • The tracking issue for this feature is/was finalize heartbeat feature #375
  • iOS: the feature was primarily developed for iOS and is already present in 2.5.0, which has been live on the app store for over a month.
    • Older versions of the iOS app will receive the notifications too, but may not report in as reliably. We encourage you to reach out to any such participants and have them update the app.
  • Android: heartbeat is present in 3.6.0, which will be made available via the download link ASAP.
@biblicabeebli biblicabeebli added the ANNOUNCEMENT Listen up, devs and sysadmins should probably watch. label May 31, 2024
@biblicabeebli biblicabeebli self-assigned this May 31, 2024
@biblicabeebli biblicabeebli pinned this issue May 31, 2024
@biblicabeebli
Copy link
Member Author

@hydawo This has been deployed.

@hydawo
Copy link
Collaborator

hydawo commented Jun 5, 2024

@biblicabeebli great, a few questions

  • Are there any implications we should consider before broadly announcing this feature's availability?
  • It is toggled off on studies by default correct? So studies need to "opt-in" or participants (via the study team) can "opt-in" on an individual basis?
  • Should we let a few studies try it live first, then broadly announce it's availability?

cc: @MMel099 @jprince127

@biblicabeebli
Copy link
Member Author

biblicabeebli commented Jun 7, 2024

@hydawo I will responde to your middle question by directing you to this comment made by one... @hydawo The feature is on by default and already rolled out.

Please let me know if you think we should reverse course a bit here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ANNOUNCEMENT Listen up, devs and sysadmins should probably watch.
Projects
None yet
Development

No branches or pull requests

2 participants