[Android] NinePatch와 Pattern 그리고 Performance
상당히 오랜만에 블로그에 글을 쓴다.
그리고 이번 글은 정답이 없는 글이라고 생각한다. 그냥 개인적인 생각을 좀 적어보고 싶은 것 뿐.
난 아직 부족한 개발자다. 완벽하게 하고 싶지만 항상 2% 부족했고, 그리고 내 코드도 완벽하지 않다고 생각한다. 그 부족한 부분은 개발할 당시엔 모르고 한참 후에야 알게되곤 했으니까... 그리고 난 스스로 발전시킬려고 노력하고 있다.
얼마전 프로젝트에서 디자이너가 나한테 이렇게 말했다.
[디자이너가 나인패치를 하기 어렵고 하니 배경 관련된 부분을 pattern으로 가자고, 이전 개발자는 버튼 배경 이미지를 사용했을 대 1px짜리 버튼 이미지를 주면 코드로 알아서 모서리 부분도 라운드 처리해서 사용했다. 그러니 그렇게 가자고]
이 말을 들었을 대 순간적으로 든 생각은 이러했다.
왜!!! 편한길 놔두고 어려운길을 택했는가!!!
그래도 말로 잘 풀어서 나인패치로 했을 때의 좋은점을 설명하고 나인패치가 적용된 이미지로 받아서 프로젝트를 적용할 수 있었다. 그리고는 그 나인패치를 사용하지 않고 pattern으로만 사용하는 개발자가 누구일지 궁금하기만 했었다.
그런데...
내가 직접적으로 하는 프로젝트가 아닌 후임이 주도적으로 하고 내가 뒤에서 봐줘야 하는 프로젝트..
여기에서 다른 디자이너도 오더니 이전 개발자가 pattern으로 주면 사용했었다면서 또 같은말을 했다. 정말 답답한 마음으로 설명해줄 때... 나인패치를 사용하지 않는 개발자가 누군지 알게 되었고 왜 그렇게 하는지 물어보았을때 대답은 간단했다. 그 개발자는 pattern으로 배경 적용하고 모서리 라운딩을 코드로 처리하는게 편하다고...
사실 개발자가 자기가 편한 방법으로 개발하면 머 틀리진 않는다. 하지만 개인적인 생각은 편하게 그리고 잘 사용하라고 만들어둔 것은 잘 활용하자는게 내 생각이다.
나인패치로 이미지를 적용하면 정말 버튼과 같은 부분에 size만 정하고 배경에 해당 이미지만 적용하면 끝난다. 코드??? 몇줄 안되고 재활용도 잘 된다. 다른곳에서 size만 다른 버튼에 똑같은 이미지를 가져다 써도 문제가 되지 않으니까...
하지만 pattern으로 배경처리하고 code로 모서리 round처리했을때... pattern적용할 resource를 따로 만들고 round 버튼을 만들 custom layout을 만들어야 한다. 다른 방법이 있다면 shape resource를 만들어 줘야 한다는거.
음.. 과연 어떤 방법이 편할까..
개인적인 개발자 스타일이라고 생각을 해도 이건 정말 이해하기 힘들다. 그래서 두가지 방법으로 했을 때 Activity의 onCreate에서 화면이 다 만들어지는 시간을 보기로 했다... 화면이 다 만들어지는데 얼마나 시간이 걸리는지를 보고 싶어서
나인패치를 적용한 버튼이 6개 있는 화면이 만들어지는데 걸리는 시간.
07-23 15:45:21.968: D/Load Time(18945): Time NinePatch = 9
07-23 15:45:23.088: D/Load Time(18945): Time NinePatch = 9
07-23 15:45:24.013: D/Load Time(18945): Time NinePatch = 6
07-23 15:45:24.948: D/Load Time(18945): Time NinePatch = 6
07-23 15:45:25.928: D/Load Time(18945): Time NinePatch = 8
07-23 15:45:26.883: D/Load Time(18945): Time NinePatch = 8
07-23 15:45:27.758: D/Load Time(18945): Time NinePatch = 6
07-23 15:45:28.588: D/Load Time(18945): Time NinePatch = 6
07-23 15:45:29.458: D/Load Time(18945): Time NinePatch = 5
07-23 15:45:30.708: D/Load Time(18945): Time NinePatch = 9
'Android' 카테고리의 다른 글
[Android] Text shaodw style... (2) | 2013.07.25 |
---|---|
[Android] 퀵터치(QuickTouch) (1) | 2013.07.18 |
[Android] MapView 에서 해당 화면의 Top / Bottom 의 Latitude와 Longitude 값 얻기. (0) | 2012.01.13 |
[Android] Mnet2.0 오픈! (0) | 2011.09.22 |
[Android] 네이트온톡(NateOnTalk) 오픈!!! (9) | 2011.07.20 |