iOS42010. 6. 11. 13:26
애플이 ARM을 인수 한다는 루머가 돌고 있다고 합니다.
참고 : http://www.reuters.com/article/idUSTRE65928620100610
의견이 분분한데요...

제 의견은 "인수할 필요가 없다. 인수하지 않을 것이다."입니다.

왜냐고요?
애플이 스마트폰 경쟁사인 삼성의 Cortex A8을 아이폰 3GS에 적용했고, 아이폰4에 적용된 A4 칩도 삼성에서 생산했다고 하니, 경쟁사 입장에서 스마트폰과 메인 CPU를 모두 만들 수 있는 삼성을 견제하기 위해서라도 ARM을 인수할 것 같지만...
전혀 그럴 필요가 없습니다.

ARM은 코어일 뿐입니다. 이것만 가지고는 아무것도 할 수 없습니다.
ARM을 인수하더라도 생산은 지금처럼 삼성에서 할 수 있습니다. 결국 지금과 달라지는 것은 없다는 거죠. 

A4는 ARM 코어에 3D 가속기, Mobile DDR 등등의 부가 회로를 추가하여, 애플이 설계했습니다.
이 과정에서 삼성이 필요할까요? 정답은 '필요 없다'입니다.

그럼 왜 경쟁사인 삼성이 끼어 있을까요?
애플이 설계한 A4칩을 가장 싸게 잘 만들어 주겠다고 애플에게 약속한것이지요?
과연 애플이 먼저 삼성에게 '너희들이 A4 만들어줘야돼. 꼬옥!'이라고 부탁했을까요?

아니죠... 아니죠... 애플은 팹을 가진 회사들에게 '이런이런 칩을 생산하고 싶은데, 
너희들 할수 있어? 할 수 있으면 얼마에 해줄건데?'라고 물었겠죠.

이 과정에서 중국업체, 대만업체, 일본업체, 한국업체... 등등... 다 덤벼 들었겠죠.
그러나 칩의 공정 안정도나 수율로 봤을 때 삼성을 따라올 곳이 없었다는 거죠.
그래서 삼성에서 칩을 공급. 이렇게 된 시나리오겠죠.

결국 애플이 ARM을 인수하더라도, 삼성과 애플 사이의 스마트폰 경쟁에서 애플이 더 유리해질 가능성은 매우 낮다는 겁니다.
이를 인수에 따른 시너지 효과가 크지 않다라고 표현들 한다지요...

PC용 칩도 자체 칩에서 Intel 칩으로 모두 바꿔버린 애플이 과연 다시 CPU를 만들려고 할 필요가 있을까요?
적어도 애플은 과거의 실패를 다시 반복하지 않는 지난 역사를 보면 쓸데 없는 짓은 안할거라 생각합니다.

애플은 이제 부품 하나하나에 나만의 것을 고집하지 않고 있습니다.
그냥 지구 상에서 젤 좋은 것들 중에 그냥 골라다 쓰고 있습니다. 애플의 브랜드 가치의 힘을 뒤에 엎고 말이죠.
애플은 소프트웨어와 컨텐츠를 기반으로 하여 생활을, 문화를 팔고 있습니다.

애플은 하드웨어 장사꾼이 아닙니다. 
애플은 생활을 팔고, 문화를 팔고, 미래를 팔고 있습니다.
인정하고 싶지 않지만, 전세계가 끌려가는 모습을 보고 있자니 씁쓸함을 금할 수 없네요.

30년전 애플의 실패 원인 중 하나는 하드웨어 장사에 치중했다는 것이겠지요.
그러다 오픈된 시스템 아키텍처의 등장으로 역사의 그림자 속으로 들어 갔었죠.

어쩌면 지금도 그때와 비슷하지 않은가 싶습니다.
폐쇄적 시스템인 iOS와 이를 공격하기 위한 오픈 시스템인 Android.
30년 전의 Apple PC와 IBM PC와의 전쟁을 다시 재현하고 있는것 같아 보입니다.

