아주 간단한 날씨앱을 만들어봤는데, urlLoader가 잘 작동하는지 테스트해봤습니다^^

Flash로 개발하게 되었을 때 이점은 역시나 플래시만의 장점인 쉽게 그래픽을 그리고, 조작할 수 있다는 것이겠죠^^ 게임개발에 유용한...ㄷㄷ
게다가 이번에 안드로이드air까지 지원하면서 한가지의 코드로 데스크탑, 안드로이드, 아이폰앱까지 만들 수 있는 형태가 될 수 있죠(사실 Android와 Desktop은 하나의 프로젝트긴 한데, 아이폰은 AIR프로젝트가 아닌 아이폰OS프로젝트로 생성해야 만들 수 있긴하죠ㅠ).
그리고, iPhone개발을 위해 값비싼 맥북을 사지 않아도 되지요-_-(하지만, 역시....그냥 xcode로 개발하는 게...)
하지만, 모바일 기기 특성상 각각 장단점을 살릴 수 있는 기능들은 일부제한이 됩니다. 그런 기능들을 다 포기한다면 그나마 할 수 있는 분야는 게임분야겠네요^^ 게임분야는 제작하면 좋을 듯 하지만, 또 여기서 퍼포먼스가 좀 걸리네요. 제가 bitmap을 통해 뭔가 그리기 테스트를 해봤는데, 역시나 뭔가 좀 느린 듯한 느낌을 떨쳐버릴 순 없군요ㅠㅠ

일단 뭐 간단한 URLLoader를 이용해 데이터 뿌려주는 것부터 해봤긔...ㅠㅠ

일단 Adobe에서 제공하는 문서에 보면 엄청 잘나와있습니다^^
http://help.adobe.com/ko_KR/as3/iphone/index.html

준비물은 Flash CS5 랑 인증서생성 해주고 발급해주는 OpenSSL만 있으면 될 듯!

1. 인증서발급 및 프로비저닝 프로파일 받기
맥에서는 KeyChain Access라는 프로그램으로 막 만들면 되는데, 윈도우즈에서는 그게 없어요. 그래서 하는 방법이 어도비공식문서 잘 나와있네요~ 여기에서는 윈도우즈에서도 할 수 있는 방법이 있으니까 참조하세요~
http://help.adobe.com/ko_KR/as3/iphone/WS789ea67d3e73a8b2-240138de1243a7725e7-7ffd.html
혹시나.... 99딸라짜리 개발자등록을 안하셨다면 할 수 없습니다ㅠㅠ
근데, 제 아이팟은 탈옥을 해서 그런지, 안드로이드용 .p12파일과 아무 .mobileprovision파일로 해도 잘되더라구요. 기기에 그냥 테스트가 하고 싶으신 분이라면(제가 그랬음!기기에 어떻게 돌아가는지만 궁금했을 뿐), 탈옥(?)을 하셔서 테스트를 해보시는게...ㅠㅠ

2. Flash CS5에서 개발하기

Flash CS5를 열고 그냥 개발하면 됩니다(응?).
일단 새로만들기에 iPhone OS라는 게 있는데, 그걸로 생성하면 320x480사이즈의 플래시문서형태가 나옵니다. 일단 초간단한 구글날씨api를 이용해서 날씨를 불러와서 문서에 보여주는 형태의 코드를 해봤습니다.
[code]
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.errors.IOError;
import flash.utils.Timer;
import flash.events.TimerEvent;

var urlLoader:URLLoader;
var urlRequest:URLRequest;
var timer:Timer;

function init():void
{
    trace("init");   
   
    timer = new Timer(5000, 0);
    timer.addEventListener(TimerEvent.TIMER, timerHandler);
   
    urlLoader = new URLLoader();
    urlLoader.addEventListener(Event.COMPLETE, completeHandler);
    urlLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
   
    requestWeather();
}

function timerHandler(event:TimerEvent):void
{
    requestWeather();
}

function requestWeather():void
{
    urlRequest = new URLRequest("http://www.google.co.kr/ig/api?weather=seoul&temp=" + Math.random());
    urlLoader.load(urlRequest);
    timer.reset();
    timer.start();
}

function completeHandler(event:Event):void
{
    var xml:XML = new XML(urlLoader.data);
    trace(xml);
    var currentConditions:XMLList = xml.weather.current_conditions;
    var condition:String = currentConditions.condition.@data;
    var tempC:int = currentConditions.temp_c.@data;
    var humidity:String = currentConditions.humidity.@data;
    var weatherIcon:String = currentConditions.icon.@data;
    var windCondition:String = currentConditions.wind_condition.@data;
    trace(tempC + " " + humidity + " " + weatherIcon + " " + windCondition);
   
    imageLoader.source = "http://www.google.co.kr" + weatherIcon;
    labelTemp.text = tempC + "도";
    labelCondition.text = condition;
    labelWind.text = windCondition;
}

