2008년 1월 17일 목요일

iPhone Code Samples

한동안 iPhone 개발과 관련된 인터넷 검색을 하지 않다가 문득 검색을 해보니 어느새 많은 코드들이 존재한다.

그냥 우연히 찾은 Code Sample을 모아둔 곳이다.

http://iphonedevdocs.com/forum/forumdisplay.php?f=5

URL도 심상치 않다. iphonedevdocs 라니.... 보다 많은 내용이 있을 것 같다. 꼭 필요한 사이트

2008년 1월 15일 화요일

Cross Compile

Cross Compilre 만들기

Cross Compile을 예를 들어 간단히 설명하면 x86에서 ARM용 프로그램을 작성하는 것이다.

일반적으로 C로 작성한 프로그램을 실행시키려면 compiler로 compile 작업을 해서 실행파일을 작성한 후, 실행 파일을 실행시키면 된다.

이것은 해당 시스템에 compiler가 존재하는 경우에 가능하다. compiler가 존재하지 않는 ipod touch와 같은 경우 PC에서 프로그램을 작성하고, 이 프로그램을 ipod touch용으로 compile 한 후 단말에 올려서 실행한다. 이때 사용하는 compiler가 cross compiler다.

일반적으로 cross compile에 많이 사용되는 compiler는 open source로 작성된 gcc(GNU C Compiler)다. gcc의 경우 소스가 공개되어 있고, cross compile을 위한 다양한 기능을 모두 가지고 있어 많이 사용된다.

ipod touch에서 사용되는 cross compiler는 gcc로 만든다. Apple에서 SDK를 릴리즈 하는 경우에도 gcc를 사용할 것이다.

gcc로 ipod touch/iphone 용 cross compiler를 만들기 위한 방법은 다음 URL에 있다.

http://code.google.com/p/iphone-dev/wiki/Building

이 작업을 한 후에라야 진정으로 ipod touch용 프로그램의 시작을 위한 준비가 되었다고 할 수 있다.

Cross Compile 방법

cross compiler가 만들어 지면 다음 명령으로 간단한 C 파일을 compile할 수 있다.

$ arm-apple-darwin-gcc hello.c -o hello

이렇게 생성된 hello 파일을 ipod touch에 올려서 실행시켜 보자. 파일을 올리는 방법은 다양하다. FileZilla로 올려도 되고 TouchExplore를 사용해도 된다.

iPod Touch에 접속하기

해킹된 ipod touch에 SSH가 설치되어 있는 것은 모두가 알고 있을 것이다.

ssh는 간단히 설명하면 ipod touch에 접속을 할 수 있도록 도와 주는 프로그램이다. 가지고 있는 대표적인 기능으로는 shell 기능과 ftp 기능이 있다.
FileZilla가 ssh의 ftp 기능을 사용하는 대표적인 프로그램이다.

그렇다면, shell 기능을 이용하면? ipod touch에 직접 접속할 수 있다. 마치 windows에서 도스 창을 열듯이...

windows에서 shell 기능을 사용하려면 한글 putty를 다음 URL에서 받아 설치하도록 하자.

http://kldp.net/projects/iputty/

이제 한글 putty의 "한글 PUTTY (SSH 클라이언트)" 프로그램을 실행 시켜 "호스트 이름"에 ipod touch의 IP를 설정하고, "프로토콜"을 SSH로 설정한 후 접속하면 된다. 이때 잘 접속이 안되면 FileZilla로 접속을 시도한 후 성공하면, putty로도 잘 접속이 된다.

이제 아까 작성한 hello를 복사한 디렉토리로 이동한 후 다음과 같은 명령을 실행한다.

$ chmod +x hello
$ ./hello

hello 프로그램이 실행되는 것을 확인 할 수 있다.

2008년 1월 12일 토요일

Touch Program의 시작

개요

Touch 프로그램을 작성방법에 대한 내용을 정리한다.


사전지식

