commit 7f78f51220e8d2dffc32b39b4c4fecd08d58dbce Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 9 22:14:23 2026 +0000 Deployed 89178e8 with MkDocs version: 1.6.1 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..2b80afe8 --- /dev/null +++ b/404.html @@ -0,0 +1,1095 @@ + + + +
+ + + + + + + + + + + + + + + + + +I was looking for a short, cute animal-inspired name — something in the spirit of "Flipper".
+I turned my head and saw my golden retriever, Flocon, smiling to me... and that was it.
+That was all the inspiration I needed.
No brainstorming, no hesitation — just the perfect name at the perfect time.
+Flocon shows a real-time stream of analytics events emitted by your application. Whether you’re using Firebase Analytics, Segment, or a custom solution, the Flocon SDK can be plugged and forward these events to the desktop UI.
+Each event includes: +- The event name +- Parameters and metadata (key-value pairs) +- Timestamps
+This is especially useful for QA teams and product analysts to validate that the right events are triggered at the right time with the correct payloads.
+You can log events by identifying the source (e.g., "firebase", "segment", or any custom ID). Flocon Desktop will group events by these IDs.
floconAnalytics("firebase").logEvents(
+ AnalyticsEvent(
+ eventName = "clicked_user",
+ "userId" analyticsProperty "1024",
+ "username" analyticsProperty "florent",
+ "index" analyticsProperty "3",
+ ),
+ AnalyticsEvent(
+ eventName = "opened_profile",
+ "userId" analyticsProperty "2048",
+ "username" analyticsProperty "kevin",
+ "age" analyticsProperty "34",
+ )
+)
+Often, you want to forward all your app's analytics to Flocon. You can easily do this in your analytics tracking implementation:
+fun trackEvent(name: String, params: Map<String, Any>) {
+ // Forward to Flocon
+ floconAnalytics("app_events").logEvents(
+ AnalyticsEvent(
+ eventName = name,
+ params.map { it.key analyticsProperty it.value.toString() }
+ )
+ )
+
+ // Original tracking (e.g., Firebase)
+ firebaseAnalytics.logEvent(name, bundleOf(...))
+}
+0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o