nyancoder

WWDC 2021 - Meet Shortcuts for macOS 본문

WWDC/WWDC 2021

WWDC 2021 - Meet Shortcuts for macOS

nyancoder 2021. 7. 21. 02:32

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10232/

 

 

What's new

  • 바로 가기를 사용하면 반복적인 작업을 자동화할 수 있습니다.
  • iOS와 마찬가지로 Mac의 모든 앱은 바로 가기를 만들 수 있습니다.

  • 바로가기를 사용하면 AppleScript 및 Automator와 같이 기존에 잘 사용하던 도구들과 더 좋은 효과를 낼 수 있습니다.

  • 또한 파일을 관리할 수 있는 자동화 작업들이 추가되었습니다.
  • 앱이 파일 공급자와 통합되는 경우에는 새로운 파일 작업들이 앱이 제공하는 파일과 자동으로 동작합니다.

  • 기존 SiriKit 메시지 인텐트를 사용하는 앱은 사용자 지정 메시지 보내기 작업을 통해 이 기능을 보여줄 수 있습니다.

  • 바로가기를 쉽게 배포할 수 있으며, 바로가기를 파일로 배포할 수 있는 새로운 파일 형식이 있습니다.
  • 또한 이 바로가기를 동료와 공유할 때 쓸 수 있는 비공개 공유가 추가되었습니다.

  • 이제 특별한 설정 없이 누구나 바로가기를 다운로드할 수 있습니다.
  • 웹사이트나 앱에서 바로가기를 배포할 수 있습니다.

  • 앱의 작업을 사용하는 바로 가기를 사람들에게 제공하고 싶을 때, 해당 바로 가기를 빌드하고 iCloud에 공유하면 Apple에서 바로 가기를 검증하게 됩니다.
  • 따라서 바로가기가 링크로 변환되어 앱이나 웹 사이트에서 보여줄 수 있고, 사람들이 쉽게 다운로드할 수 있습니다.

  • 라이브러리에서 사진처럼 데이터를 앱으로 전달하는 바로 가기를 다운로드하면, 구체적인 권한 프롬프트를 표시하여 사람들이 보다 데이터를 잘 다룰 수 있습니다.

  • 바로 가기를 파일로 공유할 수 있으므로 iCloud 외부에서 바로 가기를 쉽게 배포할 수 있습니다.
  • iCloud 링크와 마찬가지로 바로가기 파일도 안전할 수 있도록 Apple에서 검증합니다.

  • 마지막으로 iCloud에 업로드하지 않고 바로가기를 비공개로 공유할 수 있어 연락처나 개인 백업 저장하는 데 사용할 수 있습니다.
  • 바로 가기 파일은 보낸 사람의 ID로 서명됩니다.
  • 바로 가기를 다시 서명해야 하는 경우, 새로운 명령줄 도구를 사용할 수 있습니다.

 

Mac automation technologies

  • 바로가기는 AppleScript, Shell Scripting, Automator 등을 지원합니다.

  • 바로 가기 편집기 내에서 직접 스크립트를 작성하고 실행할 수 있는 기능이 내장되어 있습니다.

  • 바로 가기는 Mac 자동화의 미래이지만 기존의 Automator를 사용하는 사람들도 원활하게 사용할 수 있도록, Automator 워크플로를 바로 가기로 변환할 수 있는 마이그레이션 도구를 제공합니다.
  • 바로 가기 앱에서 워크플로 파일을 앱으로 드래그하거나 메뉴를 통해 열면 자동으로 변환됩니다.

 

How you app fits in

  • 앱을 바로 가기와 통합할 수 있는 주요 방법은 "Actions"를 통해 기능을 노출하는 것입니다.
  • 바로 가기에 작업을 노출하면 사람들이 앱의 기능을 더 빠르게 사용하고, 워크플로를 만들고, 다른 앱과 함께 사용할 수 있습니다.

  • 앱에서 작업을 노출하면 사람들이 바로 가기 앱, 바로 가기 메뉴 표시줄, 바로 가기 키 입력, Spotlight에서 검색 등을 통해 해당 작업을 사용할 수 있습니다.

  • 할 일 관리의 앱의 기능을 노출하는 것을 예로 들 수 있습니다.
  • 기능이 노출되면 사람들이 해당 작업을 사용하여 한 번의 클릭으로 내일 마감인 할 일을 찾고 우선순위를 높게 설정하고 목록으로 표시하는 바로 가기 를 만들 수 있습니다.

  • 앱의 작업을 노출하여 사람들이 다른 앱과 함께 앱의 기능을 사용하도록 할 수도 있습니다.
  • 예를 들어 이미지 편집 앱의 기능을 노출하면, 사진을 선택하여 필터를 적용하고 SNS에 게시하는 것을 클릭 한 번으로 할 수 있습니다.

 

