근 3월초부터 많은 시간을 Head First 로 시작하는 책들을 읽는데 썼습니다.
별다른 큰 목적이나 계획이 있었던 건 아니고, 웹관련 일을 찔러 보다가 이쪽에 대해 잘 모르는 게 너무 티가 나서 교양(?)을 쌓고자 몇 권 집어 든게 화근이었습니다. 너무 술술 잘 읽히는 거 있죠. (일이 너무 하기 싫어던 게지 --;)

Head First HTML with CSS & XHTML, Head First JavaScript, Head First Ajax, Head First SQL, Head First Design Patterns 까지 읽고 Head First Web Design에서 잠시 열독을 멈춘 상태입니다. 책 한권을 3-4일만에 읽어 버린 꼴이네요. 그림이 좀 많긴 하지만 그렇게 얇은 책도 아닌데... 막상 읽고 나니 좀 얼떨떨 하긴 하네요.


 
Head First 시리즈는 항상 느끼는 거지만 정말 설명하는 법이 탁월합니다. 쉽게 설명하기 위해 내용의 구성과 흐름, 그리고 흥미 유발을 위한 리듬까지 고려되어 있습니다. 조금만 딱딱하거나 어눌한 설명이 나오면 흥미와 집중이 사라지는 저같은 사람에겐 이만한 책이 없습니다. 또한 쉽게 쓰여진 책의 단점인 설명하기 곤란하거나 모순된 상황을 보여주지 않는 (아름다운 모습만 보여주는) 다소 비겁한 태도도 이 책에는 없습니다. 무엇이 문제인지 정확히 설명하는 게 너무 좋습니다. 안방 토크같은 다소 해학적인 논쟁은 상당히 위트있고 세련되어서 전달하고자 하는 문제의 본질과 부각시키고 싶은 차이를 확실히 인식하도록 도와줍니다.

Head First 시리즈가 쉽게 쓰여졌다고는 하지만 확실히 초보자용 책은 아닙니다. 초보자에서 중급자로 넘어가거나 중급자인거 같은데 왠지 기초가 부실한 사람이 읽는 것이 맞을 것 같습니다. 아무것도 모르는 초보자가 읽기엔 내용 중간중간 문맥안에 숨어있는 무시무시한 위트를 정확히 이해 못할 것 같더군요. 그리고 중급자나 고급자 입장에서는 복잡하고 고난이도의 내용이 들어있지 않습니다. Effective C++ 처럼 모든 것을 다 알고 난 후에 그래도 모르는게 있나? 하고 보는 책은 아닙니다. 난이도 상 조금 에메한 위치에 있지만 저처럼 대충 아는데 좀 더 자세한 내용을 빠른 시간에 익히려는 사람에겐 Head First 시리즈를 추천합니다.
Posted by luuvish

삼국지의 모든 의혹이 해소되었습니다. 허허.
Posted by luuvish
한쪽은 Application을 만드는 방식으로 Web Application을 만들려고 합니다.
다른편에서는 Web Application을 만드는 방법을 그대로 사용해서 App을 만들려고 합니다.

결국 지향하는 목표점은 하나입니다.
하나의 개발환경에서 여러 플랫폼을 지원하는 Web/PC/Mobile Application을 만들려는 거죠.

Cappuccino

JavaScript에 Objective-C의 문법을 추가한 Objective-J를 가지고 Cocoa Framework와 유사한 Framework을 지원합니다. 기존의 Mac OSX/iPhone 개발자들이 쉽게 적응할 수 있는게 장점입니다.
280Slides 같은 완성된 결과물을 보면 상당히 매력적입니다.
그러나 아이러니하게도 아직은 iPhone이나 iPad에서 터치가 제대로 동작하지 않아요(?)

Appspresso

HTML & CSS, JavaScript로 만들어진 Web App를 안드로이드/아이폰 App으로 변환해주는 framework입니다.
개발환경은 eclipse의 plugin인 형태로 제공되며 target mobile의 simulator와 연동됩니다.

Titanium

