맥 OS X의 코코아에서의 개발에 관심이 있는 분들이 그리 많지 않았습니다. 올해 초까지만 하더라도 인터넷을 제외하고 현실에서 코코아 개발에 관심을 가지고 있는 사람들을 직접 만난 적이 없었습니다. 간혹 지인들에게 '맥에서 개발의 재미'에 대해서 이야기를 해도 그냥 그런가 보다라고 시큰둥하게 받아 들이는 것이 대부분이었습니다.

하지만 애플에서 올해 초 iPhone SDK를 공개되고 App 스토어가 오픈되면서 개발자들의 관심이 서서히 높아가고 있는 것 같습니다.

좌측은 구글 접속통계에서 본 제 블로그의 올해 방문자 통계입니다.  제 블로그의 방문자 수는 시작부터 계속 일직선으로 항상 일정했습니다. 하지만 애플의 App 스토어가 오픈되면서 부터 조금씩 증가하기 시작했습니다. 한낱 개인 블로그의 방문자 수로 단정 짓기는 어렵지만 관심있는 업체나 개인이 조금씩 늘어 가고 있구나 하고 짐작하고 있습니다.

이는 아마존에서 나오는 신간을 봐도 알 수 있습니다. 이전에는 Xcode나 코코아에 관련된 책들은 가뭄에 콩나듯이 새책이 나왔습니다. 그런데 요즘은 아마존에서 오는 신간 안내 메일만 봐도 허풍을 조금 보태면 아이폰 관련 서적이 자고 일어나면 하나씩 나오는 것 같습니다.

사용자 삽입 이미지
(출처:amazon.com)

그외에도 우리나라에서는 osxdev.org외에는 거의 전무했던 맥 개발 관련 사이트와 까페들이 조금씩 늘어 가고 있습니다.


저도 한 까페에 가입하여 오브라인 모임도 자주 참석하고 글도 쓰면서 나름 열심히(?) 참여있습니다. 회원들이 대학생들이 많아 나이 차이가 꽤 크지만 같은 관심을 가진 분들과 교류한다는 것은 즐거운 일인 것 같습니다.

이야기를 들어 보면 역시 맥 보다는 아이폰에서의 개발에 관심을 가진 업체나 개인들이 많았습니다.

마케팅과 세일즈에 크게 노력을 하지 않고 개발 자체에만 집중하면 된다는 점과 App 스토어라는 세계를 상대로 하는 커다란 시장이 개발자들에게 매력적으로 다가 오지 않았나 하는 생각이 듭니다. 그리고 아직 초창기이기 때문에 많은 가능성도 가지고 있고요.

하지만 막상 우리나라에서 아이폰 출시는 루머만 무성하고 난항을 겪고 있습니다. 저는 개발 용도가 아닌 제 일상 생활의 편의와 재미를 위해서 간절히 출시를 바라고 있는데, 더 이상 조바심 내지말고 출시되기 전까지는 신경을 끄고 있기로 했습니다.

일본에서는 아이폰 판매가 기대보다는 저조했다고 하던데, 한국에서 출시가 되면 결과가 궁금해집니다. 제 개인적인 생각으로는 폭발적인 인기는 없을 것 같습니다.

일단 기본 용도가 휴대폰인데 많은 사람들이 휴대폰을 선택할 때는 기능보다는 디자인, 유행, 가격등으로 선택하고, 기능도 카메라 화소수, 멀티미디어 플레이어, DMB등의 휴대폰에서 중요시 하는 기능만 보면 더 우수한 다른 휴대폰들이 많기 때문입니다.
(출처: apple)

맥과 모바일미, 아이튠즈와 같이 사용하지 않고, 컴퓨터를 사용할 때와 같이 사용자들의 노력이 없다면 아이폰의 장점은 '보는 사람마다 다른 주관적인 디자인'외에는 많지 않은 것 같습니다. 하지만 그 디자인과 OS X를 기반으로 한 여러 이점때문에 스마트폰으로서는 괜찮은 판매량을 보일 것 같습니다.

맥을 쓰는 사람 보다 나온지 얼마 안된 아이팟 터치를 쓰는 사람들이 훨씬 많은데, 아마 터치 보다는 많이 팔리지 않을까 하는 생각이 듭니다. 이런 마케팅, 비즈니스 쪽으로는 문외한이라 빨리 뚜껑을 열어 보고 결과를 확인할 날이 빨리 왔으면 좋겠습니다.
AND

사용자 삽입 이미지
맥과는 달리 아이폰에서는 아이콘 파일(*.icns)을 사용하지 않고, 57X57 사이즈의 PNG 파일 포맷을 사용하는 것 같습니다.





사용자 삽입 이미지
재미있는 것은 좌측이 원본 아이콘 이미지이고 우측이 아이폰의 홈스크린에서 보여지는 모습입니다. 시스템에서 자동으로 아이콘의 모서리를 둥글게 보여주고 명함 효과를 주기 때문에 이미지에서 별도의 작업이 필요 없습니다.

사용자 삽입 이미지
만약 이미지에 배경이 없고 투명색으로 처리되었을 경우에는 좌측과 같이 검정색 배경의 아이폰 아이콘의 형식으로 출력이 됩니다.




* 아이콘 파일 등록
아이콘 파일은 메뉴의 'Project/Add to Project...'나 Groups & Files에서 해당 디렉토리를 우클릭 한 후에 아래와 '같이 Add/Exsiting Files...'를 클릭하여 해당 파일을 선택하시면 됩니다.

