KR102378955B1 - 애플리케이션 런처 크기조정 - Google Patents

애플리케이션 런처 크기조정 Download PDF

Info

Publication number
KR102378955B1
KR102378955B1 KR1020177005302A KR20177005302A KR102378955B1 KR 102378955 B1 KR102378955 B1 KR 102378955B1 KR 1020177005302 A KR1020177005302 A KR 1020177005302A KR 20177005302 A KR20177005302 A KR 20177005302A KR 102378955 B1 KR102378955 B1 KR 102378955B1
Authority
KR
South Korea
Prior art keywords
computing device
application launcher
user
application
representations
Prior art date
Application number
KR1020177005302A
Other languages
English (en)
Other versions
KR20170038018A (ko
Inventor
메간 엘. 테데스코
안슐 라와트
헨리-찰스 맥칼라니
차이탄야 데브 사린
재클린 씨. 냅
매튜 엔. 에이커스
푸르바 신갈
제프 쥐. 아놀드
브라이언 이. 업호프
리차드 제닝스 던컨
미르온 브라네스
크리스토퍼 도안
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20170038018A publication Critical patent/KR20170038018A/ko
Application granted granted Critical
Publication of KR102378955B1 publication Critical patent/KR102378955B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04803Split screen, i.e. subdividing the display area or the window area into separate subareas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

애플리케이션 런처 크기조정 기술들이 설명된다. 하나 이상의 구현예에서, 예상되는 사용 상황(likely usage context)이 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 컴퓨팅 디바이스에 의해 결정된다. 애플리케이션 런처는 사용자의 결정된 예상되는 사용 상황에 기반하여, 컴퓨팅 디바이스에 의해 사용자 인터페이스의 디스플레이 영역 내에서 동적으로 크기조정된다. 애플리케이션 런처는 사용자로부터 수신되는 입력에 응답한 출력을 위해 구성되고, 각각의 해당 애플리케이션에 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능한 애플리케이션들의 복수의 표현들을 포함한다.

Description

애플리케이션 런처 크기조정{APPLICATION LAUNCHER SIZING}
본 발명은 애플리케이션 런처 크기조정에 관한 것이다.
컴퓨팅 디바이스들은 종래에, 특정 설정들을 위해 맞춤화된 컴퓨팅 디바이스와의 상이한 사용자 상호작용들을 지원하기 위해 다양한 특정 방식들로 구성되었다. 컴퓨팅 디바이스는, 예를 들어 모바일 사용을 지원하도록 구성될 수 있으므로, 가령 배터리, 휴대용 크기, 및 사용자의 하나 이상의 손에 의한 상호작용을 위해 구성되는 사용자 인터페이스를 포함함으로써 모바일 사용을 위해 최적화되었다. 마찬가지로, 컴퓨팅 디바이스는, 비교적 큰 크기를 갖고 키보드들 및 커서 제어 디바이스들과 같은 데스크탑 설정에서의 사용자 상호작용을 지원하도록 구성되는 디바이스들을 포함하는 종래의 데스크탑 PC와 같이, 비모바일 애플리케이션들을 위해 구성될 수 있다.
또한, 다양한 설정들에서의 사용을 지원하고, 그 결과 다양한 사용 시나리오들에서의 상호작용을 지원할 수 있는 컴퓨팅 디바이스들이 이제 이용가능하다. 그러한 컴퓨팅 디바이스들의 예시들은, 이들 디바이스들을 다양한 상이한 상호작용들을 수행하기에 적절하게 해주는 상당한 연산 리소스들을 포함하는 태블릿들 및 다른 구성들을 포함할 수 있다. 그러나, 종래 기술들은 일반적으로, 단일 설정 및 대응하는 사용 시나리오를 위해 맞춤화된 사용자 상호작용들에 사용자를 제한시켰으므로, 다른 설정들에서 사용될 때 디바이스와의 상호작용을 제한할 수 있다.
애플리케이션 런처 크기조정 기술들이 설명된다. 하나 이상의 구현예에서, 예상되는 사용 상황(likely usage context)이 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 컴퓨팅 디바이스에 의해 결정된다. 애플리케이션 런처는 사용자의 결정된 예상되는 사용 상황에 기반하여, 컴퓨팅 디바이스에 의해 사용자 인터페이스의 디스플레이 영역 내에서 동적으로 크기조정된다. 애플리케이션 런처는 사용자로부터 수신되는 입력에 응답한 출력을 위해 구성되고, 각각의 애플리케이션에 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능한 애플리케이션들의 복수의 표현(representation)들을 포함한다.
하나 이상의 구현예에서, 컴퓨팅 디바이스는 사용자 인터페이스를 디스플레이하기 위한 이용가능한 디스플레이 영역을 갖는 디스플레이 디바이스, 및 하드웨어 내에 적어도 부분적으로 구현되는 하나 이상의 모듈을 포함한다. 하나 이상의 모듈은 애플리케이션 런처를 노출시키도록 구성되며, 애플리케이션 런처는 디스플레이 디바이스의 이용가능한 디스플레이 영역 내에서 수평 방향과 수직 방향 둘 다로 동적으로 재크기조정 가능하고, 각각의 애플리케이션에 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능한 애플리케이션들의 복수의 표현들을 포함한다.
하나 이상의 구현예에서, 컴퓨팅 디바이스는 디스플레이 디바이스, 프로세싱 시스템, 및 디스플레이 디바이스 상의 애플리케이션 런처의 출력을 유발하기 위해 프로세싱 시스템에 의해 실행가능한 운영 체제를 유지하도록 구성되는 메모리를 포함한다. 운영 체제는, 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 상황을 결정한 것에 응답하여, 애플리케이션 런처의 소비(consumptive) 모드와 애플리케이션 런처의 생산(productive) 모드 사이의 스위칭을 유발하도록 구성된다.
본 요약은 아래의 상세한 설명에서 추가로 설명되는 개념들의 선택을 단순화된 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명내용의 중요한 특징들 또는 필수적인 특징들을 식별시키려는 의도는 없으며, 또한 청구된 발명내용의 범위를 결정하는데 도움을 주는 것으로서 사용되도록 의도된 것도 아니다.
첨부 도면들을 참조하여 상세한 설명이 설명된다.
도면들에서, 참조 번호의 가장 왼쪽 숫자(들)는 참조 번호가 처음 등장하는 도면과 동일하다. 설명 및 도면들에서의 상이한 경우들에서의 동일한 참조 번호들의 사용은 유사하거나 동일한 항목들을 나타낼 수 있다.
도 1은 본원에서 설명되는 애플리케이션 런처 크기조정 기술들을 수행하도록 구성되는 예시적인 구현예에서의 환경을 도시한다.
도 2는 도 1의 애플리케이션 런처를 생산적 사용 상황에서의 사용을 위해 구성된 것으로서 도시하는 예시적인 구현예를 도시한다.
도 3은 도 2의 애플리케이션 런처를 2개의 열들을 지원하는 것으로서 도시하는 예시적인 구현예를 도시한다.
도 4는 도 3의 애플리케이션 런처를 열들 내의 그룹화를 지원하는 것으로서 도시하는 예시적인 구현예를 도시한다.
도 5 및 도 6은 애플리케이션 런처의 동적 크기조정을 2개의 열 포맷 내에서 도 4의 그룹들을 활용(leveraging)하는 것으로서 도시하는 예시적인 구현예들을 도시한다.
도 7은 도 1의 애플리케이션 런처를 단일 열 내의 그룹화를 지원하는 것으로서 도시하는 예시적인 구현예를 도시한다.
도 8은 도 1의 애플리케이션 런처에 의해 이용될 수 있는 추가적인 포맷들을 도시하는 예시적인 구현예를 도시한다.
도 9는, 도 1의 컴퓨팅 디바이스의 런처 모듈이, 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 사용 상황의 표시(indication)에 응답하여 애플리케이션 런처를 동적으로 크기조정하는 예시적인 구현예를 도시한다.
도 10은, 주변 디바이스를 컴퓨팅 디바이스에 부착되는 것으로서 도시하는 예시적인 구현예를 도시하며, 예상되는 생산적 사용 상황도 나타낸다.
도 11은, 애플리케이션 런처를 동적으로 크기조정하는 기반으로서, 예상되는 사용 상황의 결정이 이용되는 예시적인 구현예에서의 프로시저를 도시하는 흐름도이다.
도 12는, 본원에서 설명되는 기술들의 실시예들을 구현하기 위해 도 1 내지 도 11을 참조하여 설명된 바와 같은 임의의 유형의 컴퓨팅 디바이스로서 구현될 수 있는 예시적인 디바이스의 다양한 컴포넌트들을 예시한다.
개요
컴퓨팅 디바이스와 상호작용하기 위한 종래 기술들은, 모바일 컴퓨팅 디바이스에 의해 모바일 동작을 지원하는 것과 같이, 일반적으로 단일 사용 시나리오를 위해 최적화된다. 결과적으로, 이들 기술들은, 이제 이들 컴퓨팅 디바이스들을 통해 이용가능해진 더욱 증가된 범위의 기능을 처리하지 못했다.
애플리케이션 런처 크기조정 기술들이 설명된다. 하나 이상의 구현예에서, 애플리케이션 런처는 광범위한 기능을 지원하기 위해 이용될 수 있는 동적 크기조정을 지원하도록 구성된다. 위의 논의를 계속하면, 예를 들어 컴퓨팅 디바이스는, 가령 핸드헬드 상호작용을 위해 최적화된 소비적 상황에서, 또는 주변 디바이스들, 예를 들어 커서 제어 디바이스들 및 키보드들과의 상호작용을 위해 최적화된 생산적 상황에서, 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 상황의 결정을 행할 수 있다. 이 결정은 도 9와 관련하여 추가로 설명되는 바와 같이 다양한 다른 방식들로 행해질 수 있다.
결정이 어떻게 행해지는지와 관계없이, 이어서 결정은, 애플리케이션 런처를 동적으로 크기조정하는 것과 같이, 컴퓨팅 디바이스의 기능을 동적으로 구성하기 위한 기반으로서 사용될 수 있다. 애플리케이션 런처는, 예를 들어 사용자의 손을 사용하는 선택을 지원하기 위한 소비 모드에서의 애플리케이션들의 큰 표현들을 갖는 풀 스크린 모드, 및 커서 제어 디바이스를 사용하여 선택가능한 보다 작은 표현들을 또한 갖는 보다 작은 전체 뷰를 취할(assume)할 수 있다.
애플리케이션 런처(120)는 또한 다양한 다른 방식들로 동적으로 크기조정가능할 수 있다. 예를 들어, 사용자는, 애플리케이션을 나타내는 타일들을 피닝(pinning) 또는 피닝해제(unpinning)하는 것과 같이, 애플리케이션 런처 내의 애플리케이션들의 표현들의 추가 또는 제거를 특정할 수 있다. 컴퓨팅 디바이스는 이어서 수평 및/또는 수직 방향들로 애플리케이션 런처를 동적으로 재크기조정할 수 있다. 또한, 사용자는 애플리케이션 런처의 보더(border)를 “드래그 앤 드롭”하고, 행들 또는 열들의 수를 특정하는 것 등과 같이, 애플리케이션 런처의 크기를 또한 수동으로 특정할 수 있다. 컴퓨팅 디바이스는 이어서 “이 크기를 준수(respect)”할 수 있어서, 특정된 크기가 풀이면, 추가적인 표현들은 애플리케이션 런처 내에서의 연속적인 스크롤링을 통해 액세스될 수 있다. 사용자가 상호작용한 다른 애플리케이션 런처들 상의 크기에 기반하는 것과 같은 추가적인 기능이 또한 고려되며, 이에 대한 추가적인 논의는 아래의 섹션들과 관련하여 발견될 수 있다.
아래의 논의에서, 본원에서 설명되는 기술들을 이용할 수 있는 예시적인 환경이 제일먼저 설명된다. 이어서, 예시적인 환경뿐만 아니라 다른 환경들에서 수행될 수 있는 예시적인 프로시저들이 설명된다. 결론적으로, 본 예시적인 프로시저들의 수행은 본 예시적인 환경에 제한되지 않으며, 본 예시적인 환경은 본 예시적인 프로시저들의 수행에 제한되지는 않는다.
예시적인 환경
도 1은, 본원에서 설명되는 애플리케이션 런처 크기조정 기술들을 이용하기 위해 동작가능한 예시적인 구현예에서의 환경(100)의 예시이다. 예시된 환경(100)은, 사용자의 하나 이상의 손(106)으로 홀딩하도록 구성되는 하우징(104)을 갖는 모바일 컴퓨팅 디바이스(예를 들어, 태블릿 또는 모바일 폰)로서 예시된 컴퓨팅 디바이스(102)의 예시를 포함한다. 컴퓨팅 디바이스(102)의 다양한 다른 구성들이 또한 고려된다.
예를 들어, 컴퓨팅 디바이스(102)는, 도 12와 관련하여 추가로 설명되는 바와 같이 종래의 컴퓨터(예를 들어, 개인용 데스크탑 컴퓨터, 랩탑 컴퓨터 등), 모바일 스테이션, 엔터테인먼트 기기, 무선 폰, 태블릿, 넷북 등으로서 구성될 수 있다. 따라서, 컴퓨팅 디바이스(102)는, 상당한 메모리 및 프로세서 리소스들을 갖는 풀(full) 리소스 디바이스들(예를 들어, 개인용 컴퓨터들, 게임 콘솔들)에서부터, 제한된 메모리 및/또는 프로세싱 리소스들을 갖는 로우 리소스(low-resource) 디바이스(예를 들어, 종래의 셋탑 박스들, 핸드헬드 게임 콘솔들)까지의 범위일 수 있다. 컴퓨팅 디바이스(102)는 또한, 컴퓨팅 디바이스(102)가 하나 이상의 동작을 수행하도록 하는 소프트웨어와 관련될 수 있다.
컴퓨팅 디바이스(102)는 또한, 디스플레이 디바이스(108), 프로세싱 시스템(110), 및 이 경우에서 메모리(112)인 컴퓨터 판독가능 저장 매체의 예시를 포함하는 것으로서 예시된다. 메모리(112)는, 하나 이상의 동작을 수행하기 위해 프로세싱 시스템(110)에 의해 실행가능한 애플리케이션들(114)을 유지하도록 구성된다.
프로세싱 시스템(110)은 형성되는 소재(material)들 또는 내부에서 이용되는 프로세싱 메커니즘들에 의해 제한되지는 않는다. 예를 들어, 프로세싱 시스템(110)은, 시스템 온 칩, 프로세서들, 중앙 프로세싱 유닛들, 프로세싱 코어들, 기능적 블록들 등과 같은 반도체(들) 및/또는 트랜지스터들[예를 들어, 전자 집적 회로(integrated circuit; IC)들]로 구성될 수 있다. 그러한 상황에서, 실행가능한 명령어들은 전자적으로 실행가능한 명령어들일 수 있다. 대안적으로, 프로세싱 시스템(110)의 메커니즘들 또는 프로세싱 시스템(110)을 위한 메커니즘들, 따라서 컴퓨팅 디바이스의 메커니즘들 또는 컴퓨팅 디바이스를 위한 메커니즘들은, (예를 들어, 나노기술을 사용하는) 기계적 컴퓨팅, 퀀텀 컴퓨팅, 광학 컴퓨팅 등을 포함할 수 있지만, 이들에 제한되지는 않는다. 따라서, 단일 메모리(112)가 도시되었지만, 랜덤 액세스 메모리(random access memory; RAM), 하드 디스크 메모리, 탈착가능 매체 메모리, 및 다른 유형들의 컴퓨터 판독가능 매체와 같은 폭넓은 유형들의 메모리 및 메모리의 조합들이 이용될 수 있다.
컴퓨팅 디바이스(102)는 또한 운영 체제(116)를 포함하는 것으로서 예시된다. 운영 체제(116)는 컴퓨팅 디바이스(102) 상에서 실행가능한 애플리케이션들(114)에 대한 컴퓨팅 디바이스(102)의 기저 기능을 추상화(abstract)하도록 구성된다. 예를 들어, 애플리케이션들(114)이 이 기저 기능이 “어떻게” 구현되는지 알지 못하는 채로 기록될 수 있도록, 운영 체제(116)는 프로세싱 시스템(119), 메모리(112), 네트워크, 입력/출력, 및/또는 디스플레이 디바이스(108)의 디스플레이 기능 등을 추상화할 수 있다. 애플리케이션(114)은, 예를 들어 디스플레이 디바이스(104)에 의해 렌더링되고 디스플레이될 데이터를, 이 렌더링이 어떻게 수행될지 이해하지 못하는 채로 운영 체제(116)에 제공할 수 있다. 운영 체제(116)는 또한, 파일 시스템, 및 컴퓨팅 디바이스(102)의 사용자에 의해 내비게이팅 가능한 사용자 인터페이스를 관리하는 것과 같이, 다양한 다른 기능을 나타낼 수 있다.
운영 체제(116)는 컴퓨팅 디바이스(102)에 의해 지원되는 다양한 상이한 입력/출력 기능을 프로세싱하도록 구성될 수 있다. 따라서, 운영 체제(116)는 컴퓨팅 디바이스(102)뿐만 아니라 그 입력들을 감지하기 위해 사용되는 디바이스들에 의한 입력들의 인식 및/또는 출력들의 제공에 관한 기능을 포함한다. 예를 들어, 운영 체제(116)는 제스처들을 식별하고 이 제스처들에 대응하는 동작들이 수행되도록 하는 것 등을 위해 구성될 수 있다. 입력들은 운영 체제(110)에 의한 프로세싱을 위해 다양한 상이한 방식들로 감지될 수 있다.
예를 들어, 운영 체제(110)는 하드웨어 디바이스와의 터치 상호작용, 예를 들어 디스플레이 디바이스(108)의 터치스크린 기능을 사용하여 감지되는 사용자의 손(106)의 손가락들을 통한 하나 이상의 입력을 수신하도록 구성될 수 있다. 터치 입력들의 인식은 게임, 애플리케이션과 상호작용하고, 인터넷을 브라우징하며, 컴퓨팅 디바이스의 하나 이상의 설정을 변경하는 등과 같이, 컴퓨팅 디바이스(102)에 의해 출력되는 사용자 인터페이스와 상호작용하도록 운영 체제(116)에 의해 활용될 수 있다. 디스플레이 디바이스(104)와의 터치 상호작용을 포함하지 않는 다양한 다른 하드웨어 디바이스들이 또한 고려된다. 그러한 하드웨어 디바이스들의 예시들은, 커서 제어 디바이스(예를 들어, 마우스), 원격 제어(예를 들어, 텔레비전 원격 제어), 모바일 통신 디바이스[예를 들어, 컴퓨팅 디바이스(102)의 하나 이상의 동작을 제어하도록 구성되는 무선 폰], 및 다른 디바이스들을 포함한다.
운영 체제(116)는 또한, 파일 시스템, 및 컴퓨팅 디바이스(102)의 사용자에 의해 내비게이팅 가능한 사용자 인터페이스를 관리하는 것과 같이, 다양한 다른 기능을 나타낼 수 있다. 이 예시는 애플리케이션 런처(120)(예를 들어, 시작 화면 또는 시작 메뉴)를 구현하기 위한 기능을 나타내는 런처 모듈(118)로서 예시되고, 애플리케이션 런처(120)의 예시는 도 1 내의 컴퓨팅 디바이스(102)의 디스플레이 디바이스(108) 상의 사용자 인터페이스 내에 디스플레이된다.
애플리케이션 런처(120)는 아이콘, 타일들, 텍스트 설명들 등과 같은 애플리케이션들(114)의 복수의 표현들을 포함하고, 다양한 방식들로 구성될 수 있다. 애플리케이션 런처(120)는, 예를 들어 계층적(hierarchical) 파일 구조의 루트(root) 레벨로서 구성될 수 있고, 예를 들어 다른 레벨들 각각은 계층 내에서 “하위(beneath)” 루트 레벨이다. 예시된 예시에 도시된 표현들은, 컴퓨팅 디바이스(102) 상에서의 실행을 위해 애플리케이션들(114) 중 대응하는 하나의 애플리케이션(114)을 런칭하도록 선택가능하다. 이러한 방식으로, 사용자는 파일 구조를 통해 쉽게 내비게이팅하고 관심있는 애플리케이션들(114)의 실행을 개시할 수 있다. 다른 구성들이 또한 고려되며, 다른 구성들의 예시들은 아래에서 논의되고 대응하는 도면들에 도시된다.
운영 체제(116)는 또한 표현 모듈(122)을 포함하는 것으로서 예시된다. 표현 모듈(122)은, 애플리케이션들(114)의 표현들(예를 들어, 타일들, 아이콘들 등) 및 애플리케이션들(114)에 의해 소비가능한 컨텐츠를 관리하기 위한 기능을 나타내며, 그 예시들은 시작 화면에 대해 예시된다. 몇몇 경우에서, 표현들은, 표현된 애플리케이션들(114)을 런칭하지 않고 표현들의 일부로서 디스플레이될 수 있는 알림들을 포함할 수 있다. 이 기능은 알림들(126)을 표현들의 일부로서의 포함을 위해 관리하도록 구성되는 알림 모듈(124)로서 예시된다.
예를 들어, 날씨 애플리케이션의 표현(128)은 지명 및 현재 날씨 상태, 예를 들어, “72°”를 나타내는 알림을 포함하는 것으로서 예시된다. 이러한 방식으로, 사용자는 애플리케이션들 각각을 런칭하고 애플리케이션들을 내비게이팅해야할 필요 없이, 애플리케이션들(114)에 관한 정보를 쉽게 볼 수 있다. 특정 애플리케이션들(114)의 표현들이 도시되었지만, 서비스에 대한 사용자의 참여, 예를 들어 소셜 네트워크 서비스 내의 친구를 나타내는 애플리케이션의 표현과 같은 애플리케이션들의 다른 표현들이 또한 고려된다.
하나 이상의 구현예에서, 대응하는 애플리케이션들(114)을 실행하지 않고 알림들(126)은 관리될 수 있다. 예를 들어, 알림 모듈(124)은 소프트웨어[예를 들어, 컴퓨팅 디바이스(102)에 의해 실행되는 다른 애플리케이션들]로부터, 네트워크(134)를 통한 웹 서비스(132) 등으로부터와 같이, 다양한 상이한 소스들로부터 알림들(126)을 수신할 수 있다. 이는, 알림들이 어디에서 어떻게 수신될지를 특정하는 알림 모듈(124)로의 애플리케이션들(114)의 등록(registration)에 응답하여 수행될 수 있다. 알림 모듈(124)은 이어서, 애플리케이션들(114)을 실행하지 않고, 알림들(126)이 표현들의 일부로서 어떻게 디스플레이되는지를 관리할 수 있다. 이는, 알림들(126)을 출력하기 위해 애플리케이션들(114) 각각을 실행하지 않음으로써, 컴퓨팅 디바이스(102)의 배터리 수명 및 성능을 향상시키기 위해 사용될 수 있다.
이 논의가 클라이언트에서의 알림 모듈(124)의 포함을 설명했지만, 알림 모듈(124)의 기능은 다양한 방식들로 구현될 수 있다. 예를 들어, 알림 모듈(124)의 기능은 전체적으로 또는 부분적으로 웹 서비스(132)에 포함될 수 있다. 예를 들어, 알림 모듈(130)은, 예를 들어 알림 모듈(124, 130)로의 애플리케이션들(114)의 등록을 통해, 다른 웹 서비스들로부터 수신되는 알림들을 프로세싱하고, 네트워크(134)를 통해 컴퓨팅 디바이스(102)에 분배하기 위해 알림들을 관리할 수 있어서, 알림들(126)은 표현된 애플리케이션들(114)의 실행 없이 표현들의 일부로서 출력될 수 있다.
애플리케이션 런처(120)는 다양한 상이한 방식들로 구성될 수 있다. 예시된 예시에서, 예를 들어 애플리케이션 런처(120)는 소비적 사용 상황에서의 상호작용을 위해 구성된다. 이러한 상황에서, 애플리케이션 런처(120)는 핸드헬드 설정에서의 사용자의 손(106)에 의한 제스처 입력과 같이, 수동 상호작용을 지원하도록 구성된다. 그와 같이, 애플리케이션 런처(120)는, 디스플레이 디바이스(108)의 이용가능한 디스플레이 영역의 대부분이 애플리케이션들(114)의 표현들 및 컴퓨팅 디바이스(102)의 다른 기능을 디스플레이하기 위해 애플리케이션 런처(120)에 의해 이용되는, 실질적으로 풀 스크린 뷰로 크기조정된다. 애플리케이션 런처(120) 내에 포함되는 표현들은 또한, 사용자의 손(106)의 손가락에 의해 효과적으로 선택가능하도록 크기조정된다.
애플리케이션 런처(120)의 출력은 다양한 방식들로 개시될 수 있다. 예시된 예시에서, 예를 들어 디스플레이 디바이스(108) 상의 사용자 인터페이스 디스플레이의 에지를 따라 태스크바(136)(예를 들어, 퀵 런치 바)가 디스플레이된다. 태스크바(136)는 애플리케이션 런처(120)의 표현(138)을 포함하는, 기능의 표현들을 포함한다. 애플리케이션 런처(120)의 표현(138)의 선택은, 런처 모듈(118)이 사용자 인터페이스 내에 애플리케이션 런처(120)를 디스플레이하게 한다. 태스크바(136)는 또한, 컴퓨팅 디바이스(102)에 의해 현재 실행되고 있는 (예를 들어, 활성 중이거나 슬립 상태에 있는) 애플리케이션들(114)의 표현들을 포함하도록 구성될 수 있다.
도 2는, 애플리케이션 런처(120)를 생산적 사용 상황에서의 사용을 위해 구성되는 것으로서 도시하는 예시적인 구현예(200)를 도시한다. 예시된 바와 같이, 애플리케이션 런처(120)의 전체 크기는, 도 1의 소비적 사용 상황에서보다 생산적 사용 상황에서 더 작다. 애플리케이션들(114)의 표현들은 또한 보다 작은 디스플레이 크기를 갖는다. 이러한 방식으로, 애플리케이션 런처(120) 주위의 영역들은 사용자가 여전히 볼 수 있다. 예를 들어, 애플리케이션들(114)의 사용자 인터페이스들은 애플리케이션 런처(120) 아래에 있는 레이어 내에 디스플레이될 수 있고, 애플리케이션 런처는 반투명한 부분들을 포함할 수 있어서, 애플리케이션 사용자 인터페이스들의 이 부분들은 애플리케이션 런처(120)(뿐만 아니라 예시된 바와 같은 배경 이미지) 등을 통해 볼 수 있다.
애플리케이션 런처(120)는 크롬 영역(202)을 포함한다. 크롬 영역(202)은, 사용자의 이름뿐만 아니라, 컴퓨팅 디바이스(102)를 턴 “오프”하고 컴퓨팅 디바이스(102) 상에서 이용가능한 모든 애플리케이션들(114)의 표현들을 포함하는 사용자 인터페이스에 내비게이팅하기 위한 “모든 앱들” 기능에 대해 선택가능한 기능을 포함한다.
애플리케이션 런처(120)는 또한, 컴퓨팅 디바이스(102)(예를 들어, “본 PC”)의 사용자 인터페이스를 통해 선택가능한 기능의 표현들, 문서 보기, 설정 메뉴 액세스, 계산기 애플리케이션 등을 포함하는 다기능 유틸리티(multifunction utility; MFU)(204) 영역을 포함한다. 아이콘들과 같은 다른 구성들이 또한 고려되지만, 이 예시에서 타일들로서 구성되는 애플리케이션들(114)의 표현들을 포함하는 타일 그리드(206)가 MFU(204) 옆에 있다. 타일들은, 표현된 애플리케이션들(114)을 활발히 실행하지 않고, 애플리케이션 런처(120) 내에서 비모달(non-modal) 방식으로 사용자에게 알리도록 이용될 수 있는 이전에 설명된 바와 같은 알림들(126)을 포함한다.
애플리케이션들(114)의 표현들은 이 예시에서 2개의 열들로서, 열들 내의 그룹들로서 타일 그리드(206) 내에 배열된다. 애플리케이션 런처(120)의 크기는 다양한 방식들로 특정될 수 있다.
예를 들어, 사용자는 MFU(204) 영역 내의 “설정”을 통해 액세스가능한 설정 메뉴에서 애플리케이션 런처(120)에 대한 열들 또는 행들의 수를 특정할 수 있다. 다른 예시에서, 사용자는 애플리케이션 런처(120)의 보더와 상호작용할 수 있는데, 이는 애플리케이션 런처의 수평 및 수직 크기를 특정하기 위해 커서 제어 디바이스에 의해 제어되는 커서를 사용하여 수행되는 것으로서 예시된다. 제스처의 사용을 통하는 것과 같은 다른 예시들이 또한 고려된다. 추가적인 예시에서, 사용자는, 예를 들어 도 1 및 도 2에 도시된 뷰들 사이를 스위칭하기 위해, 애플리케이션 런처(120) 내에 디스플레이되는 제어(예를 들어, 버튼)의 사용을 통해 상이한 크기들 사이를 선택할 수 있다.
런처 모듈(118)이 특정되면, 이 런처 모듈(118)은 이 예시에서 사용자의 선택을 “준수”하도록 구성된다. 도 2에 도시된 바와 같이, 예를 들어, 사용자는 애플리케이션 런처(120)에 대한 크기를 특정했다. 애플리케이션 런처(120)의 이용가능한 디스플레이 영역이 소비되면[즉, 애플리케이션들(114)의 “풀” 표현들], 애플리케이션 런처(120)는 스크롤링, 예를 들어 타일들의 부분적 디스플레이(208)에 의해 나타내어진 바와 같이 이 예시에서 연속적인[예를 들어, 페이지 지정되지 않은(non-paginated)] “하향” 스크롤링을 지원할 수 있다. 애플리케이션 런처(120)의 동적 크기조정은 런처 모듈(118)에 의해 다양한 방식들로 수행될 수 있고, 이 예시는 아래와 같이 설명되며 대응하는 도면들에 도시된다.
도 3은 도 2의 애플리케이션 런처(120)를 2개의 열들을 지원하는 것으로서 도시하는 예시적인 구현예(300)를 도시한다. 이는, 도 2에 도시된 바와 같은 생산적 사용에서의 애플리케이션 런처(120)의 구성의 예시이다. 애플리케이션 런처(120)는 제 1 및 제 2 열들(302, 304)을 포함하며, 이 열들은 서로가 구별되도록 자신들 사이에 갭을 갖는다. 제 1 및 제 2 열들(302, 304)은 또한, 애플리케이션들(114)의 표현들과, 애플리케이션들과 관련되는 컨텐츠의 그룹화를 지원할 수 있으며, 이 예시는 아래에 설명된다.
도 4는 도 3의 애플리케이션 런처(120)를 열들 내에서 그룹화하는 것을 지원하는 것으로서 도시하는 예시적인 구현예(400)를 도시한다. 이 예시에서, 제 1 열(302)은 표현들의 제 1 및 제 2 그룹들(402, 404)을 포함한다. 제 2 열(304)은 표현들의 단일 그룹(406)을 포함한다. 이 레이아웃은, 표현들이 애플리케이션 런처(120)에 추가되거나 또는 애플리케이션 런처(120)로부터 제거됨에 따라 자동으로 사용자 개입 없이 애플리케이션 런처(120)를 동적으로 재크기조정하는 것과 같이, 애플리케이션 런처(120)를 동적으로 크기조정하는 것뿐만 아니라 애플리케이션 런처 내의 타일들을 배열하기 위해 런처 모듈(118)에 의해 활용될 수 있다.
도 5 및 도 6은 2개의 열 포맷으로 도 4의 그룹들을 활용하는 애플리케이션 런처(120)의 동적 크기조정을 도시하는 예시적인 구현예들(500, 600)을 도시한다. 타일들과 같은 표현들은, 다양한 방식들로 애플리케이션 런처(120)에 추가되거나 또는 애플리케이션 런처(120)로부터 제거될 수 있다. 사용자는, 예를 들어 애플리케이션 모듈(118)이 애플리케이션 런처(120)에 표현을 추가하는 것뿐만 아니라 애플리케이션 런처(120)로부터 표현을 제거하게 하기 위해, 사용자 인터페이스 내에서 “우측 클릭”하거나 또는 제스처(예를 들어, 타일 위를 “슬라이드 다운”)를 수행할 수 있다. 따라서, 다음은 표현들이 추가되고 이어서 애플리케이션 런처(120)가 성장되는(grown) 예시를 설명하지만, 이 순서는 또한 애플리케이션 런처(120)로부터의 표현들의 제거를 설명하기 위해 반대로 될 수 있다.
도 5의 예시적인 구현예(500)는 제 1, 제 2, 제 3 스테이지들(502, 504, 506)을 포함하는 것으로서 예시된다. 제 1 스테이지(502)에서, 제 1 그룹(402)에 표현들이 추가된다. 이 그룹이 풀이면, 애플리케이션 런처(120) 내의 단일 열 내의 제 1 그룹(402)에 제 2 그룹(404)이 추가되므로, 애플리케이션 런처(120)의 전체 크기, 예를 들어, 애플리케이션 런처(120)를 디스플레이하는데 소비되는 디스플레이 디바이스(108)의 이용가능한 디스플레이 영역의 양을 증가시킨다.
이 프로세스는, 제 1 열(302)의 제 1 및 제 2 그룹들(402, 404)이 채워지면, 이전에 설명된 바와 같이 단일 그룹(406)을 갖는 제 2 열(304)이 추가되도록 지속될 수 있다. 따라서, 이 예시에서 애플리케이션 런처(120) 내에 표현들을 배열하도록 이용되는 2열 레이아웃이 특정되었다. 이 프로세스는, 애플리케이션 런처(120)에 추가되는 연속적인 표현들이 이들 열들 내에 그룹들로서 추가되도록 지속될 수 있다.
도 6의 제 1 및 제 2 스테이지들(602, 604)에 도시된 바와 같이, 예를 들어 제 1, 제 2, 제 3 그룹들(402, 404, 및 406)이 채워지면, 제 1 열(302) 내의 제 1 및 제 2 그룹들(402, 404) 아래에 제 4 그룹(606)이 추가된다. 마찬가지로, 제 4 그룹(606)이 채워지면, 제 3 그룹(406) 아래의 제 2 열(304) 내에 제 5 그룹(608)이 추가된다. 이 프로세스는, 이전에 설명된 바와 같이 애플리케이션 런처(120)의 이용가능한 디스플레이 영역이 소비되면, 표현들을 내비게이팅하기 위해 스크롤링 기능이 이용될 수 있도록 지속될 수 있다.
도 7은 도 1의 애플리케이션 런처(120)를 단일 열 내에서 그룹화하는 것을 지원하는 것으로서 도시하는 예시적인 구현예(700)를 도시한다. 예시적인 구현예(700)는 또한, 제 1, 제 2, 제 3, 및 제 4 스테이지들(702, 704, 706, 708)를 사용하여 예시된다. 제 1 스테이지(702)에서, 애플리케이션들(114)의 표현들을 배열하기 위해 단일 열 내의 단일 수직 그룹(710)이 초기에 사용된다. 이는, 몇몇 표현들을 포함할 때 애플리케이션 런처(120)의 디스플레이 내의 “조밀화(compactness)”를 보존하기 위해 이용될 수 있다.
이전과 같이, 이 그룹(710)이 채워지면, 제 2 스테이지(704)에 도시된 바와 같이 제 2 그룹(712)이 열에 추가될 수 있다. 그룹들의 후속 채움은, 제 3 및 제 4 스테이지들(706, 708)에 각각 도시된 바와 같이 추가적인 그룹들(714, 716)이 수직으로 추가되도록 할 수 있다. 다양한 다른 예시들이 또한 고려되고, 이들의 추가적인 논의가 이어지며 대응하는 도면에 도시된다.
도 8은 도 1의 애플리케이션 런처(120)에 의해 이용될 수 있는 추가적인 포맷들을 도시하는 예시적인 구현예(800)를 도시한다. 제 1 예시(802)에서, 3개의 열 포맷이 도시된다. 제 2 예시(804)는, 제 1 예시(802)의 3개의 열 포맷으로부터 4개의 열 포맷으로의 확장을 도시한다. 제 3 예시(806)는, 제 2 열 아래 및 제 3열에 표현들이 추가되는 3개의 열 배열을 도시한다. 따라서, 다양한 상이한 레이아웃들은 런처 내에 포함될 표현들의 수에 기반하여 애플리케이션 런처(120)를 동적으로 크기조정할 때 런처 모듈(118)에 의해 이용될 수 있다. 이전에 설명된 바와 같이, 런처 모듈(120)은 또한 사용 상황에 기반하여 애플리케이션 런처(120)를 동적으로 크기조정할 수 있고, 이 예시는 아래와 같이 설명되며 대응하는 도면들에 도시된다.
도 9는, 도 1의 컴퓨팅 디바이스(102)의 런처 모듈(118)이, 컴퓨팅 디바이스(102)와 상호작용하고 있는 사용자의 사용 상황의 표시에 응답하여 애플리케이션 런처를 동적으로 크기조정하는, 예시적인 구현예(900)를 도시한다. 이 예시적인 구현예는 애플리케이션 런처(120)의 제 1 및 제 2 예시들(902, 904)을 포함한다.
제 1 예시(902)에서, 애플리케이션 런처(120)는, 주로 사용자가 사용자 인터페이스와의 터치 상호작용을 지원하기 위해 디바이스를 홀딩하고 있는 동안 이용되는 것과 같이, 소비적 사용 상황을 위해 구성된다. 그와 같이, 제 1 예시(902) 내의 애플리케이션 런처(120)는, 런처가 사용자 인터페이스 중심에 주어지고(중앙에 디스플레이됨) 사용자 인터페이스의 이용가능한 디스플레이 영역의 대부분을 소비하는, 실질적으로 풀스크린 뷰로 예시된다. 표현들(예를 들어, 타일들)은 또한 사용자의 손(106)의 손가락을 통한 제스처 입력을 통해 사용자 선택을 지원하는 크기를 갖도록 구성된다.
제 2 예시(904)에서, 애플리케이션 런처의 생산적 사용 상황 구성이 도시된다. 예시된 바와 같이, 애플리케이션 런처(120)의 전체 크기는 소비적 사용 상황의 예시(902)에서보다 이 예시(904)에서 더 작다.
애플리케이션들(114)의 표현들은 또한 보다 작은 디스플레이 크기를 갖는다. 이러한 방식으로, 애플리케이션 런처(120) 주위의 영역들은 이전에 설명된 바와 같이 사용자가 여전히 볼 수 있다.
런처 모듈(118)은 이 예시에서, 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 상황의 표시(906)에 기반하여 애플리케이션 런처(120)를 동적으로 크기조정하도록 구성된다. 이 표시(906)는 다양한 방식들로 생성될 수 있다. 예를 들어, 사용자 인터페이스를 출력하기 위해 사용되는 디스플레이 디바이스(108)의 이용가능한 디스플레이 영역의 크기는 예상되는 사용 상황을 나타낼 수 있다. 12 인치 스크린과 상호작용하는 사용자는, 예를 들어 소비적 사용 상황에서 상호작용할 가능성이 높은 반면, 30 인치 스크린과 상호작용하는 사용자는 생산적 사용 상황, 예를 들어 데스크탑에서 상호작용할 가능성이 높다. 또한, 디스플레이 디바이스(108)에 의해 지원되는 기능이 또한 표시될 수 있다. 예를 들어, 디스플레이 디바이스(108)에 의한 터치스크린 지원의 부재는 생산적 사용 상황에서의 상호작용을 나타낼 수 있다.
다른 예시에서, 표시(906)는 3차원 공간에서의 컴퓨팅 디바이스 자체의 배향(orientation) 또는 이동(movement)에 기반하여 생성될 수 있다. 예를 들어, 컴퓨팅 디바이스(102)가 이동을 나타내었는지의 여부를 결정하기 위해 가속도계 등이 이용될 수 있고, 이동을 나타내었다면 사용자가 소비적 사용 상황에서 컴퓨팅 디바이스(102)와 상호작용할 가능성이 높은 반면, 이동의 부재는 생산적 사용 상황을 나타낼 수 있다. 추가적으로, 3차원 공간에서의 컴퓨팅 디바이스(102)의 배향은, 사용자가 디바이스를 홀딩하고 따라서 소비적 사용자 경험에서 상호작용하고 있을 가능성이 높은지, 또는 표면 상에 디바이스를 놓고 따라서 생산적 사용 상황에서 상호작용하고 있을 가능성이 높은지의 여부를 나타낼 수 있다. 주변 디바이스들의 사용은 또한 사용 상황을 나타낼 수 있고, 이에 대한 추가적인 논의가 아래에서 발견되고 대응하는 도면에 도시될 수 있다.
도 10은, 주변 디바이스를 컴퓨팅 디바이스에 부착되는 것으로서 도시하는 예시적인 구현예(1000)를 도시하며, 예상되는 생산적 사용 상황도 나타낸다. 이 예시에서, 키보드로서 구성되는 주변 디바이스(1002)는, 사용자의 하나 이상의 손(106)을 사용하여 컴퓨팅 디바이스(102)에 탈착가능하게 부착 가능하도록 구성되는 연결 부분(1004)을 포함한다. 연결 부분(1004)은, 예를 들어 컴퓨팅 디바이스(102)에 효과적으로 부착되고 컴퓨팅 디바이스(102)로부터 제거될 수 있는, 물리적인 통신가능한 커플링을 지원하기 위한 자석들 및 물리적인 접촉부들을 포함할 수 있다.
그와 같이, 런처 모듈(118)은, 사용자가 생산적 사용 상황에서 컴퓨팅 디바이스(102)와 상호작용할 표시(906)로서 주변 디바이스(1002)의 부착을 활용할 수 있고, 따라서 이 상황을 위해 구성되는 애플리케이션 런처(120)의 예시(904)의 출력을 유발한다. 주변 디바이스(1002)가 컴퓨팅 디바이스(102)로부터 분리되면, 런처 모듈(118)은 도 9에 도시된 바와 같은 소비적 사용 상황을 위해 구성되는 애플리케이션 런처(120)의 제 1 예시(902)의 출력을 유발할 수 있다. 소비적 사용 상황을 나타내는 것으로서의 사용자의 손의 손가락들과의 상호작용 대비, 생산적 사용 상황을 통한 상호작용을 나타내기 위해, 커서 제어 디바이스[예를 들어, 마우스를 컴퓨팅 디바이스(102)에 무선으로 연결]의 사용을 통해서와 같은 다른 예시들이 또한 고려된다.
컴퓨팅 디바이스(102)에 관련된 디바이스[예를 들어, 주변 디바이스(1002)]의 배향은 또한 예상되는 사용 상황을 나타낼 수 있다. 이 예시에서, 예를 들어 주변 디바이스(1002)는 힌지, 예를 들어 가요성 패브릭 힌지의 사용을 통해 컴퓨팅 디바이스(102)에 관련된 회전 이동을 지원하도록 구성된다. 이러한 방식으로, 주변 디바이스(1002)는, 보관을 위한 디스플레이 디바이스에 대한 커버로서 역할할 수 있고, 생산적 사용 상황을 나타내는 타이핑 구성으로 위치될 수 있으며, 소비적 사용 상황을 지원하기 위해 컴퓨팅 디바이스(102)의 하우징 뒤에 위치될 수도 있어서, 주변 디바이스(1002)는 그러한 경우에 컴퓨팅 디바이스(102)와의 사용자의 상호작용을 방해하지 않는다. 이들 배향들은 주변 디바이스(1002) 및/또는 컴퓨팅 디바이스(102) 내의 센서들의 사용을 통해서와 같이 다양한 방식들로 감지될 수 있다. 따라서, 이전에 설명된 바와 같이 런처 모듈(118)은 예상되는 사용 상황의 다양한 표시들(906)을 수신할 수 있고, 예상되는 사용 상황의 다양한 표시들(906)은 이어서 애플리케이션 런처(120)를 동적으로 크기조정하기 위해 사용될 수 있다. 손쉽게 알 수 있는 바와 같이, 이들 기술들의 조합들은 또한, 결정의 예상 정확도를 증가시키기 위해 사용될 수 있는 런처 모듈(118)에 의해 이용될 수 있다. 이러한 기술과 다른 기술의 추가적인 논의는 아래의 프로시저들과 관련하여 발견될 수 있다.
예시적인 프로시저들
아래의 논의는 이전에 설명된 시스템들 및 디바이스들을 이용하여 구현될 수 있는 애플리케이션 런처 크기조정 기술들을 설명한다. 본 프로시저들 각각의 양태들은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 본 프로시저들은 하나 이상의 디바이스에 의해 수행되는 동작들을 특정하는 한 세트의 블록들로서 도시되며, 각각의 블록들에 의한 동작들을 수행하는 것에 대해 반드시 도시된 순서들에 제한되지는 않는다. 아래의 논의 부분들에서는, 위에서 설명된 예시적인 환경을 참조할 것이다.
도 11은, 애플리케이션 런처를 동적으로 크기조정하는 기반으로서, 예상되는 사용 상황의 결정이 이용되는 예시적인 구현예에서의 프로시저(1100)를 도시한다. 예상되는 사용 상황은 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 컴퓨팅 디바이스에 의해 결정된다(블록 1102). 사용 상황은, 예를 들어 이전에 설명된 바와 같이 컴퓨팅 디바이스에의 주변 디바이스의 부착, 컴퓨팅 디바이스에 관련된 주변 디바이스의 물리적 배열, 3차원 공간에서의 컴퓨팅 디바이스의 배향 또는 이동, 사용자 인터페이스를 디스플레이하기 위해 사용되는 디스플레이 디바이스의 디스플레이 영역의 크기 등에 기반할 수 있다.
애플리케이션 런처는, 사용자의 결정된 예상되는 사용 상황에 기반하여 컴퓨팅 디바이스에 의해 사용자 인터페이스의 디스플레이 영역 내에서 동적으로 크기조정된다. 애플리케이션 런처는 사용자로부터 수신되는 입력에 응답한 출력을 위해 구성되고, 각각의 애플리케이션에 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능한 애플리케이션들의 복수의 표현들을 포함한다(블록 1104). 예를 들어, 생산적 또는 소비적 사용 상황의 결정은, 도 9와 관련하여 이전에 설명된 바와 같이 생산적 또는 소비적 사용에 기반하여 애플리케이션 런처(102)를 크기조정하기 위해 활용될 수 있다. 다양한 다른 예시들이 또한 고려된다.
예시적인 시스템 및 디바이스
도 12는 표현 모듈(120)의 포함을 통해 예시되는, 본원에 설명된 다양한 기술들을 구현할 수 있는 하나 이상의 컴퓨팅 시스템 및/또는 디바이스를 나타내는 예시적인 컴퓨팅 디바이스(1202)를 포함하는 일반적으로 도면 부호 1200에서의 예시적인 시스템을 예시한다. 컴퓨팅 디바이스(1202)는, 예를 들어 서비스 제공자의 서버, 클라이언트(예를 들어, 클라이언트 디바이스)와 연관된 디바이스, 온 칩 시스템, 및/또는 다른 적절한 컴퓨팅 디바이스 또는 컴퓨팅 시스템일 수 있다.
예시된 바와 같은 예시적인 컴퓨팅 디바이스(1202)는 프로세싱 시스템(1204), 하나 이상의 컴퓨터 판독가능 매체(1206), 및 서로 통신가능하게 커플링된 하나 이상의 I/O 인터페이스(1208)를 포함한다. 도시되지는 않았지만, 컴퓨팅 디바이스(1202)는 다양한 컴포넌트들을 서로 커플링하는 시스템 버스 또는 데이터 및 명령어 전송 시스템을 더 포함할 수 있다. 시스템 버스는 임의의 다양한 버스 아키텍처들을 이용하는, 메모리 버스 또는 메모리 제어기, 주변 버스, 범용 직렬 버스, 및/또는 프로세서 또는 로컬 버스와 같은, 상이한 버스 구조들 중 임의의 하나 또는 이러한 상이한 버스 구조들의 조합을 포함할 수 있다. 제어 및 데이터 라인들과 같은 다양한 다른 예시들이 또한 고려된다.
프로세싱 시스템(1204)은 하드웨어를 사용하여 하나 이상의 동작을 수행하기 위한 기능을 나타낸다. 따라서, 프로세싱 시스템(1204)은 프로세서들, 기능적 블록들 등으로서 구성될 수 있는 하드웨어 엘리먼트(1210)를 포함하는 것으로서 예시된다. 이는, 하나 이상의 반도체를 사용하여 형성되는 주문형 집적 회로 또는 다른 논리 디바이스로서의 하드웨어 내의 구현을 포함할 수 있다. 하드웨어 엘리먼트들(1210)은 형성되는 소재들 또는 내부에서 이용되는 프로세싱 메커니즘들에 의해 제한되지는 않는다. 예를 들어, 프로세서들은 반도체(들) 및/또는 트랜지스터들[예를 들어, 전자 집적 회로(IC)들]로 구성될 수 있다. 그러한 상황에서, 프로세서 실행가능 명령어들은 전자적으로 실행가능한 명령어들일 수 있다.
컴퓨팅 판독가능 저장 매체(1206)는 메모리/저장소(1212)를 포함하는 것으로서 예시된다. 메모리/저장소(1212)는 하나 이상의 컴퓨터 판독가능 매체와 연관된 메모리/저장소 용량을 나타낸다. 메모리/저장소 컴포넌트(1212)는 [랜덤 액세스 메모리(RAM)와 같은] 휘발성 매체 및/또는 [읽기 전용 메모리(read only memory; ROM), 플래시 메모리, 광학 디스크들, 자기 디스크들 등과 같은] 비휘발성 매체를 포함할 수 있다. 메모리/저장소 컴포넌트(1212)는 고정형 매체(예를 들어, RAM, ROM, 고정형 하드 드라이브 등)뿐만 아니라 탈착가능 매체(예를 들어, 플래시 메모리, 탈착가능 하드 드라이브, 광학 디스크 등)를 포함할 수 있다. 컴퓨터 판독가능 매체(1206)는 아래에서 추가로 설명되는 바와 같은 다양한 다른 방식들로 구성될 수 있다.
입력/출력 인터페이스(들)(1208)는, 사용자가 컴퓨팅 디바이스(1202)에 명령어들 및 정보를 입력하는 것을 가능하게 하고, 또한 다양한 입력/출력 디바이스들을 사용하여 정보가 사용자 및/또는 다른 컴포넌트들 또는 디바이스들에 나타내어지는 것을 가능하게 하기 위한 기능을 나타낸다. 입력 디바이스들의 예시들은 키보드, 커서 제어 디바이스(예를 들어, 마우스), 마이크로폰, 스캐너, 터치 기능(예를 들어, 물리적 터치를 감지하도록 구성되는 용량성 센서 또는 다른 센서), (예를 들어, 터치를 포함하지 않는 제스처들로서 이동을 인식하기 위한 적외선 주파수들과 같은 가시적 또는 비가시적 파장들을 이용할 수 있는) 카메라 등을 포함한다. 출력 디바이스들의 예시들은 디스플레이 디바이스(예를 들어, 모니터 또는 프로젝터), 스피커들, 프린터, 네트워크 카드, 촉각 응답 디바이스 등을 포함한다. 컴퓨팅 디바이스(1202)는 사용자 상호작용을 지원하기 위해 아래에 추가로 설명되는 바와 같이 다양한 방식들로 구성될 수 있다.
다양한 기술들은 일반적인 상황의 소프트웨어, 하드웨어 엘리먼트들, 또는 프로그램 모듈들로 본원에서 설명될 수 있다. 일반적으로, 그러한 모듈들은 특정한 태스크들을 수행하거나 또는 특정한 추상적 데이터 유형들을 구현하는, 루틴들, 프로그램들, 오브젝트들, 엘리먼트들, 컴포넌트들, 데이터 구조들 등을 포함한다.
본원에서 사용되는 바와 같은 용어 "모듈", "기능", 및 "컴포넌트"는 일반적으로 소프트웨어, 펌웨어, 또는 이들의 조합을 나타낸다. 본원에서 설명되는 기술들의 특징들은 플랫폼 독립적인데, 이는 본 기술들이 다양한 프로세서들을 갖는 다양한 상업적 컴퓨팅 플랫폼들 상에서 구현될 수 있다는 것을 의미한다.
설명된 모듈들 및 기술들의 구현은 몇몇 형식의 컴퓨터 판독가능 매체 상에 저장되거나 또는 몇몇 형식의 컴퓨터 판독가능 매체에 걸쳐 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 디바이스(1202)에 의해 액세스될 수 있는 다양한 매체를 포함할 수 있다. 비제한적인 예시로서, 컴퓨터 판독가능 매체는 “컴퓨터 판독가능 저장 매체” 및 “컴퓨터 판독가능 신호 매체”를 포함할 수 있다.
“컴퓨터 판독가능 저장 매체”는 단순한 신호 전송, 반송파들, 또는 신호 그 자체와 대조적으로 영구적 및/또는 비일시적 정보 저장을 가능하게 해주는 매체 및/또는 디바이스를 지칭할 수 있다. 따라서, 컴퓨터 판독가능 저장 매체는 비신호 함유 매체를 지칭한다. 컴퓨터 판독가능 저장 매체는, 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 논리 엘리먼트들/회로들, 또는 데이터와 같은 정보의 저장을 위해 적절한 방법 또는 기술로 구현되는, 휘발성 및 비휘발성, 탈착가능 및 비탈착가능 매체 및/또는 저장 디바이스들과 같은 하드웨어를 포함한다. 컴퓨터 판독가능 저장 매체의 예시들은, 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disk; DVD)들 또는 다른 광학 저장소, 하드 디스크들, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 다른 저장 디바이스, 유형 매체, 또는 원하는 정보를 저장하는데 적절한 제조 물품(article of manufacture)을 포함할 수 있다.
“컴퓨터 판독가능 신호 매체”는 가령 네트워크를 통해 컴퓨팅 디바이스(1202)의 하드웨어에 명령어들을 전송하도록 구성되는 신호 함유 매체를 지칭할 수 있다. 신호 매체는 일반적으로 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 반송파들, 데이터 신호들 또는 다른 전송 메커니즘과 같은, 변조된 데이터 신호 내의 다른 데이터를 포함할 수 있다. 신호 매체는 또한 임의의 정보 전달 매체를 포함한다. 용어 “변조된 데이터 신호”는 해당 신호 내에 정보를 인코딩하기 위한 방식으로 설정되거나 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 비제한적인 예시로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선(direct-wired) 연결과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다.
이전에 설명된 바와 같이, 하드웨어 엘리먼트들(1210) 및 컴퓨터 판독가능 매체(1206)는, 하나 이상의 명령어를 수행하는 것과 같이 본원에서 설명된 기술들의 적어도 몇몇 양태들을 구현하기 위해 몇몇 실시예들에서 이용될 수 있는 하드웨어 형식 내에서 구현되는 모듈들, 프로그램가능 디바이스 논리 및/또는 고정형 디바이스 논리를 나타낸다. 하드웨어는, 집적 회로 또는 온 칩 시스템의 컴포넌트들, 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(field-programmable gate array; FPGA), 복합적 프로그램가능 논리 디바이스(complex programmable logic device; CPLD), 및 실리콘 또는 다른 하드웨어 내의 다른 구현예들을 포함할 수 있다. 이러한 상황에서, 하드웨어는, 하드웨어에 의해 구현되는 명령어들 및/또는 논리뿐만 아니라, 예를 들어 이전에 설명된 컴퓨터 판독가능 저장 매체를 실행하기 위해 명령어들을 저장하도록 이용되는 하드웨어에 의해 규정되는 프로그램 태스크들을 수행하는 프로세싱 디바이스로서 동작할 수 있다.
이전의 조합들은 또한 본원에 설명된 다양한 기술들을 구현하기 위해 이용될 수 있다. 따라서, 소프트웨어, 하드웨어, 또는 실행가능한 모듈들은 몇몇 형태의 컴퓨터 판독가능 저장 매체 상에서 및/또는 하나 이상의 하드웨어 엘리먼트(1210)에 의해 구현되는 하나 이상의 명령어 및/또는 논리로서 구현될 수 있다. 컴퓨팅 디바이스(1202)는 소프트웨어 및/또는 하드웨어 모듈들에 대응하는 특정 명령어들 및/또는 기능들을 구현하도록 구성될 수 있다. 따라서, 소프트웨어로서 컴퓨팅 디바이스(1202)에 의해 실행가능한 모듈의 구현은, 예를 들어 컴퓨터 판독가능 저장 매체 및/또는 프로세싱 시스템(1204)의 하드웨어 엘리먼트들(1210)의 사용을 통해, 하드웨어 내에서 적어도 부분적으로 달성될 수 있다. 명령어들 및/또는 기능들은, 본원에 설명된 기술들, 모듈들, 및 예시들을 구현하기 위해 하나 이상의 제조 물품[예를 들어, 하나 이상의 컴퓨팅 디바이스(1202) 및/또는 프로세싱 시스템(1204)]에 의해 실행가능/동작가능할 수 있다.
도 12에 추가로 예시된 바와 같이, 예시적인 시스템(1200)은 개인용 컴퓨터(PC), 텔레비전 디바이스, 및/또는 모바일 디바이스 상에서 애플리케이션들을 구동시킬 때의 끊김없는(seamless) 사용자 경험을 위해 유비쿼터스 환경들을 가능하게 해준다. 애플리케이션을 이용하고, 비디오 게임을 하며, 비디오 시청 등을 하면서 하나의 디바이스로부터 다음 디바이스로 천이할 때 서비스들과 애플리케이션들은 공통적인 사용자 경험을 위해 세가지 모두의 환경들에서 실질적으로 유사하게 구동된다.
예시적인 시스템(1200)에서, 다중 디바이스들은 중앙 컴퓨팅 디바이스를 통해 상호연결된다. 중앙 컴퓨팅 디바이스는 다중 디바이스들에 대해 국지화될 수 있거나 또는 다중 디바이스들로부터 원격 위치될 수 있다. 일 실시예에서, 중앙 컴퓨팅 디바이스는, 네트워크, 인터넷, 또는 다른 통신 링크를 통해 다중 디바이스들에 연결된 하나 이상의 서버 컴퓨터의 클라우드일 수 있다.
일 실시예에서, 이러한 상호연결 아키텍처는 다중 디바이스들의 사용자에게 공통적이고 끊김없는 경험을 제공하도록 다중 디바이스들에 걸쳐 기능이 전달될 수 있게 해준다. 다중 디바이스들 각각은 상이한 물리적 요건들 및 능력들을 가질 수 있으며, 중앙 컴퓨팅 디바이스는, 디바이스에 맞춤화되며 또한 모든 디바이스들에게 공통되는 경험의 디바이스로의 전달을 가능하게 해주는 플랫폼을 사용한다. 일 실시예에서, 타겟 디바이스들의 클래스가 생성되며 경험들은 디바이스들의 일반적인 클래스에 맞춤화된다. 디바이스들의 클래스는 디바이스들의 물리적 특징들, 사용 유형들, 또는 다른 공통 특성들에 의해 정의될 수 있다.
다양한 구현예들에서, 컴퓨팅 디바이스(1202)는 컴퓨터(1214), 모바일(1216), 및 텔레비전(1218) 사용들과 같은, 다양한 상이한 구성들을 취할 수 있다. 이러한 구성들 각각은 대체로 상이한 구성들 및 능력들을 가질 수 있는 디바이스들을 포함하며, 이에 따라 컴퓨팅 디바이스(1202)는 하나 이상의 상이한 디바이스 클래스에 따라 구성될 수 있다. 예컨대, 컴퓨팅 디바이스(1202)는 개인용 컴퓨터, 데스크탑 컴퓨터, 멀티 스크린 컴퓨터, 랩탑 컴퓨터, 넷북 등을 포함하는 컴퓨터(1214) 디바이스 클래스로서 구현될 수 있다.
컴퓨팅 디바이스(1202)는 또한 모바일 폰, 휴대용 뮤직 플레이어, 휴대용 게임 디바이스, 태블릿 컴퓨터, 멀티 스크린 컴퓨터 등과 같은 모바일 디바이스들을 포함하는 모바일(1216) 디바이스 클래스로서 구현될 수 있다. 컴퓨팅 디바이스(1202)는 또한 평상시의 시청 환경들에서 대체로 보다 큰 스크린들을 갖거나 또는 이에 연결된 디바이스들을 포함하는 텔레비전(1218) 디바이스 클래스로서 구현될 수 있다. 이러한 디바이스들은 텔레비전들, 셋탑 박스들, 게이밍 콘솔 등을 포함한다.
본원에 설명된 기술들은, 컴퓨팅 디바이스(1202)의 이러한 다양한 구성들에 의해 지원될 수 있으며, 본원에 설명된 특정 예시의 기술들에 제한되지 않는다. 이 기능은 또한, 아래에서 설명되는 바와 같이 가령 플랫폼(1222)을 통해 “클라우드”(1220)에 걸쳐 분산 시스템의 사용을 통해 모두 또는 부분적으로 구현될 수 있다.
클라우드(1220)는 리소스들(1224)을 위한 플랫폼(1222)을 포함하고/포함하거나 이들을 나타낸다. 플랫폼(1222)은 클라우드(1220)의 하드웨어(예를 들어, 서버들)와 소프트웨어 리소스들의 근본 기능을 추상화시킨다. 리소스들(1224)은 컴퓨터 프로세싱이 컴퓨팅 디바이스(1202)로부터 원격위치된 서버들 상에서 실행되고 있는 동안에 이용될 수 있는 애플리케이션들 및/또는 데이터를 포함할 수 있다. 리소스들(1224)은 또한, 인터넷을 통해 및/또는 셀룰러 또는 Wi-Fi 네트워크와 같은 가입자 네트워크를 통해 제공될 수 있다. 플랫폼(1222)은 컴퓨팅 디바이스(1202)를 다른 컴퓨팅 디바이스들에 연결시키기 위해 리소스들 및 기능들을 추상화시킬 수 있다. 플랫폼(1222)은 또한 플랫폼(1222)을 통해 구현되는 리소스들(1224)에 대한 수요에 맞대응하기 위해 대응하는 스케일 레벨을 제공하도록 리소스들의 스케일링을 추상화하는 역할을 할 수 있다. 이에 따라, 상호연결된 디바이스 실시예에서, 본원에서 설명된 기능의 구현은 시스템(1200)에 걸쳐 분산될 수 있다. 예를 들어, 기능은 컴퓨팅 디바이스(1202) 상에서 뿐만 아니라 클라우드(1220)의 기능을 추상화하는 플랫폼(1222)을 통해서 부분적으로 구현될 수 있다.
결론
본 발명이 구조적 특징들 및/또는 방법론적 동작들에 특유적인 언어로 설명되었지만, 첨부된 청구항들에서 정의된 발명은 설명된 특정한 특징들 또는 동작들로 반드시 제한될 필요는 없다는 것을 이해하여야 한다. 이보다는, 이러한 특정한 특징들 및 동작들은 청구된 발명을 구현하는 예시적인 형태들로서 개시된 것이다.