HTML, CSS, JavaScript, Ruby, Rython, PHP를 사용해서 Desktop이나 안드로이드/아이폰 App을 제작할 수 있는 개발 플렛폼을 제공합니다. 대표적인 결과물이 Wonderlist입니다. 프로젝트를 생성하고 컴파일해서 simulator에 돌려볼 수 있는 멋진 환경을 제공합니다만 Appspresso처럼 편집/수정하고 디버깅할 수 있는 eclipse같은 환경은 아직 제공되지 않습니다.(공짜버전이라 그런지도 --;) 다른 환경에 비해 맘에 드는 언어를 선택할 여지가 많다는 게 좋네요.



아직 초기 단계라 어느 것이 더 좋다 어느 것이 대세다라고 말하긴 어렵습니다. 태생적인 한계가 있기 때문에 주류가 될 수 있을 지도 확실하지 않구요. HTML5은 아직 스팩도 확정되지 않았고 Web App과 Desktop App의 분명한 경계가 있기 때문에 위와 같은 시도가 빠르게 정착할 것 같지는 않습니다.
하지만 Web App와 Desktop/Mobile App를 동일한 환경에서 개발하고자 하는 의도와 그 도전은 환영입니다. 사실 Web이나 App이나 하고자 하는 목표는 같은데 여러개의 target을 지원하는데 너무 비용이 드는 것이 현실입니다. 너무 많은 디바이스, 너무 많은 표준, 언어, 시스템, 라이브러리, framework. 결과를 내는데 너무 많은 방법과 도구가 있다는 것이 오히려 혼란스럽고 방해가 되는지도 모릅니다.
Posted by luuvish


XBMC가 AppleTV2와 iPhone/iPad로 porting 되었습니다.

오픈소스 프로젝트이므로 자유롭게 다운받아 Xcode로 컴파일해서 돌려 볼 수 있습니다.
다만 몇가지 제약으로 인해 탈옥된 디바이스에만 올릴 수 있습니다.

탈옥을 했다는 전제하에 아래의 내용을 따라가시면 됩니다.
탈옥한 디바이스에는 AppSync가 설치되어 있어야 합니다.



CodeSign을 속이기 위한 설정

