티스토리 뷰

컨퍼런스/WWDC

[WWDC 2023] TipKit 사용하기

말차프라푸치노 2023. 6. 29. 14:43

Apple WWDC 2023

 

WWDC 2023에서 새로운 프레임워크TipKit이 발표되었습니다!

 

아이폰에 있는  앱을 기억하시나요? 팁 기능을 서드 파티 앱에서도 사용할 수 있도록 도와주는 프레임워크입니다. 기존의 온보딩을 위한 코드를 TipKit을 사용하면 더 빠르고, 쉽고, 강력하게 만들 수 있습니다. 사용자 규칙을 만들어 원하는 조건에만 팁을 보여주거나, iCloud 동기화를 통해 더 나은 사용자 경험을 제공할 수도 있습니다.

 

WWDC 2023 - Make features discoverable with TipKit를 보고 TipKit의 주요 기능에 대해 알아보겠습니다.

 

 

배경

WWDC2023 - Make features discoverable with TipKit, Tipkit in Apple Devices

 

TipKit은 앱에 대한 팁을 쉽게 보여주기 위한 프레임워크입니다. 아이폰, 아이 패드, 맥, 애플워치, 애플 티비 모두 적용할 수 있습니다.

 

 

TipKit을 크게 4가지로 나눠 소개하겠습니다.

 

  1. 팁 만들기 (Create Tips)
  2. 자격 규칙 (Eligibility rules)
  3. 보여주고 없애기 (Display and dismissal)
  4. 팁 테스트 (Test Tips)

 

하나씩 살펴보겠습니다.

 

 

1. 팁 만들기 (Create Tips)

WWDC2023 - Make features discoverable with TipKit

 

즐겨찾기 기능에 대해 팁을 추가하겠습니다.

 

WWDC2023 - Make features discoverable with TipKit

 

Tip 프로토콜을 채택하고 제목(Title)메시지(message)를 구현합니다.

 

유용한 팁에는 기능이 무엇인지 알려주는 제목이 있습니다. 제목은 명령문(direct action pharaes)으로 작성됩니다.

 

메시지는 사용자가 기능을 사용하려는 이유를 알려주고, 나중에 작업을 수행할 수 있도록 유용한 정보와 설명을 포함합니다.

 

 

추천

WWDC2023 - Make features discoverable with TipKit

 

효과적인 팁 예시입니다. 하나씩 특징을 살펴보면 다음과 같습니다.

  • 실행 가능 (actionable) - 버튼을 통해 추가 정보 혹은 해당 기능 수행
  • 교육적 (instructional) - 기능에 대한 설명
  • 기억하기 쉬움 (easy to remember)

 

비추천

WWDC2023 - Make features discoverable with TipKit

 

좋은 예시를 봤으니 안 좋은 예시도 살펴보겠습니다.

  1. 홍보 (promotional)
  2. 오류 메시지 (error message)
  3. 동작 없음 (Not actionable) - 새로운 기능을 소개하는데 “시작하기” 처럼 사람들이 할 수 있는게 없음
  4. 너무 복잡함 (Too Complicated) - 팁은 간단 명료하게

 

위 규칙들을 지켜 효과적인 팁을 만들어주면 됩니다. 다시 코드로 돌아가겠습니다.

 

WWDC2023 - Make features discoverable with TipKit

 

제목메시지를 구현했으면 팁 뷰의 기본 구조를 입력하고, 팁 센터를 구성(configure)합니다.

 

팁 센터(TipsCenter)를 통해 TipKit의 주요 기능을 사용할 수 있습니. 팁을 포함하고, 팁과 관련된 이벤트가 앱 시작 사이에 지속되고, 쉬운 팁 테스트를 가능하게 합니다. 기본 제공되는 shared 인스턴스를 사용하면 됩니다.

 

 

WWDC2023 - Make features discoverable with TipKit

 

팁 센터를 구성(configure)하고 나면 이제 팁을 볼 수 있습니다. 간단한 팁도 좋지만 한 단계 더 나아가겠습니다.

 

이미지처럼 앱의 색상과 일치하도록 텍스트의 컬러를 indigo로 바꿔주고 이미지를 추가해주었습니다. 현재 즐겨찾기 버튼 (=별 이미지)에 대한 팁을 작성하고 있으므로 버튼과 동일한 별 이미지로 설정해주었습니다.

 

 

WWDC2023 - Make features discoverable with TipKit

 

