Kotlin & Android Version of the My Heart Counts ecosystem.
- Design System: Provides a cohesive user interface and user experience components. View the UI modules
- Account: Provides Account management components. View the module
- Onboarding: Provides Onboarding screens for the application. View the module
- Contact: Provides Contact screens. View the module
The app packages the My Heart Counts study bundle as a zstd-compressed archive — the same format the
storage bucket serves in production — so a build has a study to run before it reaches the bucket, and
bundled and downloaded bundles unpack through one code path. The bundle is not committed here: the
MyHeartCounts-StudyDefinitions
submodule pins the study definitions, and Gradle exports the archive from them with the same Swift
exporter the iOS application uses, so both platforms package what the pinned commit describes.
git submodule update --init./gradlew :myheartcounts:exportStudyBundle refreshes the assets; any task that assembles the
application runs the export itself, and re-runs it only once the submodule moves. The
:study-definition unit tests export their archive fixture the same way instead of committing a
generated artifact. The export needs a Swift toolchain: it uses the one on PATH, and otherwise
runs in the container named by myHeartCounts.studyBundle.swiftImage. Force either with
-PstudyBundleToolchain=swift or -PstudyBundleToolchain=docker.
Dependabot advances the submodule to the head of main weekly, so the bundle moves forward through a
reviewable commit.
The main branch deploys to Google Play internal testing after the deployment gate is enabled.
Publishing a semantic-version GitHub release deploys the same application to production.
The application ID is permanently configured as edu.stanford.myheartcounts. Deployment uses
Fastlane, GitHub Actions, the Stanford Play Console account, and the
fastlane-deployment-426021 Google Cloud project.
See the Google Play deployment guide for the infrastructure inventory, secret-handling rules, bootstrap procedure, and release workflow.
Contributions to this project are welcome. Please make sure to read the contribution guidelines and the contributor covenant code of conduct first. You can find a list of contributors in the CONTRIBUTORS.md file.
This project is licensed under the MIT License. See LICENSE.md for more information.
If you use this software, please cite it using the metadata in CITATION.cff, which GitHub surfaces through the Cite this repository button.
For more information, visit the Schmiedmayer Lab GitHub organization.