(http://www.alexwhittemore.com/?p=398 참조)
$ cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk
$ sudo cp SDKSettings.plist SDKSettings.plist.orig
$ sudo vi SDKSettings.plist
<key>CODE_SIGNING_REQUIRED</key> 을 찾아 그 아래줄의
<string>YES</string> 을 <string>NO</string> 로 수정
<key>ENTITLEMENTS_REQUIRED</key> 을 찾아 그 아래줄의
<string>YES</string> 을 <string>NO</string> 로 수정

$ cd /Developer/Platforms/iPhoneOS.platform/
$ sudo cp Info.plist Info.plist.orig
$ sudo vi Info.plist
<key>CODE_SIGN_CONTEXT_CLASS</key> 을 찾아 그 아래줄의
<string>XCiPhoneOSCodeSignContext</string> 을 <string>XCCodeSignContext</string> 로 수정
CODE_SIGN_CONTEXT_CLASS 가 한번 더 나오므로 위와 같이 한번 더 수정

$ cd ~/Desktop
$ vi script

아래의 내용을 카피해서 script file을 만듭니다.
#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support

$ chmod 777 script
$ ./script

$ mkdir /Developer/iphoneentitlements401
$ cd /Developer/iphoneentitlements401
$ curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
$ mv gen_entitlements.txt gen_entitlements.py
$ chmod 777 gen_entitlements.py



키체인 만들기

$ open /Applications/Utilities/Keychain\ Access.app/

키체인 프로그램이 열리면
Keychain Access (키체인 접근) 메뉴의 Certificate Assistant (인증 지원) 에서
Create a Certificate (인증서 생성) 를 선택

'Name (이름)' : 'iPhone Developer'
'Identity Type (신원 유형)' : 'Self Signed Root (자체 서명 루트)'
'Certificate Type (인증서 유형)' : 'Code Signing (코드 서명)'

위와 같이 iPhone Developer 라는 이름의 코드 서명을 만듭니다.
인증서가 만들어지면 정보입수에서 신뢰를 항상 신뢰로 설정합니다.



XBMC 컴파일하기

XBMC의 iOS branches source를 받아옵니다.
$ git clone https://github.com/xbmc/atv2.git xbmc

일부 툴들이 설치되어 있지 않을 수 있습니다. fink나 port로 설치해야 합니다.
$ sudo fink install autoconf help2man
$ cd xbmc
$ sudo mkdir -p /usr/local/bin
$ sudo cp tools/osx/ios-depends/gas-preprocessor/gas-preprocessor.pl /usr/local/bin/

컴파일을 시작합니다. 상당한 시간이 걸립니다.
$ make -C tools/osx/ios-depends
$ make -C tools/osx/ios-depends/xbmc
$ make xcode_depends

두가지 타겟중 필요한 것을 생성합니다.
$ xcodebuild -project XBMC-IOS.xcodeproj -target XBMC -configuration Release build ONLY_ACTIVE_ARCH=YES ARCHS=armv7 VALID_ARCHS=armv7 IPHONEOS_DEPLOYMENT_TARGET=4.1 SDKROOT=iphoneos4.2
$ xcodebuild -project XBMC-ATV2.xcodeproj -target XBMC -configuration Release build ONLY_ACTIVE_ARCH=YES ARCHS=armv7 VALID_ARCHS=armv7 IPHONEOS_DEPLOYMENT_TARGET=4.1 SDKROOT=iphoneos4.2
Posted by luuvish
TAG ffmpeg, ios, xbmc
VLC는 한번에 제대로 컴파일된 적이 없네요. iOS 버전은 최근에 작업중인지 그나마 덜 고생하고 컴파일 성공했습니다. 프로젝트들이 얽혀있어 분석이 쉽진 않겠네요.

$ tar jxvf VLC-1.1.0-iOS.tar.bz2
$ ln -s VLC-1.1.0-iOS vlc
$ cd vlc/extras/package/ios
  • build_for_iOS.sh 을 열어서 SDK 버전을 수정합니다. 현재 최신버전은 4.2.sdk입니다. IOS_SDK_ROOT="${DEVROOT}/SDKs/iPhone${PLATFORM}3.2.sdk"
  • build_for_iOS.sh 를 실행해서 컴파일해 보면 중간에 에러가 나면서 멈춥니다. patch file의 버전문제인데 ../../contrib/src-arm-apple-darwin10-ios/src/Patches/live-inet_ntop.patch의 161-185 라인을 참고해서 ../../contrib/src-arm-apple-darwin10-ios/src/live/liveMedia/RTSPServer.cpp을 직접 수정하면 됩니다. our_inet_ntoa()의 두번째 인자로 buf를 추가하기만 하면됩니다.
  • 이제 build_for_iOS.sh를 실행해서 컴파일합니다. 완료되면 vlc/install-ios-OS에 해더와 라이브러리가 생성됩니다.
  • MobileVLCKit의 static plugins를 build합니다.
$ cd vlc/projects/macosx/framework
$ xcodebuild -project MobileVLCKit.xcodeproj -target "Aggregate static plugins" -configuration "Release"
  • MobileVLCKit의 MobileVLCKit의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileVLCKit.xcodeproj
fix Targets/MobileVLCKit - Get Info / Build
Configuration : All Configurations
Architectures / Base SDK : Latest iOS
$ xcodebuild -project MobileVLCKit.xcodeproj -target "MobileVLCKit" -configuration "Release"



MediaLibraryKit compile하기
  • 작업디렉토리(VLC-1.1.0-iOS와 같은 위치)에 MediaLibraryKit 디렉토리를 만들고 압축을 풉니다.
$ mkdir MediaLibraryKit && cd MediaLibraryKit
$ unzip MediaLibraryKit-1.1.0.zip
  • External 디렉토리로 들어가 MobileVLCKit의 링크를 만듭니다.
$ ln -s ../../vlc/projects/macosx/framework/build/Release-iphoneos MobileVLCKit
  • MediaLibraryKit의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileMediaLibraryKit.xcodeproj
fix Targets/MobileMediaLibraryKit - Get Info / Build
Configuration : All Configurations
Architectures / Base SDK : Latest iOS
$ xcodebuild -project MobileMediaLibraryKit.xcodeproj -configuration "Release"



MobileVLC compile하기
  • 작업디렉토리(VLC-1.1.0-iOS와 같은 위치)에서 MobileVLC의 압축을 풉니다.
$ tar zxvf MobileVLC-1.1.0.tar.gz
$ cd MobileVLC
  • External 밑에 있는 MediaLibraryKit와 MobileVLCKit의 링크가 제대로 되어있는지 확인합니다.
  • MobileVLC의 SDK 버전을 최신버전으로 수정하고 build합니다.
$ open MobileVLC.xcodeproj
fix Targets/MobileVLC - Get Info / Build
Configuration : All Configurations
Architectures / Architectures : Standard (armv6 armv7)
Architectures / Base SDK : Latest iOS
build with Device-Release configurations

Posted by luuvish
TAG ffmpeg, ios, vlc
한국의 맥 사용자에겐 거의 필수 유틸인 Movist를 컴파일해 보았습니다. 코드 업데이트도 안된지 꽤 되었고 그동안 snow leopard에서는 컴파일이 안되는 줄 알았는데 몇번의 시행 착오 끝에 컴파일에 성공했습니다. 컴파일은 되지만 동작이 정말 잘 되는지는 모르겠지만요.




Movist 홈페이지 : http://cocoable.tistory.com/
Movist 구글코드 페이지 : http://code.google.com/p/movist/
Movist 소스 저장소 : http://movist.googlecode.com/svn/trunk

Movist를 compile 하기 위해서는 git와 yasm이 설치되어 있어야 합니다.





FFmpeg library compile하기
    $ svn checkout http://movist.googlecode.com/svn/trunk movist
  • 우선 Movist 소스코드를 가져옵니다.
  • movist/contrib 에 있는 bootstrap 파일을 수정합니다.
    • SDK_TARGET=10.4 를 SDK_TARGET=10.6 으로 수정
      MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk 를 MacOSX10.6.sdk 으로 변경
  • movist/contrib/src 에 있는 build_ffmpeg_mt.sh 파일을 수정합니다.
    • SDK_TARGET=10.4 를 SDK_TARGET=10.6 으로
      MACOSX_SDK = /Developer/SDKs/MacOSX10.4u.sdk 를 MacOSX10.6.sdk 으로
      #git clone git://git.ffmpeg.org/libswscale/ ffmpeg-mt/libswscale 의 주석 #를 제거합니다.
  • movist 디렉토리에서 build_extlib.sh를 실행합니다.
  • patch 파일이 뭔가 문제가 있지만 컴파일은 일단 잘 됩니다.
  • movist/contrib/lib 에 필요한 라이브러리가 생성되었습니다.

Movist compile하기
  • Movist project 을 Xcode로 엽니다.
  • Targets에 있는 Movist의 Info 창을 엽니다.
  • Architectures 항목의 Base SDK 란을 Latest Mac OS X 로 변경합니다.
  • Linking 항목의 Other Linker Flags 의 MacOSX10.4u.sdk를 MacOSX10.6.sdk로 변경합니다.
  • build 해보면 무수한 error message가 나올 겁니다. MMovie_QuickTime.h 의 #import <QTKit/QTKit.h> 가 다른 해더보다 뒤에 올 때 이런 문제가 생깁니다. SDK가 버전업되면서 해더의 dependency에 문제가 생긴 모양입니다. 제일 단순한 해결책은 (정석은 아니지만) Movist.h 파일의 맨 위에 #import <QTKit/QTKit.h> 를 추가하는 것입니다.
  • 이제 문제없이 build 됩니다. ppc일 때 제대로 도는지는 모르겠네요.

Posted by luuvish
요즘 iPhone/iPad 에서 무인코딩으로 동영상을 볼 수 있는 앱으로 잘 나가는 AV Player를 iOS SDK로 compile해 볼 수 있습니다. FFmpeg license 문제로 컴파일할 수 있는 코드가 공개되어 있습니다. 물론 중요한 부분은 library로 묶여있지만 앱의 전체적인 모습과 GUI 구성, FFmpeg library를 어떻게 컴파일해서 합쳤는지 좋은 참고자료가 될 듯 합니다.


준비물

FFmpeg library만들기
  • AVPlayer-XCode.zip을 작업할 폴더에 풉니다.
  • __MACOSX 폴더는 지우세요.
  • AVPlayer 안에 FFMPEG 디렉토리로 이동합니다.
  • gas-preprocessor.pl을 /usr/local/bin으로 복사합니다.
  • build-armv7으로 armv7용 library만 만드는 것도 가능하지만 combine-libs를 보면 뭔가 이상하죠? 사실 이 스크립드의 원본은 gabriel의 ffmpeg ios compile script입니다. 제대로 armv6, armv7, i386 library를 만들어서 universal library를 만들어 봅시다.
  • build-ffmpeg-ios.tar.gz

  • 위의 첨부된 파일을 받아 FFMPEG 디렉토리에 풉니다.
  • gabriel의 소스에서 svn의 revision을 고정했고 target 마다 별도의 svn source를 다운하지 않도록 변경되었고 configure의 option이 수정되었습니다. --enable-postproc 이 제거되었고 --enable-gpl 을 off 시켰습니다. gpl option을 켜면 LGPL license가 아닌 GPL license가 됩니다. 모든 소스를 공개해야 되죠. 마찬가지의 이유로 LGPL의 경우 libx264나 libxvid를 사용할 수 없게 됩니다.
  • 이제 순서대로 build-armv6, build-armv7, build-i386 스크립트를 실행합니다. ffmpeg 사이트에서 소스를 checkout해 온 후 configure, make를 순서대로 수행하게 됩니다.
  • 모든 target의 library가 compile되면 ffmpeg-armv6/dist, ffmpeg-armv7/dist, ffmpeg-i386/dist에 include, lib 디렉토리가 만들어지고 해더와 라이브러리가 생성됩니다.
  • combine-libs를 실행해서 모든 target의 library를 합칩니다. ffmpeg-uarch에 최종 헤더와 라이브러리가 만들어집니다.

AVPlayer compile하기
  • Xcode로 AVPlayer project를 엽니다.
  • Targets 에서 AVPlayer/AVPlayerHD의 Info 창을 엽니다.
  • Search Paths 항목의 Header Search Paths 란의 내용을 수정합니다. $(SRCROOT)/FFMPEG/ffmpeg-uarch/include, $(SRCROOT)/FFMPEG/ffmpeg-armv7/dist/include 이런식으로 수정하고 Recursive를 체크하면 됩니다.
  • Search Paths 항목의 Library Search Paths 란의 내용을 수정합니다. $(SRCROOT)/FFMPEG/ffmpeg-uarch/lib, $(SRCROOT)/FFMPEG/ffmpeg-armv7/dist/lib 식으로 수정하고 Recursive를 체크하면 됩니다.
  • AVPlayer/LIBS/FFMPEG 밑의 libavcodec.a, libavcore.a, libavdevice.a, libavfilter.a, libavformat.a, libavutil.a, libswscale.a의 Info 창을 열고 경로를 수정합니다. AVPlayer/FFMPEG/ffmpeg-uarch/lib 밑에 있는 library를 지정하면 됩니다.
  • 프로젝트의 라이브러리 설정은 모두 수정되었습니다. 이제 build 버튼만 누르면 됩니다. 단, 주의하실 점은 Simulator로는 build가 되지 않습니다. libAVPlayerLib.a에 AVPlayer의 중요한 코드들이 모두 숨어있는데, 이 라이브러리가 i386으로 compile 되어 있지 않습니다. arm용으로만 compile되어 있기 때문에 Device로만 bulid 가능합니다.
Posted by luuvish
 Head First Java 를 완독하고 뭔가 배운걸 티내볼까 하다가 간단한 프로그램을 짜보는게 좋겠다고 생각했습니다. 그래서 항상 작업하면서 아쉬웠던 툴을 만들어 보자고 시작한 프로젝트입니다.

 사실 Java는 기본적인 문법은 10년전에 알고 있었지만 써먹을 기회가 없었습니다. (솔직히 Java를 배울 당시에는 Java가 이렇게 까지 유명해지고 쓸모있을 줄 몰랐죠) Java와 아무 상관없는 일을 하다 보니 Java가 어떻게 발전하고 사용되어 왔는지 잘 몰랐죠. 정신을 차리고 보니 어느덧 Java는 C 언어 만큼 (혹은 그 이상) 많이 사용하는 언어가 되었습니다. 사용하지는 않더라도 알고 있어야 하는 기본 언어가 되어버렸습니다. 그래서 Head First Java를 읽었습니다.

 Head First 시리즈는 초보자용 책이 아닙니다. 그림도 많고 예제가 많아서 초심자가 보는 책이라고 생각하고 읽으면 분명 후회합니다. 그렇다고 전문가용 책도 아닙니다. 복잡하고 난해하고 잘 사용하지 않는 내용은 다루지 않습니다. 정상적인 프로그래머가 알아야 할 기본적이고 핵심적인 사항을 정확하게 이해하기 위해 노력한 책으로 평가하고 싶습니다. 저처럼 기본적인 건 알고 알고 있는 것중 약간 부정확하거나 헛갈리는 것, 그리고 다시 정리해서 이해해야 하는 저의 상황에 정확히 맞는 책이었습니다. Head First Java 덕분에 inner class를 이해하게 되었고 jar package와 jini 등을 구별하게 되었습니다. 물론 template 같은 경우는 사용할 수 있으나 만들 수는 없구요. 이정도의 수준만 되면 나머지는 java api document나 코딩하면서 익힐 수 있으니까 전문가처럼 능숙하지는 않아도 그럭저럭 코딩할 수 있겠죠... 아마..?

YuvViewer-0.1.jar


 YUV Viewer 입니다. YUV 4:2:0, 4:4:4 등의 file을 이미지로 보여주는 툴입니다. 복수개의 YUV 이미지를 화면에 보여주고 display할 수 있습니다. 뭐 자세한 건 생략할게요. 아는 사람은 쓰고 모르는 사람은 안쓰는 툴입니다. (--;)

 사용하기 위해서는 위의 첨부된 파일을 받으시고 콘솔에서 java -jar YuvViewer-0.1.jar 라고 타이핑하시거나 그냥 더블 클릭하셔도 됩니다. java runtime은 깔려 있어야 겠죠?


 습작이라 손 볼 곳은 많지만 우선은 이정도로 정리하고 올립니다. 저작권 같은 건 없으니 필요한 건 알아서 고치시면 됩니다. jar 안에 소스도 포함시켰어요. 잘 안 돈다고 뭐라하셔도 할 말 없고 수정했으니 반영하라고 던져주셔도 곤란합니다. 좀 여유가 생기면 수정된 버전을 만들지도 모르지만 약속드릴 수 없습니다.

 Java 자체도 조금 느리긴 하지만 최적화 할 여지가 몇군데 있습니다. YUV to RGB conversion은 일부러 최적화하지 않고 그대로 두었습니다. play mode나 fast backward/forward 일 때 이미지 로드 루틴을 thread로 분리하고 decoding된 frame들을 buffering 해야 하는데 이것도 아직 하지 않았습니다. 귀찮기도 하고 굳이 viewer가 realtime일 필요가 없었거든요. :-) 우선 최적화 되지 않은 코드로 작성하고 나중에 최적화해서 얼마나 차이가 나나 보고 싶기도 했었어요. 그런데 어느 정도 도니까 귀찮아졌네요. 언젠가는 고치겠죠?