Building actions

  • Mac 앱에 대한 바로 가기 작업을 만드는 작업은 iOS와 마찬가지로 SiriKit이라고도 하는 Intents 프레임워크를 사용하여 수행할 수 있습니다.

  • 이 예에서는 사람들 이 각자의 작업 목록을 관리하고 다른 사람들과 공유할 수 있는 공동 작업 앱을 만든가고 가정할 것입니다.
  • 앱에서 주로 사용하는 콘텐츠는 Task이며, 각 Task는 제목, 마감일, 공유 링크를 가지고 있습니다.
  • Task와 수행할 수 있는 생성, 편집, 삭제, 가져오기, 보여주기 등의 작업들을 "동사"라고 가정할 수 있습니다.
  • 위의 Task와 동사를 하나로 합하면 하나의 액션이 되며 사용자는 하나의 작업을 수행하거나 둘 이상의 작업을 함께 사용할 수 있습니다.

  • 위의 예에서는 Notes에서 선택한 텍스트를 가져오고, 텍스트를 대문자로 변경하고, 사용자에게 기한을 입력받고, 대문자 문자열과 날짜를 이용해서 작업을 생성한 다음, 이를 메시지를 통해 다른 사람에게 전달하는 시나리오를 구성항 수 있습니다.

  • 이러한 구현의 첫 번째 단계는 앱에 대한 인텐트 정의 파일을 만드는 것입니다.

  • 인텐트 형식의 템플릿을 선택해서 생성한 다음, Xcode 프로젝트에 추가하면 소스 코드와 함께 컴파일됩니다.

  • 앱이 구현하는 각 인텐트와 이 작업에 사용되는 타입과 타입이 가지는 속성들을 정의해야 합니다.

  • 인텐트에서 왼쪽 하단의 + 버튼을 클릭하고 "New Type"을 선택합니다.
  • 이후 작업에 대한 적절한 속성과 해당 속성의 타입들을 추가해줍니다.

  • 그다음은 Intents의 이름을 정하고 설명을 추가해줍니다.
  • 사용자는 앱이 제공하는 작업 목록을 볼 때, 이 Intent목록을 통해서  볼 수 있습니다.
  • 인텐트의 매개변수를 정해야 하며, 이는 함수가 작업을 수행하기 위해 전달해야 하는 전달 인자로 생각할 수 있습니다.

  • 이후 입력 매개변수를 지정해야 하며, 사용자가 다른 텍스트를 사용하기 때문에 이 예제에서는 title으로 지정합니다.
  • 마지막으로 요약 설명을 추가하면 이 작업을 사용할 사용자가 요약을 볼 수 있습니다.

  • Xcode가 구현에 사용할 클래스와 프로토콜을 생성하여 빌드합니다.
  • 소스 파일은 Intent 정의에 입력된 내용을 기반으로 작업 유형과 CreateTaskIntent에 대한 소스 코드를 생성합니다.

  • 앱은 이제 사용자가 바로가기나 Siri를 통해 작업을 실행할 때 전달되는 Intent를 처리해야 합니다.
  • 여기에는 앱 내에서 처리하거나 별도의 Intent 확장을 구축하는 두 가지 방법이 있습니다.

  • 대부분의 경우 앱 델리게이트에게 전달되는 Intent를 통해 처리하는 방법을 사용합니다.

  • Intent 확장은 앱을 대신하여 Intent를 처리할 수 있는 가벼운 독립 실행형 프로세스입니다.
  • 인텐트가 실행될 때마다 앱 자체를 시작할 필요가 없으므로 보다 효율적으로 처리할 수 있습니다.

  • 앱 및 Intent 확장은 Intent에 대한 핸들러 개체를 인스턴스화 하고 반환해야 합니다.

  • UIKit의 경우는 AppDelegate에서 처리할 수 있습니다.

  • macOS Monterey에서 NSApplicationDelegate를 통해서 처리할 수 있습니다.

  • Intent 확장의 경우 INExtension의 하위 클래스가 handlerForIntent 메서드를 재정의하여 처리할 수 있습니다.

  • 인앱 Intent처리의 첫 번째 작업은 CreateTaskIntent를 앱에 지원되는 인텐트로 추가하는 것입니다.
  • 이를 통해 시스템은 이 Intent가 App Delegate에 전달되어야 함을 알 수 있습니다.

  • Intent를 수신하려면 Intent 프레임워크를 import 하고 handlerForIntent 메서드를 구현합니다.

  • 마지막으로 Intent handler를 구현해야 합니다.

  • 우선 Intent가 CreateTaskIntent일 때 새 IntentHandler를 반환하도록 handlerForIntent 메서드를 구현합니다.

  • Intent 처리 프로토콜은 가져오기, 옵션 제공, 확인, 처리의 네 가지 유형의 메서드가 포함될 수 있습니다.

 

