얼마 전 포스팅했던 "네이버 오픈API를 이용한 Google Android용 Book Search"에 이어서 해당 기능을 좀 더 발전시켰다. 안드로이드에서 제공하는 기능들에 대해 나름 알아보는 중이었기에 안드로이드에서 제공하는 것들을 최대한 활용했다. 또한, 그간 관심만 있고 전혀 손을 댈 일이 없었던 XML-RPC도 아파치 라이브러리를 사용해서 적용해봤다. 이를 통해 검색 결과와 열어본 책의 히스토리를 MetaWeblog API를 이용하여 블로그에 전송할 수 있도록 했다.
새롭게 구현한 것들:
1. History
검색한 책을 직접 클릭한 경우, History에 이력이 남게되고 이 History는 안드로이드에 포함된 SQLite 데이터베이스에 저장된다. 이를 통해 핸드폰의 리셋 또는 어플리케이션의 리셋에도 관계 없이 History가 남게했다. SQLite를 기본적으로 포함한 것은 매우 괜찮은 아이디어로 생각된다. 보통 프로그래머들이 익숙해 하는 SQL문을 바로 쓸 수 있다는 것은 개발자를 끌어들일 수 있는 큰 미끼가 될 듯 하다. 게다가 SQLite는 꽤나 검증된 데이터베이스 엔진이기에 안드로이드 자체의 안정성을 높이는 요소가 된다.
2. Blog It!
핸드폰을 갖고 이동 중에 검색을 해본 것과 자신이 찾아봤던 책들에 대한 기록을 블로그에 바로 보낼 수 있다면 참 편할 것이라는 생각을 종종 해왔다. 이를 가능하게 하기 위하여 대부분의 블로그에서 지원하는 XML-RPC를 방식을 사용하기로 마음을 먹고, Android에서 사용할 수 있는 XML-RPC 라이브러리를 찾기 시작했다. 아파치 XML-RPC 라이브러리를 받았으나 안드로이드가 사용하는 Java VM이 Dalvik이라는 구글에서 간소하게 만든 VM인 관계로 좀 골치 아픈 일이 많았지만, 다행히 해결해냈다.
본 어플리케이션에서는 MetaWeblog API를 사용하고, 실제 테스트는 이글루스에서만 했으나 동작상 다른 MetaWeblog API를 이용하는 다른 블로그에서도 큰 문제는 없을 듯 하다. 다만, 안드로이드 VM의 문제인지 아파치 XML-RPC 내부에서 BufferedWriter 메모리 사이즈 문제로 동시에 5권 이상 포스팅을 하면 포스팅이 정상 동작하지 않는다. 그래서 일단 최근의 3권 또는 검색 결과 상위 3권만 포스팅하도록 해놨다.
3. Menu 사용
현재 어플리케이션에는 총 5개의 메뉴가 있다. (1) Show History: 검색 결과가 떠있을때, History로 결과창을 대체한다. (2) Back to List: 검색 결과를 클릭하여 네이버의 책 소개로 들어갔을 때, 다시금 리스트로 돌아오기 위해서 쓰인다. (3) Blog It!: 블로그에 포스팅하는 기능이다. (4) Settings: 블로그 관련 설정을 한다. (5) Exit: 말 그대로 어플리케이션을 종료한다.
안드로이드의 문제점:
1. Too Slow Emulator
안드로이드는 OS로 리눅스 2.6.23을 사용하고, 현재 배포되는 버전은 ARM용 커널이다. 그러다보니 메뮬레이터에서 ARM용 Instruction을 전부 에뮬레이트해야 하는 듯 하고, 그러다보니 일반 PC에서 돌릴 때는 극히 느리다. 사실 사용하지 못할 정도로 느린 것은 아니지만, 실제 하는 일에 비해서는 반응이 매우 느리다.
2. 개발 지원 부재
Eclipse라는 훌륭한 IDE와 구글에서 제공하는 ADT Plug-in을 갖고 뭐라고 하는 것은 아니다. 다만 UI를 만들 때, 좀 더 intuitive하게 할 수 있는 Plug-in이 있었으면 좋겠다. 그외에도 Dalvik VM이 표준 자바를 100% 지원하지 않는 관계로 아파치 라이브러리라던지 3rd Party 라이브러리 사용에 문제가 있다. Retrotranslator 등을 이용하면 일부 라이브러리들의 사용이 가능하지만 영 불편하다. 추후 안드로이드 정식 버전이 나오면 아마도 해결되지 않을까 싶다.
3. 국제화 지원
아직 안드로이드에서는 국제화 지원이 안된다. 아니, 최소한 문서상으로는 그렇다. 추후 추가된다고 하니 기다리지만, 한글이 지원 안되는 문제는 한국에서 어플리케이션을 개발하는데 큰 제약사항이 아닐 수 없다. 한글화야 구글 코리아에서 열심히 해줄 것이라 믿지만, 언제나 제대로된 것이 나올지는 의문이다.
추후 진행할 일:
요 몇일 간처럼 할일은 없고, 무기력증에 빠지는 기간이 또 온다면 다시 손을 대서 수정하고 싶은 것들이 몇가지 있다. (1) 한글 지원, (2) 네이버 책 정보 페이지 변환(모바일 환경에 맞추도록..) (3) UI 정리. (4) History에서 개별 항목별 삭제. (5) Blog It! 수행시 커멘트 추가. (6) 검색어 히스토리를 남기고, 추후 검색시 맞춤 검색 기능 제공.
덧. 본 글은 네이버 Open API 카페의 "API 이용 사례"에도 포스팅되어 있습니다. 가서 보기!
Gallery:
검색 이력
Blog It!
설정창
어플리케이션에서 검색 히스토리를 이글루스에 포스팅한 모습
필요로 하는 분들이 있는 것 같애서 소스 코드를 공개한다. 사실 좀 급히 재미로 짠 코드라 상당히 구조도 엉성하고 쪽팔린 부분이 많지만 그냥 단순 참고용으로는 큰 문제는 없을 것이다. 코드는 여기를 클릭하면 받아진다.
새롭게 구현한 것들:
1. History
검색한 책을 직접 클릭한 경우, History에 이력이 남게되고 이 History는 안드로이드에 포함된 SQLite 데이터베이스에 저장된다. 이를 통해 핸드폰의 리셋 또는 어플리케이션의 리셋에도 관계 없이 History가 남게했다. SQLite를 기본적으로 포함한 것은 매우 괜찮은 아이디어로 생각된다. 보통 프로그래머들이 익숙해 하는 SQL문을 바로 쓸 수 있다는 것은 개발자를 끌어들일 수 있는 큰 미끼가 될 듯 하다. 게다가 SQLite는 꽤나 검증된 데이터베이스 엔진이기에 안드로이드 자체의 안정성을 높이는 요소가 된다.
2. Blog It!
핸드폰을 갖고 이동 중에 검색을 해본 것과 자신이 찾아봤던 책들에 대한 기록을 블로그에 바로 보낼 수 있다면 참 편할 것이라는 생각을 종종 해왔다. 이를 가능하게 하기 위하여 대부분의 블로그에서 지원하는 XML-RPC를 방식을 사용하기로 마음을 먹고, Android에서 사용할 수 있는 XML-RPC 라이브러리를 찾기 시작했다. 아파치 XML-RPC 라이브러리를 받았으나 안드로이드가 사용하는 Java VM이 Dalvik이라는 구글에서 간소하게 만든 VM인 관계로 좀 골치 아픈 일이 많았지만, 다행히 해결해냈다.
본 어플리케이션에서는 MetaWeblog API를 사용하고, 실제 테스트는 이글루스에서만 했으나 동작상 다른 MetaWeblog API를 이용하는 다른 블로그에서도 큰 문제는 없을 듯 하다. 다만, 안드로이드 VM의 문제인지 아파치 XML-RPC 내부에서 BufferedWriter 메모리 사이즈 문제로 동시에 5권 이상 포스팅을 하면 포스팅이 정상 동작하지 않는다. 그래서 일단 최근의 3권 또는 검색 결과 상위 3권만 포스팅하도록 해놨다.
3. Menu 사용
현재 어플리케이션에는 총 5개의 메뉴가 있다. (1) Show History: 검색 결과가 떠있을때, History로 결과창을 대체한다. (2) Back to List: 검색 결과를 클릭하여 네이버의 책 소개로 들어갔을 때, 다시금 리스트로 돌아오기 위해서 쓰인다. (3) Blog It!: 블로그에 포스팅하는 기능이다. (4) Settings: 블로그 관련 설정을 한다. (5) Exit: 말 그대로 어플리케이션을 종료한다.
안드로이드의 문제점:
1. Too Slow Emulator
안드로이드는 OS로 리눅스 2.6.23을 사용하고, 현재 배포되는 버전은 ARM용 커널이다. 그러다보니 메뮬레이터에서 ARM용 Instruction을 전부 에뮬레이트해야 하는 듯 하고, 그러다보니 일반 PC에서 돌릴 때는 극히 느리다. 사실 사용하지 못할 정도로 느린 것은 아니지만, 실제 하는 일에 비해서는 반응이 매우 느리다.
2. 개발 지원 부재
Eclipse라는 훌륭한 IDE와 구글에서 제공하는 ADT Plug-in을 갖고 뭐라고 하는 것은 아니다. 다만 UI를 만들 때, 좀 더 intuitive하게 할 수 있는 Plug-in이 있었으면 좋겠다. 그외에도 Dalvik VM이 표준 자바를 100% 지원하지 않는 관계로 아파치 라이브러리라던지 3rd Party 라이브러리 사용에 문제가 있다. Retrotranslator 등을 이용하면 일부 라이브러리들의 사용이 가능하지만 영 불편하다. 추후 안드로이드 정식 버전이 나오면 아마도 해결되지 않을까 싶다.
3. 국제화 지원
아직 안드로이드에서는 국제화 지원이 안된다. 아니, 최소한 문서상으로는 그렇다. 추후 추가된다고 하니 기다리지만, 한글이 지원 안되는 문제는 한국에서 어플리케이션을 개발하는데 큰 제약사항이 아닐 수 없다. 한글화야 구글 코리아에서 열심히 해줄 것이라 믿지만, 언제나 제대로된 것이 나올지는 의문이다.
추후 진행할 일:
요 몇일 간처럼 할일은 없고, 무기력증에 빠지는 기간이 또 온다면 다시 손을 대서 수정하고 싶은 것들이 몇가지 있다. (1) 한글 지원, (2) 네이버 책 정보 페이지 변환(모바일 환경에 맞추도록..) (3) UI 정리. (4) History에서 개별 항목별 삭제. (5) Blog It! 수행시 커멘트 추가. (6) 검색어 히스토리를 남기고, 추후 검색시 맞춤 검색 기능 제공.
덧. 본 글은 네이버 Open API 카페의 "API 이용 사례"에도 포스팅되어 있습니다. 가서 보기!
Gallery:






덧글
2008/12/01 15:50 # 삭제 답글
비공개 덧글입니다.2008/12/02 18:27 # 삭제 답글
비공개 덧글입니다.자라 2008/12/02 19:01 #
코드를 받아가실 수 있는 링크를 걸어놨습니다.오동훈 2008/12/04 18:20 # 삭제 답글
코드는 잘 받아 갔습니다. ㅇ.ㅇ; 감사 감사.질문 하나 해도 됩니까..ㅇ.ㅇ;
HttpClient 개체가 생성이 안됩니다. 안드로이드 api찾아보니 인터페이스로 구성되어 있더군요...안돼는게 당연하겠죠.
이걸 어떻게 처리 해야 합니까..ㅇ.ㅇ;