이 글은 react-native-iap를 적용한 후기입니다.
react-native-iap적용 방법은 아래에서 확인할 수 있습니다.
https://w-storage.tistory.com/59
1. 개요
이전부터 앱에 인앱결제 도입을 해 보고 싶었다.
회사에서 서비스중인 앱에 마음대로 결제를 붙일 수는 없기 때문에 인앱결제를 적용시켜볼 기회가 잘 없었는데,
개인적으로 운영중인 앱 "아쿠쿠아"에 AI서비스를 도입하면서 인앱결제를 도입하기로 마음먹었다.
...그리고 이것을 금방 끝낼 수 있으리라 생각했다.
2. 라이브러리 선택
개인적으로 라이브러리를 선택하는 기준은 아래의 세 가지이다.
1) 필요한 기능이 포함되어 있는가?
2) 사용중인 React Native 버전에서 문제 없이 동작하는가?
3) 사용자가 많은가?
물론 이 외에도 상황에 따라 여러 조건이 따르긴 하지만 이 세 가지는 반드시 확인하는 편이다.
이러한 조건에 만족하는것이 react native iap라이브러리기에, 이 라이브러리를 사용하기로 했다.
3. 호방하게 시작, 지옥의 시작
일단 가장 큰 문제는 문서가 불친절했다.
설치 과정에서 네이티브 파일에 추가해줘야 하는 내용이 일부 누락되어있었고, hooks도 그저 종류를 나열할 뿐 사용 방법, return값 등이 나와있지 않았다.
내가 아직 실력이 부족해서 그런지 몰라도, 그럴싸한 이름을 찾아서 하나하나 다 결제 테스트를 해보고 return값을 다 console.log로 확인하고...의 무한 반복으로 필요한 hook들을 겨우 찾아낼 수 있었다. 이거 하느라 대부분의 시간을 소모한 것 같다.
그리고 Android와 iOS에 따라 return타입이 다른것도 알아냈다.
그에 맞게 분기 처리해주는것도 정말 중요했다.
4. 무한 헤딩과 완성
약 2주간의 삽질 + 무한 구글링 + 테스트 끝에 마침내 인앱결제를 적용하는데 성공했다.
결제가 성공적으로 동작하고, 프리미엄이 성공적으로 적용됐을 때 너무 신나서 방방 뛰어다녔다.
이번 인앱결제 도입을 통해 배운것은 "다른이들에게 무언가를 제공할 땐 설명서를 반드시, 사용하기 쉽게 작성하자"이다.
만약 제공 대상이 사용자라면, 직관적인 UI/UX를 통해 별도의 설명 없이도 쉽게 사용할 수 있어야 할 것이고,
제공 대상이 라이브러리, 오픈소스같은 개발자를 위한 도구라면 문서를 친절하게 작성해서 "사용법을 찾느라 드는 시간"을 최대한 적게 해줘야 할 것이다.
그리고, 이전에 만들었던 라이브러리 "react-native-component-shaker"를 다시 살펴보며 혹시 나도 문서에 누락된 내용이나, 불친절한 부분이 있진 않나 되돌아 볼 수 있었다.