맥북,XCode,아이폰,ADT,안드로이드

휴대기기용 프로그램 개발을 하고 있습니다.
전문적인건 아니고 어디까지나 개인적인 레벨이지만요.
그동안은 WM 계열이나 임베디드 리눅스 계열만 조금씩 했었는데
이번에 대세에 따라 아이폰과 안드로이드쪽으로 도전해보려 합니다.

일단 아이폰용으로 개발을 하기 위해서는 준비가 필요합니다.
바로 매킨토시(중에서도 인텔 CPU 제품)입니다.
아이폰 SDK가 매킨토시에서만 구동이 가능하기에 어쩔 수 없더군요.
물론 SDK의 라이브러리만 빼내면 다른 환경에서도 개발이 가능하긴 하지만
UI 빌더나 시뮬레이터를 사용할 수 없기에 불편한 점이 많습니다.

그동안 매킨토시를 구할까 해킨토시를 깔까 고민을 했었는데
제 PC에는 해킨토시(바닐라 버전)가 구동되지 않는다고 합니다.
(CPU가 최소 Core Duo 이상이어야 하는데 제 PC는 펜티엄 D 입니다)
그래서 어떻게 할까 고민하다 몇가지 고장난 부분(ODD, 배터리)이 있지만
일단 동작은 정상적으로 하는 맥북을 하나 구하게 되었습니다.
현재 스노우 레퍼드 위에서 XCode + iPhone SDK를 설치하고 있습니다.

그리고 얼마 전에는 안드로이드 SDK를 설치해 봤습니다.
이클립스 위에서 쓰거나 따로 IDE를 쓴다면 커맨드 라인을 통해 사용이 가능하더군요.
아직은 이클립스로 예제 빌드만 조금 해봤지만... 느립니다.
이클립스는 너무 무겁습니다.
아무래도 집안에 있는 PC 중 가장 사양이 높은(...) 맥북이 이클립스도 같이 돌려야 할 듯 합니다.

어쨌든, 이렇게 메이저급(?) 휴대기기용 개발 환경을 구축해 봤습니다.
구축 자체야 클릭 몇번으로 다 되니 어려울건 없지만요.
다만, 그동안 써왔던게 파스칼/델파이 또는 C/C++ 이어서
아이폰의 오브젝트 C와 안드로이드의 자바를 어떻개 해야 할지 고민입니다.

Posted by 경민

2010/01/24 19:54 2010/01/24 19:54
, , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://mystictales.net/tc/?/rss/response/57

Trackback URL : http://mystictales.net/tc/?/trackback/57

Leave a comment

와플 프로젝트, 스마트폰 에디션

2008년 9월경에 제 블로그에 찾아오셔서 블랙잭에서의 와플 구동을 문의하신 분이 계셨습니다.
당시에는 블랙잭이 없다 보니 도와드릴 수 없었는데, 워낙 블로그 갱신이 안되다 보니
해당 댓글이 아직도 최근 댓글에 달려 있어서 항상 신경이 쓰이더군요.
결국 중고로 블랙잭 공기계 하나 구해서 이렇게 와플을 돌려봅니다.

블랙잭은 터치가 안되는 스마트폰이라 터치가 반드시 필요한 메뉴를 넘기는게 힘이 듭니다.
별도의 가상 마우스 어플을 이용하면 가능한 듯 하지만, 무료도 아니고 번거롭지요.
그래서 매끄럽지는 못하지만 얼추 가상 마우스 비슷하게
네비키로 조작 가능한 마우스 커서 기능을 넣었습니다.

예전에 개발할때는 PDA여서 외부의 이벤트(전화, 문자 등)를 신경 쓸 필요가 없었는데
휴대폰 기능이 들어가면서 작업 관리가 복잡해졌더군요.
거기다 작업 전환시 원하는 이벤트도 들어오지 않아서 삽질을 조금 많이 했습니다.
지금은 얼추 처리된 듯 하지만 음악 관련 부분은 아직 부족합니다.
와플이 다시 뜰 때 작업 복구를 하는데 재생중이던 음악이나 효과음은
이어서 재생하지 못하고, 처음부터 다시 재생하게 됩니다.
크게 영향을 끼치지는 않겠지만 오프닝이나 엔딩 부분에서는 조금 곤란하더군요.

이상의 문제를 제외하면 게임을 진행하는데 문제는 없을겁니다.
혹시라도 문제가 발생한다면 댓글을 남겨주세요.

