Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DMMブックスへのTipKit導入
Search
hisashi
January 20, 2025
Technology
1
220
DMMブックスへのTipKit導入
2025/1/17 Sansan x DMM.swift
https://dmm.connpass.com/event/336359/
の登壇スライドです。
hisashi
January 20, 2025
Tweet
Share
Other Decks in Technology
See All in Technology
Goで作って学ぶWebSocket
ryuichi1208
3
2.3k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
920
コンテナサプライチェーンセキュリティ
kyohmizu
1
110
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
270
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
150
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
240
短縮URLをお手軽に導入しよう
nakasho
0
110
ユーザーストーリーマッピングから始めるアジャイルチームと並走するQA / Starting QA with User Story Mapping
katawara
0
270
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
880
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
610
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
370
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
A better future with KSS
kneath
238
17k
Being A Developer After 40
akosma
89
590k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
500
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Transcript
© DMM © DMM CONFIDENTIAL DMMブックスへの TipKit導入 Sansan x DMM.swift
合同会社 DMM.com 宗像恒 2025/01/17
© DMM 自己紹介 宗像 恒 / Munakata Hisashi 合同会社 DMM.com
2024/10 中途入社 電子書籍開発部 ネイティブアプリ開発グループ DMMブックス iOSアプリを開発 2
© DMM 今日話すこと • TipKitとは • 基本的な使い方 • DMMブックスでの導入例 •
その他の機能 3
© DMM TipKitとは 機能を発見してもらうためのヒントを簡単に表示するフレームワーク • デフォルトのViewを提供 • タイトル、メッセージ、画像などの要素を指定する • 表示条件の設定
• 表示状態、履歴をフレームワーク側で管理 4
© DMM TipKitとは ユースケース • 効果的なヒント • 実践可能で覚えやすいものを示す • 使うべきでない
• プロモーション • エラーメッセージ(アラートなど、別の手段をとる) • アクションの必要がない • 操作が複雑すぎるもの(チュートリアルなど、別の手段をとる) 5
© DMM 基本的な使い方 ヒントの作成と初期化 6
© DMM 基本的な使い方 ヒントの表示 7
© DMM 基本的な使い方 OptionとAction 8
© DMM DMMブックスでの導入例 • 起動時にアップデート内容 を知らせる機能はあるが、 伝えられる内容に限りがあ る • 検索画面に追加した機能に
TipKitでヒントを表示 9
© DMM DMMブックスでの導入例 • iOS 16のユーザーにはヒントは出 していない • 9割以上のユーザーがiOS 17以上
になっている • 表示頻度や表示履歴の管理を自 前で用意するほどではないと判断 10
© DMM その他の機能 Rule, Parameter, Event • Rule • @Parameterを使って状態に応じてヒントを出す
11
© DMM その他の機能 Rule, Parameter, Event 12 • Rule •
@Parameterを使って状態に応じてヒントを出す
© DMM その他の機能 Rule, Parameter, Event • Rule • Eventを定義してユーザーの行動に応じてヒントを出す
13
© DMM その他の機能 Rule, Parameter, Event • Rule • Eventを定義してユーザーの行動に応じてヒントを出す
14
© DMM その他の機能 デバッグ • 開発時に使う関数 • Tips.showAllTipsForTesting() • 全部のヒントを強制的に表示する
• Tips.showTipsForTesting([BookmarkTip.self]) • 指定したヒントを強制的に表示する • Tips.hideAllTipsForTesting() • 全部のヒントを表示しない • Tips.hideTipsForTesting([BookmarkTip.self]) • 指定したヒントを表示しない • try Tips.resetDatastore() • ヒントに関するデータをクリアする 15
© DMM その他の機能 ヒントのグループ化(iOS 18.0+) • タップ • 背景色変更 •
長押し • アラート 16
© DMM その他の機能 ヒントのグループ化 タップのヒントを消してか ら長押しのヒントを表示し たい 17
© DMM その他の機能 ヒントのグループ化 18
© DMM その他の機能 ヒントの見た目を変える • インラインのTipViewは見た目を変えられる • 背景色 tipBackground •
画像サイズ tipImageSize • 角丸 tipCornerRadius 19
© DMM その他の機能 ヒントの見た目を変える • TipViewStyle protocol を使うとより自由度が高く なる •
独自のStyleを定義して tipViewStyle modifier で 適用 20
© DMM
© DMM 22 • TipKitとは • 基本的な使い方 • DMMブックスでの導入例 •
見た目で気づきにくいところに使用 • その他の機能 • Rule, Parameter, Event • デバッグ • ヒントのグループ化 • 見た目を変える まとめ
© DMM ご清聴ありがとうございました