20110628 :: iOS5 SDK의 새로운 기능들

iOS5는 알림센터와 같은 새로운 사용자 환경이 추가되었지만, 새로운 형태의 앱을 더욱 쉽게 개발할 수 있도록 하는 새로운 기능들이 추가되었다.

iCloud Storage APIs

 

  • 클라우드 저장소인 iCloud를 통해 사용자의 파일을 저장하거나 (iCloud document storage) 사용자의 정보를 애플케이션간에 공유하는 (iCloud key-value data storage) 방법이 생겼다. iOS 및 OSX는 싱크 데몬을 제공하며 이를 통해 앱은 iCloud 환경에 있는 문서를 손쉽게 액세스할 수 있도록 한다.싱크 시 버전 충돌을 해결하기 위한 방법도 제공하고 있다.
  • 키-밸류 데이터를 iCloud에 저장하여 다른 디바이스나 다른 맥에서 동작하는 어플리케이션에게 데이터를 전달할 수 있다. 키-밸류 쌍의 최대 크기는 64KB이며 단일 키의 최대 크기는 4KB를 초과할 수 없다. 이는 NSUbiquitousKeyValueStore 클래스에 의해 제공된다.

 

iCloud Backup

 

iOS5는 iCloud를 통한 자동 백업을 사용할 수 있다. 샌드박스내의 도큐먼트 폴더내의 자료는 자동으로 백업된다.

 

자동 참조수

Objective-C 컴파일러에의해 객체의 참조수는 자동으로 관리된다. 따라서 retain, release, autorelease, dealloc 의 기능은 사용해서는 안된다. 또한 커스텀 retain, release 기능을 구현할 수 없다.

 

  • C구조체 내에 객체의 포인터를 저장하지 말 것
  • 객체와 객체가 아닌 자료형사이에 강제 캐스팅을 하지 말 것
  • NSAutoreleasePool 객체를 사용하지 말 것. 대신에 @autoreleasepool 키워드를 사용하여 오토릴리즈 블럭을 사용할 수는 있다.

Objective-C 컴파일러는 개발자에게 객체 그래프를 생각하고 사용하기를 권장한다. 즉 객체간의 관계를 생각해야지 리테인/릴리즈에 대해서 생각하지 않는 것이다. 이 점에서 ARC는 약한참조제거라는 개념을 포함한다. 즉 약한참조제거의 값은 객체가 해제된 지점을 가리키고 있을 때 nil의 값을 갖는다. 변수는 weak, strong 이라는 새로운 선언 속성값을 갖는다.

 

@property (strong) MyClass *myObject;

@property (weak) MyOtherCloass *delegate;

 

(각각, retain, assign에 대응하는 선언 방식이다)

 

 

스토리보드

 

iOS5에서 개발툴의 가장 큰 변화이다. 메인 nib 파일을 대체하는 스토리보드는 프로그램의 모든 화면 UI를 포함하고 어떤 뷰에서 어떤 뷰로 이동할 수 있는지를 지정하고 그 관계를 그래프로 나타내준다. 뷰간의 이동은 performSeaueWiehIdentifier:sender: 를 통해서 발생하며, 이는 화면 아울렛을 통해 지정이 가능하다.

 

기존 iOS4에서는 새로운 뷰로 이동하기 위해서는 해당 클래스의 인스턴스를 만들어 네비게이션 컨트롤러의 제어를 통했으나, 현재는 스토리보드상에서 모든 작업을 할 수 있다. 즉, 정보를 나열하고 보여주는 브로슈어 앱의 경우에는 IB만 사용하여 완전한 구현이 가능하다.

 

새로운 프레임워크

 

GLKit

오픈GL을 쉽게 다룰 수 있도록 하는 GLKit.

 

CoreImage

비디오와 스틸이미지를 변형하는 파워풀한 필터를 제공한다. 이미지를 보정하는 작업을 할 수 있으며, 얼굴 인식등의 기능도 제공한다.

 

트위터