팁을 알려주는 기능에 사용자가 설정할 수 있는 작업이 있는 경우 액션 버튼을 추가할 수 있습니다.

 

버튼을 통해 사용자가 설정으로 이동하고 빠르게 설정할 수 있습니다. 사람들이 유용하다고 생각하는 정보가 있는 경우, 온보딩 화면과 같은 추가 리소스를 연결하는 옵션도 있습니다.

 

 

Tip 타입

팁에는 두 가지 타입이 있습니다.

 

좌 - 팝 오버(Pop Over), 우 - 인라인(inline)

 

첫 번째는 팝 오버(Pop Over) 뷰로 앱의 UI 위에 팁을 표시할 수 있습니다. 버튼이나 다른 요소들을 직접 가르킬 수 있으며, 현재 앱 화면을 변경하지 않고 알려주는데 유용합니다. 

 

tvOS에서는 팝 오버 뷰만 사용됩니다!!!

 

두 번째는 인라인(in-line) 뷰입니다. 앱의 UI가 일시적으로 주변에 맞도록 조정하여 UI를 가리지 않습니다.

 

 

두 가지 방법 중 무엇을 사용하든 간에 관련된 버튼이나 요소에 가깝게 팁을 나타내는 것이 좋습니다. -> 무조건 가깝게!

 

 

WWDC2023 - Make features discoverable with TipKit

 

예제에서는 팝 오버 뷰를 사용했습니다. 팁이 훌륭하고 맥락이 있어보입니다.

 

 

 

 

2. 자격 규칙 (Eligibility rules)

최적의 시간필요한 사용자에게 다가갈 수 있도록 규칙을 추가할 수 있습니다.

 

새로운 기능을 발견하는 것은 놀라움과 기쁨을 불러일으킬 수 있습니다. 하지만 그 기능이 관심있는 사람에게 전달되어야하고, 설명이 지저분하거나 관련이 없으면 안 됩니다. 예제의 즐겨찾기 기능에 대한 팁은 유용하지만 이미 팁을 읽은 사람들에게는 아닐 것입니다. 앱을 자주 사용하지 않는 사람들도 관심이 없을 것입니다.

 

애플은 앱 내 교육이 효과가 있는 사용자에게 집중되어야 한다고 생각하며, 앱 내에서 무언가를 하는 동안 방해가 되지 않는 것을 목표로 합니다.

 

TipKit은 가장 이상적인 시간가장 관련성이 높은 사용자에게만 팁을 표시할 수 있도록 자격 규칙을 제공합니다. 자격 규칙은 혼자 혹은 같이 사용할 수 있습니다.

 

 

 

두 가지 타입의 규칙

규칙에는 크게 두 가지 타입이 있습니다.

WWDC2023 - Make features discoverable with TipKit

 

  1. 매개 변수 기반 규칙 (parameter-based rule) : 매개 변수 기반 규칙은 영구적이며, 표현식을 작성할 Swift 값 타입을 기반으로 팁을 표시하는데 가장 적합합니다.
  2. 이벤트 기반 규칙 (event-based rule) : 이벤트 기반 규칙을 사용해 개인이 팁을 받기 전에 수행해야 하는 작업을 정의할 수 있습니다.

 

하나씩 살펴보겠습니다.

 

 

매개 변수 기반 규칙 (parameter-based rule)

WWDC2023 - Make features discoverable with TipKit

 

예시의 즐겨찾기 앱을 살펴보겠습니다. 가장 먼저 수행할 작업은 사용자가 로그인되어 있는지 확인하는 것입니다. 이를 위해 매개 변수 기반 규칙을 구현합니다.

 

먼저 매개 변수(Parameter) 초기값을 false로 지정합니다. #Rule을 사용해 팁의 규칙을 추가합니다! 파라미터가 true일 때만 Rule을 만족하고 Tip이 실행됩니다.

 

 

 

이벤트 기반 규칙 (event-based rule)

이번에는 사람들이 앱을 사용하고, 팁을 보기 전에 유기적으로 기능을 발견하길 원합니다. 사용자가 Detail View에 3번 이상 방문한 후에만 팁이 표시되도록 하는 이벤트 기반 규칙을 만들 것입니다.

 

WWDC2023 - Make features discoverable with TipKit

 

이미지에서 1번 코드와 같이 Event타입의 이벤트를 생성합니다.

 

