RAD Studio XE2에서 FireMonkey로 iOS 앱 만들기

2 Comments

 지난 번 RAD Studio XE2에서 FireMonkey로 맥/윈도 공용 어플 만들기에 이어서 이번에는 아이폰/아이패드/아이팟 터치에서 돌아가는 iOS 앱을 만들어 보겠습니다.

 델파이 XE2를 실행하고 FireMonkey HD iOS Application 프로젝트를 생성합니다.

사용자 삽입 이미지

 다른 프로젝트는 타겟플랫폼을 WIN32, WIN64, OS X 세가지를 사용할 수 있지만 iOS 프로젝트는 당연한 얘기지만 타겟 플랫폼 선택이 안됩니다…^^ iOS 전용입니다.

 폼 디자이너에 아이폰처럼 생긴 프레임이 보입니다. XCode iOS Simulator에서처럼 제대로 보여주었으면 더 좋았을텐데 너~무 성의없네요… (추가 : RadPHP 에서는 제대로 보여주는 듯…)

사용자 삽입 이미지

 iOS는 화면 해상도가 디바이스 별로 정해져 있습니다.

  • iPhone 3GS : 320 x 480
  • iPhone4 : 640 x 960
  • iPad 1, 2 : 768 x 1024

 만들어볼 앱도 iOS용이니 폼의 ClientWidth와 ClientHeight를 320, 480으로 지정해 놓고 Code페이지와 Design 페이지를 왔다갔다(?) 하며 화면 디자인을 마쳤습니다. 아~~ 불편해… 왜 Copy & Paste가 안되는거야…

사용자 삽입 이미지

F9를 눌러서 실행해 봅니다… 이전 프로젝트에서 사용한 코드를 그대로 복사해 왔으니 아무런 에러 없이 동작합니다.

사용자 삽입 이미지

 윈도에서 디버깅까지 모두 마쳤으니 이제 iOS Simulator에 올려 보겠습니다.

 이전 포스팅에서 안내한 맥용 어플 개발과 달리 iOS용 앱은 델파이에서 직접 바이너리를 생성하지 못하고 맥용개발툴인 XCode Free Pascal의 힘을 빌려야만 됩니다.

 RAD Studio XE2 설치 폴더 아래에 FireMonkey-iOS 폴더에 보면 FireMonkey-iOS.dmg 파일이 있습니다.(주의 : XE2 Update2를 설치한 경우에는 위 파일이 갱신되지 않은체로 이전 버전이 남아 있습니다.  C:\Users\xxx\AppData\Local\Temp\radstudio_xe2_update2_download 폴더 아래에 있는 파일을 이용하세요.) 이 파일을 맥으로 복사한 뒤 실행합니다.

사용자 삽입 이미지

FireMonkey-iOS.dmg를 실행한 화면

 fpc-2.4.4.intel-macosx.pkg, FireMonkey-iOS-XE2를 순서대로 실행해서 설치합니다. 물론 그전에 XCode는 당연히 설치되어 있어야 겠지요… 첫번째 FreePascal은 금방 설치 되는데 두번째는 설치하는데 시간이 다소 걸립니다. 약 10여분 정도 기다리면 설치가 완료됩니다.

 델파이 프로젝트를 XCode에서 바로 열어서 사용하면 좋겠지만 안됩니다. XE2에서는 델파이 프로젝트를 XCode 프로젝트로 변환하는 유틸리티(dpr2xcode.exe)를 함께 제공합니다. 콘솔 프로그램인데 매번 콘솔 띄우기 귀찮으니 간편하게 사용하기 위해 Tools 메뉴에 등록해 줍니다.

사용자 삽입 이미지

 dpr2xcode를 실행하면 아래 그림과 같이 프로젝트 폴더에 xcode 폴더가 생성되고 그 아래에 XCode 프로젝트 파일이 만들어 집니다.


dpr2xcode로 만들어진 xcode 폴더

사용자 삽입 이미지

dpr2xcode로 만들어진 xcode 폴더의 내용

이제 프로젝트 폴더 전체를 맥으로 복사합니다. 매번 복사하기 귀찮으면 공유 폴더를 사용하시면 되겠죠.

사용자 삽입 이미지

맥에서 연결한 프로젝트 폴더

 저는 공유 폴더를 이용했습니다. 저기 보이는 iTactTimeCalc.xcodeproj 파일을 더블 클릭해서 XCode를 실행합니다.
