hwpjs 프로젝트 시작 배경과 동기는 hwpjs 개발 배경 문서를 참고하세요.
우연찮게 Craby라는 React-Native용 러스트 라이브러리를 발견하게 되었다.
Craby는 TurboModule을 통해 러스트 코드를 React Native에서 사용할 수 있게 해주는 라이브러리였다.
나온 지 얼마 안 됐고 정식 버전도 안 나왔지만, React Native에서 러스트를 사용할 수 있는 거의 유일한 대안이었다.
개인적으로 리엑트 네이티브를 혐오하는 사람이지만 (근거는 없다) 리액트 네이티브에서 최애 언어인 러스트로 멀티플랫폼 개발을 할 수 있다는 사실은 상당히 흥미로운 내용이였다.
Craby 레포지토리를 살펴보던 중 문서에 오류가 있는 것을 발견했다.
내용은 그냥 andorid 헤더 안에 ios가 ios 헤더 안에 android 설명이 잘못 적혀있는거였는데
올리니까 바로 받아주길래..
간단한 문서 수정이었지만, 기여의 시작이었다.
사실 문서 수정은 개발자로서 중요하긴 하지만, 그렇다고 해서 문서 수정만 했다라고 하면 그건 진정한 기여라 부를 수 없다
문서 기여를 하고 나서, 계속 기여할 거 없나 찾아보다가 onSignal 쪽 콜백 이벤트에 타입을 던져주는 기능을 기여해보자고 마음 먹었다.
Craby의 Signal에는 네이티브 영역에서 처리하는 도중에 자바스크립트쪽으로 시작, 또는 중간, 끝나는 시점에 이벤트를 던져줄수는 있었지만, 이벤트만 던지고 이벤트 상황을 전달할 수 있는 오브젝트는 정의되지 않았었다.
오픈소스 규칙을 읽어보고 해당 클론 받아서 이것저것 실행시켜보고 코드 연구해보면서, 사실 잘 모르는 C 부분이 걸리긴 했지만, 어떻게든 기여해보자는 마음으로 코드 분석을 시작했다.
Craby를 발견하고 문서 수정부터 시작해서, onSignal 콜백 이벤트 타입 기여를 위해 코드 분석을 시작했다.