참고로 와플 프로젝트의 데이터 파일은 PDA용 와플 한글판의 데이터와 형식이 조금 다릅니다.
와플 VGA 버전과 같은 형식의 데이터를 씁니다. (단, VGA 데이터가 아닌 QVGA 데이터만 지원합니다)
가장 큰 차이점으로는 일본어판과 한글판의 데이터를 구분하기 위해서
파일 이름 WLK2xx.AVD 에서 xx 부분의 첫번째 글자가 K인가 아닌가를 확인합니다.
보통 일본어판의 경우 숫자가 들어가기에, 한글판 여부를 구분하고자 K 값을 넣었습니다.
만약 한글 패치 버전인데 xx 부분의 첫 글자가 K 가 아니라면 일본어판으로 인식
일본어 폰트를 적용하기에 글자가 전부 깨져버리게 됩니다.

파일은 투데이스피피시(http://todaysppc.com)
네이버 스마트폰 카페(http://cafe.naver.com/bjphone)
마이미츠(http://mymits.net) 에 올려둡니다.

Posted by 경민

2010/01/09 11:46 2010/01/09 11:46
, , , , ,
Response
0 Trackbacks , 0 Comments
RSS :
http://mystictales.net/tc/?/rss/response/56

Trackback URL : http://mystictales.net/tc/?/trackback/56

Leave a comment

GP2X wiz와 GP2X-F300의 차이점

게임파크 홀딩스(Gamepark Holdings, GPH)에서 발매한 GP2X wiz(이하 wiz)와
보카마스터 깜빡이에서 ODM으로 판매한 GP2X-F300(이하 F300)은 동일한 플랫폼 기반입니다.
매직아이의 Pollux라는 ARM 칩셋을 사용하고 있지요.
다만 몇가지 차이점이 있어서 개발시 신경을 써야 하는 점이 있습니다.

가장 큰 차이점으로는 wiz는 240x320의 세로형 AMOLED를 90도 회전하여 장착하였고,
F300은 320x240의 가로형 LCD를 장착하였습니다.

문제는 wiz의 경우 AMOLED에서 회전 기능을 사용하여 320x240처럼 쓸 수 있게 하였지만
이 기능을 사용할 경우 대각선 티어링(화면 찢김) 현상이 발생하고 있습니다.
그래서 티어링을 막기 위해서 AMOLED의 회전 기능을 꺼버리면 240x320 해상도로 처리해야 합니다.
320x240으로 처리하는 F300과는 화면 방향이 틀려져 버린 것이지요.
즉, 프로그램을 만드는 과정에서 240x320과 320x240을 모두 고려하지 않으면
wiz 전용이 되거나 wiz와 F300에서 모두 쓸 수 있지만, wiz에서는 티어링이 발생합니다.

또 다른 문제는 일부 에뮬레이터에서 V-Sync 신호를 초당 120회로 늘리기 위해
화면 설정을 건드리는 부분이 있습니다.
문제는, 이때의 화면 설정은 실제 디스플레이의 해상도(wiz의 경우 240x320)로 잡게 됩니다.
즉, F300인지 확인하지 않고 무조건 설정해버리면 F300에서는 화면이 깨지게 되는 것이지요.

마지막으로 일부 메모리 영역이 F300과 wiz가 서로 다를 수 있습니다.
이 부분은 F300의 펌웨어에 따라 차이가 있을 수 있습니다.
wiz 펌웨어 개발중에 메모리 영역이 조금 변동이 있던 시기가 있어서
그 즈음의 F300 펌웨어에서 어떤식으로 되어 있는지 확인이 필요합니다.

해상도 차이에 따른 개발시 팁을 하나 알려드리겠습니다.
우선 프레임 버퍼 디바이스에 LCD DIRECTION OFF 명령을 줘서 90도 회전 기능을 끕니다.
그러면 wiz의 경우에는 240x320으로 바뀌나, F300의 경우에는 320x240 그대로겠지요.
이걸 확인하기 위해 ioctl로 FBIOGET_FSCREENINFO 값을 읽어옵니다.
그 값에 따라 화면 출력을 240x320으로 할지, 320x240으로 할지 분기한다면
두 기기를 모두 지원하는게 가능합니다.
티어링이 발생해도 큰 관계 없다면 LCD DIRECTION ON 상태로 쓰셔도 되고요.
다만, V-Sync 주기 변경을 위한 부분은 확실히 신경을 쓰셔야 합니다.

Posted by 경민

2010/01/06 16:19 2010/01/06 16:19
, , , , ,
Response
1 Trackbacks , 0 Comments
RSS :
http://mystictales.net/tc/?/rss/response/55

Trackback URL : http://mystictales.net/tc/?/trackback/55

Leave a comment
« Previous : 1 : 2 : 3 : 4 : 5 : ... 15 : Next »

Site Stats

Total hits:
197826
Today:
28
Yesterday:
109