2번 코드를 통해 규칙이 True로 평가 되기 전에 이벤트를 트리거 할 횟수를 지정해줍니다. 예시 코드의 경우 3번 이상 방문했을 때 팁을 보여줍니다.

 

 

 

WWDC2023 - Make features discoverable with TipKit

 

마지막으로 Detail View의 OnAppeardonate()를 사용해 View가 나타날 때마다 기부(donate)합니다. (donate를 의역할 말이 딱히 떠오르지 않아 기부로 직역했습니다)

 

 

 

앞선 두 개의 규칙들, 로그인 & 방문 횟수가 동시에 적용되고 있습니다. 만약 여기서 더 상세한 룰을 만들고 싶다면 어떻게 할까요?

 

여지껏 Detail View를 자주 보지만 즐겨찾기 기능을 사용하지 않는 사람에게 초점을 맞췄습니다. 이제는 앱을 정기적으로 사용하는 사람들에게만 팁을 보여주기 위한 코드를 살펴보겠습니다.

 

WWDC2023 - Make features discoverable with TipKit

 

이벤트 기반 규칙에 날짜 쿼리 수정자(date query modifier)를 추가해 지난 5일 동안, DetailView에 3번 이상 방문한 경우에만 룰이 적용하도록 코드를 작성했습니다. 예시처럼 특정 기간을 설정할 수 있습니다.

 

 

 

 

또 다른 TipKit의 강력한 기능은 각 이벤트 기부(donation)에 asscoiated type을 추가해 커스텀 기부를 만들 수 있다는 것입니다. asscoiated type을 사용해 이벤트 기반 규칙을 더 세분화할 수 있고, 특정 Detail View로 이동한 경우에만 룰을 동작합니다.

 

 

WWDC2023 - Make features discoverable with TipKit

 

먼저 DonationValue를 채택하는 DetailViewDonation을 생성하고 View에 ID를 제공합니다.

 

그 다음 donate() 메소드에 backyard id를 추가합니다.

 

 

WWDC2023 - Make features discoverable with TipKit

 

고유한 backyard id를 기반으로 이벤트를 쿼리하도록 규칙을 만듭니다.

 

이러한 커스텀 정의를 할 때 저장하는 데이터 크기에 유의해야 합니다! 크기가 클수록 쿼리 실행 속도가 느려지고 성능이 저하됩니다.

 

 

 

TipKit의 규칙은 작성하기 쉽습니다. 가장 필요한 사용자에게 팁을 보여줄 수 있는 강력하고 간단한 방법을 제공합니다. 규칙은 일반적일 수도 있고, 구체적일 수도 있습니다. 최적의 시간에 이상적인 사용자를 목표로 결합해서 사용할 수도 있습니다.

 

 

 

 

3. 보여주고 없애기 (Display and dismissal)

앱에 팁이 표시되고 해당 기능을 사용하면 팁이 계속 표시되지 않고 싶습니다. 또 팁이 여러 개 있다면 동시에 나타나는 것을 원치 않습니다.

 

Tipkit은 팁을 나타내고 해제하는 동작을 제공함으로써 필요할 때만 보여줄 수 있습니다.

 

WWDC2023 - Make features discoverable with TipKit

 

TipsCenter에서 다른 팁이 나타날 때까지 지나야 하는 시간을 지정할 수 있습니다.

 

이미지의 코드처럼 24시간 마다 하나의 팁을 원한다면 .daily, 60분마다 하나의 팁을 보여준다면 .hourly를 사용하면 됩니다. 사용자가 원하는 값을 설정할 수도 있습니다. (코드의 경우 5일에 한 번씩)

 

팁이 바로 필요하다면 .immediate를 사용합니다. 이 경우 다른 팁이 화면에 있어도 팁이 추가적으로 나타납니다.

 

 

 

TipsCenter 레벨에서 팁을 보여주는 주기를 설정할 수도 있지만, 팁 개별로 일회성 무시도 가능합니다.

 

WWDC2023 - Make features discoverable with TipKit

 

특정 Tip의 options.ignoresDisplayFrequency을 추가하면 됩니다. 해당 팁만 두 번 표시하고 나머지 팁들은 TipsCenter에서 설정한대로 동작합니다.

 

 

 

 

 

팁이 나타나면 필요한 시간 동안만 화면에 나타나도록 하고 싶습니다. 누군가 팁에서 설명한 기능을 사용하거나, 팁에 관심이 없는 경우 팁은 무시해야 합니다.

 