Touch는 ARM 기반의 BSD Unix를 OS로 하는 시스템이다.

  • Unix 프로그램을 잘 알고 있어야 한다.
  • UI 프로그램을 위해서는 Object C를 알고 있어야 한다. Object C는 객체지향 개발 방법론을 알고 있는 사람이라면 약 30분 정도의 시간을 투자하면 손쉽게 공부할 수 있다.
  • 개발을 위한 GNU Compile 도구의 사용 방법을 알고 있어야 한다. gcc, Makefile, subversion 등
  • MAC 프로그램에 대한 경험자의 경우 적응이 쉽다. Apple Developer Connection 을 수시로 참고해야 한다.
  • UTF-8 encoding을 기본으로 한다.

Touch는 MAC OS X와 많이 유사하다. UI 관련 API를 제외한 하위 API의 경우 MAC OS X와 거의 똑 같다.

파일 시스템도 동일한 특성을 가진다.

UI를 위한 API의 경우도 많은 유사성을 가지고 있다.


SDK 설치

개발을 위해 가장 먼저 해야할 작업은 바로 SDK를 설치하는 것이다.

다음 URL의 내용에 따라 SDK를 설치하도록 한다. SDK를 설치하기 위해서는 MAC 환경을 권장하며 Linux에서도 가능하다.


http://code.google.com/p/iphone-dev/wiki/Building


SDK 설치 과정을 간단히 살펴 보면 다음과 같다.

  • gcc cross compiler를 만든다.
  • Touch 복구 이미지에서 라이브러리(Framework)를 추출한다.
  • 추출된 라이브러리로 부터 Header 파일을 추출하여 설치한다.

라이브러리에서 직접 header 파일을 추출하여 개발했기 때문에, 2008년 2월에 애플에서 SDK를 릴리즈 하는 경우에도 API 변경이 크지 않을 것이다. Header 파일 위치 정도나 바뀔까(?)

iPhone 프로그램 홈페이지들

대부분의 iphone 관련 open source 프로그램은 google code에 있다. google code 접속 후 iphone 이라는 검색어를 사용하면 다양한 프로젝트를 확인할 수 있다.


http://code.google.com/hosting/search?q=iphone&projectsearch=Search+Projects



핵심 Class

UIApplication

응용 프로그램 시작과 종료 등 응용 프로그램 제어 관련 기능을 다룬다.

UIWindow

응용 프로그램 최초의 Window를 생성한다.


UIView

UIWindow내에서 동작하는 다양한 View를 제공한다.

2008년 1월 9일 수요일

Google Docs와 블로그

Google Docs를 이용하여 블로그를 작성하는 것도 좋다.

지금 이 문서도 그렇게 사용하고 있다. Google Docs에서 문서를 편집하고, 그걸 "Publish" 하면 blog에 추가된다. 물론 수정후 update도 된다.

사용 방법은 Google Docs 편집화면에서 오른쪽 상단에 "Share" "Publish"가 있는데, 이중 "Publish"를 선택한다. 이중에 "Post to Blog"를 통해 blog에 post하면 되는데, 하단에 blog 설정을 위한 링크가 있으니 이를 통해서 작업을 하자.

다만, label, title 설정등을 따로 blog에 들어가서 해야한다.

귀차니즘

새해가 밝았는데, 요즘은 귀차니즘에 빠져 있다. 하고 싶은 일은 많은데 귀찮아서 전부 보류하고 있다.
iPod Touch 관련해서 더 만은 프로그램을 작성하고, TextReader의 경우도 더 개선해야 하는데...

할일 목록

  • TextReader
    • 과거 읽은 파일에 대한 표시. 아마도 색을 달리 할 것 같다.
    • 상단 툴바 표시 관련 버그 수정
    • Bookmark 기능 개선
  • Sokoban
    • 거의 되어 있는게 없으니.. 다 해야겠다.
  • Currency
    • 이건 시작도 못했다.
  • iPhone 개발 문서 정리
    • 이거 짬짬히 해야 하나? SDK가 나오면 하자

이제라도 마음을 다잡고 시작하자...