- API 문서 정독하고 적용하기
- timer
- 로드되기 전 동작할 경우
- 다른 화면으로 갈 때
- background로 갈 때 고려 -> observer
- pageViewController (UIPageViewControllerDataSource 말고 UIPageViewControllerDelegate에서 뷰 작업 처리)
- timer
- 재사용되는 로직은 function으로 감싸기, 관련 로직들도 function으로
- setViewControllers처럼 completion이 있는 경우 유의
- didEnterBackground보다 willResignActive(앱이 백그라운드로 갈 때 처리는)
- 데이터 다시 로드하는 메소드는 따로 만들기.refreshData
- 뷰가 재활용되므로 뷰 관련 처리(viewDidLoad)시 오류날 수 있음
- 뷰 관련 처리는 viewDidLoad에! ex.gradient
- guard let a?[0]은 a가 nil일 경우 오류남. range out of index
- guard let a?.first 는 오류 안 남
- 주석 적극 활용
- iOS 버전 의존적인가
- private function
- extention
- 롤링, 클릭 영역 확인 후 뷰 작업-> 감싸야 되니까.. 나중에 감싸면 다 깨짐 ㅠ
- scrollView 안의 뷰는 contentView로 묶기
- 비슷한 뷰들은 view로 감싸기
- height, width constraint는 최대한 적게, 가장 안의 것부터 컨스트레인트를 준다
- 숫자로 주는 constraint는 무조건 기피하기!
- 가이드에 관련해서 계산할 때, 가이드 숫자를 엑셀 파일에 쭉 입력하고 옆에 round(x*320/360) 값 이용해서 적용
- iOS8에서는 margin이용한 top, bottom constraint 오류 동작함
- scale to fill/ aspect to fill/ aspect to fit에 유의!
- 사진이 동적인 경우
- 꽉 채워야 하는 경우 aspect to fill 사용
- 여백을 이용하는 경우는 aspect to fit사용
- 사진이 동적인 경우
- label 같은 기본 텍스트. 넣어지는 값으로 수정하기(서버 로드 실패시 노출됨)
- iOS 기기에서 캡쳐할 때 오류나면 simulator로 런
- iOS8에서 테스트
- iOS 테스트 독려하기
- 운영 버전에서도 테스트!
- 서버 데이터 로드 실패했을 때 테스트
- 전체 리뷰 받기
- 링크 문서 앱 버전은 출시된 버전을 itunes, google developer console 참고하여 작성