Hi all, I'm the author of Event Box, a small open-source library I built for my own QA workflow. I'd like your feedback.
The problem: checking analytics events means plugging in a cable, filtering logcat, or setting up Firebase DebugView. Testers can't easily do it on their own phones, and wrong events (bad names, too many params) often get found after release.
What it does:
- Floating bubble on top of your app. Tap it to open a panel that shows events as they fire (number, time, name, params).
- ⚠ warning on any event that breaks a Firebase Analytics rule (name length, param count, value length, user property limits), with the exact reason on tap.
- Resizable, pinnable panel. Draggable, snaps to the screen edge.
- Optional background overlay mode, so it stays visible in recents (needs SYSTEM_ALERT_WINDOW, opt-in).
- Kill switch plus timed sessions, so it can be gated with BuildConfig.DEBUG. Logging never throws into your app.
- Kotlin and Java, minSdk 21, ships its own R8 rules.
Setup:
implementation("com.github.JpOriginDev:event-box:1.3.0") OGEventBoxLog.setDebugModeEnabled(BuildConfig.DEBUG) .setDebugModeDurationHours(0.5) .install(this) OGEventBoxLog.log("purchase", bundle) To avoid logging twice, 1.3.0 adds a wrapper that sends each event to your SDK and to Event Box in one call. It has no analytics dependency, so it works with Firebase, Amplitude, Mixpanel, etc:
val analytics = OGEventBoxAnalytics.wrap( eventSink = { name, params -> firebaseAnalytics.logEvent(name, params) } ) analytics.logEvent("purchase", bundle) Demo GIF and docs: https://github.com/JpOriginDev/event-box
Honest limitations: the Firebase checks are best-effort and may lag behind rule changes. There's no search or export yet. The library is not a no-op in release builds, so gating it with BuildConfig.DEBUG is on you.
What I'd like to know:
- Would you use this, and what would stop you?
- Is the wrapper approach the right way to avoid double calls, or would you prefer something else (e.g. a hook into the SDK)?
- Search/filter and "share log as text" are next. Is anything more important?
MIT licensed. Issues and PRs welcome.
submitted by /u/JaydeepOriginJP[link] [comments]