앞선 예시에서 앱을 사용하는 사람이 팁이 보여지기 위한 규칙을 모두 만족했다고 하겠습니다.

  • 로그인
  • 5일 동안 Detail View를 3번 방문
  • 즐겨찾기(Favorite) 버튼을 누른 적이 없음

 

WWDC2023 - Make features discoverable with TipKit

 

즐겨찾기에 .invalidate() 메소드를 추가해줌으로서 팁을 보고 즐겨찾기 버튼을 눌렸다면 앞으로 팁이 무시됩니다.

 

 

 

WWDC2023 - Make features discoverable with TipKit

 

팁을 무시하는 다른 방법은 Tip의 options.maxDisplayCount()를 설정하는 것입니다.

 

위 코드의 경우 팁이 5번 표시되고 아무런 액션이 없다면, 앞으로 Detail View에 들어가더라도 팁이 표시되지 않습니다.

 

 

 

Tipkit에서 제공하는 팁 무시 기본 기능들을 살펴보았습니다. 기본 기능을 사용해도 되지만 앱에 대해서는 여러분들(개발자)이 가장 잘 알고 있으므로 적절한 때에 .invalidate() 메소드를 사용해 팁을 제거할 수 있습니다.

 

 

+ Tipkit은 iCloud를 통해 동기화할 수 있습니다!

 

아이폰과 아이패드에서의 기능이 동일하다면 하나의 기기에서만 팁을 보여주도록 설정하는 것이 좋습니다.

 

 

 

 

4. 팁 테스트 (Test Tips)

TipKit에는 쉬운 테스트를 위한 자격 규칙 API가 존재합니다. 필요에 따라 팁을 표시하거나 숨길 수 있습니다.

 

WWDC2023 - Make features discoverable with TipKit

 

.showAllTips()를 사용하면 규칙을 만족하지 않아도 팁을 다 보여주고 .showTips()를 통해 원하는 팁만 보여줄 수도 있습니다.

 

.hideTips()를 사용해 원하는 팀만 숨길 수 있고, .hideAllTips()를 사용해 모든 팁을 숨길 수도 있습니다.

 

.resetDatastore()를 사용해 TipKit 데이터 저장소의 모든 정보를 제거하고, 앱의 각 빌드에서 기본 상태를 설정할 수 있습니다. (방문 정보와 같은 데이터를 말하는 것 같습니다)

 

 

 

WWDC2023 - Make features discoverable with TipKit

 

이 모든 테스트 옵션은 프로젝트 scheme실행 인자(launch arguments)로도 사용할 수 있습니다. 위 코드를 사용해 빠른 부분 점검 혹은 전체 기능 테스트가 가능합니다.

 

 

 

 

 

정리

TipKit의 기능을 요약하자면

  1. 팁은 사용자가 앱에서 기능을 알아내는데 유용합니다.
  2. 팁은 필요한 사용자를 위해 짧고, 교육적이며, 실행 가능하고, 정의하기 쉽지만 강력한 규칙을 사용합니다.
  3. 애플 공식 문서에서 샘플 코드를 확인할 수 있습니다.

 

 

TipKit을 사용해 새로운 기능이 추가되었을 때 사용자에게 쉽고 빠르게 알려줄 수 있습니다. 앱 업데이트를 통해 새로운 기능을 추가하지만 업데이트 내용을 일일이 읽는 유저는 많지 않습니다. (우선 저부터...)

 

앱 내 공지사항이나 SNS를 통한 홍보도 가능하겠지만 TipKit을 활용하면 앱 내에서 직접적으로 설명이 가능해 사용자 입자에서도 더 쉽고 편할 것으로 예상이 가능합니다.

 

애플이 추구하는 팁 사용 방법은 앱 내 교육이 효과가 있는 사용자에게 집중되어야 하고, 앱 내에서 무언가를 하는 동안 방해가 되지 않는 것입니다. 새로운 기능 설명도 좋지만 무분별한 사용으로 기존 앱 사용 경험을 망치면 안되겠습니다.

 

 

 

이상 새로나온 TipKit에 대해 정리해보았습니다. 

 

 

끝끝끝끝끝끝

 

 

 

 

출처

 

Make features discoverable with TipKit - WWDC23 - Videos - Apple Developer

Teach people how to use your app with TipKit! Learn how you can create effective educational moments through tips. We'll share how you...

developer.apple.com

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함