Faux Pas
Faux Pas는 iOS 또는 Mac 앱의 Xcode 프로젝트를 검사하여 잠재적 버그뿐 아니라 유지 관리성 및 코드 스타일 문제도 경고합니다.
소개
Faux Pas는 iOS 또는 Mac 앱의 Xcode 프로젝트를 검사하여 잠재적 버그뿐 아니라 유지 관리성 및 코드 스타일 문제도 경고합니다. Clang 정적 분석기(Static Analyzer)가 코드에 대해 수행하는 역할을, Faux Pas는 전체 Xcode 프로젝트에 대해 수행합니다. Faux Pas는 코드만 검사하는 것이 아니라 Xcode 프로젝트 내 모든 요소를 통합적으로 검사하므로, 완전히 새로운 유형의 잠재적 문제를 발견할 수 있습니다.
잠복 중인 버그 제어:
• 리소스 파일 오류 탐지: `[UIImage imageNamed:]`의 파일명 인수에 오타가 있는지 확인하셨나요? 파일 이름을 변경한 후 관련된 모든 코드를 업데이트하셨나요? 아마도 사용되지 않을 가능성이 높은 리소스 파일을 배포하고 계신가요? Faux Pas는 리소스 파일 사용과 관련된 오류를 점검하는 12개의 규칙을 포함합니다.
• 로컬라이제이션 오류 탐지: `NSLocalizedString()`이 존재하지 않는 키를 참조하고 있지는 않나요? 특정 로케일에서는 존재하지만 다른 로케일에서는 누락된 키를 참조하고 있지는 않나요? 다양한 번역본에서 사용된 모든 형식 지정자(format specifiers)가 일치하는지 확인하셨나요? Faux Pas는 로컬라이제이션 오류를 점검하는 10개의 규칙을 포함합니다.
• 버전 관리 오류 탐지: 프로젝트가 버전 관리 시스템(VCS) 루트 외부의 파일을 참조하거나, VCS에서 무시된 파일을 참조하고 있지는 않나요? Faux Pas는 버전 관리 오류를 점검하는 4개의 규칙을 포함합니다.
최선의 개발 관행 학습 및 적용:
• 카테고리에서 `+initialize`를 오버라이드하고 있나요?
• `UIViewController` 구현 외부에서 NIB 이름을 지정하고 있나요?
• `NSContactsUsageDescription`을 명시하지 않고 주소록에 접근하고 있나요?
Faux Pas는 숙련된 iOS/Mac 개발자에게도 유용하지만, 특히 Apple 플랫폼을 처음 접하는 신입 개발자에게 매우 탁월합니다.
코드 스타일 강제 적용:
• 가능한 경우 언제든지 도트 문법(dot syntax) 사용을 강제하고 싶으신가요? 아니면 `@property`로 선언된 프로퍼티에만 한정하고 싶으신가요?
• `NSNumber` 리터럴, 박싱 표현식(boxed expressions), 컨테이너 리터럴(container literals), 객체 서브스크립팅(object subscripting)에 대해서는 어떻게 규범화하고 싶으신가요?
Faux Pas는 코드 스타일 강제 적용을 지원하는 12개의 규칙을 포함합니다.
