5월 26, 2008 seachicken가 만듦
Define your solution
- Not function list
- Define application statement in one sentence.
Define your users’ mental model
- Not developer’s mental model
- Identify
– Objects and their hierarchiy and relationships
– Concepts
– Tasks ans workflow
– Roles
- Prioritize
- Excellent cross-functional exercise
Reflect your users’ mental model
- Presentation
- Interaction
- Terminology and labeling
Always ask “What’s important NOW?” (Is this to die for?)
- Main interface is the most valuable real estate
– Do Not averload
– Keep it fresh
- Is something of secondary importance?
– Use drawers and panels
Define your applications’ Objects, Concepts and prioritize them.
- Objects impact design of interface, its’ emelements and locations of elements.
- A Concept has more than one Tasks
Check contents at about 50 minutes for more Tip.
- Start your Labels with Capitalized Letter and Verbs
Posted in User Interface | Tagged cocoa, design, User Interface | Leave a Comment »
1월 18, 2008 seachicken가 만듦
Objective-C 2.0의 문법을 사용한 어플리케이션은 아래와 같은 제약을 가지게 된다.
- 개발환경은 Leopard로 한정됨.
- 빌드 시에는 런타임의 버전을 설정할 수 있지만 이 경우에도 Objective-C 2.0의 문법을 사용한 경우에는 Leopard 이전의 버젼을 지정할 경우, 에러가 발생한다.
추가로, 가베지콜랙션을 사용할 경우 이러한 제약사항은 증가된다. 런타임에서의 가베지콜렉션의 사용여부에 대해 필수, 서포트, 서포트 안함의 3가지 옵션이 있는데, 이것이 각각 가베지콜렉션을 On/Off 하는데 사용된다. 특정 프로그램의 플러그인을 작성할 경우엔 프로그램과 플러그인의 설정이 서로 동일해야 한다. (다만 서포트의 경우, 어떤 설정에도 사용할 수 있다.)
이상을 고려했을 때, 그리고 아래 포스팅에서 기술한 바와 같이, 현재 Leopard의 시장 점유율이 20퍼센트가 안되는 상황에서 (정확히는 19퍼센트) Objective-C 2.0의 문법을 사용한 어플리케이션을 만드는 것은 나머지 거대한 점유율의 타이거 등 Leopard 이전 버전의 사용자 시장을 포기한다는 것을 의미한다. 즉, 수익성을 고려했을 때, 현재 Objective-C 2.0의 문법을 도입한다는 것은 아직은 시기상조라 하겠다.
Posted in Objective-C 2.0, Strategy | Tagged Development, Strategy | Leave a Comment »
1월 15, 2008 seachicken가 만듦
오늘의 키노트를 보면 전체 맥 중에서 20퍼센트가 레오파드로 업그레이드했다고 한다. 그 얘긴, 어플리케이션을 레오파드 이전의 버젼과 호환성이 있게 만들지 않으면 전체 맥 시장에서도 20퍼센트를 상대해야 한다는 얘기가 된다.
더 자세한 숫자는 내일 키노트의 영상이 공개되면 다시 정리할 예정.
Posted in marketing | Tagged market | Leave a Comment »
1월 15, 2008 seachicken가 만듦
Protocol의 문법에 대해서는 이미 설명한 바 있지만 Objective-C 2.0 에서 일부 개선이 되었다.
Objective-C 1.0에서는 클래스는 프로토콜에 선언된 메소드를 모두 구현할 필요가 있었다. 하지만 Objective-C 2.0에서부터는 필수 메소드와 선택적인 메소드를 선언할 수 있다. 아래에 소스코드의 예를 든다.
@protocol MyProtocol
- (void)requiredMethod; // 디폴트는 @required
@optional // 선택적 메소드
- (void)anOptionalMethod;
- (void)anotherOptionalMethod;
@required // 필수 메소드
- (void)anotherRequiredMethod;
@end
Posted in Objective-C 2.0 | Tagged Objective-C | Leave a Comment »
1월 10, 2008 seachicken가 만듦
Objective-C에는 Protocol이란 문법요소가 있다. 이건 쉽게 말하면 자바의 인터페이스와 같은 개념이다.
아래에 프로토콜의 간단한 설명을 링크.
Objective-C Protocol Summary
참고로, 이 프로토콜은Objective-C 2.0이 되면서 약간 개선되었다.
그에 대해선 별도 기술 예정.
Posted in Objective-C | Tagged Objective-C | 1 Comment »
1월 8, 2008 seachicken가 만듦
Objective-C 2.0에서 새로이 추가된 기능으로 익명의 카테고리와 같은 역활을 한다. 기존의 카테고리가 컴파일시의 체크(Validation)기능이 없었던 것에 비해 컴파일 시에도 완전한 메인 클래스로써 체크가 가능하다. 카테고리와의 차이점은 아래와 같다.
카테고리명을 기술하지 않고 공란으로 남겨둔다.
확장에서 선언된 메소드는 메인 클래스의 구현파일(@implementation 과 @end 의 사이)에 정의되어야 한다.
확장이 적용된 소스의 예는 아래와 같다.
@interface Card ( )
- (int) methodP;
@end
@implementation Card
- (int)methodP{
…
}
…
@end
Posted in Objective-C 2.0 | Tagged Objective-C | Leave a Comment »
1월 8, 2008 seachicken가 만듦
Objective-C에는 있지만 자바에는 없는 개념인 Category를 간단히 설명.
이 설명은 Objective-C 1.0(Leopard이전의 버전)을 기준으로 하고 있다.
Objective-C 2.0에서 추가 및 강화된 기능(Extension)에 대해서는 별도 정리할 예정.
Objective-C Category Summary
Posted in Objective-C | Tagged Objective-C | Leave a Comment »