트위터가 프레임워크로 통합되었다.

 

계정 프레임웍

싱글 사인온을 지원하는 프레임웍

 

일반보안서비스(GSS)

파일보안과 관련된 서비스

 

애플리케이션 디자인 레벨의 개선

UIDocument 클래스 지원.

  • 백그라운드에서 데이터를 비동기적으로 읽고/쓰는 것이 가능하며, 읽고 쓰는 동안에도 사용자의 터치에 반응할 수 있다.
  • iCloud 저장소내의 문서에 접근하는 것이 가능하다.
  • 쓰기 캐시를 지원하여 안전한 파일 쓰기를 지원
  • 파일 쓰기 중 버전 충돌에 대한 해결책 지원
  • 특정 시점에 자동 저장 기능
  • 플랫파일/패키지 파일 지원
  • 코어데이터를 사용하는 앱을 위해 UIManagedDocument 서브 클래스가 지원된다.

 

데이터 보호 개선

UIKit 컨트롤의 커스텀 객체

-대부분의 객체 (툴바와 네비게이션 바, 검색바, 슬라이더 등)의 색상과 배경 이미지, 타이틀 위치를 옮길 수 있다.

– 어떤 객체들은 직접 변경하며 어떤 객체들은 외양 프록시를 통해 기본값을 지정할 수 있다.

외양 프록시는 기본값을 변경하도록 해주는 객체이다.

 

컨테이너 뷰 컨트롤러

컨테이너 뷰는 다른 뷰 컨트롤러를 담는 뷰 컨트롤러인데, UINavigationController, UITabBarController, UISplitViewController 를 말한다. 이러한 뷰 컨테이너가 제공하는 컨텐츠들을 조합하여 다른 컨테이너 뷰 컨트롤러를 만드는 것이 가능하다. 컨테이너 뷰는 뷰컨트롤러의 부모로서 동작하며, 각각의 뷰 컨트롤러에 메시지를 보낼 수 있다.

 

페이지 기반 애플리케이션

책자와 같은 형태로 책장을 넘기며 동일한 템플릿 내에 데이터가 바뀌어 표시되는 형태의 앱을 쉽게 만들 수 있게 되었다. UITableView와 마찬가지로 datasource를 이용하여 책의 내용을 구성하는 것이 가능하다.

 

 

20110607 :: 애플을 절대로 뛰어 넘을 수 없는 당신들에게.

스티브 잡스의 새 세탁기 구매기

스티브 잡스에 대한 이야기는 사실 애플의 키노트만 있은 직후면 워낙에 인터넷 이곳 저곳을 달구는 이야기 소재라, 좀 식상한 감이 없잖아 있습니다. 최근 애플을 이야기할 때는 항상 “혁신”이라는 이야기를 하고 잡스를 이야기할 때는 “해적의 리더십”이라느니 뭐 그런 이야기를 많이들 하고 있습니다. 그러면서 애플 같은 기업 혹은 애플을 뛰어 넘는 기업이 되기 위해서는 우리도 “인문학[1. Liberal Arts]”을 해야 한다는 뭐 그런 이야기들이 나돌면서 때아닌 “인문학” 열풍이 그것도 진짜 “인문학”[2. the Humanities]이 열풍이되는 웃지도 웃지 않을 수도 없는 그런 풍경이 연출되고 있습니다.

하지만 진작 본질은 인문학에 있지 않습니다.[3. 그것이 문예를 말하는 인문학이든, 교양을 말하는 인문학이든 말이죠] 애플이 ‘혁신’을 이룬 것은 절반의 사실입니다. 즉 이것은 어디까지나 애플 외부에서 애플을, 그리고 애플의 제품을 바라보았을 때 이야기일 뿐이라는 말입니다. 애플의 제품은 애플 내부에서는 혁신이라 부르지 않을 것입니다. 그것은 단순히 “관심을 갖고 바라보았더니 그리 되었더라”의 산물일 뿐입니다.