Posted by luuvish
TAG java, swing, viewer, yuv


01. Code Complete 2/E 

02. Refactoring 

03. Design Patterns: Elements of Reusable Object-Oriented Software 

04. The Practice of Programming 

05. The Pragmatic Programmer 

06. Programming Pearls, 2/E 

07. Joel on Software 

08. More Joel on Software 

09. I. M. Wright's Hard Code 

10. The Art of UNIX Programming 

11. Coders at Work 

12. Peopleware 

13. The Mythical Man-Month 

14. The C Programming Language 

15. Effective Java 2/E 

16. Head First Java 

17. Effective C++ 3/E 

18. More Effective C++ 

19. The C++ Programming Language 3/E 

Posted by luuvish
에서 발췌했습니다.


[정보]iPhone & iPodTouch와 SDK 연대기 

01. 2007-01-10 / [MWSF2007] iPhone 발표*** 

02. 2007-08-29 / Apple 'special event' - 2007년 9월 5일 확정 (iPodTouch 발매)*** 

03. 2007-09-11 / iPhone, 100만대 판매 달성 

04. 2007-10-12 / Apple 공인 iPhone iPod touch용 Web apps 모음 

05. 2008-01-16 / [MWSF2008] iPod touch 소프트웨어 업그레이드 발표 