function errorHandler(event:IOErrorEvent):void
{
    trace("error = " + event.text);
    labelCondition.text = "오류발생!";
}

init();[/code]
아오....오늘 하루종일 어둡더니 계속 안개네요... 13일의 금요일이 보통 이런 날씨인데...
사용자 삽입 이미지

잘보면 아이콘이 어도비 에어입니다. 뭐 serversocket도 된다니 air가 맞겠네요^^

3. iPhone용에 넣기위해 ipa파일로 제작하기
파일 -> iPhone OS 설정 에서 보면 셋팅하는 게 있고, 배포탭을 보면 인증서와 프로비저닝 프로파일이 있는데, 그건 아까 1번에서 설명한 대로 넣으면 됩니다.
장치 테스트용 빠른 제작으로 하고 제작을 누르면 ipa를 만들기 시작합니다... ipa 생성까지 백만년 걸리는 것 같았습니다ㅠㅠ 엄청 느립니다ㅠㅠ

ipa파일이 해당 프로젝트 폴더에 생성이 되면 그걸 itunes에 있는 응용프로그램에 넣고, 동기화 시키면 아이폰/아이팟에 들어가 있을겁니다.

4. 아이폰/아이팟에서 확인
사용자 삽입 이미지
아오...나 레티나액정인데, 고화질로는 못만드는건가....ㅠㅠ 그냥 흐리게 나오네요ㅠㅠ

5. 후기의 한말씀-_-
그냥 맥북사시고, objective-c배우세요.

 
Posted by 머드초보
,
 
VMWare가 한건했네요-_-
저 같은 사용자를 위해 이런 것이 나와주다니 너무 고맙네요. VMWare에서도 OSX Snow Leopard를 거의 완벽하게 지원하게 만들어버렸습니다.
주 OS를 OSX를 사용하겠다는 사람들에게는 맥을 사거나 해킨토시를 이용해 설치하거나 하면 됩니다. 그리고, Windows는 vmware나 페럴러즈같은 가상머신으로 너무 잘 돌아가니 이렇게 설치를 하면 되는데, 주 OS가 Windows이고 가끔 아이폰개발을 위해 osx를 사용하고 싶은 사용자는 선택의 여지가 없었습니다-_- VMWare 6대 버전에서는 너무 느리게 돌아가고 제대로 지원이 안되었기 때문이죠.
하지만, VMWare7에서는 메인보드에서 가상화를 지원하면 아마 이걸 이용해서 속도개선을 한 듯 보여요.
이제 Windows에서 가상머신으로 vmware를 통해 osx snow leopard를 설치할 수 있습니다. 물론 공식적인 지원은 아닙니다. 근데, 속도는 정말 빠르군요. 일부러 노리고 만들었나-_-

사용자 삽입 이미지
업데이트도 잘됩니다. 그리고, 프로세서는 4.30ghz로 나오네요. 메모리는 2gb로 해야 부드럽게 잘 돌아가는 듯.
아....제 노트북 사양은 2.66GHz 듀얼, 4gb입니다. z36입니다. 설정시에는 메모리 2gb로 잡았죠.

설치 도움사이트.
OSX가상머신만들기 : http://blog.naver.com/baljern/140098696647
OSX설치하기: http://blog.naver.com/baljern/140098695323
OSX VMWare Tools 설치하기 : http://blog.naver.com/baljern/140098695308

여기서 해킨토시 h-sl106.iso 파일이 필요합니다. 알아서 구하셔야......-_-

그리고, 사운드와 그래픽이 조쿰 느린 것을 느끼게 되는데, 이건 드라이버를 설치해야합니다.
저 같은 경우 여기서 받은 드라이버를 설치하니 잘 되더라구요^^ 아래 요술램프 지니효과나 dock효과 등도 부드럽게 잘 나오더라구요. 사운드도 처음엔 안나왔는데 설치하니 잘 나옵니다.

http://vmsvga2.sourceforge.net/
Download VMsvga2 files 클릭 후, Video에는 Common용으로 받으면 되구, Audio오는 Snow Leopard랑 Leopard용이 구분해 있으니 알아서 받으시면 될 듯.

그리고, 잠자기 모드로 들어가는 것을 꺼줘야 합니다.
시스템 환경설정 -> 에너지 절약 메뉴에 있어요~ 거기서 그냥 둘 다 사용안함으로 해주시면 돼요.

아래는 구동영상을 한번 찍어봤어요.
캡쳐중이라서 그런지 조금 버벅이는 면이 있지만, 보시다시피 아이폰 개발하는데에는 전혀 지장을 주지 않을 정도로 부드럽습니다.

나도 아이폰개발해보자-_-
 
Posted by 머드초보
,