Claims (19)

  1. 애플리케이션 런처(launcher)의 동적 크기조정(sizing)을 제어하는 방법에 있어서,
    컴퓨팅 디바이스에 의해, 상기 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 컨텍스트(likely usage context)를 결정하는 단계로서, 상기 예상되는 사용 컨텍스트를 결정하는 단계는,
    상기 컴퓨팅 디바이스가 상기 컴퓨팅 디바이스의 터치스크린을 통해 제스처들을 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 컨텐츠 소비 컨텍스트를 선택하는 단계; 및
    상기 컴퓨팅 디바이스가 커서 제어 주변 디바이스 또는 키보드를 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 생산성 사용 컨텍스트(productivity usage context)를 선택하는 단계를 포함하는 것인, 상기 예상되는 사용 컨텍스트를 결정하는 단계; 및
    상기 사용자의 상기 결정된 예상되는 사용 컨텍스트에 기반하여, 상기 컴퓨팅 디바이스에 의해 사용자 인터페이스의 디스플레이 영역 내에서 애플리케이션 런처를 동적으로 크기조정(size)하는 단계로서, 상기 애플리케이션 런처는,
    사용자로부터 수신되는 입력에 응답하는 출력을 위해 구성되고,
    애플리케이션들의 복수의 표현(representation)들 - 상기 애플리케이션들의 복수의 표현들은 각각의 상기 애플리케이션과 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능함 - 을 포함하는 것인, 상기 애플리케이션 런처를 동적으로 크기조정하는 단계
    를 포함하고,
    상기 애플리케이션 런처를 동적으로 크기조정하는 단계는, 상기 애플리케이션들의 복수의 표현들 중 적어도 하나를 추가하거나 제거하기 위한 사용자 입력의 수신에 응답하여, 자동으로 그리고 사용자 개입 없이 수평 방향 및 수직 방향 둘 다로 상기 애플리케이션 런처를 동적으로 재크기조정하는 단계를 포함하는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  2. 제 1 항에 있어서, 상기 애플리케이션 런처는, 상기 컴퓨팅 디바이스의 운영 체제에 의해 관리되는 파일 계층(file hierarchy)의 루트 레벨(root level)에서 홈 스크린 - 상기 홈 스크린은 사용자에 의해 연속적으로 스크롤가능함 - 으로서 구성되는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  3. 제 1 항에 있어서, 상기 애플리케이션 런처는, 상기 컴퓨팅 디바이스의 기능들의 하나 이상의 표현을 포함하도록 구성되는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  4. 제 1 항에 있어서, 상기 애플리케이션 런처는, 태스크바(taskbar)에서의 상기 애플리케이션 런처의 표현의 선택을 포함하는, 사용자로부터 수신되는 상기 입력에 응답하는 출력을 위해 구성되는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  5. 제 1 항에 있어서, 상기 애플리케이션 런처는, 상기 컴퓨팅 디바이스에 의해 실행가능한 애플리케이션들의 하나 이상의 사용자 인터페이스 위의 레이어로서의 디스플레이를 위해 구성되고, 상기 애플리케이션 런처는 상기 하나 이상의 사용자 인터페이스와 동시에 볼 수 있는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  6. 제 1 항에 있어서, 상기 애플리케이션들의 표현들 중 적어도 하나는, 각각의 상기 애플리케이션을 런칭하지 않고 각각의 상기 애플리케이션과 연관된 알림들을 디스플레이하도록 구성되는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  7. 제 1 항에 있어서, 상기 애플리케이션 런처를 동적으로 크기조정하는 단계는, 상기 복수의 표현들의 크기를 동적으로 크기조정하는 단계를 포함하는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  8. 제 1 항에 있어서, 상기 결정하는 단계는, 상기 컴퓨팅 디바이스에의 주변 디바이스의 부착, 상기 컴퓨팅 디바이스에 관련된 다른 디바이스의 물리적 배열, 3차원 공간에서의 상기 컴퓨팅 디바이스의 방위(orientation) 또는 이동(movement), 또는 상기 사용자 인터페이스를 디스플레이하기 위해 사용되는 디스플레이 디바이스의 디스플레이 영역의 크기에 기반하는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  9. 제 1 항에 있어서, 상기 애플리케이션 런처는, 상기 컴퓨팅 디바이스의 운영 체제의 일부로서 관리되는 것인, 애플리케이션 런처의 동적 크기조정을 제어하는 방법.
  10. 컴퓨팅 디바이스에 있어서,
    사용자 인터페이스를 디스플레이하기 위한 이용가능한 디스플레이 영역을 갖는 디스플레이 디바이스; 및
    하드웨어에서 적어도 부분적으로 구현되는 하나 이상의 모듈
    을 포함하고, 상기 하나 이상의 모듈은 애플리케이션 런처를 노출시키도록 구성되며, 상기 애플리케이션 런처는,
    상기 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 컨텍스트를 결정하도록 - 상기 예상되는 사용 컨텍스트를 결정하는 것은,
    상기 컴퓨팅 디바이스가 상기 컴퓨팅 디바이스의 터치스크린을 통해 제스처들을 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 컨텐츠 소비 컨텍스트를 선택하는 것; 및
    상기 컴퓨팅 디바이스가 커서 제어 주변 디바이스 또는 키보드를 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 생산성 사용 컨텍스트를 선택하는 것을 포함함 - ; 그리고
    상기 사용자의 상기 결정된 예상되는 사용 컨텍스트에 기반하여, 상기 사용자 인터페이스의 디스플레이 영역 내에서 상기 애플리케이션 런처 - 상기 애플리케이션 런처는, 상기 디스플레이 디바이스의 디스플레이 영역 내에서 수평 방향 및 수직 방향 둘 다로 동적으로 재크기조정 가능함(resizable) - 를 동적으로 크기조정하도록
    구성되고,
    상기 애플리케이션 런처는 애플리케이션들의 복수의 표현들 - 상기 애플리케이션들의 복수의 표현들은 각각의 상기 애플리케이션과 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능함 - 을 포함하고,
    상기 애플리케이션 런처는, 상기 애플리케이션들의 복수의 표현들 중 적어도 하나를 추가하거나 제거하기 위한 사용자 입력의 수신에 응답하여, 상기 하나 이상의 모듈에 의해 자동으로 그리고 사용자 개입 없이 수평 방향 및 수직 방향 둘 다로 동적으로 재크기조정 가능한 것인, 컴퓨팅 디바이스.
  11. 제 10 항에 있어서, 상기 사용자 입력은, 피닝 동작(pinning operation) 또는 피닝해제 동작(unpinning operation)인 것인, 컴퓨팅 디바이스.
  12. 제 10 항에 있어서, 상기 애플리케이션들의 표현들 중 적어도 하나는, 각각의 상기 애플리케이션을 런칭하지 않고 각각의 상기 애플리케이션과 연관된 알림들을 디스플레이하도록 구성되는 것인, 컴퓨팅 디바이스.
  13. 제 10 항에 있어서, 사용자 입력은 상기 동적 재크기조정의 기반으로서 상기 애플리케이션 런처에 포함될 상기 복수의 표현들의 그룹들의 행들 또는 열들의 개수를 지정하는 것인, 컴퓨팅 디바이스.
  14. 제 10 항에 있어서, 사용자 입력은 상기 수평 방향 및 상기 수직 방향으로 상기 애플리케이션 런처를 크기조정하기 위한 상기 애플리케이션 런처의 보더(border)와의 사용자 상호작용을 포함하는 드래그 앤 드롭 동작인 것인, 컴퓨팅 디바이스.
  15. 제 10 항에 있어서, 운영 체제의 상기 애플리케이션 런처의 동적 재크기조정은, 다른 운영 체제의 애플리케이션 런처와의 사용자의 상호작용에 적어도 부분적으로 기반하는 것인, 컴퓨팅 디바이스.
  16. 제 15 항에 있어서, 상기 다른 운영 체제는,
    상기 컴퓨팅 디바이스 상에서 실행되는 상기 운영 체제의 이전 버전이거나,
    상기 컴퓨팅 디바이스의 사용자를 대신하여 다른 컴퓨팅 디바이스 상에서 실행되거나, 또는
    상기 컴퓨팅 디바이스의 사용자와 연관된 다른 컴퓨팅 디바이스 상에서 실행되는 것인, 컴퓨팅 디바이스.
  17. 컴퓨팅 디바이스에 있어서,
    디스플레이 디바이스;
    프로세싱 시스템; 및
    상기 디스플레이 디바이스 상에 애플리케이션 런처의 출력을 야기하기 위해 상기 프로세싱 시스템에 의해 실행가능한 운영 체제를 유지하도록 구성된 메모리
    를 포함하고, 상기 운영 체제는,
    상기 컴퓨팅 디바이스와 상호작용하고 있는 사용자의 예상되는 사용 컨텍스트를 결정하도록 - 상기 예상되는 사용 컨텍스트를 결정하는 것은,
    상기 컴퓨팅 디바이스가 상기 컴퓨팅 디바이스의 터치스크린을 통해 제스처들을 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 컨텐츠 소비 컨텍스트를 선택하는 것; 및
    상기 컴퓨팅 디바이스가 커서 제어 주변 디바이스 또는 키보드를 사용하는 사용자 상호작용을 지원하도록 구성될 때, 상기 예상되는 사용 컨텍스트로서 생산성 사용 컨텍스트를 선택하는 것을 포함함 - ;
    상기 컴퓨팅 디바이스와 상호작용하고 있는 상기 사용자의 예상되는 사용 컨텍스트를 결정한 것에 응답하여, 상기 애플리케이션 런처의 컨텐츠 소비 컨텍스트와 상기 애플리케이션 런처의 생산성 사용 컨텍스트 사이의 전환을 유발하도록; 그리고
    상기 사용자의 상기 결정된 예상되는 사용 컨텍스트에 기반하여 상기 컴퓨팅 디바이스에 의해 사용자 인터페이스의 디스플레이 영역 내에서 상기 애플리케이션 런처를 동적으로 크기조정하도록
    구성되고,
    상기 애플리케이션 런처는 애플리케이션들의 복수의 표현들 - 상기 애플리케이션들의 복수의 표현들은 각각의 상기 애플리케이션과 대응하는 사용자 인터페이스에 내비게이팅하도록 선택가능함 - 을 포함하고,
    상기 애플리케이션 런처를 동적으로 크기조정하는 것은, 상기 애플리케이션들의 복수의 표현들 중 적어도 하나를 추가하거나 제거하기 위한 사용자 입력의 수신에 응답하여, 자동으로 그리고 사용자 개입 없이 수평 방향 및 수직 방향 둘 다로 상기 애플리케이션 런처를 동적으로 재크기조정하는 것을 포함하는 것인, 컴퓨팅 디바이스.
  18. 제 17 항에 있어서, 상기 결정은, 상기 컴퓨팅 디바이스에의 주변 디바이스의 부착, 상기 컴퓨팅 디바이스에 관련된 주변 디바이스의 물리적 배열, 3차원 공간에서의 상기 컴퓨팅 디바이스의 배향 또는 이동, 또는 상기 사용자 인터페이스를 디스플레이하기 위해 사용되는 상기 디스플레이 디바이스의 디스플레이 영역의 크기에 기반하는 것인, 컴퓨팅 디바이스.
  19. 삭제
