Starting & Stop
1. By default, launch in portrait orientation

2. A landscape-only app should support both landscape orientation, otherwise should launch in the orientation with the Home button on the right

3. Restore state from the last time your app ran

4. Don’t tell users to reboot or restart their devices after installing your app

5. Stop when users open a different application or use a device feature, such as the phone
    - Be prepared to receive an exit or terminate notification at any time – save user data as soon as possible and as often as reasonable
    - Save the current state when stopping ex. App displays scrolling data, save the current scroll position
    - Should never quit programmatically : tell users about the situation and explain when some error case for external circumstances
    - Avoid displaying the alert too often or in too many different situations


Setting & Orientation Changes
1. Configuration options should be offered within your app
    - Because users do not leave your application to access them

2. Be aware of accelerometer values
    - should respond to all changes in device orientation
    - There is no “rotate now” button
    - Avoid creating a control or defining a gesture that tells users to rotate the device

Using Sound – What users expect
1. Use the Ringtone/Silent switch to silence their device when they want to avoid
    - Being interrupted by unexpected sound such as ringtones, message sounds
    - Hearing sounds – byproduct of user actions such as keyboard or other feedback sounds
    - Hearing game sounds that are not primary purpose of the user’s action

2. But, do not silence sounds that result from user actions that are solely and explicitly intended to produce sound
    - Media playback, clock alarm, a sound clip in a language-learning app, conversation in an audio chat app

3. Plug in a headset or headphones, they intend to continue listen, plug out – they don’t want to automatically share what they’ve been listening to with others

Defining the Audio Behavior of Your App
1. No application should prevent users from receiving an incoming call
    - The phone can always interrupt the currently running application

2. Using System sound
    - Should sue system sound if app plays alert sounds only or sound that : 
       * Are 30 seconds or less in duration
       * Do not need any level or positioning control
       * Can always mix with other sounds played by the device
       * Should always obey the Ring/Silent switch

 Function Obey Ring/Silent Switch   Mixes with other audio Examples 
 AudioServicePlaySystemSound  Yes  Yes  Tap feedback, short startup sounds
 AdudioServicePlayAlertSound Yes   Yes  A failure alert or new message arrival sound

The AudioServicePlayAlertSound function vibrates the device if, in Setting, Vibrate is on for alert such as those produced by the arrival of a new Text message


Defining the Audio Behavior of Your App
1. Using Audio Session Service (Audio Session Programming Guide)

2. 7 Category, for all application, only one category is active at a time

3. An audio session governs sounds played using any of the following audio programming interface :
    - Audio Queue Service (see Audio Queue Services Programming Guide)
    - OpenAL (see OpenAL FAQ for iPhone OS)
    - I/O audio unit
    - The AVAudioPlayer class (see AVAudioPlayer Class Reference)

4. Also System Sound Service with Audio Session Service, but audio session sound does not govern system sound

5. All categories obey the volume buttons

6. If you don’t declare an audio session category, your application is assigned to the solo ambient category by default
    - Before OS ver 2.2 there is no SoloAmbientSound, default category is MediaPlayback


Putting it All Together according to service
1. Scenario I – Blogging app
    - Sound in incidental : a short sound file, various short sound effect
    - Use System Sound Service interface

2. Scenario II – Educational app
    - Use System Sound Service : open, feedback sound
    - Assign the media playback category because the record words and phrases are primary
    - When switch is set to silent, no start up sound and run but, play the educational sound

3. Scenario III – Game app
    - Use System Sound Service
    - Assign the ambient solo category : if a song in iPod is already playing when users start this game, the game soundtrack and gameplay sounds stop the iPod audio and play instead


 License Agreement
EULA(End-user license agreement) for iPhone application is displayed in the App Store, where people can choose to view before purchasing the application

Create a Product Definition Statement
1. Define precisely what your app does

2. Product definition statement – a concise declaration of your app’s main purpose and it intended audience
    - Mobile
    - Want to open app quickly and see useful content immediately
    - Want to accomplish things with just a few taps

3. What traits might set your users apart from all other iPhone OS users

4. Examine the set of features you intended to deliver – distill the list of features into a single statement, a product definition statement
“An easy-to-use photo management application for amateur photographers” vs. “An easy-to-use photo management application for professional photographers”

5.A good product definition statement is a tool you should use throughout the development process

6.iPhone app have no room to spare – it’s important to eliminate those element that don’t support the product definition statement

Incorporate Characteristics of Great iPhone App