그러니까, 결국 스티브 잡스가 천재다? 뭐 그런 말을 하려는 건 더더욱 아닙니다. 애플의 화려한 재기. 그리고 그 현상을 뒤덮는 수 많은 미사여구들. 그리고 그런 것들에 현혹되어 가장 큰 낭패를 보는 이들은 소비자가 아닌 경쟁사들입니다.

애플을(잡스를) 배우고 싶고, 뛰어 넘고 싶어하는 기획하는 사람, 경영하는 사람이 정말 많이 있습니다. (개발/디자인을 하는 사람은 애플에서 일을 하고 싶어 하지요) 그들에게 잡스는 일종의 지표이자 롤 모델이기도 하고 동경이기도 합니다. 덕분에 또 많은 글 좀 쓴다는 분들이 잡스에 대한 글을 써서 책도 많이 파신 것으로 알고 있습니다.

쩝, 그런데 그런 모든 정보들 가운데서 얼마나 그중에 과연 ‘얼마나 가슴에 와 닿는’ 문구가 당신에게 있었는지는 모르겠습니다. 그리고 ‘어떻게 하라’고 제시하는 그런 글이 또 있었을까요? 에이 설마요. 스티브 잡스가 직접 자기 이야기를 쓰더라도 아마 그건 알려주지 않을 것입니다.

그럼에도 불구하고 저는 철저히 기획자의 입장에서 생각할 때 무엇이 지금의 애플의 성공을 이끌었는지 말해준다고 확신하는 에피소드가 바로 다음의 이야기라고 생각합니다. 새로운 에피소드는 아니고 한 몇 년 전부터 많이 떠돌던 새 세탁기를 사는 스티브 잡스 가족의 이야기입니다.

 

Design is not limited to fancy new gadgets. Our family just bought a new washing machine and dryer. We didn’t have a very good one so we spent a little time looking at them. It turns out that the Americans make washers and dryers all wrong. The Europeans make them much better – but they take twice as long to do clothes! It turns out that they wash them with about a quarter as much water and your clothes end up with a lot less detergent on them. Most important, they don’t trash your clothes. They use a lot less soap, a lot less water, but they come out much cleaner, much softer, and they last a lot longer.

We spent some time in our family talking about what’s the trade-off we want to make. We ended up talking a lot about design, but also about the values of our family. Did we care most about getting our wash done in an hour versus an hour and a half? Or did we care most about our clothes feeling really soft and lasting longer? Did we care about using a quarter of the water? We spent about two weeks talking about this every night at the dinner table. We’d get around to that old washer-dryer discussion. And the talk was about design.

We ended up opting for these Miele appliances, made in Germany. They’re too expensive, but that’s just because nobody buys them in this country. They are really wonderfully made and one of the few products we’ve bought over the last few years that we’re all really happy about. These guys really thought the process through. They did such a great job designing these washers and dryers. I got more thrill out of them than I have out of any piece of high tech in years.

 

영어라서 거부감 느끼시는 분들이 간혹 있으셔서 간단하게 해석해보자면…

디자인은 단지 예쁜 장식에 그치는 것이 아닙니다. 우리 가족은 최근에 새 세탁기와 건조기를 샀어요. 우린 살만한 좋은 물건이 없어서 이리 저리 살펴보는데 약간 시간을 썼지요. 그러면서 보았더니 미국 사람들은 세탁기와 건조기를 순 엉터리로 만들고 있다는 걸 알았습니다. 유럽 사람들은 그에 비해 훨씬 나은 제품을 만들고 있구요. 하지만 그건 시간이 두 배나 걸리더군요! 알고보니 유럽식 세탁기는 물을 1/4 밖에 안쓰고 그래서 옷에는 세제 찌꺼기가 훨씬 더 적게 남게 됩니다. 가장 중요한 것은 그건 옷을 망치지 않는 다는 것이죠. 유럽식 세탁기는 더 적은 세제와 더 적은 물을 씁니다. 하지만 옷은 더 깨끗해지고 부드럽고 또 그 만큼 더 오래 입을 수 있게 됩니다.

