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 파일을 프로젝트에 추가한 후 다음과 같이 개발합니다.
.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
형식의 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())")