[안드로이드 개발팁]린트 경고를 사용하기

2013. 5. 14. 21:24개발

 

안드로이드 개발 프로젝트가 커지면 역시나 소스를 최적화하고 문제를 좀 더 쉽게 찾는 도구들이 많이 필요 하다

특히 안드로이드의 경우 화면 레이아웃을 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"

 

린트에 대한 보다 자세한 설명은 아래 링크 참조

Improving Your Code with lint