우리 가족은 세탁기와 관련된 이해득실에 대해 잠시 이야기를 나눴습니다. 디자인에 대해서도 이야기를 했고, 우리 가족에게 어떤 가치가 중요한지에 대해서도 이야기했죠. 우리 식구들이 과연 세탁하는데 한 시간 반이나 걸리는 것과 한 시간만에 세탁이 끝나는 것을 비교하는게 가장 중요하다고 생각했나? 아니면 옷을 더 오래 입을 수 있고 세탁하고 나면 더 부드러운 감촉이 드는지가 중요한가? 물을 적게 쓰는 것에 대해서는 생각해 보았나? 우리는 저녁 식사 시간마다 이런 이야기를 하느라 보름을 보냈습니다. 우리는 구닥다리 세탁기에 대한 토론을 해나갔습니다. 그리고 그 이야기는 주로 디자인에 대한 것들이었죠.

우리는 결국 독일 밀레사의 제품을 사는 것으로 결론을 내렸습니다. 그 회사의 제품은 무척 비쌉니다. 하지만 그건 순전히 미국 사람들이 이 회사 제품을 많이 사지 않기 때문입니다. 이 세탁기들은 상당히 잘 만들어졌으며, 그 몇 가지 중 하나를 사고서 우리 가족은 유래가 없을 만큼 많이 행복해 했습니다. 이 회사에서 일하는 친구들은 프로세스를 잘 압니다. 그래서 세탁기와 건조기를 디자인함에 있어 엄청난 역량을 보입니다. 이것들을 사면서 전 지난 몇 년간 하이테크 제품을 살 때 느꼈던 것 보다도 더한 긴장감을 맛보았습니다.

아마 ‘포스트 잡스’, ‘포스트 애플’을 염두에 두고 있으면서 여기까지 읽으시면 제가 무슨 말을 하려는지 파악되셨으리라 생각됩니다.[4. 아직도 영문을 모르겠다면, 미안합니다만 그 꿈은 접으시는게 좋을 것 같습니다.] 제품을 만들 때 무엇을 가장 중요하게 생각해야 하느냐는 겁니다. 좋은 제품은 – 그것이 기획으로부터 출발하든 디자인으로부터 출발하든 – 단 하나의 지상 목표를 위해서 디자인될 수 없다는 것입니다. 그것은 사용자에게는 1차적인 것이 아니라 2차, 3차적으로도 훨씬 더 나은 선택이 될 수 있는 무언가를 제공할 수 있어야 하고, 그리고 만드는 입장에서는 제품에 집중하기 이 전에 사용자가 그 제품을 어떻게 쓸 것인지에 대한 프로세스에 집중할 수 있어야 합니다. 그리고 그것을 통합하는 것은 사실 그렇게까지 어려운 것은 아닙니다. 왜냐면 기획자들이 하는 일이 그 것 아닌가요?

원문에서 사실 가장 중요한 단어가 등장했습니다. 그것은 eco-value 니, 인문학이니 하는 그런 거창하거나 어려울 필요가 없는 단어입니다. 바로…

“CARE”.

정말 잘 만든 제품. 소비자들이 환호하고 열광할만한 제품을 만들기 위해서는 같은 분야가 아니더라도 정말 잘 만들어진 제품을, 제 값 한다는 제품을 써 보는 게 중요할 것 같습니다. 그리고 그 좋은 제품이 왜 좋은지를 본인이 깨닫지 못한다면 정말 좋은 제품을 만들 수도, 기획할 수도, 디자인할 수도 없을 것입니다.

적어도, 지금 국내에서는 애플의 경쟁자를 자처하고 싶어 안달하는 기업은 적지 않게 있습니다. 하지만 제품을 기획하는 최초 단계와 그 중점이 아쉽게도 “현재 돌릴 수 있는 생산 라인을 총 집결하는 방법”에 국한되어 있다면, 소비자가 care하는 가치를 제공해주기는 커녕 그냥 정크 푸드 만드는 공장을 열심히 돌리는 짓과 다름이 아니라는 겁니다.