06. 2008-01-16 / [MWSF2008] iPhone의 1.1.3의 업데이트 
새롭게 변한 것은 
1.구글맵으로 현재 자신의 위치를 찾을 수 있습니다. 
2. 사파리를 통해 북마크를 하던 것을 바로가기 아이콘을 만들어 홈스크린 배치. 
3. 홈스크린에 있는 아이콘의 위치를 마음대로 바꿀 수 있습니다. 
4. SMS 메세지 보내기가 한 사람만 보낼 수 있었던 것을 다중 가능. 

07. 2008-02-27 / iPod Touch 32G 전자파 인증 완료 (한국개통용) 

08. 2008-02-29 / iPhone SDK 스페셜 이벤트 3월6일 개최*** 

09. 2008-03-28 / iPhone SDK (build 9A2151) 배포 

10. 2008-05-07 / iPhone SDK (build 9M2173a, beta 5) 배포 

11. 2008-06-10 / [WWDC 2008] iPhone 3G 발표*** 

12. 2008-06-10 / iPhone SDK (build 9M2199, beta 7) 배포 

13. 2008-06-27 / iPhone SDK Beta 8 Build 9M2199a, iTunes 7.7 배포 
App Store 어플리케이션 접수 실시 

14. 2008-07-10 / App Store도 열렸네요***** 

