아주 간단한 날씨앱을 만들어봤는데, 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 머드초보

댓글을 달아 주세요

  1. happykju1218 2010.11.20 17:47  댓글주소  수정/삭제  댓글쓰기

    happykju1218@naver.com
    제아이팟은 탈옥했는데요 인증서꼭있어야되나요? 지금 그인증서살 여건이안되어든여
    출시할것도아니고 그냥 해볼려는건데 인증어생성하라고 플래시에서 막그러네요 ....
    메일로 알려주시면 감사하겠스빈다 ㅠㅠ

  2. 김정욱 2010.11.21 18:56  댓글주소  수정/삭제  댓글쓰기

    인증서가 안되서그러는데 자세히 알려주시거나 보내주시면안될까요????? ;;
    happykju1218@naver.com

  3. grimtong 2010.11.22 20:01  댓글주소  수정/삭제  댓글쓰기

    휴,...이제 인증에 성공했습니다...감사합니다.^^ 그런데 성능이 썩...(_ _) 기대치 만큼에 많이 못미치네요....오히려 안드로이드에서 더 좋은 성능을 보이네요.... 물론 다 테스트해본것은 아니지만 Alternativa3d로 만들어서 안드로이드와 아이폰 두대에 넣어봤는데....아이폰은 안습이네요..(_ _)
    암튼 감사합니다. ^___________^

  4. grimtong 2010.12.01 02:02  댓글주소  수정/삭제  댓글쓰기

    kju1218님 저도 빌려서 사용하는지라 드리기가 어렵네요... 아는 업체꺼 빌려쓰고 있거든요..

    그런데 제 아이폰 개발 기기 등록해서 내려받은거라서 님께서 컴파일은 하신다 해도 아이폰에

    설치가 안될겁니다....물론...탈옥하셨다면...가능할거 같지만요..^^ 죄송합니다. ^^

  5. tpman 2010.12.17 17:12  댓글주소  수정/삭제  댓글쓰기

    제 경우엔 .p12 파일과 .mobileprovision 파일 모두 정상적으로 넣고 제작해도 ipa 파일이 생성이 안되네요.
    오류가 나는건 아닌것 같고 뭔가 만들다 마는거 같은데...
    결과물에
    .xml
    air어쩌구.tmp
    AOTBuildOutput어쩌구.tmp 폴더 만 생겼는데 ipa는 안 생기는군요.
    혹시 왜 그런지 아시는분~ cs5는 구매한 정식 한글판입니다.
    모든 업데이트 완료했구요.

  6. 2011.01.20 15:19  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

    • BlogIcon 머드초보 2011.01.30 23:35 신고  댓글주소  수정/삭제

      아이폰용은 무료로 안되지만,
      안드로이드는 무료로 만들 수 있는데....
      그 eclipse에 안드로이드용 인증서 생성하는거 검색해보시면... 나올겁니다^^

  7. BlogIcon 액션신 2011.02.19 11:55  댓글주소  수정/삭제  댓글쓰기

    마침, 찾고 있었는데 올려 주신 글이 도움이 됐습니다. 감사합니다.

  8. 김태완 2011.03.28 15:06  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 flash 로 아이폰 공부를 해보려고해서 탈옥하고 하려는데요
    .p12는 그냥 인터넷 검색해서 만들었는데 .mobileprovision는 어떻게 만드나요?
    구글링 해도 잘 못찾아서 그런데 조언좀 부탁드립니다. 아무 .mobileprovision 만드는 법좀 ㅠㅜ

  9. airdeok 2011.05.04 15:17  댓글주소  수정/삭제  댓글쓰기

    한가지 질문하겠습니다. p12 파일을 안드로이드꺼 사용해도 어짜피 mobileprovision은 개발자 등록해야 생성할 수 있는거 아닌가요?

 
일단 한마디로 소감을 말하자면, 엄청 느리고 그래서 VMWare에 설치하는 게 훨신 낫습니다.
VMWare는 가상화 기술을 지원해선 하는 것 같은데, 이건 그냥 소프트웨어적으로 돌리는 것 같은 느낌으로 엄청 느립니다. 그냥 켰다가 껐습니다-_- 뭐 인터넷 정도만 할만한 것 보니, 맥에서 웹사이트 브라우저 테스트 정도는 할 수 있을 것 같습니다-_-

