[iOS/Three20] Add to Project

Three20이 몇 개월 전과 비교해서 뭔가 많이 바뀐 것 같다. 그래서 바뀐 Three20을 사용하는 기본적인 방법을 정리하고자 한다. (제목은 귀찮아서 원문 페이지의 표현을 거의 빌려쓴다)

혹시나 해서 언급하는데, three20은 아이폰용 facebook 앱을 만들면서 구축한 라이브러리를 오픈해서 오픈소스형식으로 공동 개발되고 있는 iOS용 통합 framework 라이브러리다.

위 링크 페이지의 내용을 그냥 간단히 적는 거니 기대하지 않는 것이 좋ㅇ... 아악...

일단 혹시 모르니 삽을 하나 준비해두자(?) 다음, Three20을 다운받아서 어딘가에 두자. 난 git로 긁어왔는데 git를 못 쓰는 환경이라면 홈페이지에서 다운받아서 적당한 곳에 압축을 풀어놓자. 내 경우 ~/Devel/vendor/three20에 위치하도록 했다.

그 다음 XCode를 띄우고 새로운 아이폰 앱 프로젝트를 만든다. three20은 UI framework 투성이라서 별 다른 view controller라던지 등을 쉽게 구축 가능하므로 그냥 window-based application으로 해도 될 것 같다. 프로젝트는 적당히 ~/Devel/three20test 에 만들었다.

다음은 터미널에서 python 스크립트의 힘을 빌린다. 터미널을 띄우고 다음 명령을 실행시켜 보자.

python ~/Devel/vendor/three20/src/scripts/ttmodule.py

도움말이 나온다. 하하...

도움말에 따라 다음처럼 입력해볼까.

python ~/Devel/vendor/three20/src/scripts/ttmodule.py \
       -p ~/Devel/three20test/three20test.xcodeproj Three20

백슬래쉬(\)는 쉘에서 다음 줄에도 계속 명령이 이어진다는 의미이니 백슬래쉬(\)를 빼고 한 줄에 다 적어도 된다.

이렇게 하면 돌아가는지는... 시험안해봐ㅆ...아악....

문서에서는 Debug에 관한 설정 등에 관한 언급이 있는데, 단순히 이렇게 하는 습관을 들이는게 좋을 것 같다.

python ~/Devel/vendor/three20/src/scripts/ttmodule.py \
       -p ~/Devel/three20test/three20test.xcodeproj \
       -c Debug -c Release Three20

물론 백슬래쉬(\) 빼고 한 줄에 다 적어도 된다. 실행시키면 아무런 반응 없이 잠시 후에 그냥 터미널 프롬프트가 깜빡거릴 뿐이다.

XCode창으로 돌아와보면 '파일이 바꼈는데 다시 디스크에서 읽을래?' 라고 물어본다. 물론 읽어야된다.

다음, 제대로 되었는지 확인해보자. Application Delegater(위 테스트 프로젝트에서는 three20testAppDeleagate.m) 파일을 열어서 import문 하나를 추가해 본다.

#import "Three20/Three20.h"

Build해보자. 제법 오랫동안 많은 파일이 빌드될거다. 기다리자. 에러 없이 끝나면 끝. 에러가 나면 옆에 준비해 둔 삽을 들고 팔 준비를 하자...;;

예전에 비하면 정말 쉽게 끝난다. 예전에는 파일을 프로젝트에 복사해 넣고 라이브러리 링크를 수동으로 조작해 줘야 하는 삽질과정이 있었는데 이제는 단순히 python 스크립트 하나로 OK.

Three20은 다시봐도 정말 괜찮은 framework이다. iOS SDK만으로 TableView를 하나 만들어서 목록 한번 보려면 제법 많은 삽질을 해야했는데 비슷한(혹은 그 이상의) 내용을 몇 줄로 끝내버리는 것만 봐도 대단해.

ps. 위 링크에 첨부된 동영상에서는 three20을 add source해서 프로젝트에 집어넣는 듯한 것을 보여주는데 따로 집어넣을 필요 없이 ttmodule.py 만으로 다 끝난다.

ps2. 개인적인 문제는 Three20은 너무 편해서 쓰기 싫다는 이상한 자존심이...아악...

댓글

익명님의 메시지…
잘보았습니다.^^ 모든 일에 행복하세요.

이 블로그의 인기 게시물

버전(Version)을 제대로 이해하기

소수점 제거 함수 삼총사 ceil(), floor(), round()