15. 2008-07-10 / App Store Korea 확인 

16. 2008-07-11 / MobileMe Service 시작한 듯 *** 

17. 2008-07-12 / MobileMe 1.1 Update 

18. 2008-07-14 / Apple 3일만에 iPhone 3G 100만대 팔아 

19. 2008-07-15 / AppStore 3일만에 1,000만건이상 다운로드 

20. 2008-07-21 / iPodTouch 펌웨어 1.1.5 배포 

21. 2008-08-05 / iPhone 2.0.1 발표 

22. 2008-08-05 / iPod touch 용 iPhone Software 2.0.1 업데이트 

23. 2008-08-19 / iPhone Software Update 2.02 배포 

24. 2008-08-22 / iPhone 2차 판매개시국 : 1차 판매 개시 22개국 / 2차 판매 개시 22개국 *** 

25. 2008-09-10 / iPhone, iPod touch 2.1 소프트웨어 업데이트 9월12일 발표 

26. 2008-09-12 / iPhone SDK for iPhone OS 2.1 (build 9M2517) 배포 

27. 2008-09-12 / iPhone 펌웨어 2.1 배포 

28. 2008-10-02 / 애플, 아이폰 NDA 포기***** 

29. 2008-11-21 / Touch 2세대 Firmware 2.2 업데이트 