애플에서 뭐 하나만 내 놓으면 온 대한민국이 난리간 나는데, 2년이 넘도록 난리만 나면서 왜 쓸만한 제품이 나오지 않는지가 궁금한 변방의 어떤 블로거가 또 쓸데없이 한 마디 하고 이렇게 하루가 저물어 갑니다.

 

ps. 잡스의 이런 저런 이야기를 다루는 책이 서점에 진짜 많은데, 전 ‘해적의 리더십’이라는 말 듣고는 완전 웃겨서 속으로 이런 생각을 했어요.

“그냥 지랄 옆차기를 하세요”

20110416 :: [OSX] 숨겨진 창을 dock에서 흐리게 표시하기

터미널[1. 터미널은 애플리케이션 > 유틸리티 내에 있음. 빠른 실행을 위해서는 Spotlight에서 터미널로 검색해 볼 것]을 열고 다음 명령을 입력한다.

defaults write com.apple.dock showhidden -bool YES

입력 후 엔터를 눌러 주고 다시 다음 명령을 실행해 Dock을 재실행한다.

killall Dock

+H를 눌러서 창을 숨기면 Dock상에서 반투명으로 보인다.

OSX 단축키 일람

  1. 참고 차원에서 기록
  2. 단축키 전체는 아니며, 필요한 사항은 추후 업데이트
  3. OSX외의 OS에서는 단축키 문자가 안보일 수 있음

부팅시

  • 마우스 버튼을 누르고 있는다 – 속에 들어있는 CD를 빼낼 수 있다.
  • : 부트캠프를 통해 OS를 선택할 수 있음
  • +V : verbose 모드에서 시동 (시동 로그를 볼 수 있음)

Finder

  • ++A : 어플리케이션 폴더 열기
  • ++C : 컴퓨터 폴더 열기
  • ++D : 바탕화면 폴더 열기
  • +i : 정보 입수
  • ++Q : 로그아웃
  • +R : 가상본의 원본 보기
  • +, : 환경설정 열기
  • +` : 열려있는 같은 프로그램 창 사이 전환
  • +tab : 프로그램 사이 전환
  • 누르고 드래그 : 다른 볼륨으로 파일을 이동
  • + : 파일 삭제(휴지통으로)
  • 누르고 드래그 : 항목 복사
  • + 누르고 드래그 : 가상본(symbolic link) 생성
  • + + 볼륨 변경 : 볼륨이 1/4칸 씩 변경된다.
  • + + 화면 밝기 변경 : 화면 밝기가 1/4칸 씩 변경된다.
  • ++ : 잠자기 상태로 바로 진입

화면 캡쳐

  • ++1 : 전체화면을 클립보드로 복사
  • ++2 : 일부 화면 영역을 클립보드로 복사
  • ++3 : 전체화면을 파일로 캡쳐 (파일을 바탕화면에 저장됨)
  • ++4 : 일부 화면 영역을 파일로 캡쳐
  • ++4 space bar : 하나의 창을 파일로 캡쳐 (그림자 영역이 포함됨)

응용프로그램

  • +W : 화면에 보이는 창 닫기, 브라우저에서 탭 닫기
  • ctrl+space bar : spotlight 실행
  • ++/ : 응용프로그램 도움말 열기 (사실상 +? 임)

Dock

  •  +클릭 : 해당 응용프로그램의 폴더 바로 열기
  • 누른채로 열린 파일의 프록시 아이콘[1. 응용프로그램에서 작성하던 파일을 저장하면, 제목 표시줄에 파일 아이콘이 생기는 데 이를 프록시 아이콘이라 한다. 프록시 아이콘은 파인더 창의 아이콘과 동일하게 동작할 수 있다.] 클릭 : 해당 파일의 경로를 보여줌


  • 2011-04-15 : 최초작성