iOS Shuttle 사용법 - skpdi/sentinel-document GitHub Wiki

Sentinel 로그정의서 페이지에서 생성한 iOS용 Shuttle 라이브러리 사용법 입니다.

iOS용 Shuttle은 Objective-C(.h,.m) / Swift(.swift) 파일을 제공합니다.

Swift 파일은 2019.6.25. 이후 빌드된 iOS Shuttle부터 제공합니다. 이전에 빌드된 버전에는 Objective-C 파일만 포함되어 있습니다.

사용법

현재 개발중인 iOS 어플리케이션의 언어와 맞는 Shuttle 파일을 프로젝트에 추가한 후 다음과 같이 개발합니다.

Objective-C 예제

.h, .m 형식의 Shuttle 파일을 사용할 것을 권장합니다.

// Shuttle 인스턴스를 생성합니다.
SampleSentinelShuttle *shuttle = [[SampleSentinelShuttle alloc] init];

// 필드(컬럼) 값 세팅
// 기록해야 하는 컬럼과 같은 이름을 가진 setter 메소드를 이용할 수 있습니다.
// 예를 들어 `page_id` 값을 기록해야 한다면 `page_id` 메소드를 이용하면 됩니다. 
[shuttle page_id:@"/main/card/list"];
[shuttle action_id:@"tap.my_card"];

// 또는 setBodyOf 메소드를 이용하여 한번에 필요한 값을 셋팅할 수 있습니다.
// setBodyOf 메소드는 필요한 컬럼들을 모두 파라미터로 넘겨야 하기 때문에, 실수로 누락할 일이 없습니다.
// setBodyOf 메소드를 이용하면, page_id, action_id 는 자동으로 기록됩니다.
// setBodyOf 메소드를 이용할 경우, 이전에 입력했던 모든 body 값을 삭제한 다음 인자로 받은 body 값을 새로 입력한다는 점을 참고 바랍니다.
[shuttle setBodyOfMain_card_list__tap_my_card__with__serial_no:@"2012-3XXX-XXXX-XXXX" card:nil date:@"MM/YY"];                  

// 이외의 Header 값은 직접 체이닝해서 사용해야 합니다.
[[shuttle session_Id:@"AF0EF"] setBodyOfMain_card_list__tap_my_card__with__serial_no:@"2012-3XXX-XXXX-XXXX" card:nil date:@"MM/YY"];

Rake iPhone 에 값을 기록한 Shuttle 을 넘겨주려면 다음처럼 사용합니다. (Rake-iPhone API 참고)

[rake track:[shuttle toNSDictionary]];

디버깅을 위해 toJSONString 메소드를 사용할 수 있습니다.

NSLog(@"%@",[shuttle toJSONString]);

Swift 예제

.swift 형식의 Shuttle 파일을 사용할 것을 권장합니다.

// Shuttle 인스턴스를 생성합니다.
let shuttle = SampleSentinelShuttle()

// 필드(컬럼) 값 세팅
// 기록해야 하는 컬럼과 같은 이름을 가진 setter 메소드를 이용할 수 있습니다.
// 예를 들어 `page_id` 값을 기록해야 한다면 `page_id` 메소드를 이용하면 됩니다.
shuttle.page_id("/main/card/list")
       .action_id("tap.my_card")

// 또는 setBodyOf 메소드를 이용하여 한번에 필요한 값을 셋팅할 수 있습니다.
// setBodyOf 메소드는 필요한 컬럼들을 모두 파라미터로 넘겨야 하기 때문에, 실수로 누락할 일이 없습니다.
// setBodyOf 메소드를 이용하면, page_id, action_id 는 자동으로 기록됩니다.
// setBodyOf 메소드를 이용할 경우, 이전에 입력했던 모든 body 값을 삭제한 다음 인자로 받은 body 값을 새로 입력한다는 점을 참고 바랍니다.
[shuttle setBodyOfMain_card_list__tap_my_card__(serial_no: "2012-3XXX-XXXX-XXXX", card: nil, date: "MM/YY");    

// 이외의 Header 값은 직접 체이닝해서 사용해야 합니다.
shuttle.session_Id("AF0EF")
       .setBodyOfMain_card_list__tap_my_card__(serial_no: "2012-3XXX-XXXX-XXXX", card: nil, date: "MM/YY")

Rake iPhone 에 값을 기록한 Shuttle 을 넘겨주려면 다음처럼 사용합니다. (Rake-iPhone API 참고)

do {
    ...
    // toDictionary() 호출시 do-try-catch와 사용해야 함
    try rake?.track(shuttle.toDictionary())  
} catch let error {
    print("\(error)")
}

디버깅을 위해 toJSONString 메소드를 사용할 수 있습니다.

print("\(shuttle.toJSONString())")
⚠️ **GitHub.com Fallback** ⚠️