• iCloud Storage
    • iCloud 는 유저가 어떤 디바이스에서 컨탠츠에 접근하더라도 개의치 않도록 도와준다. 
    • 어떤 디바이스의 어떤 앱에서 접근하더라도 명확하게 동기화된 컨탠츠 접근이 가능하게 할 수 있다.
    • iCloud Storage 프로그래밍 가이드를 보고 익히도록 하자.https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iCloud/iCloud.html#//apple_ref/doc/uid/TP40007072-CH5
    • 사용자경험은 근본은 transparency에 두고있다. 
    • 이상적으로 유저는 어디의 자신의 컨텐츠가 존재하는지 알 필요가 없다.
    • 현재 보고 있는 컨텐츠의 비전이 좀처럼 생각하려고 하지 않는데.
    • 고로 아래와 같은 사항들을 유념하며 iCloud를 이용한 앱을 개발해야겠다.
      • Respect the user's iCloud account. 유저의 iCloud 계정을 고려/배려하여라. 유저의 iCloud는 한정적이다. 유저가 생성하고 이해한 정보를 저장해야하지만 재생성 가능하다던지 쓸데없는 데이터를 위한 곳이 아니다. iCloud가 활성화되면 App의 도큐먼트에 있는 컨텐츠는 자동으로 백업이 된다. 유저의 공간을 많이 사용하지 않기 위해서는 document 사용에 대해서 까다롭게/꼼꼼하게 신경써야 할 것이다.
      • Determine which types of information to store in iCloud storage. 타유저와 문서 추가적으로, key-value 데이터를 iCloud에 저장할 수 있다. 예를들어 책이나 매거진처럼 컨탠츠소비를 돕는 앱이라면, iCloud storage를 마지막으로 보던 페이지를 볼 수 있게 도와줄 수 있다. 다른 디바이스에서 앱을 열거나 했을 때 말이다. 그들이 어디로 떠나든 계속해서 이어갈 수 있게 해준다. 광고에서 처럼 말이다. 또한 환경설정 같은 경우를 들 수 있겠다… 
      • Make sure that your app behaves reasonably when iCloud storage is unavailable. iCloud가 사용할 수 없게 되더라도 무리없게 동작하도록 만들어야 한다. 만약 유저가 iCloud계정에서 로그아웃을 하거나 Airplane모드를 들어가면 iCloud는 unavailable이 되어버린다. 유저가 직접iCloud를 제한한 경우는 유저에게 별도로 언급을 할 필요가 없지만, 
      • If appropriate, make it easy for users to enable iCloud storage for your app. 가능하면, 너의 앱을 위해 유저의 iCloud가 활성화되는 것을 쉽게 이루어지도록 하여라, 유저가 iCloud storage 사용을 선택할 수 있기를 원한다고 생각하여 단순한 옵션을 제공할 수 있다. 하지만 이 옵션은 iCloud를 사용하여 전체를 접근하거나 전혀 아니거나 둘중에 선택되어야 한다.
      • Avoid asking user to choose which documents to store in iCloud.  어느 도큐먼트가 iCloud에 저장될 것인지를 묻는 것을 피하여라. 유저는 그들이 다루는 컨텐츠 전체가 iCloud를 통해서 이용가능해질 것이라고 기대를 한다. 너의 앱은 요구해서는 안된다 파일에 근거한 컨텐츠의 이용가능한지 생각하게 해서는 안된다. 적절한 경험을 제공하여라. 너는 앱을 다루거나 컨텐츠를 expose 함에 있어서 rearchitect해야할지도 모른다. 
      • Avoid giving users the option to create a "local" document. 유저에게 local 도큐먼트를 생성하는 옵션 주는 것을 피하여라. 너의 앱에서 iCloud를 지원하는지를 개의치 않고 유저가 사용할 수 있어야한다. 왜냐하면 유저는 디바이스에 명세된 파일시스템 안에서 저장되는 것을 고려하게 해서는 않된다. 그 대신에 유저가 그들의 컨텐츠가 iCloud를 통해서 집중하는 것을 원한다.
      • When appropriate, update content automatically. 적절한 때에 컨텐츠를 자동으로 업데이트 하여라. 
      • Warn users about the consequences of deleting a document. 삭제 결과에 대해서 유저에게 경고하여라.
      • Tell users about conflicts as soon as possible, but only when necessary.충돌에 대해서 가능한 유저에게 설명하라, 그러나 꼭 필요할 때만이다.
      • Be sure to include the user's iCloud content in searches. 유저의 iCloud 컨텐츠가 searches에 포함되도록 보증하라.
  • Multitasking : Multitasking allows people to switch quickly among recently used applications, because apps can be suspended in the background when they are quit. A suspended app can resume quickly because it does not have to reload its UI. People use the multitasking bar (shown here below the iPhone Calendar app) to choose a recently used app.
    • handle interruptions or audio from other applications gracefully. 작업을 인터럽션 혹은 오디오의 행동을 다루어준다. 다른 애플리케이션의 영향으로부터. 우아하게.
    • Stop and restart (that is, transition to and from the background) quickly and smoothly. 멈추고 재시작한다, 빠르고 부드럽게
    • Behave responsibly when not in the foreground. 포그라운드가 아닐 때도 행동에 대한 약속


  • Multitasking specific guidelines
    • Be prepared for interruptions, and be ready to resume. 인터럽트와 재개를 준비하라.
    • Make sure your UI can handle the double-high status bar. 더블상단상태바를 고려해서 UI를 만들어라.
    • Be ready to pause activities that require people's attention or active participation. 액티비티가 중지될 것을 준비해라, 사람들의 주의를 요구하거나 적극적 참여를 통해서…
    • Ensure that your audio behaves appropriately. 저의 오디오행동을 적절하게 보증하라, 디바이스상의 다른 소리에 의해 영향을 받을 텐데 고려를 해라.
    • Use local notifications sparingly. 로컬노티피케이션을 절약하라, 반복으로 짜증나게 할 수 있다.
    • When appropriate, finish user-initiated tasks in the background. 스위칭 되었을 때 유저들은 대게 task가 종료됐을 것으로 기대를 한다. user interaction가 요구되어지지 않은 상황에 suspending되기전에 task를 완료하는 것이 옳다.
  • Notification
    • local notification is scheduled by an application and delivered by iOS on the same device, regardless of whether the app is currently running in the foreground. For example, a calendar or to-do app can schedule a local notification to alert people of an upcoming meeting or due date. 로컬노티피케이션, scheduled by an application 그리고  iOS에 의해서 전달 될 수 있다. app이 현재 foreground에서 동작중인지 개의치않고 동작한다. 예를 들어서 캘린더나, 투-두 앱같은 경우schedule을 로컬푸시를 통해서 경고할 수 있다. 사람들에게 due date까지 
    • push notification is sent by an app’s remote server to the Apple Push Notification service, which pushes the notification to all devices that have the app installed. For example, a game that a user can play against remote opponents can update all players with the latest move. 푸쉬 노티피케이션은 리모트 서버에 근거한다. 푸쉬 노티피케이션은 앱이 설치된 모든 기기에 전달할 수 있다. 예를 들어 게임, 유저가 플레이 할 수 있다. 원격의 oppnent와 말이다. 원격으로 업데이트할 숭 ㅣㅆ다. 모든 유저를, 천부적이다. 
    • 사용할 수 있는 노티피케이션 스타일은, Banner, alert, badge, sound가 있겠다. 배너는 iOS5부터 가능한데, 이때는 위에 정리한 small icon이 들어가야한다. 오키?
    • 미실행 및 백그라운드 상태에서 노티피케이션을 통한 경고(배너,얼럿등)을 할 수 있음. 전면에 활성 실행중에는 별도의 사용자정보처리를 통해 하여야 한다. 미실행중 Notification에 의해 실행된 경우에 알 수 있으므로 payload를 이용한 처리를 가능하도록 할 수 있음.
      •  
      • 경고창
      • applicationLaunch
      • (최초 앱 실행중)
      • didReceiveNotificatio (실행중 참조)
      • 경우1 (앱실행 x)
      • O
      • O
      • O
      • 경우2 (앱 백그라운드)
      • O
      • X
      • O
      • 경우3(앱 활성)
      • X
      • X
      • O
    • notification이 도착하였을 때 유저가 선택한 사운드로 변경할 수 있다.  
  • Printing
    • iOS 4.2 디바이스부터 멀티테스킹을 제공한다. 그리고 유저는 너의 앱으로부터 무선 프린팅을 할 수 있다. 
  • iAd Rich Media Ads
  •  

 

 

이 글은 스프링노트에서 작성되었습니다.


+ Recent posts