티스토리 뷰

Programming/Etc

[iOS] Today Extension 소개

DangerCloz 2016. 12. 23. 15:38

About Today Extension


Today Extension을 통해 iOS / MacOS 에서는 위젯을 나타낼 수 있다.

위젯의 핵심적인 기능은 사용자에게 빠른 데이터 제공을 위한 것이지 단계별 작업을 수행하거나 컨텐츠 업로드 / 다운로드와 같은 작업을 수행하는데 적절한 방법이 아니다.

Today 위젯은 아래와 같은 작업을 수행해야 한다.

  • 컨텐츠를 항상 최신으로 유지
  • 사용자 상호 작용에 적절하게 응답
  • 잘 작동해야 함 (메모리 최적화가 제대로 되어 있지 않으면 시스템이 종료함)

Today 위젯은 사용자 상호 작용이 빠르고 제한적이기 때문에 사용자가 관심을 갖는 정보를 강조하는 간단하고 효율적인 UI가 필요하다.

Today 위젯은 입력을 허용하지 않기 때문에 앱을 통해 위젯의 콘텐츠와 동작을 구성할 수 있어야 한다.
(ex. 네이버지도 : 즐겨찾는 버스를 앱에서 등록 -> 위젯에서 표시)

위젯이 즉각적으로 반응할 수 있도록 시스템에서 주기적으로 위젯의 스냅 샷을 캡쳐한다. 위젯이 나타나야 하면 시스템은 스냅샷을 우선 보여주고, 라이브 뷰 버전이 준비되면 그 때 라이브 뷰 버전을 표시한다.

Extension은 다음과 같은 특징을 가진다.

  • Apple Framework 코드를 통해서만 접근된다.
  • 빌드될 때 추가적인 타겟을 통해 따로 빌드되며 설치시에는 앱과 함께 설치 / 삭제 된다. (바이너리 자체도 앱과 독립적)
  • 실행시 앱과 완전히 다른 독립 프로세스로 실행, 완전히 다른 주소공간을 가진다.



앱과 익스텐션간에 데이터를 공유하기 위해서는 App Group이 필요하다.
앱과 익스텐션은 기본적으로 서로 다른 NSUserDefaults 도메인을 가지기 때문에, 앱-익스텐션간에 공유하려면 명시적으로 공유를 위한 shared domain을 생성해서 사용해야 한다.


'Programming > Etc' 카테고리의 다른 글

[iOS] Appstore Improvements  (0) 2016.10.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday