CrazySoftware2014. 9. 21. 23:38

 otto는 안드로이드 앱 내부에서 커플링을 줄여주는 라이브러리이다.

 이유는 모바일 앱이라서 어쩔수 없이 사용자를 기다리게하면 화를 내니까 비동기로 처리 할 수 밖에 없는데, 비동기로 처리한 결과 값을 원하는데 전달하려면 콜백을 쓸수 밖에 없다.  근데 콜백 함수를 써보면 알겠지만 보일러플레이트가 어마어마하다. 그거 일일이 다 손으로 짜다가는 코드가 넝마주의가 되고, 퇴근 시간도 자연스럽게 늦어진다. 물론 디버깅 할 때도 헬게이트 열림. 그 때 otto는 빨리 집에 갈 수 있게 해준다.


 개발을 하다보면 여러 UI 요소들이 중첩 되는 경우가 자주 생긴다. 그리고 그 UI 요소에서 발생한 이벤트를 상위 레이어에서 받고 싶을 때가 있다. 



 이런 경우가 좋은예...listview 하나 있고, 그 밑에 textview가 하나 있고, 좌우로 imagebutton이 있다. 근데, 실제로 메세지 전송을 누르면... -_-... listview에 내가 쓴 글을 추가해야한다. 이 때 실제로 글을 추가하는건 listview를 가지고 있는 activity나 fragment에서 할일이다.


 이런 경우 보통 콜백을 쓰지만, 자바는 그런거 없다. 인터페이스 정의하고 setUpdateMessageListView 같은걸 정의하고.. 부들부들.


 이럴 때 otto를 쓰게 된다. otto는 subscribe와 publish를 통해서 간단하게 메세지를 주고 받는 인터페이스이다. 아 물론 이런게 멀티쓰레드 지원안하면 안된다. 지원한다. 잘됨.


 사용법은 링크에서 확인하세요.

http://square.github.io/otto/



Posted by Arnold Arnny

댓글을 달아 주세요