KR1020177005302A 2014-07-31 2015-07-28 애플리케이션 런처 크기조정 KR102378955B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/448,716 2014-07-31
US14/448,716 US9916059B2 (en) 2014-07-31 2014-07-31 Application launcher sizing
PCT/US2015/042341 WO2016018840A2 (en) 2014-07-31 2015-07-28 Application launcher sizing

Publications (2)

Publication Number Publication Date
KR20170038018A KR20170038018A (ko) 2017-04-05
KR102378955B1 true KR102378955B1 (ko) 2022-03-24

Family

ID=53836833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177005302A KR102378955B1 (ko) 2014-07-31 2015-07-28 애플리케이션 런처 크기조정

Country Status (11)

Country Link
US (1) US9916059B2 (ko)
EP (1) EP3175357B1 (ko)
JP (1) JP6637483B2 (ko)
KR (1) KR102378955B1 (ko)
CN (1) CN106537337B (ko)
AU (1) AU2015296789B2 (ko)
BR (1) BR112017000326B1 (ko)
CA (1) CA2955064C (ko)
MX (1) MX2017000897A (ko)
RU (1) RU2698772C2 (ko)
WO (1) WO2016018840A2 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149109A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 情報処理装置
US20130080890A1 (en) 2011-09-22 2013-03-28 Qualcomm Incorporated Dynamic and configurable user interface

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392483B2 (en) 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7512904B2 (en) * 2005-03-22 2009-03-31 Microsoft Corporation Operating system launch menu program listing
US8903840B2 (en) * 2006-08-31 2014-12-02 International Business Machines Corporation System and method for launching a specific program from a simple click on a string of characters
US8166491B2 (en) 2006-12-04 2012-04-24 Sap Ag Method and system for providing a configurable action launchpad
US8255411B1 (en) * 2008-06-19 2012-08-28 Boopsie, Inc. Dynamic menus for multi-prefix interactive mobile searches
US20090248397A1 (en) * 2008-03-25 2009-10-01 Microsoft Corporation Service Initiation Techniques
US9557889B2 (en) * 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US8494590B2 (en) * 2010-02-04 2013-07-23 Microsoft Corporation Integrated media user interface
US20110196752A1 (en) * 2010-02-10 2011-08-11 TikiLabs Method and system for organizing information with sharable user interface
WO2012008628A1 (ko) * 2010-07-13 2012-01-19 엘지전자 주식회사 이동단말기 및 그 대기화면 구성방법
US20120204131A1 (en) 2011-02-07 2012-08-09 Samuel Hoang Enhanced application launcher interface for a computing device
US9843665B2 (en) * 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US8924885B2 (en) * 2011-05-27 2014-12-30 Microsoft Corporation Desktop as immersive application
US9746995B2 (en) 2011-07-14 2017-08-29 Microsoft Technology Licensing, Llc Launcher for context based menus
US20130346347A1 (en) * 2012-06-22 2013-12-26 Google Inc. Method to Predict a Communicative Action that is Most Likely to be Executed Given a Context
US8751500B2 (en) * 2012-06-26 2014-06-10 Google Inc. Notification classification and display
US9704189B2 (en) 2012-09-05 2017-07-11 Rakuten Kobo, Inc. System and method for a graphical user interface having recommendations
US20140201655A1 (en) * 2013-01-16 2014-07-17 Lookout, Inc. Method and system for managing and displaying activity icons on a mobile device
US9124545B2 (en) * 2013-02-14 2015-09-01 Facebook, Inc. Lock screen with socialized applications
US9513783B1 (en) * 2014-03-17 2016-12-06 Amazon Technologies, Inc. Determining available screen area
US9531601B2 (en) * 2014-04-16 2016-12-27 Belkin International Inc. Modular interface framework for network devices
US9032321B1 (en) * 2014-06-16 2015-05-12 Google Inc. Context-based presentation of a user interface
US20170085677A1 (en) * 2015-09-18 2017-03-23 Quixey, Inc. Recommending Applications
US20170097743A1 (en) * 2015-10-05 2017-04-06 Quixey, Inc. Recommending Applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005149109A (ja) * 2003-11-14 2005-06-09 Toshiba Corp 情報処理装置
US20130080890A1 (en) 2011-09-22 2013-03-28 Qualcomm Incorporated Dynamic and configurable user interface

