Development/아이폰
[아이폰:정리] 나의 아이폰 화면 구성 과정.
江多林
2011. 9. 21. 01:37
강좌는 아니기에 개략적인 개념만 정리하고 넘어갑니다.
뭔가 구현하는 예제는 과감하게 내일로 미뤄 봅니다.
아이폰에서의 입력화면의 구조와 구성
뭔가 구현하는 예제는 과감하게 내일로 미뤄 봅니다.
아이폰에서의 입력화면의 구조와 구성
XxxxViewController : View Event 또는 외부 오픈 Interfacing
XxxxModel : 입력화면이 가져야 할 최소한의 데이터저장소
XxxxViewController.nib : 입력화면 UI
XxxxHelper : 이벤트의 정합성 판단/ ModelData의 변환/ 등의 로직을 담당
XxxxTest : Helper Unit Test
XxxxAutomation : UX Test
작업순서:
1. Nib 를 최소한으로 구성하여 얼 확인
2. ViewController 를 최소한으로 구성해서 UI 흐름 시연
3. 경우에 따라서 Nib파일에 샘플이미지를 올려 놓는다.
--- prototype 완성 ---
4. Model 구성/ 화면에 적당한 ViewController의 자료구조를 설계
5. Model 구현 및 ViewController 에서 public property 와 Model의 연결
--- 기반구조 완성 ---
6. applyXXXXModelData 메소드/ 일반적으로 applyModelData(모델의 모든 데이터 퍼붓기)
7. [UX흐름]에 맞게 ViewController 추가 구현
--- 구현 완료 ---
8. Helper 구현/ ViewController의 검증, 변환, 모델데이터 추출, API호출(페이징필요시) 등의 코드를 Helper로 이동
<-- 단위테스트를 위해 필수 작업
--- 리팩토링 및 단위테스트 준비 ---
9. Unit Test 구현
10. Automation 구현
--- 밥값 완료 ---
중요포인트:
4. Model 구성시 주의사항
외부인터페이싱으로 View에 설정해야할 것은 반드시 View객체 외에 모델에도 클론이 있어야 한다.
모델자료구조가 단순한 경우 모델을 자료구조형태로 ViewController가 가질 수 있다.
단, 조회조건/ 조회결과 등 성격이 다른 자료 함께 갖는 경우에는 분리하는 것이 좋다.
모델을 API 호출을 담당하는 경우 모델 변경 인폼전달은 NotificationCenter를 활용한다.
(API객체를 Controller 가 가질 것이냐 Model이 가질 것이냐는 아직 고민중.!)
6. applyXXXXModelData메소드
적용할 데이터 성격에 따라 applyAbcModelData, applyBbcModelData 등의 개별 적용 메소드를 만들고,
applyAllModelData 에서 전체를 적용하도록 구성하면, 필요한 부분만 업데이트 할 수 있음.
(그러기 위해서는 또한 모델이 잘 구성되어 있어야 구현에 막힘이 없을 것이다.)
view를 다시 그리는 update와 view가 dataSource로부터 데이터를 읽어오는 reload와 충돌되지 않도록,
applyXXXXModelData 가 적당해 보임.
8. Helper 구현
ViewController 클래스의 코드의 일부를 Helper 로 이동(delegation)하는 과정이다.
자료의 획득/ 서브화면의 획득/ Model과 View 간의 자료변환/ Action 처리 가능여부 확인 코드
UI 단위테스트를 위해서는 필수적인 부분이다.