PDCounter 0.1

PDCounter 0.1

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.



  • By
  • Wiley Kestner

Want something to happen the first time someone views the first screen of your app? What about the third time they view the products list? PDCounter helps you track events, notify observers when they happen, and review a history of every discreet, named event.

Quick start

git clone https://github.com/wileykestner/PDCounter.git

Add PDCounter.xcodeproj file as a dependancy of your project

Add PDCounter-StaticLib in your app target's Build Phases > Target Dependendencies

Add libPDCounter.a in your app target's Build Phases > Link Binary With Libraries

Add <CoreData/CoreData.h> in your app target's Build Phases > Link Binary With Libraries

Add the path the PDCounter public header files in your target's Build Settings > Header Search Paths, ex: "$(PROJECT_DIR)/Externals/PDCounter/PDCounter/Public/Headers/"

// YourAppsController.m
#import "PDCounterProvider.h"

@implementation YourAppsController

- (void)viewDidLoad {
    [super viewDidLoad];
    PDCounterProvider *counterProvider = [[PDCounterProvider alloc] init];
    id <PDCounter> counter = [counterProvider counter];
    [counter increment:@"my_event_name" step:1];
    NSLog(@"The event 'my_event_name' has happened %d time(s)", [counter currentCount:@"my_event_name"]);
}

@end

Observers

Any object that conforms to the PDCounterObserver protocol can be added as an observer of counting events.

id<PDCounterObserver> observer = [[MySpecialObject alloc] init];
PDCounterProvider *counterProvider = [[PDCounterProvider alloc] init];
id <PDCounter> counter = [counterProvider counter];
[counter addObserver:observer];

Now the MySpecialObject instance, observer, will have its counter:didIncrement:newCount: method called every time counter has increment:step: called on it.

Running the Specs

git clone https://github.com/wileykestner/PDCounter.git
git submodule update --init
cd PDCounter
rake specs