1. Build in Simplicity and Ease of Use – Fundamental principle for all types of software

    - Make it Obvious : minimizing the number of controls
    - Top – Down : top of the screen is most visible and accessible to them
    - Minimize Required Input : Balance input info with what you offer user in return
    - Express Information Succinctly
    - Provide Fingertip-Size Targets : target are of about 44 x 44 pixels

2. Focus on the Primary Task
    - Focused on your product definition statement and make sure every feature and user interface element supports it.

3. Communicate Effectively
    - Avoid overdoing communication : alert, notice
    - Using animation : subtle and appropriate animation
    - User-centric terminology

Support Gestures Appropriately

1. Gesture – specific movement
    - Finger : major disadvantage, bigger than mouse point
    - Use familiar gestures appropriately to avoid confusing, avoid defining new gestures (except immersive app)

 UI를 고민할 때 이런 동작들을 효과적으로 사용해야 할 것 같습니다. 이전에 WEB이나 WAP 화면 기획을 생각하면 안 되겠죠. 사용자가 사용하면서 제일 귀찮은 부분이 학습해야 한다거나 또는 도움말을 읽고 복잡한 설정을 하는 부분인 것 같은데, 위의 UI는 그런 부분들에 대한 많은 해결방안을 제시해 준다고 생각합니다.

Incorporate Branding Element Cautiously
1. People use iPhone app to get things done or to be entertained : they don’t want to fee as if they’re being forced to watch an advertisement
    - Balancing eye-appeal with brand recognition : Application Icon in Home screen

~ 過猶不及 이라..했던가~

ch.2 Human Interface Principles : Creating a Grate User Interface

WEB서비스 이건 어떤 물건을 만들던 간에 UI는 정말 중요한 것 같습니다. 아무리 많은 기능을 제공하고 강력한 기능을 제공한다 하더라도 User Interface가 받쳐주지 않는 경우에는 문제가 많죠. 너무나 다들 잘 알고 계시는 얘기지만서도..
특정 Web service site들을 보면 너무나 많은 것들을 나열해 놓은 것을 볼 수 있습니다. 한 마디로 제 생각에는 좀 수준 떨어진다는 생각이 듭니다. 너무 욕심 많은 사이트이고, 정말 User가 원하는 것이 뭔지를 모르는, 생산자 입장에서 억지로 만드는 그런 사이트 갔다는 생각이 듭니다.
UI-User Interface는 그저 단순히 보여지는 것이 아니라, '그 것'을 User가 '손쉽게', '잘' 이용할 수 있는 Guide를 해 주는 것이 아닐까 생각됩니다. 그런 의미에서 iPhone/iPhod의 UI는 많은 고민을 해서 만들어야 할 것 같습니다. 지금도 App store에는 동일한 기능의 여러 app들이 다른 '탈?'을 쓰고 돌아다니고 있습니다만, 역시 써 보면 아 이래서 사람들이 reveiw를 달고 가는 구나 하는 생각이 듭니다.

아래 내용들 다 알고 있는 내용들이면서도 사실 구체화 하기는 쉽지 않은 것들이죠...Utility중에 Air mouse Pro를 써 보면 터치패드를 만지고 있을 때 손가락의 위치를 표시를 해 주더군요. 이런 세세한 것들이 User를 감동시키는 요소들이 아닐까 하는 생각이 듭니다.

iPod App을 기획하기 위해서 필요로 하는 것이 무엇일까 고민하다가, 우선 Apple Development Center에서 공식적으로 언급하고 있는 Tutorial 문서들을 보기로 했습니다. 적어도 그 쪽에서 얘기하는 내용들을 알고 있어야 되지 않을까 하는 생각에서 정리를 해 볼려고 합니다. 우리 팀원들을 대상으로 얘기를 했습니다만, 여러 분들과 공유하고자 하는 마음에 이렇게 쓰게 되었습니다.
단지, 배포된 문서를 정리해서 썼을 뿐, 특이한 내용은 없습니다. 읽고 정리하다 보니 '머 다 아는 얘기인데' 라는 생각도 들고, '이게 과연 정답일까' 하는 생각도 듭니다만, 그래도 Apple에서 얘기하는 데로 만들면 App store에 STAFF Favoriates에라도 들지 않을까 하는 맘이네요^^

"Human Interface Guidelines"로 총 두개의 Part, 11 chapter에 대해 정리를 해 보았습니다.

App에 대한 Type은 형식 상 나누어 놓을 수 있다고는 생각합니다만, 역시 정형화된 정답은 없다고 생각됩니다. 반복되는 말들, simple, not complex, easy...

Part I  Planning Your iPhone Software Product
Ch.1 The iPhone OS Platform : Rich with Possibilities

티스토리 툴바