-
Notifications
You must be signed in to change notification settings - Fork 6
코드 컨벤션
Cheongsu lee edited this page Nov 9, 2021
·
3 revisions
코드 컨벤션의 목적은 한 사람이 짠 것처럼 코드 스타일을 통일시켜 가독성을 향상시키고 궁극적으로 유지보수를 쉽게 하는데 있습니다.
- 기본적으로
private
한 프로퍼티/메소드가 그렇지 않은 프로퍼티/메소드보다 하단에 위치합니다. - 가장 위에 프로토콜에서 선언한 프로퍼티/메소드가 위치합니다.
- 함수에서 파라미터 label을 적극 활용하여 문장처럼 읽히도록 작성합니다.
규칙을 추가하거나 제거하고 싶다면 회의를 통해 정합니다. 의견차이가 좁혀지지 않는 경우, 팀장의 최종의견을 따라야 합니다!
- Internal Properties
- (ViewController) IBOutlet
- Protocol implement properties
- viewModel/usecase/repository
- non-private properties
- private properties
- initializer
- Internal Methods
- override functions
- non-private functions
- private functions
- objc functions
- (ViewController) IBAction functions
사용자가 시작한 액션일 경우, did_동사_
로 이름을 짓습니다.
didEnterSearchText(by text: String)
뷰 생명 주기 등 시스템에 의한 액션일 경우, _did_동사
로 이름을 짓습니다.
viewDidLoad()
-
execute_
prefix 붙이기
-
동사_변수
- 예시:
addLandmark()
- 예시:
- SwiftLint
opt_in_rules:
- closure_spacing
- fatal_error_message
- force_unwrapping
- implicitly_unwrapped_optional
- legacy_multiple
- legacy_random
- operator_usage_whitespace
disabled_rules:
- multiple_closures_with_trailing_closure
indentation: 4
line_length: 100
identifier_name:
min_length: 4
type_name:
min_length: 4
- StyleShare의 스위프트 스타일 가이드 채택
- Swift API Design Guidelines
S004_강현준 | S012_김우재 | S033_유한준 | S047_이청수 |
---|---|---|---|
@mandeuk26 | @kimwj9792 | @hj56775 | @bestowing |
2주차
3주차
4주차
5주차
6주차
더보기
- CollectionView + Diffable & Compositional 사용 이유
- App Target iOS13+ 인 이유
- Storyboard를 채택한 이유
- 뒤로가기 버튼에 특정 액션을 넣으면 Swipe back이 되지 않는 문제
- 메모리 누수 발생 문제
- 맵뷰가 주기적으로 리프레쉬되는 문제
- UserLocation 화면을 빠져나와도 업데이트 해야하는 문제
- Compositional Layout의 estimated가 정상 동작하지 않는 문제
- Keyboard에 의해 TextField가 가려지는 문제
- 사용자가 권한을 거절했을때 생길 수 있는 문제
- 이미지를 불러올때 프레임 드랍이 발생하는 문제
- PHPicker를 이용해 이미지를 보여줄 때 이미지를 순서대로 표시하지 못하는 문제
- 관광명소 검색화면에서 빠르게 스크롤 시 적합한 관광명소 이미지를 보여주지 못하는 문제
- 무한스크롤 캘린더 구현과 VoiceOver 적용시 문제