사용자 삽입 이미지
 XCode에서의 타겟을 Device가 아닌 Simulator를 선택하고 Active Executable을 iPhone Simulator로 선택하고 Build And Run

사용자 삽입 이미지

짜잔~~~ iOS Simulator에 앱이 떴습니다~~~만  어라…? 폼 파일에 입력한 한글은 괜찮은데 코드 상에서 입력한 한글은 제대로 출력이 안되네…?

사용자 삽입 이미지

시뮬레이터에서 실행중인 앱. 한글이 일부 깨집니다.

 네… 안타깝게도 한글이 깨집니다만 이건 델파이가 *.pas 파일을 ANSI 코드로 엔코딩해서 저장해서 그렇습니다. XCode는 UTF-8을 사용해야 되거든요… 다행히도 델파이 코드 에디터에서 File Format 을 UTF8로 변경해주면 됩니다. 다만 Simulator에서는 이마저도 안되더군요. UTF8로 변경해도 Simulator에서는 여전히  깨지는데 아이폰에 직접 올려 보니 잘 보입니다…ㅠㅠ  문제가 무엇인지는 나중에 따로 살펴봐야겠습니다…

 아무튼 iOS 프로젝트를 만들면 자동으로 UTF8로 저장해 주면 좋을 것을 왜 개발자가 일일이 변경해야 하는 불편함을 주는지 모르겠네요…^^

 알아 두셔야 할 것은 iOS Simulator가 아닌 아이폰에 앱을 올려서 테스트 하는 것은 $99짜리 아이폰 개발자 등록이 되어 있어야 가능합니다.

 전 취미삼아(?) 아이폰 앱도 개발하고 있으니 아이폰에 올려 봅니다.

사용자 삽입 이미지

아~~ 앱 아이콘이 저게 뭐냐...ㅠㅠ

아~~ 여기서도 기본 앱 아이콘이 여~~엉 마음에 안듭니다…

사용자 삽입 이미지

아이폰에선 한글이 정상적으로 출력됩니다.

 아이폰에 올려서 잠깐 사용해 본 결과 몇가지 문제점이 발견되었습니다. 

 FireMonkey 콤포넌트들이 입력을 받을 때 키보드에 의해 가려지게 되는 문제가 있습니다. 가려져 버렸으니 뭘 입력하고 있는지 확인이 안됩니다… 아이폰을 사용해 보신 분들은 아시겠지만 일반 아이폰 앱들은 입력 항목이 자동으로 스크롤되어 키보드 상단에 나타납니다.
 다음으로 입력을 마친 다음 키보드를 사라지게 할 수 있는 방법이 없습니다.  위에서 예로 든 앱에서는 상단 콤보박스를 탭하니 키보드가 사라지더군요. 다른 부분은 아무리 탭해도 사라지지 않았습니다. 

 위 두가지 문제는 실제로 업무용으로는 사용할 수 없는 치명적인 문제라 생각됩니다.

기존 아이폰 사용자의 경험과는 전혀 다른 U/I를 가지고 있고 아이폰 U/I 프레임웍인 UIKit이랑 연동이 가능한지도 의문이 있어서 실제 업무에 사용하기에는 많은 고민이 필요해 보이지만 아무튼 델파이로 만든 프로젝트가 아이폰에서 정상적으로 동작하는 걸 확인했습니다.

2 Comments (+add yours?)

  1. klarheit
    10월 04, 2011 @ 15:27:09

    저도, 이와 관련한 기사를 마소(마이크로소프트웨어)에서 보고서,
    관심이 많이 갔었습니다.

    아이폰에서는 제대로 지원되지 않는 컨트롤들을 윈도우에서 작업후에,
    아이폰으로 크로스 배포하는게 가능하다니, 2년정도 아이폰 프로그래밍을 해오고 있는,
    저로서는, 힘이 좌악 빠지는 기분이 없지않아 있군요,

    그래도, 역시 새로운 것을 추구하는 바 –
    궁금해서, 한번 설치해보고 컴파일 해봐야겠다는 생각이 드네요.

    응답

    • 김성동(AcroEdit)
      10월 05, 2011 @ 03:46:29

      반대로 iOS에서 지원하는 UI 콘트롤들을 파이어몽키에서는 사용할 수가 없습니다…^^

      응답

Leave a Reply