광고를 붙이기로 하고 어느 것을 쓸지 정하는 일을 맡았다. 후보가 여덟 개였다.
Table of contents
Open Table of contents
전부 붙여 볼 수는 없었다
하나 붙이는 데 반나절이 걸리니 여덟이면 나흘이 든다.
붙여 봐야 아는 것도 있지만 안 붙여도 아는 것이 있었다. 그 둘을 나누는 것이 먼저였다.
싼 기준으로 먼저 잘랐다
문서만 보고 확인할 수 있는 것으로 걸렀다. Android 를 지원하는지, JNI 로 C++ 에서 부를 수 있는지, 한국 광고 물량이 있는지, 문서가 있는지 넷이다.
후보 안드로이드 지원 C++ 연동 한국 광고 문서
A O O O O
B O X O O ← 자바만
C O O X O ← 한국 광고 없음
D X - - - ← iOS 만
E O O O X ← 문서 없음
F O O O O
G O O O O
H O X O X
여덟에서 셋이 남았다. 여기까지 두 시간이 걸렸다. 붙여 보기 전에 잘리는 것을 먼저 자르니 나흘이 하루 반이 됐다.
자른 이유도 적었다. 나중에 B는 왜 안 썼냐는 말이 나올 것이기 때문이다.
B 자바 연동만 지원. C++ 에서 부르려면 JNI 를 직접 짜야 함
C 한국 광고 물량이 없음
D 안드로이드 미지원
E 문서가 영문 한 장. 예제 없음
H 자바만 + 문서 없음
이유가 있으면 조건이 바뀌었을 때 다시 볼 수 있다. E 는 몇 달 뒤 문서가 생겼다.
남은 셋을 같은 조건으로 붙여 봤다
A 와 F 와 G 를 실제로 붙였다. 붙여 보고 나서야 아는 것들이 나왔다.
A 붙는 데 3시간. 광고가 화면 위에 겹쳐 그려짐. 뒤로 가기가 안 먹음
F 붙는 데 2시간. 잘 됨
G 붙는 데 5시간. 라이브러리 크기가 2MB. 앱 크기가 그만큼 늠
A 의 뒤로 가기 문제는 문서에 없었다. 게임 화면이 Cocos2dxGLSurfaceView 이고 그것이 GLSurfaceView 를 물려받는다. 그 위에 다른 뷰를 얹으면 앞뒤 순서가 걸리고 얹은 쪽이 포커스를 가져가면 onKeyDown 이 안 온다. KEYCODE_BACK 을 그 함수에서 받고 있었으니 안 먹은 것이다.
처음에는 셋을 각각 다른 기기에서 붙여 보고 있었다. 그러면 비교가 안 된다.
같은 기기(기기 A)에서
같은 화면(스테이지 선택)에
같은 위치(하단)에 붙인다
조건을 맞추고 다시 했다. 그러니 A 가 겹쳐 그려지는 것이 기기 문제가 아니라는 것이 드러났다.
결과 — 붙인 뒤에 잴 것과 남긴 목록
F 로 정했다. 다만 나중에 바꿀 수 있게 감쌌다.
class AdProvider {
public:
virtual void show(int x, int y) = 0;
virtual void hide() = 0;
virtual ~AdProvider() {}
};
AdProvider* ad = new FAdProvider();
AdProvider 를 순수 가상으로 두고 구현을 갈아 끼우면 바꿀 때 한 줄만 고친다. 광고는 조건이 자주 바뀌는 것이라 감싸 두는 값이 있었다.
무엇을 보고 잘 되고 있는지 판단할지도 정했다.
- 광고 노출 수
- 앱이 죽는 비율 (붙이기 전과 비교)
- 켤 때 걸리는 시간 (붙이기 전과 비교)
뒤의 둘은 붙이기 전 값을 먼저 쟀다. 붙이고 나서 재면 비교할 것이 없다.
붙이기 전 켜는 데 1.8초
붙인 뒤 켜는 데 2.4초
0.6초가 늘었다. 이 숫자를 보고 광고를 켤 때 부르지 말고 첫 화면 뒤에 부르게 바꿨다.
후보 목록도 지우지 않고 남겼다.
1차 통과: A, F, G
붙여 본 결과
A 광고가 화면 위에 겹침. 뒤로 가기 안 먹음
F 선택
G 라이브러리 2MB. 앱 크기 증가
몇 달 뒤 F 가 정책을 바꿔서 다시 고를 일이 생겼다. 그때 이 기록으로 G 부터 다시 봤고 처음부터 조사하지 않아도 됐다.
정리
- 후보가 많으면 문서만 보고 자를 수 있는 것을 먼저 자른다
- 붙여 봐야 아는 것과 안 붙여도 아는 것을 나눈다
- 자른 이유를 적으면 조건이 바뀌었을 때 다시 볼 수 있다
- 남은 것만 실제로 해 본다. 해 봐야 아는 것이 그때 나온다
GLSurfaceView위에 뷰를 얹으면 앞뒤 순서와 포커스가 걸린다- 얹은 쪽이 포커스를 가져가면
onKeyDown이 안 온다 - 비교할 때는 같은 기기와 같은 화면으로 조건을 맞춘다
- 정하고 나서
AdProvider같은 것으로 감싸면 바꿀 때 한 줄이다 - 붙이기 전 값을 먼저 재 둬야 나중에 비교할 것이 있다
- 안 고른 것을 남기면 다시 고를 때 처음부터 안 해도 된다