3. Xamarin.iOS
3.1 Xamarin.iOS 설치, 개발환경
Visual Studio Commnunity 2015 이상에서 Xamarin을 사용한 iOS 개발에는 다음이 필요하다.
– Mac OS X Sierra(10.12) 이상을 실행하는 Mac 장비
– App Store에서 설치된 Xcode 및 iOS SDK의 최신 버전.
위 개발환경과 Mac의 Xamarin Studio 최신버전 및 윈도우의 Visual Studio에서 동작하며 Windows의 Xamarin Studio는 Xamarin.iOS를 사용할 수 없다.
Xamarin.iOS 응용 프로그램을 개발은 시뮬레이터 외에도 실제 장치에 응용 프로그램을 배포하여 테스트하는 것이 필수적이다. 장치 전용 버그 및 성능 문제는 메모리 또는 네트워크 연결과 같은 하드웨어 제한으로 인해 장치에서 실행될 때 발생할 수 있다.
물리적 장치에서 테스트하려면 장치를 준비해야하며 테스트를 위해 장치를 사용할 것이라는 사실을 Apple에 알려야 하는데 응용 프로그램을 장치에 배포하기 전에 Apple의 개발자 프로그램에 가입하거나 무료 제공을 사용해야 하며 Apple은 두 가지 프로그램 옵션을 제공한다.
Apple 개발자 프로그램 - 개인이든 단체이든 상관없이 Apple 개발자 프로그램을 사용하면 응용 프로그램을 개발, 테스트 및 배포 할 수 있다.
Apple Developer Enterprise Program - Enterprise 프로그램은 사내에서만 앱을 개발하고 배포하려는 조직에 가장 적합하다. 엔터프라이즈 프로그램의 회원은 iTunes Connect에 액세스 할 수 없으며 생성 된 응용 프로그램을 App Store에 게시 할 수 없다.
Apple Developer Portal을 방문하여 등록해야 하며 Apple 개발자로 등록하려면 Apple ID가 있어야 한다.
3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
Xamarin.Android HelloWorld 예제를 Xamarin.iOS 기반으로 재작성 해보자.
비주얼 스튜디오를 실행하여 File -> New Project 후 좌측 Template에서 iOS -> iPhone 클릭 후 오른쪽의 “단일 뷰 앱(iPhone)”을 선택, 프로젝트 이름은 “Hello_iOS” 라고 입력 후 “확인” 버튼 클릭.
비주얼스튜디오 -> 도구 -> iOS -> Xamarin Mac Agent(M)를 클릭하여 Mac 장비를 등록해야 한다. Mac 장비의 IP주소, 로그인 계정, 비밀번호를 입력해서 Mac에 로그인 해야 한다. (Mac쪽에 사용자 생성되어 있어야 함)
Mac에 연결이 되면 상단 “Xamain Mac 에이전트” 버튼이 아래처럼 Green 색으로 표시된다.
솔루션 탐색기에서 Main.storyboard 클릭 후 View AS iPhone6 선택한다. Main.storyboard는 사용자 인터페이스의 비주얼적인 부분을 디자인 하며 iOS Designer라고 하는 Graphical Editor를 포함하고 있다.
보기 -> 도구상자에서 Controls -> Label을 선택해서 디자인 화면 중앙에 위치 시킨 후 크기를 화면처럼 늘이고 Text 속성에 “Enter a Phone Number :”라고 입력하자.
도구상자에서 Controls -> Text Field를 선택해서 Label 아래에 위치 시킨 후 크기를 적당히 조절하고 우측하단 속성창의 Name속성을 “PhoneNumberText”, Text 속성을 “”로 설정하자.
도구상자에서 Controls -> Button을 선택해서 Text Field 아래에 위치 시킨 후 크기를 적당히 조절하고 속성 창에서 Identity -> Name속성을 “CallButton”, Title 속성을 “Make a Call”로 설정하자.
ViewController.cs 파일의 ViewDidLoad() 메소드 뒤 부분에 전화걸기버튼(CallButton)의 기능 추가 (상단에 using Foundation; 구문 추가 )
View Controller는 화면으로부터 Content View Hierarchy의 요소들을 로딩하거나 언로딩
한다. Content View Hierachy안의 View에서 발생되는 중요한 일에 대해 View의 라이프
사이클 동안 OS는 이벤트를 통해 View Controller에 알린다.
ViewDidLoad : View Controller가 메모리에 Content View Hierarchy를 로드하는 시점에 한번 호출되며 Xamarin.Android의 OnCreate 콜백함수와 같은 기능을 한다.
코드 작성이 마무리 되었으니 도구 -> 빌드 -> 솔루션 빌드를 클릭해서 빌드를 해보자. 아래 이미지 처럼 오류가 없어야 한다.
이제 시뮬레이터로 실행을 해보자. iPhone6을 선택하고 실행하자.
시뮬레이터 실행화면
2. 3.1 Xamarin.iOS 설치, 개발환경
• Visual Studio Commnunity 2015 이상에서 Xamarin을 사용한
iOS 개발에는 다음이 필요하다.
– Mac OS X Sierra(10.12) 이상을 실행하는 Mac 장비
– App Store에서 설치된 Xcode 및 iOS SDK의 최신 버전.
• 위 개발환경과 Mac의 Xamarin Studio 최신버전 및 윈도우의
Visual Studio에서 동작하며 Windows의 Xamarin Studio는
Xamarin.iOS를 사용할 수 없다.
• Xamarin.iOS 응용 프로그램을 개발은 시뮬레이터 외에도 실제
장치에 응용 프로그램을 배포하여 테스트하는 것이 필수적이다.
장치 전용 버그 및 성능 문제는 메모리 또는 네트워크 연결과 같
은 하드웨어 제한으로 인해 장치에서 실행될 때 발생할 수 있다.
3. 3.1 Xamarin.iOS 설치, 개발환경
• 물리적 장치에서 테스트하려면 장치를 준비해야하며 테스트를 위해 장
치를 사용할 것이라는 사실을 Apple에 알려야 하는데 응용 프로그램을
장치에 배포하기 전에 Apple의 개발자 프로그램에 가입하거나 무료 제
공을 사용해야 하며 Apple은 두 가지 프로그램 옵션을 제공한다.
• Apple 개발자 프로그램 - 개인이든 단체이든 상관없이 Apple 개발자 프
로그램을 사용하면 응용 프로그램을 개발, 테스트 및 배포 할 수 있다.
• Apple Developer Enterprise Program - Enterprise 프로그램은 사내에
서만 앱을 개발하고 배포하려는 조직에 가장 적합하다. 엔터프라이즈
프로그램의 회원은 iTunes Connect에 액세스 할 수 없으며 생성 된 응
용 프로그램을 App Store에 게시 할 수 없다.
• Apple Developer Portal을 방문하여 등록해야 하며 Apple 개발자로 등
록하려면 Apple ID가 있어야 한다.
4. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• Xamarin.Android HelloWorld 예제를 Xamarin.iOS 기반으로 재작성 해
보자.
• 비주얼 스튜디오를 실행하여 File -> New Project 후 좌측 Template에
서 iOS -> iPhone 클릭 후 오른쪽의 “단일 뷰 앱(iPhone)”을 선택, 프로
젝트 이름은 “Hello_iOS” 라고 입력 후 “확인” 버튼 클릭.
6. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• 비주얼스튜디오 -> 도구 -> iOS -> Xamarin Mac Agent(M)를 클릭하여
Mac 장비를 등록해야 한다. Mac 장비의 IP주소, 로그인 계정, 비밀번
호를 입력해서 Mac에 로그인 해야 한다. (Mac쪽에 사용자 생성되어 있
어야 함)
8. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• Mac에 연결이 되면 상단 “Xamain Mac 에이전트” 버튼이 아래처럼
Green 색으로 표시된다.
• 솔루션 탐색기에서 Main.storyboard 클릭 후 View AS iPhone6 선택한
다. Main.storyboard는 사용자 인터페이스의 비주얼적인 부분을 디자
인 하며 iOS Designer라고 하는 Graphical Editor를 포함하고 있다.
9. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• 보기 -> 도구상자에서 Controls -> Label을 선택해서 디자인 화면 중앙
에 위치 시킨 후 크기를 화면처럼 늘이고 Text 속성에 “Enter a Phone
Number :”라고 입력하자.
10. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• 도구상자에서 Controls -> Text Field를 선택해서 Label 아래에 위치 시
킨 후 크기를 적당히 조절하고 우측하단 속성창의 Name속성을
“PhoneNumberText”, Text 속성을 “”로 설정하자
11. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• 도구상자에서 Controls -> Button을 선택해서 Text Field 아래에 위치
시킨 후 크기를 적당히 조절하고 속성 창에서 Identity -> Name속성을
“CallButton”, Title 속성을 “Make a Call”로 설정하자.
12. 3.2 Xamarin.iOS HelloWorld(단일 뷰) 실습
• ViewController.cs 파일의 ViewDidLoad() 메소드 뒤 부분에 전화걸
기버튼(CallButton)의 기능 추가 (상단에 using Foundation; 구문 추가 )
View Controller는 화면으로부터 Content View Hierarchy의 요소들을
로딩하거나 언로딩 한다. Content View Hierachy안의 View에서 발생되
는 중요한 일에 대해 View의 라이프 사이클 동안 OS는 이벤트를 통해
View Controller에 알린다.
ViewDidLoad : View Controller가 메모리에 Content View Hierarchy를
로드하는 시점에 한번 호출되며 Xamarin.Android의 OnCreate 콜백함수
와 같은 기능을 한다.