30. 2008-11-23 / iPhone SDK for iPhone OS 2.2 배포 

31. 2009-01-17 / 애플, App Store 다운로드 5억건 돌파 

32. 2009-03-18 / iPhone OS 3.0 발표 

33. 2009-04-01 / iPhone OS 3.0 Beta 2 출시 

34. 2009-04-15 / iPhone OS 3.0 Beta 3 출시 

35. 2009-04-24 / App Store 10억 다운로드 완료 

36. 2009-04-29 / iPhone OS 3.0 Beta 4 출시 

37. 2009-05-07 / iPhone OS 3.0 Beta 5 배포 

38. 2009-06-09 / [WWDC2009] iPhone 3Gs 발매 ***** 

39. 2009-06-09 / iPhone OS 3.0 GM Seed 배포 

40. 2009-07-15 / iPhone OS 3.1 Beta 2 배포 

41. 2009-07-28 / iPhone OS 3.1 Beta 3 배포 

42. 2009-08-01 / Apple iPhone - 3.0.1 배포 

43. 2009-09-10 / Apple iPhone OS 3.1 발표 

44. 2009-09-29 / App Store 다운로드, 20억건 돌파 

45. 2009-10-09 / iPhone, ipod Touch 0S 3.1.2 소프트웨어 업데이트 발표 

46. 2009-11-04 / AppStore 10만 개 App 돌파 

47. 2009-11-25 / 드디어 애플사이트에 태극기 등극 
Posted by luuvish