일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- WebService
- 윈도우즈7
- java
- 맥
- 링크
- 형식
- windows7
- 설치
- c#
- mac
- 퇴사
- 볼링
- ObjectiveC
- screen
- 애플
- 아이폰
- cagr48com
- windows
- WSDL
- iPhone
- 아이맥
- 7932
- Objective-C
- Mobile
- 오브젝티브C
- 윈도구7
- install
- 윈도구
- VISTA
- Number
Archives
- Today
- Total
A colossal Dreamer: GR鐵塔-天生我材
[아이폰:정리] 나의 아이폰 화면 구성 과정. 본문
강좌는 아니기에 개략적인 개념만 정리하고 넘어갑니다.
뭔가 구현하는 예제는 과감하게 내일로 미뤄 봅니다.
아이폰에서의 입력화면의 구조와 구성
뭔가 구현하는 예제는 과감하게 내일로 미뤄 봅니다.
아이폰에서의 입력화면의 구조와 구성
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 단위테스트를 위해서는 필수적인 부분이다.
'Development > 아이폰' 카테고리의 다른 글
[Objective-C] ARC(Automatic Reference Counting) on llvm (0) | 2013.06.30 |
---|---|
[Xcode] Xcode Subproject 관리하기. (0) | 2013.06.26 |
[iOS:objective-C] 오늘 주은 클래스( NSProcessInfo, NSKeyedUnarchiver, UIPasteboard) (0) | 2011.09.08 |
[오브젝티브C] 암호화 AES (0) | 2011.05.30 |
[iPhone:XCode] iOS 앱의 아이콘 설정하기. (0) | 2011.05.27 |