# 첨언 #
이렇게 글을 써 놓고 보니, 제가 엄청난 애플빠 같아 보입니다. 제가 봐도 그렇네요.
저는 애플의 제품에 빠진게 아니라, 애플이 만들어가는 미래에 빠져 있습니다.

그리고 애플이 만들어 가는 미래에 뭔가 먹고 살것이 없을까 하고 고민하고 있습니다. ^^
제발 부탁인데 우리도 이런 미래를 만들어 볼 수만 있다면...
삼성이 가능할까요? 제발 좀 그래 주세요. 넹?
그럼 영어로된 문서 힘들게 읽으면서 고민하지 않아도 될텐데 말입니다.


최종 수정일 : 2010.06.11
Posted by 고처리
iOS42010. 6. 10. 12:50
출처 : http://www.pcworld.com/zoom?id=193845&page=1&zoomIdx=1

iOS 4.0 vs. Android 2.0 vs. Windows Phone 7 vs. Palm webOS 을 비교한 도표.




최종 수정일 : 2010.06.10
Posted by 고처리
iOS42010. 6. 9. 21:40
iOS 4의 pre-release 버전인 iOS 4 GM seed를 설치 했다.
사실 beta 1부터 꾸준히 내 터치를 마루타로 사용하고 있던터이다.

어제 재밌는 사실을 하나 발견했다.
멀티태스킹의 지원이 확정된 후부터 꾸준이 언급되던 부분이긴 한데, 멀티태스킹 시 중단된 앱을 다시 실행 시킬 경우, 마지막 상태를 복구하게 한다는 것이었다. 사실 이건 당연한 것이다. 왜? 멀티태스킹이니까?

그런데 왜 재밌다고 표현을 하는 걸까? 
이 기능을 지원하기 위해서 앱에서 뭔가 작업을 해 줘야 할 것으로 생각했다. 즉 기존의 앱들은 iOS 4용으로 쬐끔 수정이 되어야 할거라 생각했지만...
결과는 '그냥 된다'이다. 물론 모든 앱을 테스트 한 것은 아니지만 일단 앱을 수정하지 않아도 마지막 상태 복구가 된다는 것은 기대 이상이다.

앱을 하나 띄운다. 아래 화면은 초기 화면이다.


다른 기능을 동작 시킨다. 이젠 초기 화면 상태가 아니다.


그냥 홈 버튼 눌러서 나가버린다.


이전 버전 같으면 다시 실행 시키면, 초기 화면이 나타나겠지만, iOS 4는 아까 마지막 화면이 보인다.

홈 버튼 두번 눌러서, 아래 그림처럼 멀티테스킹 전환을 사용하지 않아도 된다. 


그냥 종료 시켜도 다시 실행하면 마지막 상태로 돌아온다.

모든 앱이 되진 않을 것이다. 특히 게임은 어림도 없을 거란 예상을 한다.

마지막 수정일 : 2010.06.09
Posted by 고처리
iOS42010. 6. 9. 19:40
이글에서 사용된 이미지의 원본은 http://developer.apple.com/iphone/index.action에서 볼 수 있다(개발자 프로그램 가입 필요).

2010년 6월 7일(미국 현재 시간) iPhone4의 발표와 함께, Apple iPhone Dev Center에 iPhone SDK 4GM seed와 iOS 4 GM seed가 올라왔다.
GM seed는 pre-release 버전으로 아마도 정식 출시 전의 마지막 버전이 되겠다.


Per-release 버전이라고는 하지만, 6월 10일 부터는 iPhone SDK 4GM seed로 개발된 앱을 제출 받겠다는 것으로 봐서는 정식 버전과 차이가 없다고 봐도 무방하지 않을까 싶다.


iOS4를 설치하기 위해서는 itunes 9.2 beta가 반드시 필요하다.


iAd 사용을 위한 SDK 도 공개되었다. 
뒤에 JS가 붙고 WebKit-based라고 하는 것으로 봐서, JS가 Java Script의 약자가 아닐까???라고 생각해 봤지만...
iAd Programming Guide를 대충 살펴본 결과 JS와 Java Script는 상관이 없는것 같다. ^^


최종 수정일 : 2010.06.09
Posted by 고처리
Mac OS X/Cocoa2009. 5. 1. 17:18

