천재태지의 세상 돌려보기

seoz.egloos.com

- About Me... - Enlightenment, EFL - 타이젠 Tizen



[Tizen][번역] 타이젠에서 EFL 애플리케이션 실행하기 ├ 타이젠 Tizen

[ 타이젠 게시물 목차 : http://seoz.egloos.com/3872102 ]


(타이젠 2.0 부터는 SBS 대신 GBS 빌드 도구를 사용합니다. 이 문서는 타이젠 1.0에만 유효합니다.)

[역자 서문]
안녕하세요? 천재태지 서주영입니다.
이번에는 Guilherme Íscaro라는 분이 작성한 "EFL 애플리케이션을 타이젠에서 실행하기"를 번역해봤습니다.
원 저자의 동의하에 번역을 진행하였습니다.

이 글은 이전에 번역했던 마이클 쉘던의 "타이젠 1.0 (Larkspur) SDK와 EFL을 이용해 타이젠 네이티브 애플리케이션 개발하기"[1]와 목적은 유사하지만 접근 방법이 다릅니다.
마이클 쉘던은 직접 데비안 패키징에 필요한 파일을 만들고 타이젠 SDK에 있는 스크래치박스2를 사용해서 빌드를 했는데, Guilherme Íscaro는 tar.gz를 이용해 패키징을 자동으로 해주는 alien이라는 도구와 타이젠에서 제공하는 SBS라는 도구를 사용해서 데비안 패키징을 했습니다. 사용법은 후자가 훨씬 간단합니다.
물론 지난번에 언급한 것처럼 타이젠은 추후에 SBS대신 OBS를 사용할 예정이기 때문에 나중에 가이드를 바꿔야겠지만, 현재로서는 데비안 패키징을 하는 가장 쉬운 가이드가 아닐까 합니다.

그리고 마이클 쉘던은 아무 코드도 없는 상태에서 main 함수부터 작성해나갔지만, Guilherme Íscaro는 이미 작성된 econcentration이라는 게임을 타이젠에 포팅하는 과정을 설명합니다. 기존에 작성해 놓은 EFL 애플리케이션이 있다면 이 방법으로 쉽게 타이젠에 포팅할 수 있을 것 같습니다.

econcentration은 기억력 게임으로 16장의 카드 중 한번에 두 장씩 뒤집어서 똑같은 카드를 맞추는 게임입니다. 집중력과 기억력을 길러주는 게임입니다.



타이젠에서 EFL 애플리케이션 실행하기


Guilherme Íscaro


타이젠에 네이티브 애플리케이션을 실행하는 데모를 하게 되어 기쁘다. 네이티브라 함은 HTML5와 자바스크립트 애플리케이션이 아닌 컴파일 된 C 프로그램을 말한다. 네이티브 애플리케이션은 EFL (Enlightenment Foundation Libraries)[3][4]기반이며, 타이젠에 기본적으로 설치된 Calendar, Dialer, Contact등과 같은 애플리케이션도 모두 EFL 기반으로 작성되었다. 그리고 가장 좋은 점은 내가 일하는 ProFUSION은 EFL 프로젝트의 가장 큰 공헌자(contributor)라는 것이다. 그래서 우리는 이미 내부적으로 EFL에 경험이 많다.

Econcentration이라는 애플리케이션은 기억력을 이용한 게임이다. 이 애플리케이션은 예전에 이미 개발되었지만, 작은 장치에서도 잘 보이게 하기 위해 이미지를 바꾸고 레이아웃을 수정하는 등의 작업을 해야 했다. 이 글에서는 휴대폰에서 이 게임을 어떻게 실행하고 어떻게 EFL 기반 애플리케이션을 작성하는지를 다룰 것이기 때문에 코드에 대한 설명은 하지 않겠다. 물론 원한다면 소스코드를 직접 살펴 볼 수 있다.

시작하기에 앞서 alien 프로그램을 설치하기 바란다. alien을 이용하여 데비안 패키지를 생성할 것이다. 우분투나 데비안 배포판을 사용한다면 아래와 같이 실행하자.

sudo apt-get install alien

그리고 SBS라는 도구를 사용하여 게임을 컴파일해야 한다. 하지만 겁먹지 마라, SBS 설치 방법 및 SBS에 대한 설명을 다음 링크에서 확인할 수 있다. https://source.tizen.org/platform/development-sbs/installing-sbs [5]

(역자 주: 저자는 이 글에서 에뮬레이터 환경 및 실제 개발자 폰 환경에서 작업하는 방법을 모두 설명하고 있다. 우선 에뮬레이터 환경에서 작업하는 방법부터 알아보자. 앞서 설명한 SBS가 설치되어 있다고 가정한다.)

에뮬레이터

우선 elementary 개발 패키지를 설치해야 한다.

sbs -A i386 -et apt-get install libelm-dev

이제 게임 소스 디렉토리에서 아래 명령을 입력한다.

sbs -A i386 -e ./autogen.sh --prefix=/usr
sbs -A i386 -e make
sbs -A i386 -e make install DESTDIR=$(pwd)/tmp

이제 게임을 컴파일했으니 데비안 패키지를 만들어야 한다.

cd tmp
tar -czf econcentration.tar.gz .
cd ..
fakeroot alien econcentration.tar.gz

이제 .deb 패키지를 에뮬레이터에 전송해서 설치하면 끝이다.

sdb push econcentration_1-2_all.deb /tmp
sdb dpkg -i /tmp/econcentration_1-2_all.deb
sdb shell econcentration --mobile

개발자 폰

개발자 폰은 x86이 아니라 arm 기반이기 때문에 데비안 패키지 생성을 위해 다른 SBS 명령을 수행해야 한다. 단, 기본적인 내용은 같다.

ARM 환경에서 elementary 라이브러리를 설치하자.

sbs -et apt-get install libelm-dev

게임 소스가 있는 디렉토리에서 아래와 같이 입력하자.

sbs -e ./autogen.sh --prefix=/usr
sbs -e make
sbs -e make install DESTDIR=$(pwd)/tmp

데비안 패키지를 생성한다.

cd tmp
tar -czf econcentration-arm.tar.gz .
cd ..
fakeroot alien econcentration-arm.tar.gz

개발자 폰에 패키지를 전송해서 설치하고 실행해보자.

sdb push econcentration-arm_1-2_all.deb /tmp
sdb shell dpkg -i /tmp/econcentration-arm_1-2_all.deb
sdb shell econcentration --mobile

아래는 에뮬레이터와 개발자 폰에서 게임을 실행하는 화면이다.




이상이다. 이제 더 흥미롭게 네이티브 애플리케이션을 실행할 수 있다.
ARM 장치를 위한 데비안 패키지와 이미지 파일 링크 : http://people.profusion.mobi/~iscaro/ [6]

소스코드

- 브라우저에서 보기
http://trac.enlightenment.org/e/browser/trunk/GAMES/econcentration

- svn clone
svn co http://svn.enlightenment.org/svn/e/trunk/GAMES/econcentration/

- git-svn clone
git svn clone http://svn.enlightenment.org/svn/e/trunk/GAMES/econcentration/

[1] http://seoz.egloos.com/3862259
[2] http://giscaro.wordpress.com/2012/07/17/running-efl-apps-on-tizen/
[3] http://seoz.egloos.com/3669728
[4] http://www.enlightenment.org
[5] https://source.tizen.org/platform/development-sbs/installing-sbs
[6] http://people.profusion.mobi/~iscaro/

[ 타이젠 게시물 목차 : http://seoz.egloos.com/3872102 ]



덧글

  • pjs012 2012/07/26 08:53 # 삭제 답글

    퍼즐게임인가보군요.... ^^
  • 천재태지서주영 2012/07/27 08:21 #

    네~ 그림을 두 개씩 펼쳐서 똑같은 그림을 맞추는 게임입니다 ^^ 게임에 대한 설명도 올려야겠네요 ^^
  • kilio 2012/07/30 19:52 # 삭제 답글

    이제 .deb 패키지를 에뮬레이터에 전송해서 설치하면 끝이다.


    sdb push econcentration_1-2_all.deb /tmp
    sdb dpkg -i /tmp/econcentration_1-2_all.deb
    sdb shell econcentration --mobile

    에서,
    sdb dpkg -i -> sdb shell dpkg -i 로 바꿔야 할 것 같습니다~
  • 천재태지서주영 2012/07/31 05:54 #

    앗, 감사합니다. 수정하였습니다. 원본 글도 수정하도록 알려주겠습니다. ^^
댓글 입력 영역