유니티,Unity 엔진을 활용한 VR/AR 콘텐츠 개발 _사물인터넷(IoT) 네크워크 프로그래밍
자마린,iOS 심플예제_전화번호입력받아 전화걸기(#자마린학원 /#자마린교육)
1. 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의 최신 버전.
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 기반으로 재작성 해보자.
실습환경(Visual Studio 2015)
비주얼 스튜디오를 실행하여 File -> New Project 후 좌측 Template에서 iOS -> iPhone 클릭
후 오른쪽의 “단일 뷰 앱(iPhone)”을 선택, 프로젝트 이름은 “Hello_iOS” 라고 입력 후 “확인”
버튼 클릭.
2.
3. 비주얼스튜디오 -> 도구 -> iOS -> Xamarin Mac Agent(M)를 클릭하여 Mac장비를 등록해야
한다. Mac 장비의 IP주소, 로그인 계정, 비밀번호를 입력해서 Mac에 로그인 해야 한다. (Mac
쪽에 사용자 생성되어 있어야 함)
4.
5. Mac에 연결이 되면 상단 “Xamain Mac 에이전트” 버튼이 아래처럼 Green 색으로 표시된다.
솔루션 탐색기에서 Main.storyboard 클릭 후 View AS iPhone6 선택한다. Main.storyboard는
사용자 인터페이스의 비주얼적인 부분을 디자인 하며 iOS Designer라고 하는 Graphical Editor
를 포함하고 있다.
보기 -> 도구상자에서 Controls -> Label을 선택해서 디자인 화면 중앙에 위치 시킨 후 크기
를 화면처럼 늘이고 Text 속성에 “Enter a Phone Number :”라고 입력하자.
6. 도구상자에서 Controls -> Text Field를 선택해서 Label 아래에 위치 시킨 후 크기를 적당히 조
절하고 우측하단 속성창의 Name속성을 “PhoneNumberText”, Text 속성을 “”로 설정하자.
7. 도구상자에서 Controls -> Button을 선택해서 Text Field 아래에 위치 시킨 후 크기를 적당히
조절하고 속성 창에서 Identity -> Name속성을 “CallButton”, Title 속성을 “Make a Call”로 설정
하자.
8. 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 콜백함수와 같은 기능을 한다.
9. 코드 작성이 마무리 되었으니 도구 -> 빌드 -> 솔루션 빌드를 클릭해서 빌드를 해보자. 아래
이미지 처럼 오류가 없어야 한다.
11. 3.3 Xamarin.iOS HelloWorld 자세히 살펴보기
비주얼 스튜디오는 Solution과 프로젝트들로 구성되며 하나의 솔루션에 하나 이상의 프로젝
트를 포함할 수 있다. 하나의 프로젝트는 iOS, Android Application이 될 수 있으며 라이브러
리를 지원하며 테스트가 가능하다.
본 Xamarin.iOS 예제는 단일 뷰 앱(Single View Application) 템플릿을 이용하여 만들었다.
3.3.1 Xamarin.iOS HelloWorld 응용프로그램의 해부
Solution Pane의 전체 구조
12. 참조(References) : 빌드 하거나 실행할 때 필요한 참조하는 어셈블리들을 포함하고 있다.
Xamarin.iOS, System, System.Xml등
구성요소(Components) : 미리 만들어진 Xamarin Components Store이며 자마린 코드를 위한
Public 마켓이다.
Resources : 아이콘, 실행 이미지, 다른 미디어들을 포함한다.
Main.cs : 응용프로그램의 진입점(Entry Point). 응용프로그램의 시작을 위해서는 메인 응용프로
그램의 이름(AppDelegate)을 던져 줘야한다.
namespace Phoneword.iOS
{
public class Application
{
// This is the main entry point of the application.
static void Main(string[] args)
{
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main(args, null, "AppDelegate");
}
}
13. }
AppDelegate.cs : 메인 응용프로그램 클래스를 포함하며 윈도우를 만들거나 사용자 인터페이
스의 빌드, OS로 부터의 이벤트를 리스닝 한다. AppDelegate 클래스는 응용프로그램 윈도우
를 다루며 사용자 인터페이스를 위한 컨테이너로서의 역할을 하며 중요한 응용프로그램의 이
벤트(실행종료, 메모리 부족등)에 관한 시스템 업데이트도 관리한다.
Main.storyboard : 사용자 인터페이스의 비주얼적인 부분을 디자인 한다. iOS Designer라고 하
는 Graphical Editor를 포함하고 있다.
ViewController.cs : 사용자가 보거나 터치하는 스크린(뷰)을 통제하며 사용자와 뷰의 상호작용
을 처리한다. 여러 개의 화면이 있는 응용 프로그램에는 여러 개의 Content View Hierarchy가
있으며 각 Content View Hierarchy에는 별도의 View Controller가 있다.
ViewController.designer.cs : 자동 생성되는 파일로 뷰와 뷰컨트롤러안의 Presentation을 접착
제처럼 연결해준다.
Info.plist : 응용프로그램의 이름, 아이콘, 런처이미지와 같은 응용프로그램의 속성을 포함하고
있다.
Entitlements.plist : iCloud, PassKit등과 같은 응용프로그램의 기능(App Store Technologies)등을
기술하는 파일이다.