본문 바로가기

Android

[Lib]ButterKnife/DataBinding 시작하기

반응형






UI를 처음 구성할때, 수정할때 등등 가장 많이 사용하는 '징글징글한 findViewById 를 (어차피 copy&paste지만) (될수있으면 안보고) 편하게 사용하고 싶다' 는 욕구를 채워준 라이브러리 


그리고 선언된 View에 대한 중구난방의 동작 정의도 조금더 보기 쉽고 쓰기 쉽게 볼수 있도록 하는 것이라 생각하고 이해했다. 

(기엔 오늘 처음 써봄)


binding이 충돌되는 위험이 있어 DataBinding으로 갈아탄다고 한다 

바로 데이타 바인딩으로 가는게 맞지만, 머가 구린지도 보고싶...

한걸음씩 가자.



* 찾아보던 김에 데이타 바인딩과 코틀린의 충돌도 알게되었다. 


가입된 slack에서 관련 report를 좀 찾아봤다.


fragment/view 내에서 dagger + databinding + kotlin 하면 apt 빌드가 깨져요.

방법은 DataBinding wrapping or databinding 의 optional 처리

저희팀은 wrapper 를 쓰고 있어요.

참고로 리포팅 한 사람이 저희팀 테크 리더…-ㅅ-


.... 써바야 이해를 하겠지만. 메모용으로 두고 ~ 


 




기능 확장보다는 개발자 편의를 위한 라이브러리, ButterKnife 

정리를 위한 정리를 해놓으려 한다.  





ButterKnife 소스와 예제 소스로는 당연 이아저씨꺼 보면되고.. 

https://github.com/JakeWharton/butterknife 




난 간단히 보고 일단 한다고 해도 내 repo에만 적용할거고

개념만 이해하고 사용해보고 (또 삽질하고, 후회를 반복..) 

최종적으로 프로젝트에 적용할 지를 결정할거다. 


난 android studio는 거의 사용해보지 못했고(구석기 eclipse 개발러..) android개발을 본격적으로 달려본지도 좀 되었다.

양산프로젝트만 해왔기 때문에 오픈 라이브러리를 사용해본 경험도 전무하다.


누구를 위한 정리가 아니다. 걍 막쓴다 .. 



based ver. : Butter Knife v8.7



1. 사용하려면 쓰겠다는 정의를 해야한다. Gradle에 :) 


gradle > dependency 


compile 'com.jakewharton:butterknife:8.7.0'

annotationProcessor 'com.jakewharton:butterknife:8.7.0'



2. xml 파일에 정의한 녀석들이 있다고 전제하고 (Navigation 기본 프로젝트 생성했다)    



3. Main activity를 손대보자


<Before>


주구장창써온 findViewById  

구성하는 UI 컴포넌트 N개만큼 N번 정의하고 연결해주어야하는 귀찮은 작업..


<After>






위와같은 형태로 정의해준다

Activity class 안에 단독으로 정의해서 사용하면되며, (꼭 이래야하는것인진 추가 확인 ..) 

해당 Activity에서 set 되어진 layout내의 id를 명시해주고 

정의하면된다.


물론 findViewById 자체를 안써도 되지만 리스너 등록등도 여러가지 편의를 제공한다.

다중리스너가 가능한데, 캡쳐 귀찮..




프로젝트에서 사용해볼까 싶어 이걸 작성하기 시작했지만,

길이의 차이일뿐 N번 선언하는건 비슷한데..? 싶다  


대충만 찾아바도 DataBinding이 더 편한거같다.... 당연히 더 편한걸 쓴다 ㅇ_ㅇ 



다음은 Data Binding을  -  

















반응형