Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ロック画面Widgetを仮実装した話
Search
Wakabayashi Rikuma
October 24, 2022
Programming
290
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ロック画面Widgetを仮実装した話
【Da Vinci Studio/ロコガイド/Chatwork/STORES】iOS Meetup
で発表した LT の資料です。
Wakabayashi Rikuma
October 24, 2022
More Decks by Wakabayashi Rikuma
See All by Wakabayashi Rikuma
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
570
Other Decks in Programming
See All in Programming
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
770
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
800
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
AmebaブログはKMPから卒業します
kmars0605
0
200
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
0
130
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
220
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
280
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Designing for Performance
lara
612
70k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
BBQ
matthewcrist
90
10k
We Have a Design System, Now What?
morganepeng
55
8.4k
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
働くをもっと楽しく、創造的に