adsense4


[iPhone][MonoTouch] 7번째 예제 : SpeedDial (전편) iPhone

간단히 실행 시키는 것만으로 전화를 걸 수 있는 어플리케이션을 만들어 보겠습니다. 전화번호부 같은 어플리케이션을 만들기 위한 아주 기초적인 예제가 될 것입니다. 또한 예제를 통해 전화번호를 어플리케이션 안에 하드코딩 하는 것이 아닌 아이폰의 설정 화면에서 수정이 가능하도록 하는 방법을 배우겠습니다. 아이폰의 설정에 자신의 어플리케이션 설정을 넣고 싶어 하신 분들에겐 좋은 예제가 될 것입니다

어플리케이션의 아쉬운 점은 전화를 거는 기능이므로 iPhone시뮬레이터에선 동작하지 않습니다.

새 솔루션을 만들기 위해 File - New - Solution을 선택합니다. 
iPhone의 템플릿 중에서 "iPhone Window-based Project"를 선택하고  솔루션 이름을 "SpeedDial"로 지정하고 생성합니다. 생성된 솔루션은 간단히 윈도우 한개만 갖는 어플리케이션입니다.

아이폰의 StoryBoard에 등록할 아이콘 이미지를 솔루션에 추가 합니다. 프로젝트에서 오른쪽 버튼을 클릭, Add - Add Files를 선택합니다.
Icon.png 이미지를 선택하여 추가 해 줍니다.
추가된 Icon.png를 어플리케이션 아이콘으로 등록하기 위해서는 프로젝트의 옵션에서 등록하는 것으로 간단히 할 수 있습니다. 프로젝트에서 오른쪽 버튼을 클릭하고 팝업 메뉴에서 "Options"를 선택합니다.
프로젝트 Option을 지정할 수 있는 윈도우가 열립니다. 좌측의 카테고리에서 "iPhone Application"을 선택하면 다음 화면이 나타납니다.
화면에서 "Application Icon" 항목에서 파일 선택 버튼을 클릭합니다.
팝업 윈도우에서 "Icon.png"파일을 선택하고 OK를 클릭합니다. 아래와 같은 화면이 되어야 정상적으로 설정이 된 것입니다.
Icon.png이미지는 컴파일 시에 자동으로 복사 되기 때문에 별도로 컴파일 옵션을 지정할 필요가 없습니다.

간단히 화면 디자인을 하겠습니다. MainWindow.xib를 더블클릭하여 인터페이스빌더를 실행시킵니다. Window(UIWindow)만 있는 썰렁한 화면이 나타납니다.
Window를 선택하고 Attributes윈도우에서 기본 하얀색인 Background(배경색)을 검은색으로 설정하겠습니다.
다음 빈 Window에 Label을 추가하겠습니다. Library윈도우에서 Label(UILabel)을 선택 후 Window화면으로 끌어다 놓습니다.
Label의 크기를 화면 크기 만큼 조정해 줍니다.
Label의 Attributes윈도우에서 Text를 "You need to specify a phone number"로 해 줍니다. Color는 White로 지정합니다.
완료 했으면 다른 Label을 추가 합니다.
이번엔 Color를 White로 지정하고, #Lines항목에 3을 지정합니다. 이것은 Label을 3줄까지 허용하겠다는 의미입니다. 기본값은 1입니다.
Attributes윈도우에서 Text에는 화면과 같은 문장을 입력해 줍니다.
화면 디자인은 이것으로 종료합니다. 화면 제어를 하는 코드가 없기 때문에 Outlet과 Action등 설정이 없습니다. 정말 단순한 어플리케이션입니다.

설정을 관리하기 위해 중요한 작업을 지금부터 해 보겠습니다. 프로젝트에서 오른쪽 메뉴에서 Add - New Folder를 선택하여 프로젝트에 폴더를 추가합니다.
폴더의 이름은 "Settings.bundle"로 지정합니다. 생성된 어플리케이션이 Settings.bundle을 갖고 있으면 아이폰의 설정에 등록이 됩니다.
설정 정보를 저장할 파일을 만들겠습니다. Settings.bundle폴더에서 오른쪽 버튼을 클릭하여 팝업 메뉴를 실행합니다. 팝업 메뉴에서 Add - New File...을 선택합니다.
Empty File을 선택하고 "Root.plist"이름으로 파일을 생성합니다.
New버튼을 클릭하면 자동으로 Property List Editor가 실행되며 그림과 같은 윈도우가 열립니다.
최상위 항목은 "Root"를 갖습니다. "Add Item"을 클릭하여 Item을 추가해 나갑니다.
추가하는 Item의 Type은 그림과 같은 종류를 지정할 수 있습니다. Root아래의 Title과 StringTable은 기본적으로 사용되므로 지정해 줍니다.
설정에 필요한 정보는 PreferenceSpecifiers 아이템 아래에 추가됩니다. 설정화면에 어떤 종류의 어떤 항목이 오는지 상세하게 정의 하게 됩니다.
Item에 자식 항목을 추가하는 경우는 Item을 선택하면 상단의 메뉴가 "Add Item"에서 "Add child"로 바뀝니다. 바뀐 버튼을 클릭하면 추가할 수 있습니다. 따라서 상단의 버튼이 현재 어떤 상태인가 확인을 하고 진행해야 합니다. 
완성된 Root.plist입니다. Item1이 설정에 등록되는 제목이 될 것입니다. Item2가 설정에 사용되는 내용입니다. 설정 화면에 보여 질 제목은 Title항목으로 "Phone Number"로 지정했습니다. 여기서 Key 항목을 주의 합니다. 설정된 내용은 프로그램에서 Key에 등록된 문자열로 참조하게 됩니다. 예제에서는 전화번호를 "phonenumber_preference"이름으로 프로그램에서 참조 할 것입니다.
만든 plist파일을 저장합니다. 여기서 또 주의 해야할 사항이 있습니다. 저장시 기본은 Text Property List형입니다. 이 상태로는 어플리케이션에서 사용할 수 없습니다. 파일의 형태를 반드시 XML Property List형으로 바꿔서 저장해 줘야 합니다.
파일 형태를 변경하여 저장합니다.
설정파일을 생성 했습니다.
Root.plist파일을 컴파일 작업시 어플리케이션 디렉토리에 복사 되도록 지정해 줘야 합니다. 방법은 앞 예제에서 이미지들의 컴파일 옵션을 지정한 것과 같습니다. Root.plist에서 오른쪽 버튼을 클릭하여 열리는 팝업 메뉴에서 Build Action을 Content로 지정해 줍니다.
그림과 같이 될 것입니다.

필요한 기초 작업이 모두 끝났습니다. 컴파일 해서 실행시켜 봅니다. 실행된 화면 입니다.
홈 버튼을 클릭하여 종료한 후 Settings를 실행시켜 봅니다. "SpeedDial"항목이 있는 것을 확인 할 수 있습니다.
클릭하여 세부 설정 화면으로 전환하면 다음과 같이 전화번호를 등록/수정할 수 있는 화면입니다.
Phone Number항목을 클릭하여 키보드 윈도우가 열린 모습니다. 다음엔 설정에서 지정된 값을 읽어 전화를 걸기 위한 코드를 만들어 보겠습니다.

후편은 다음에...




핑백




 

통계 위젯 (화이트)

625
99
399202

160x600스크래퍼

네이버Analysis