local에 cache할 수 있는 rest api alloy sync adaptor

Parse를 사용하면서, 앱 초기에 데이터를 제법 부르다보니 역시 성능에 문제가 좀 있어서요.

일단 local에서 cache된 데이터를 부르고, rest api로 불러진 데이터가 도착하면 업데이트 해주고 싶어서 찾아보니 restsql이라는 alloy sync adaptor가 있네요.

코드는 titanium이 기본으로 제공하는 sql 아답터와 rest 아답터를 절묘하게 섞어놨네요.
sqlite에 데이터를 cache합니다.

local것만 부르기도 되고,
local걸 부르고 fetch이벤트를 만들고 rest api가 끝나면 두번째 fetch 이벤트를 만드는것도 있습니다.
그외 상당히 세심하게 처리를 하고 있습니다.
덕분에 코드가 복잡하네요…

불편한 점은 sqlite를 쓰기 때문에, colume을 모두 정의해야 합니다. 덕분에 귀찮아요…

써보니깐 잘 동작하는데, object 형태인 데이터에 대해서는 저장할때는 stringify해놓고서는, read할 때 처리가 없더군요.
그래서 그 부분만 수정해서 냉큼 pull request 보냈습니다.

아직 merge 전이니 필요하시면 제가 fork한거에서 받으시면 됩니다.

1개의 좋아요

원 개발자가 성능 문제를 제기해서 regexp로 로직을 바꿨어요 ㅎㅎ

1개의 좋아요

saveData 할때 대량 데이터를 처리할 경우, 앱의 응답성이 떨어지는 문제를 underscore.js의 _.defer();를 사용하여 해결한 버전을 업데이트 하였습니다.

1개의 좋아요