버추얼박스 다운로드 : http://www.virtualbox.org/wiki/Downloads
이번 3.2.X버전부터 지원을 한거라 아직 안정화단계는 아닌 것 같습니다. VirtualBox는 버전이 엄청나게 빠르게 업뎃을 해서 곧 안정화하리라 믿습니다^^
아~ 게다가 예전에는 Sun VirtualBox였는데, Oracle VirtualBox로 변경되었네요.

게다가 설치할 때 엄청 어려움을 겪었습니다.
osx 이미지를 일단 구해야하는데, 3가지 종류를 구했는데, 다 부팅이 안되는 겁니다-_-
그래서 검색을 해보니, empireEFIv1085.iso를 구해서 부팅한 뒤 설치할 수 있다고 하네요.
다운로드 : http://www.filestube.com/342c38fb8396e0b903e9/go.html

가상머신을 만듭니다.
사용자 삽입 이미지
그러면 공식적으로 Mac OS X가 있는 것을 볼 수 있습니다. 베타때에는 Server가 안붙었는데, 뭔가 문제를 회피(?)하기 위해서 붙인 것 같습니다-_-

만들었으면 설정을 해줘야합니다.
시스템에서 EFI체크해제하고, 저장소에서는 두번째 것에 empireEFIv1085.iso파일을 삽입합니다.

그리고 부팅을 하게되면 몬가 부팅이 되는데요. 거기서 다시 맥 설치 이미지로 변경해주어야합니다.
그런다음에 설치안내에 따라서 설치해주시면 됩니다.

설치가 완료되면 다시 empireEFIv1085.iso로 부팅해서 설치한 것을 선택해주시면 됩니다.
사용자 삽입 이미지



PS. 참고로 제가 뭘 잘못한지는 모르겠지만, 그냥 부팅해도 되시는 분들도 있다고 합니다. 위 방법은 그냥 부팅했을 때 안되시는 분들은 저렇게 하면 된다는 것입니다^^
PS. VMWare7에 설치하실 분들은 여기를 참고~ http://mudchobo.tomeii.com/tt/468

참고사이트 : http://pakcw.cafe24.com/1527

 
Posted by 머드초보

댓글을 달아 주세요

  1. t3RRa 2010.06.22 18:02  댓글주소  수정/삭제  댓글쓰기

    얼마전에 Sun사가 Oracle사에 매각되었습니다. VirtualBox 자체도 Sun에서 먼저 개발한게 아니라 개발한 회사를 사들여서 자사의 브랜드를 입힌거였지요. :)

 
해결방법 같은 건 아니구요-_- 그냥 이렇게 하니까 짤리지는 않더라 정도 입니다-_-

혹시....맥에서 Flex Builder 쓰시는 분도 그런가요?-_- 맥에선 컴파일을 안해봐서 잘 모르겠네요.
암튼, Windows용 Flex Builder로 컴파일한 swf는 맥에서는 한글이 짤려서 보이네요.
버그리포팅을 하고 싶지만.....영어도 딸리고...말주변도 없고....에이레네님께 부탁을 ㄷㄷㄷ

사용자 삽입 이미지
사용자 삽입 이미지
우선 style에서 fontFamily를 "돋움"으로 주니 맥에서 저렇게 보이더군요.
그래서 fontFamily에다가 Arial을 추가해줍니다-_-(석경씨가 발견! 짱!)
[code]font-family: "돋움", Arial;[/code]
그럼 윈도우폰트도 적용할 수 있고, 맥에서는 글씨도 안짤릴 수 있고...하지만, 맥에서는 폰트를 바꿀 수 없습니다-_- 그냥 나오는대로 보셔야합니다ㅠ

PS. 다른 방법 알고 계신 분 알려주세요ㅠㅠ
PS2. 보너스로~ 내 윈도우에서 돌아가는 Mac OS X Leopard.....인터넷 밖에 안된다는...ㅠㅠ
사용자 삽입 이미지


 
Posted by 머드초보

댓글을 달아 주세요