Also Published As

Publication number Publication date
WO2016018840A3 (en) 2016-03-24
BR112017000326B1 (pt) 2023-01-17
CN106537337A (zh) 2017-03-22
AU2015296789A1 (en) 2017-01-12
BR112017000326A2 (pt) 2017-11-07
AU2015296789B2 (en) 2020-04-16
EP3175357A2 (en) 2017-06-07
RU2017102889A (ru) 2018-07-30
JP2017523514A (ja) 2017-08-17
JP6637483B2 (ja) 2020-01-29
CA2955064A1 (en) 2016-02-04
RU2017102889A3 (ko) 2019-02-01
WO2016018840A2 (en) 2016-02-04
RU2698772C2 (ru) 2019-08-29
EP3175357B1 (en) 2023-08-30
KR20170038018A (ko) 2017-04-05
US9916059B2 (en) 2018-03-13
US20160034154A1 (en) 2016-02-04
CN106537337B (zh) 2020-02-28
CA2955064C (en) 2023-03-14
MX2017000897A (es) 2017-05-04

Similar Documents

Publication Publication Date Title
US10996822B2 (en) Control of item arrangement in a user interface
US10296206B2 (en) Multi-finger touchpad gestures
US20160034153A1 (en) Icon Resizing
US20130198690A1 (en) Visual indication of graphical user interface relationship
KR20160143752A (ko) 확장가능한 애플리케이션 표시 및 태스크바
US9785310B2 (en) Control of addition of representations to an application launcher
KR20170042350A (ko) 그룹 기반의 유저 인터페이스 재배열
KR20170097161A (ko) 브라우저 디스플레이 캐스팅 기법들
KR20170042338A (ko) 혼합 뷰에의 제스처 기반 액세스
EP3180683A1 (en) Direct access application representations
KR102378955B1 (ko) 애플리케이션 런처 크기조정
KR20160144445A (ko) 확장가능한 애플리케이션 표시, 마일스톤, 및 스토리라인
US20160173563A1 (en) Rotation Control of an External Display Device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant