Day 20:非 GUI 类工具之 juce::Analytics

为简化使用者行为采集,JUCE 提供了 juce::Analytics 以及相关介面,让开发者依需求收集使用者行为,收集到的资料储存於本机或者传送到远端服务器。

JUCE 提供了 AnalyticsCollectionDemo 范例,示范如何利用 juce::ThreadedAnalyticsDestination 包装 Google Analytics,将资料收集到指定的 Google Analytics 帐号。

JUCE 也提供了 juce::ButtonTracker 类别,简化追踪使用者操作 JUCE 应用程序的行为。实作不复杂,JUCE 内建的其他控制项可依样画葫芦。

juce::Analytics 释出时,官方讨论串有一论战。有人认为 JUCE 开发团队不应该提供此类可能侵犯使用者隐私的功能。

JUCE 团队认为,我也同意,工具是「中性」的,是否作恶取决於开发者的意图,问题不在工具开发者。不过,该串有些论点也值得思考,对此议题有兴趣的,可以看看

juce::AnalyticsDestination 提供统一的介面,用於包装不同资料采集接收端。采集的资料格式则以 AnalyticsEvent 表示:

struct AnalyticsEvent
{
    String name;
    int eventType;
    uint32 timestamp;
    StringPairArray parameters;
    String userID;
    StringPairArray userProperties;
};

利用 StringPairArray 类别提供 Key/Value Pair 格式,有足够弹性在介面不变的情况下,符合多数需求。

相关资源


<<:  DAY 8:Producer Consumer Pattern,点菜了,三份穿裤子的猪,一盘热空气,把牛变成鳟鱼

>>:  Swift 新手-App Launch Screen 设计&程序码互动

【在厨房想30天的演算法】Day 12 资料结构:杂凑表 Hash Table

Aloha!又是我少女人妻 Uerica!以前我爸开车在停红绿灯的时候,总会趁着红灯几秒的空挡跟我玩...

Day-12 RelativeLayout

RelativeLayout(相对布局) 在RelativeLayout中,元件的位置可以是相对於整...

Day 4 - 条件运算式

大家好,我是长风青云。今天是铁人赛第四天。 今天我真的有点赶,我觉得我以後还是不要当天再开始好了。 ...

[iT铁人赛Day14]JAVA回圈的跳离范例

上次讲完回圈的跳离,今天要用一些范例来做说明 break叙述的范例程序码如下: import jav...

[Day 07] 透过 DAO 和资料库进行互动

除了使用 DSL 的方式和资料库进行互动之外,我们还可以透过更加物件导向的方式,来和资料库进行沟通。...