이글의 작성 의도는 [이곳]을 참조하라.

Hello_MacOSX application을 Finder에서 보면, Hello_MacOSX이라는 이름의 단일 파일로 보이나, 터미널 상에서 보게되면 Hello_MacOSX.app라는 이름의 디렉토리로 보인다.

결국 Finder에서 보이는 모습은 일반 사용자들의 혼란을 줄이기 위해 눈속임을 하고 있는 것이다.


디렉토리의 구조를 보면 다음과 같다.


Hello_MacOSX.app

Contents

Info.plist

MacOS

Hello_MacOSX

PkgInfo

Resources

English.lproj

InfoPlist.strings
MainMenu.nib


내친 김에 iPhone application의 디렉토리 구조도 보자.


Hello_iPhone.app

Hello_iPhone

Info.plist

MainWindow.nib

PkgInfo

RootViewController.nib


Mac OS X application 보다 좀 썰렁해 보인다.


그러나 잘 살펴보면 내부에 하위 디렉토리를 가지지 않을 뿐이지 구성 파일은 동일한 것을 알 수 있다.(파란색이 표기된 넘들이 파일이다.)



최초 작성일 : 2009년 5월 1일 / 최종 수정일 : 2009년 5월 1일

'Mac OS X > Cocoa' 카테고리의 다른 글

Mac OS X과 iPhone application project directory 비교  (0) 2009.05.01
Objective-C  (0) 2009.03.09
Cocoa Programming - XCode 2  (0) 2009.03.08
Posted by 고처리
Mac OS X/Cocoa2009. 5. 1. 16:06
이글의 작성 의도는 [이곳]을 참조하라.


오늘 심심한 김에, Xcode가 생성한 Max OS X application과 iPhone application project를 비교해 보았다.


Mac OS X application은 Cocoa Application으로 생성하였고,

iPhone application은 Navigation-Based Application으로 생성하였다.


기본 파일 구성은 그리 다르지 않아 보인다.

단지 iPhone application 쪽에는 두 개의 클래스 파일이 더 추가되어 있는 것을 볼 수 있다. 이 정도 차이 쯤이야...


그런데 눈에 띄는 부분이 있다. xib 파일의 위치이다. 

Mac OS X application은 각 언어별로 lproj 디렉토리가 생성되고 그 하위에 배치되는 반면,

iPhone application은 프로젝트 루트에 위치하고 있다.


Hello_MacOSX

build

Hello_MacOSX.build

Hello_MacOSX.pbxindex

categories.pbxbtree

cdecls.pbxbtree

decls.pbxbtree

files.pbxbtree

imports.pbxbtree

pbxindex.header

protocols.pbxbtree

refs.pbxbtree

strings.pbxstrings

control

strings

subclasses.pbxbtree

symbols0.pbxsymbols






English.lproj

InfoPlist.strings

MainMenu.xib

Hello_MacOSX_Prefix.pch

Hello_MacOSX.xcodeproj

Info.plist

main.m

Hello_iPhone

build

Hello_iPhone.build

Hello_iPhone.pbxindex

categories.pbxbtree

cdecls.pbxbtree

decls.pbxbtree

files.pbxbtree

imports.pbxbtree

pbxindex.header

protocols.pbxbtree

refs.pbxbtree

strings.pbxstrings

control

strings

subclasses.pbxbtree

symbols0.pbxsymbols

Classes

Hello_iPhoneAppDelegate.h

Hello_iPhoneAppDelegate.m

RootViewController.h

RootViewController.m




Hello_iPhone_prefix.pch

Hello_iPhone.xcodeproj

Info.plist

main.m

MainWindow.xib

RootViewController.xib



최초 작성일 : 2009년 5월 1일 / 최종 수정일 2009년 5월 1일

'Mac OS X > Cocoa' 카테고리의 다른 글

Mac OS X과 iPhone application directory 비교  (0) 2009.05.01
Objective-C  (0) 2009.03.09
Cocoa Programming - XCode 2  (0) 2009.03.08
Posted by 고처리
잡동사니2009. 3. 11. 00:53
이글의 작성 의도는 [이곳]을 참조하라.
다음 링크 참조.