사용자 삽입 이미지


* 아이콘 파일 지정
사용자가 지정하지 않으면 실행파일 번들내의 Icon.png를 기본 아이콘 파일로 인식합니다. 별도로 아이콘 파일을 지정할 경우에는 Info.plist 또는 아래와 같이 타겟의 Info Properties의 'Icon File:' 항목에서 png 확장자를 제외한 파일명을 입력합니다. 

사용자 삽입 이미지
AND

이전 장에 이어서 이제 인터페이스빌더에서 작업을 하고 어플리케이션을 완성해 보겠습니다. 속성 변경 및 연결에 관한 자세한 설명을 생략하였습니다. 혹시 이부분에 이해가 가지 않으시면 이전 포스팅을 참고하시기 바랍니다.

3. MainView.xib
1) 이미지 추가
어플리케이션에서 사용하는 배경과 각종 이미지들을 프로젝트에 추가합니다. 사용된 이미지는 아래의 압축파일을 다운로드하여 사용하시거나 직접 그려서 사용하셔도 됩니다.


Xcode의 Groups & Files내의 Resources 디렉토리를 우클릭 한후에 Add/Existing Files...를 클릭합니다.  파일 선택창에서 배경과 아이콘들을 선택한 다음 Add 버튼을 클릭합니다. 그리고 MainView.xib 항목을 더블클릭 하여 인터페이스빌더를 엽니다. 라이브러리의 Media 탭을 클릭하면 등록된 이미지를 확인할 수 있습니다.


2) 레이아웃
라이브러리 윈도우에서 각각의 오브젝트들을 드래그해서 아래와 같이 Main View에 배치합니다. 이미지도 위의 라이브러리 윈도우에서 드래그해서 가져옵니다. 주의하실 점은 눈에 보이지 않더라도 하단 툴바의 중앙에 Bar Button Item이 있습니다.
 


3) 속성 변경 및 연결
이제 각 항목의 속성을 변경하고 아울렛을 연결하는 작업을 해보겠습니다. 각 오브젝트와의 연결은 MainView.xib의 File's Owner (MainViewController)를 우클릭하여 설정합니다. 

* MainView
배경색을 원하시는 색상으로 변경합니다.


File's Owner의 mainView 아울렛에 연결합니다.


* Navigation Bar
상단바의 타이틀을 더블클릭하여 좌측과 같이 변경합니다.


* View
월별로 바이오리듬 그래프를 보여주는 View 입니다.
배경색을 검정으로 변경합니다. 실행시에는 배경이미지로 대체되기 때문에 큰 의미는 없습니다(생략가능).

Class 항목을 이전 장에서 만들어 두었던 GraphView를 선택합니다.

File's Owner의 graphView 아울렛에 연결합니다.


* TextField
일별로 바이오리듬 보여주는 필드입니다. 3개 모두 아래와 같이 설정합니다.
정렬을 중앙으로 설정합니다.

사용자의 입력에 반응하지 않도록 선택을 해제합니다.

위에서 부터 차례로 File's Owner의 value_1, value_2, value_3 아울렛과 연결합니다.


* Bar Button Item
버튼들을 더블클릭하여 좌측과 같이 입력상태가 되면 각각 "<<", "<", ">", ">>"을 입력합니다.

각 버튼을 구별할 수 있도록 속성창 하단에 위치한 Tag를 설정합니다. "<<"는 1, "<"는 2, ">"는 3, ">>"는 4를 각각 입력합니다.

네 버튼 모두 File's Owner의 NavigationButtonClicked: 액션에 연결합니다.


* 날짜 표시 Bar Button Item
현재 선택된 날짜를 표시하는 툴바의 중앙에 위치한 버튼 아이템입니다. Plain 스타일에 타이틀이 없기 때문에 위의 이미지에서 툴바와 구별되지 않았습니다.
 
스타일을 Plain으로 설정합니다. 버튼 스타일로 출력되지 않습니다.

사용자의 입력을 받지 않기 위해 선택을 해제합니다.

File's Owner의 currentDate 아울렛에 연결합니다.


File's Owner의 연결상태는 아래와 같습니다.



4. FlipsideView.xib
1) 레이아웃
라이브러리 윈도우에서 Label과 Date Picker를 드래그해서 아래와 같이 Flipside View에 배치합니다.


2) 속성 변경 및 연결
* Label
텍스트를 "생일을 선택해 주세요." 로 변경합니다.

텍스트 색상을 흰색으로 변경합니다.



* Date Picker
Date Picker의 Mode를 Date로 설정합니다.


유효날짜를 설정합니다.


File's Owner의 datePicker 아울렛에 연결합니다.


Files's Owner의 연결상태는 아래와 같습니다.


5. MainWindow.xib
MainWindow.xib에서 Root View Controller를 더블클릭합니다. 해당 창의 우측 하단을 보시면 좌측과 같은 버튼이 있습니다. 기본 위치가 툴바의 위치와 맞지 않기 때문에 위치를 우측과 아래로 더 이동합니다. 


6. 테스트
이제 모든 작업을 완료하였습니다. 모두 저장하고 빌드한 후에 테스트를 해봅니다. 아래와 같이 정상적으로 바이오리듬이 출력되고 버튼이 동작하는지 확인합니다.



이상으로 간단한 바이오리듬 어플리케이션을 만들어 보았습니다. 혹시 이상한 점이 있으시면 아래의 소스파일을 다운로드 받아서 비교해 보시기 바랍니다.

AND