{"adoption": {"forks": 218, "observed_at": "2026-08-28T04:08:32.558400+00:00", "stars": 4022}, "canonical_url": "https://ross.abutalabs.com/products/taptap", "card": {"archived": false, "artifact_type": "application", "description": "Port of the double tap on back of device feature from Android 12 to any Android 7.0+ device", "domain": ["android-tools", "mobile-development", "accessibility"], "enriched": true, "function": ["machine-learning", "gui"], "health_score": 29, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["KieronQuinn/TapTap"], "name": "KieronQuinn/TapTap", "platform": [], "pushed_at": "2024-10-26T21:49:00+00:00", "repo": "KieronQuinn/TapTap", "stars": 4022, "tags": ["gesture-detection", "double-tap", "back-tap-gesture", "tasker-integration", "accessibility-service", "kotlin", "automation", "android"], "topics": [], "urls": [], "use_cases": ["double tap the back of my phone to toggle the flashlight", "launch the camera by tapping the back of my device", "simulate back button press with a back tap gesture", "run a Tasker task by double tapping my phone", "port Android 12 Quick Tap gesture to older Android devices", "trigger different actions depending on which app is open", "triple tap back of phone to launch a shortcut"], "what_it_is": "Tap, Tap is an Android app that ports the Pixel's double-tap-on-back gesture to any Android 7.0+ device with an accelerometer and gyroscope. It offers 50+ configurable actions triggered by double or triple taps, with condition-based gating and adjustable sensitivity via trained ML models.", "when_to_avoid": ["your device lacks an accelerometer or gyroscope", "you only need Android 12+ native Quick Tap and own a compatible Pixel", "you want to toggle deep system settings, which is better handled via Tasker"], "when_to_choose": ["you want the Pixel back-tap gesture on a non-Pixel or pre-Android-12 device", "you need gesture actions gated by context like screen state or foreground app", "you use Tasker and want tap gestures as triggers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/taptap", "repo": "KieronQuinn/TapTap", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.558400+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:55.002839+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "447b4cb45031ad38997eec90229a87187f606499b863230b3ac6980516e07f6c", "fetched_at": "2026-08-28T04:08:32.558400+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KieronQuinn/TapTap"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2225, "days_push": 676, "days_rel": 676, "gap_med": null, "n_releases_24m": 1}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}