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
ロック画面Widgetを仮実装した話
Search
Wakabayashi Rikuma
October 24, 2022
Programming
0
270
ロック画面Widgetを仮実装した話
【Da Vinci Studio/ロコガイド/Chatwork/STORES】iOS Meetup
で発表した LT の資料です。
Wakabayashi Rikuma
October 24, 2022
Tweet
Share
More Decks by Wakabayashi Rikuma
See All by Wakabayashi Rikuma
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
400
Other Decks in Programming
See All in Programming
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
AgentCoreとHuman in the Loop
har1101
5
250
Gemini for developers
meteatamel
0
100
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
210
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
130
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
140
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
58
50k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Accessibility Awareness
sabderemane
0
58
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Ethics towards AI in product and experience design
skipperchong
2
200
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
Transcript
【Da Vinci Studio/ロコガイド/Chatwork/STORES】iOS Meetup Chatwork株式会社 モバイルアプリケーション開発部 若林 陸真 ロック画面Widgetを仮実装した話
自己紹介 • Chatwork 株式会社 モバイルアプリケーション開発部 • 2021年4月にiOSエンジニアとして新卒入社 • スキューバダイビングの資格取得中 2 若林
陸真(わかばやし りくま) @wakakuuma
アジェンダ 1. Widgetについて 2. どういう表現ができるのか 3. 実装してみた 4. まとめ 3
01 Widgetについて
みなさんは覚えていますか? 2年前の衝撃を?
WWDC2020 Widget機能発表
• iOS iPadOS MacOSでWidgetが実装 • Widgetとは ◦ アプリを開かずとも画面から情報を確認でき る
• systemSmall • systemMedium • systemLarge • systemExtraLarge ◦ iPadOSのみ対応
8 これまでのWidgetFamily
9 これまでのWidgetFamily • systemSmall • systemMedium • systemLarge • systemExtraLarge
◦ iPadOSのみ対応
10 これまでのWidgetFamily • systemSmall • systemMedium • systemLarge • systemExtraLarge
◦ iPadOSのみ対応
11 これまでのWidgetFamily • systemSmall • systemMedium • systemLarge • systemExtraLarge
◦ iPadOSのみ対応
12 これまでのWidgetFamily • systemSmall • systemMedium • systemLarge • systemExtraLarge
◦ iPadOSのみ対応
そして今年 WWDC2022 ロック画面Widgetの発表
iOS16からロック画面にもWidgetが実装
• accessoryRectangular • accessoryCircular • accessoryInline • accessoryCorner ◦ watchOSのみ対応
15 新しく追加されたWidgetFamily
02 どういう表現ができるのか
• ホーム画面Widget ◦ 鮮やかな色と豊富な画像を使用してブランドを表現 • ロック画面Widget ◦ 抑制された色を使用 ▪ 常に表示される
▪ 様々なロック画面壁紙に対応できる必要がある 17 カラーについて
• 複数行のテキスト • 小さなグラフやチャート 18 accessoryRectangular
19 accessoryRectangularの例
20 accessoryRectangularの例 基本的には3行以内
• 簡単な情報 • ゲージ進捗状況の表示 21 accessoryCircular
22 accessoryCircularの例
23 accessoryCircularの例 • ゲージや進捗情報が表示されて いる場合は背景がない • 簡単な情報を表示している場合 は背景が設定されている
• 時計の上に表示される • 日付 + 設定したWidget 24 accessoryInline
25 accessoryInlineの例
26 accessoryInlineの例 システムイメージ+テキストがほどんど
03 実装してみた
• 既存のプロジェクトにWidget Extensionを追加 ◦ File > New > Target >
Widget Extension • Include Configuration Intent ◦ Widgetで表示する内容をユー ザーが選択できる ◦ 後々追加できる 28 実装方法
29 サポートしたいWidgetFamilyを宣言
30 それぞれに対応したViewを作成する EnvironmentObjectを追加
31 それぞれに対応したViewを作成する EnvironmentObjectを追加 WidgetFamilyごとにViewを書く
32 Previewをみながら実装する方法 表示したいWidgetとWidgetFamilyを指定してあげる
33 Previewをみながら実装する方法
• Widgetの内容 ◦ アカウントのタスクの情報を表示できる ◦ 更新頻度は15分に一回 ◦ ユーザーがWidgetをカスタムでき、タスクを表示したいアカウントを Widgetから切り替えることができる。 *今回実装したものは仮で実装したもので、実際のChatworkアプリとは関連のないものです
34 実際に実装してみた
35 全体像
36 accessoryRectangular 1~2行目はタスクの内容 3行目でタスク期限の表示
37 accessoryCircular • 文字サイズは最低サイズの11ポイント • 簡単な情報の表示なので、背景を表示 ◦ AccessoryWidgetBackground()で 一貫した背景を与えられる
38 写真を載せることもできるよ • ロック画面Widgetにも写真を載せることは 可能 ◦ ⚠透けてしまう
39 accessoryInline システムイメージ+テキスト
40 注意点 configurationDisplayNameのみ
• ロック画面にWidgetがあるだけでも価値がある ◦ 本来は情報を見せてあげるのが良い • WidgetはSwiftUIでの実装なので、まだ触ったことない人はいい 練習になる 41 実際に実装してみて感じたこと
04 まとめ
• iOS16からロック画面にWidgetを追加できるようになった • ホーム画面Widgetは鮮やかな色や画像でブランドを表現するのに対し、ロッ ク画面のWidgetは常に表示されるため、さまざまな背景に対応できるように 抑制された色で表示 • ロック画面Widgetにアイコンを表示するだけでもショートカットでアプリに 飛べるので価値はある •
Widget実装はSwiftUIの勉強にもなる 43 まとめ
None
働くをもっと楽しく、創造的に