Resolve

  • 가져오기 단계에서는 값이 유효하지 않으면 수행할 작업을 시스템에 알릴 수 있습니다.
  • 이 예제에서 제목이 비어 있으면 사용자에게 값을 입력하라는 메시지를 표시하도록 시스템에 지시하는 needsValue를 반환합니다.
  • 또한 예제의 날짜 매개변수의 날짜가 과거인 경우 사용자에게 오류를 표시해야 합니다.

  • 필요한 경우 unsupported를 통해서 지원되지 않는 결과임을 반환할 수 있습니다.

 

Provide options

  • 동적 옵션 설정이 활성화된 사용 가능한 값이 무엇인지 표시하고 사용자가 그 값 중 하나를 선택할 수 있습니다.


Confirm

  • 매개변수들을 잘 가져온 다음 실제 처리를 수행할 때 발생할 수 있는 오류를 throw 할 수 있어야 합니다.
  • 예를 들어 작업을 처리할 때 네트워크 연결이 필요한 경우에 대한 처리를 수행해야 합니다.


Handle

  • 마지막으로 Intent의 요청을 실제로 수행해야 합니다.
  • 핸들 메서드는 앱에서 Task를 만들고 성공을 반환합니다.

  • 결과에 원하는 속성이 있을 경우 편집기에서 해당 속성을 추가합니다.

  • 추가된 속성은 코드에서 적용할 수 있습니다.

  • 마지막으로 전체 과정이 올바르게 수행될 수 있는지 테스트해야 합니다.

  • 예를 들어 미래의 날짜를 넣고 작업이 잘 생성되는지를 확인한 후, 과거의 날짜를 넣어서 오류가 발생되는지를 확인해야 합니다.

 

Platform considerations

  • 마지막으로 Mac에서 Shortcuts을 개발할 때 염두에 두어야 하는 몇 가지 항목이 있습니다.
  • 먼저 Mac Catalyst를 사용하여 iOS 앱을 Mac으로 가져오는 경우 앱이 Mac Catalyst로 빌드된 경우 동일한 Intents
  • API를 사용할 수 있으므로 모든 것이 iOS에서와 동일하게 작동해야 합니다.
  • 하지만 Mac이 별도의 앱으로 존재했다가 iOS의 Intents 프레임워크와 통합된 경우는 해당 기능을 별도로 확인해야 합니다.

  • 문서 기반 앱은 디스크에 파일로 존재하는 문서에서 작동하기 때문에 파일에서 작동하는 작업을 추가하는 것이 좋습니다.
  • 예를 들어 스프레드시트 앱은 문서를 열거나 특정 파일의 행에 데이터를 추가하는 작업을 만들 수 있습니다.

  • iOS와 Mac 모두에 존재하는 앱을 개발하는 경우 작업이 두 플랫폼 모두에서 작동하려면, 양쪽에 정확히 동일한 인텐트를 배포해야 합니다.
  • 때로는 앱이나 플랫폼 간의 다른 번들 식별자가 있는 것은 괜찮지만, 동일한 이름의 인텐트는 동일한 Apple 개발자 팀을 통해 배포된 앱 간에만 공유된다는 점을 유의해야 합니다.

  • iOS 15에서 앱을 업그레이드해야 하는 경우 두 앱이 동일한 개발자가 제공하고 동일한 인텐트 이름을 사용하면, 한 앱의 바로 가기가 자동으로 한 버전에서 다른 버전으로 전송됩니다.

  • 앱이나 명령줄 도구에서 바로 가기를 실행하려면 두 가지 방법이 있습니다.

  • Shortcuts는 Mac 앱과 AppleScripts가 Shortcuts를 실행할 수 있는 스크립팅 인터페이스를 제공합니다.
  • "바로 가기 이벤트" 프로세스와 통신하여 앱은 사용자가 설정한 바로 가기 목록을 가져오고 실행할 수 있습니다.

  • AppleScript에서는 "바로 가기 이벤트" 프로세스에 이름으로 바로 가기를 실행하도록 지시할 수 있습니다.

  • Scripting Bridge 프레임워크를 사용하여 Shortcuts Events 프로세스에 Swift 또는 Objective-C 앱에서 바로 가기를 직접 실행할 수 있습니다.

  • 샌드박스 앱의 경우 "com.apple.security.scripting-targets"라는 자격을 추가해야 합니다.
  • 바로 가기 목록에 액세스 하여 실행하려면 "com.apple.shortcuts.run" 대상을 추가해야 합니다.

  • 마지막으로 macOS Monterey에는 바로 가기를 나열하고 이름으로 실행할 수 있는 shortcuts 명령줄 도구도 포함되어 있습니다.

 

목차: https://nyancoder.tistory.com/2

 

'WWDC > WWDC 2021' 카테고리의 다른 글

WWDC 2021 - Meet StoreKit 2  (0) 2021.07.24
WWDC 2021 - Meet TestFlight on Mac  (0) 2021.07.23
WWDC 2021 - Meet MusicKit for Swift  (0) 2021.07.20
WWDC 2021 - Discover breakpoint improvements  (0) 2021.07.19
WWDC 2021 - Meet Group Activities  (0) 2021.07.18
Comments