아직 얼마되지 않아 모르는게 더 많지만,
짧은 시간이나마 아이폰 앱을 개발하면서 느낀 점들을 적어 본다.
일종의 개발 방법론이랄까...ㅋ
1. 하나의 앱에 UIViewController 와 XIB 는 하나만...
아이폰 앱 개발에서 UIViewController 는 가급적 하나로 제한 하는 것이 좋다는 생각이다.
(특별히 예외적인 경우는 어쩔 수 없지만...)
하나의 UIViewController 에 다수의 UIView를 생성하고 이를 addSubview 하는 것이 맞다는 생각이다.
(이런 개념이 없이 뷰하나마다 Controller 와 XIB 를 생성했더니 나중엔 어디서 뭘 해야 하는지 정신이 없더라는...)
2. 사용자 이벤트(터치) 핸들러는 UIViewController 에 구현
아무 개념이 없을 때, 참 고민스러웠던 것 중 하나가
각 UIView에서 발생하는 터치와 같은 사용자 이벤트에 대한 핸들러를 어디에 만들 것인가 였다.
추상화라는 개념에서 보자면 각 뷰에서 모든 것을 처리하는 것이 맞겠다 싶지만,
실제 이렇게 적용해 보니 여간 불편한 게 아니다.
각 UIView에서 발생한 사건에 대해서 UIViewController 에 어떤 변화를 주어야 할 경우,
각 UIView의 핸들러에서는 자신을 addSubview 한 UIViewController 를 참조할 수 있는 방법이 마땅치 않다.
(방법이 없는건 아니지만 왠지 짝퉁 코드 같은 느낌이다.)
그렇다고 모든 뷰에 UIViewController 를 선언하고, 해당 UIView를 만들때 마다 이를 설정하는 것도 그닥 내키는 방법은 아니다.
이럴 바에는 차라리 UIView 내에서 발생하는 모든 이벤트를
그 UIView를 addSubview한 UIViewController 로 연결하는 것이 맞다는 생각이 든다.
즉,
단순 display 는 UIView 에서
이벤트에 대한 처리는 UIViewController 에서....
3. 인터페이스 빌더의 최대 활용.
동적으로 화면 구성이 바뀌는 경우가 아니라면,
아니 그렇다 하더라도 변화의 경우의 수가 그리 많지 않다면,
각각을 하나의 UIView 로 하고 그 내용(버튼의 배치, 이미지 위치 등등)을
IB (인터페이스 빌더) 를 이용하여 설계하는 것이 좋다.
물론 코드로 모든것을 다 생성할 수도 있지만, 코드량이 장난이 아니다.
나이 먹으니 타이핑이 그리 귀찮을 수 없다.
4. @property 활용
처음에 저것이 뭐에 쓰는건지 참 난감했다.
Object-C 가 처음이니 당연하다.
그런데 이놈 참 똑똑한 놈 같다.
접근자를 자동으로 만들어주니 말이다.
처음엔 괜히 코딩량만 늘어난다 싶어 생략한 경우가 많았는데,
몇줄 생략한 댓가로 수십줄의 코드량이 늘어난다.
모 건설사 아파트의 홈네트워킹 서버와 클라이언트 앱을 개발하고 있다.
서버는 많이 해오던 일이라 크게 어려움 없이 진행됐다.
그런데 클라이언트인 아이폰 앱 개발은 실질적으로 처음일 뿐더러,
아이폰을 사용해 본적도 없는지라...ㅋㅋㅋ
처음 사용해보는 Mac,
손에 익지 않은 키보드와 패드,
Object-C 의 낮선 생김새,
ㅋㅋㅋ
항상 그렇듯, 개발은 빡빡한 일정속에 진행되고,
아무튼 어찌어찌해서 마무리 단계에 와 있다.
짧은 시간이나마 아이폰 앱을 개발하면서 느낀 점들을 적어 본다.
일종의 개발 방법론이랄까...ㅋ
1. 하나의 앱에 UIViewController 와 XIB 는 하나만...
아이폰 앱 개발에서 UIViewController 는 가급적 하나로 제한 하는 것이 좋다는 생각이다.
(특별히 예외적인 경우는 어쩔 수 없지만...)
하나의 UIViewController 에 다수의 UIView를 생성하고 이를 addSubview 하는 것이 맞다는 생각이다.
(이런 개념이 없이 뷰하나마다 Controller 와 XIB 를 생성했더니 나중엔 어디서 뭘 해야 하는지 정신이 없더라는...)
2. 사용자 이벤트(터치) 핸들러는 UIViewController 에 구현
아무 개념이 없을 때, 참 고민스러웠던 것 중 하나가
각 UIView에서 발생하는 터치와 같은 사용자 이벤트에 대한 핸들러를 어디에 만들 것인가 였다.
추상화라는 개념에서 보자면 각 뷰에서 모든 것을 처리하는 것이 맞겠다 싶지만,
실제 이렇게 적용해 보니 여간 불편한 게 아니다.
각 UIView에서 발생한 사건에 대해서 UIViewController 에 어떤 변화를 주어야 할 경우,
각 UIView의 핸들러에서는 자신을 addSubview 한 UIViewController 를 참조할 수 있는 방법이 마땅치 않다.
(방법이 없는건 아니지만 왠지 짝퉁 코드 같은 느낌이다.)
그렇다고 모든 뷰에 UIViewController 를 선언하고, 해당 UIView를 만들때 마다 이를 설정하는 것도 그닥 내키는 방법은 아니다.
이럴 바에는 차라리 UIView 내에서 발생하는 모든 이벤트를
그 UIView를 addSubview한 UIViewController 로 연결하는 것이 맞다는 생각이 든다.
즉,
단순 display 는 UIView 에서
이벤트에 대한 처리는 UIViewController 에서....
3. 인터페이스 빌더의 최대 활용.
동적으로 화면 구성이 바뀌는 경우가 아니라면,
아니 그렇다 하더라도 변화의 경우의 수가 그리 많지 않다면,
각각을 하나의 UIView 로 하고 그 내용(버튼의 배치, 이미지 위치 등등)을
IB (인터페이스 빌더) 를 이용하여 설계하는 것이 좋다.
물론 코드로 모든것을 다 생성할 수도 있지만, 코드량이 장난이 아니다.
나이 먹으니 타이핑이 그리 귀찮을 수 없다.
4. @property 활용
처음에 저것이 뭐에 쓰는건지 참 난감했다.
Object-C 가 처음이니 당연하다.
그런데 이놈 참 똑똑한 놈 같다.
접근자를 자동으로 만들어주니 말이다.
처음엔 괜히 코딩량만 늘어난다 싶어 생략한 경우가 많았는데,
몇줄 생략한 댓가로 수십줄의 코드량이 늘어난다.
모 건설사 아파트의 홈네트워킹 서버와 클라이언트 앱을 개발하고 있다.
서버는 많이 해오던 일이라 크게 어려움 없이 진행됐다.
그런데 클라이언트인 아이폰 앱 개발은 실질적으로 처음일 뿐더러,
아이폰을 사용해 본적도 없는지라...ㅋㅋㅋ
처음 사용해보는 Mac,
손에 익지 않은 키보드와 패드,
Object-C 의 낮선 생김새,
ㅋㅋㅋ
항상 그렇듯, 개발은 빡빡한 일정속에 진행되고,
아무튼 어찌어찌해서 마무리 단계에 와 있다.
'초짜 스크랩 > 초짜 IT' 카테고리의 다른 글
갤럭시S 진저브레이드 업그레이드 완료!!! (0) | 2011.05.17 |
---|---|
UITableView 버그(?) (0) | 2011.04.22 |
UIScrollView 를 이용한 무한루핑 메뉴 (2) | 2011.04.15 |
티스토리 & SyntaxHighlighter 3.0.83 (0) | 2011.04.15 |
C 로 구현한 Apple Push Notification Service 서버코드 (0) | 2011.04.07 |