안드로이드 개발 프로젝트가 커지면 역시나 소스를 최적화하고 문제를 좀 더 쉽게 찾는 도구들이 많이 필요 하다
특히 안드로이드의 경우 화면 레이아웃을 XML로 코딩 하는데
하나의 UI 를 표시하는 방식이 개발자의 숙련도와 능력에 따라 천차만별.
그 만큼 잘못 구현해서 성능을 저하시키거나 오류를 내포할 위험도 크다.
아무래도 하나의 XML 로 다양한 화면을 모두 지원하려면 꼼수(?)나 노하우 또는 성능 저하를 가져오는 weight 속성을 많이 사용해야 할 수 있다.
린트 경고(Lint Warning) 를 사용하면 정말 이렇게 많은 문제를 우리 프로젝트가 가지고 있나 싶을 정도로 많은 경고가 나온다.
Lint 가 알려주는 경고가 너무 많기 때문에 옵션에서 원하지 않는 항목은 제거 하는 것이 정신 건강에 이롭다.
물론 처음에는 이 모든 오류를 먼저 아는 것이 중요하기 때문에 디폴트 속성을 그대로 두고 실행해 보자
주요한 린트 경고들
- 잘못 된 레이아웃 파라미터 - 화면을 만들다 보면 Linear 와 Relative 를 오가다가 레이아웃 속성을 변경하지 않고 그냥 두는 경우가 많이 생긴다. 개발자의 이런 실수를 린트는 간단하게 찾아낸다.
예시 - "Invalid layout param in a LinearLayout: layout_alignParentLeft" - 중첩된 weight 에 대한 경고 - 하나의 xml 레이아웃으로 모든 해상도를 만족하는 화면을 만들려다 보면 weight 의존도가 계속 커진다. 문제는 이런 weight 들이 중첩되면 액티비트 로딩 속도를 현저하게 저하시킨다는 점. 정답은 별로 없다. 중첩을 없애기 위해 더 많은 고민을 하는 것 말고는
예시 - "Nested weights are bad for performance" - 특정 액티비트들은 너무 많은 View 를 가지는 것도 문제가 된다(로딩 속도 문제). 증권 앱의 경우 어쩔 수 없이 수 많은 TextView 를 가지는 경우가 많아서 골치가 아팠다.
예시 - XXX.xml has more than 80 views, bad for performance - 사용하지 않는 리소스들 – 대규모 앱을 개발하다 보면 디자인 리뉴얼 할 때마다 안쓰는 이미지가 수 없이 생긴다. 이걸 눈으로 찾으려면 엄청난 노가다일텐데 고맙게도 린트에서는 사용되지 않는 리소스를 친절하게 알려준다. 수백 개의 안 쓰는 이미지를 덕분에 제거할 수 있었다.
예시 - The resource XXX appears to be unused - 한 레이아웃에 동일 id 중복 체크
- Manifest 에 정의 된 것과 다른 레벨의 api 호출 오류
- 이미지에 대한 대체 텍스트가 없을 경우 경고로 알려줌 - 장애인 차별 방지법 때문이라도 이 경고를 무시하면 안된다.
예시 - "Missing contentDescription attribute on image"
린트에 대한 보다 자세한 설명은 아래 링크 참조
'개발' 카테고리의 다른 글
기념일 챙기기 프로그램 – 마이플래너 개선 (0) | 2013.01.02 |
---|---|
안드로이드 개발툴 설치 (4) | 2012.08.28 |
티스토리 블로그 댓글 알리미 티라이브 버전 0.5 (52) | 2011.01.11 |
개발자와 관리자 (9) | 2010.12.16 |
현업과 개발자의 소통 해결하기 (2) | 2010.10.19 |
어플리케이션과 웹의 조화 (2) | 2010.05.04 |
댓글