안녕하세요.

Android 개발에 대하여 Qt 를 소개하고자 글을 써봅니다.


기존에도 여러가지 개발환경이 있지만, Qt 는 Native 코드로 동작하여 속도가 우수하며, 

QML 을 이용한 손쉬운 UI 환경 구성이 가능합니다.


또한, Android 및 iOS 더 넓게는 WinRT, OSX, Windows, Linux 까지 하나의 소스코드로 동작 가능합니다.


이 글은 제가 작성한 회사 게시판의 글을 퍼온것입니다. (http://www.podovat.com/?p=282)


OS 에 맞춰서 작성된 기존의 Native 코드는 각각의 운영체제에 따라, 각각의 언어를 습득해야 하는 어려운 점들이 있었습니다.


해당 포스트에서는 이러한 문제들에 대하여, 하나의 소스를 가지고 다중 플랫폼에 실행해보고자 합니다.


기본적으로는 하나의 소스만 가지고도 Qt 에서 지원하는 플랫폼에 모두 실행이 가능합니다만,

GUI 상의 문제로 Desktop(Windows, OSX, Linux) 와 Mobile(iOS,Andoird,WinRT) 의

구분은 지어져야 합니다. (GUI 를 제외한 코드들은 어떤 플랫폼이든 사용이 가능합니다.)


본 포스트에서는 하나의 소스로 다음의 플랫폼에 대해서 실행을 해 보도록 하겠습니다. 소스는 Qt 5.3.1 에 포함되어있는 예제에서 QML 을 활용한 Clock 을 가지고 수행합니다.


1. 개발 환경 구성

많은 분들이 아시다시피, OS 에 따라 부득이하게 개발환경이 제한됩니다.


첫번째 환경, Windows 환경, 타겟 (Windows, Android)
두번째 환경, Mac 환경, 타겟 (Mac, iOS, Android)
세번째 환경, Linux 환경, 타겟 (Linux, Android)


물론 다수의 삽질을 통하면, Windows 에서 Linux 용 프로그램 Build 라던지..
여러 가지가 가능하지만 최근에는 VMWare 또는 VirualBox 를 이용하여,
각 OS 에 맞는 환경을 구성하시는 것이 제일 간편하다고 생각합니다.


본 포스트에서는 두 번째 환경인 Mac 환경 하에서 iOS 및 Android 를 빌드하여
실제 기기에 올리는 방법을 설명하고자 합니다.



2. Mac 에서 안드로이드 환경 구성.
*기본적인 환경 구성은 Windows 랑 동일합니다. 이전 포스트를 참조하여, Mac 환경을 구성하시면 됩니다.


이전 포스트 :
- Qt QML 로 Android Application 제작하기 (http://www.podovat.com/?p=206)
- Qt QML 로 iOS Application 제작하기 (http://www.podovat.com/?p=225)


2.1 Mac 설정 패스



3. Exmaple 에서 Clock 불러오기


왼쪽 탭의 Welcome -> Examples -> Qt Quick Demo – Clocks 선택



Kit 선택에서 Target 이 될 것들을 몽땅 선택 해줍니다. 우리의 목적인, Mac OSX 상에서의 컴파일을 위한 Desktop 선택.


Android 를 위한 Android Kit 선택, iOS Simulator 및 기기를 위한 Kit 도 선택해줍니다.

그 후 왼쪽의 Edit 버튼을 눌러서 편집 창으로 돌아옵니다.


4. 빌드 및 실행


이제 실행 해볼 차례입니다.


첫번째로 Mac OSX 상에서 실행을 해보겠습니다. 기본적으로 Kit 선택까지 끝내시게 되면, Desktop 이 기본적으로 선택 되어있습니다.


해당 하는 Kit 만 선택하여서, Run 을 하시면 모든 플랫폼이 동작하게 됩니다.!!


실행하는 법은 Qt Creator 상에서 재생 아이콘(?) 인 Run 버튼을 누르시거나, 메뉴 선택 또는 Command + R 키로 실행해보실 수 있습니다.


정말 간단하게 멀티 플랫폼 상에서 동작하는 Clocks 가 생성되었습니다!


새로이 프로젝트를 만들어서 하신다 하더라도 이렇게 Kit 만 추가해주신다면,

모든 플랫폼에서 동작하는 코드를 만드실 수 있습니다.



1. OSX



2. iOS Emulator



3. Android 기기 (Galaxy S3) & iOS 기기 (iPhone 5S) 



이로써 간단하게 하나의 소스를 이용한 iOS / Android / Mac OSX 에 대한 어플리케이션 제작이 끝났습니다!!


 감사합니다.


* 게시판 성격에 맞지 않는다면 게시글 이동하도록 하겠습니다.