역시... 뚫리게 되어 있고, 시장은 커지게 되어있고... ^^


최초 작성일 : 2009년 3월 11일 / 최종 수정일 : 2009년 3월 11일
Posted by 고처리
Mac OS X/Cocoa2009. 3. 9. 20:38
이글의 작성 의도는 [이곳]을 참조하라.

C/C++과 MFC에 너무 오랜 시간 노출된 탓일까?
아니면 이제 나이가 들어서 이해력이 많이 떨어진 것일까?
어쨌든 Objective-C는 한두시간만 보면 알 수 있다는 다른 사람들의 글을 보면서, 나 자신에 대한 성찰을 한번 해보고 있다. ^^

Objective-C는 FSF(Free Software Foundation)의 GNU C 컴파일러의 일부분으로 공개된 표준 컴파일러이다. Cocoa는 Objective-C로 개발되었고, Cocoa 프로그래밍은 대부분 Objective-C로 가능하다.

"@" 예악어

Objective-C에서 새로 추가된 예약어.
  • @interface ~ @end
    *.h 파일 내에 선언되는 클래스의 시작과 끝을 지정

  • @implementation ~ @end
    *.m 파일 내에서 클래스이 구현 부분의 시작과 끝을 지정

  • @"string"
    아스키 문자열을 NSString 문자열로 변환. 2바이트 문자는 UTF8로 처리해야 함. 어떻게 하는지는 아직 모름.

클래스 선언




메서드 선언

함수 선언 앞에는 - 또는 +가 붙는다.

- : 인스턴스 함수
+ : 클래스 함수. static 함수



메서드 호출(메시지 보내기)

[객체명 메시지명]의 형태로 호출한다. 메시지명은 메서드를 의미한다. 메서드를 호출하기 위해서는 객체명의 그 객체가 가지고 있는 메서드명을 적어 주는데, 이렇게 메서드를 호출하는 것을 "메시지를 보낸다"라고 표현한다.

Cocoa의 클래스중 하나인 NSMutableArray를 이용한 예를 보자.

[NSMutableArray alloc]
NSMutableArray 클래스의 alloc 메시지를 보낸다. alloc 메시지는 NSMutableArray 클래스의 객체를 생성한 후, 그 포인터를 반환한다.

1 : NSMutableArray *foo;
2 : foo = [NSMutableArray alloc];
3 : [foo init];

1 : NSMutableArray 클래스의 포인터 변수 선언
2 : NSMutableArray 클래스에 alloc 메시지를 보내, NSMutableArray 클래스의 객체를 생성하고, 포인터를 반환 받는다.
3 : NSMutableArray 클래스 객체인 foo에 init 메시지를 보내어 객체를 초기화한다. 이때 메시지를 받는 것은 NSMutableArray 클래스가 아닌 foo 객체가 된다. 이런 상태를 'foo는 init 메시지의 receiver이다'라고 하고, 메시지는 selector라고 부른다.

위의 코드를 아래와 같이 작성할 수도 있다.

NSMutableArray *foo;
foo = [[NSMutableArray alloc] init];

메시지 호출 시 인자의 전달은 다음과 같이 한다. foo 객체의 addObject 메시지를 호출하면서 인자로 bar를 전달한다.
[foo addObject:bar]

메시지에 인자를 전달하는 경우 "셀렉터이름:인자이름"의 형태로 사용한다.

두 개 이상의 인자를 전달하는 경우에는 다음과 같이 한다.
[foo insertObject:bar atIndex:5]

셀렉터에 전달되어 지는 두 번째 인자부터는 "인자이름:값"의 형태로 값을 전달한다.

사실 이 문법은 아직 그 편리함을 느끼지 못하는 부분이다. 헷갈리기만 한다.


Protocol




Category




참고 자료

일단 부족한 기억력을 보충하기 위해 링크부터 걸고 보자. 자료를 공개해 주신 모든 분들께 감사... 꾸벅






최초 작성일 : 2009년 3월 9일 / 최종 수정일 : 2009년 3월 10일
Posted by 고처리