Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ハッシュタグ #nikkei_tech_talk 2023年 6⽉ 15⽇ ⽇本経済新聞社 iOS チーム ⾼橋 碧 / 永⼭ 瑞⽣ NIKKEI TECH TALK #8 3 年間にわたる iOS Widgets の 開発と、その旨み
Slide 2
Slide 2 text
ハッシュタグ #nikkei_tech_talk Profile 2 ⾼橋 碧(たかはし あおい) ● iOS エンジニア ● 新卒 4 年⽬ ● Unity でゲームの製作もしてます ● サッカーが好きです!
Slide 3
Slide 3 text
ハッシュタグ #nikkei_tech_talk Profile 3 永⼭ 瑞⽣(ながやま みずお) ● iOS エンジニア ● 新卒 3 年⽬ ● ニックネーム「おずみん」 ● データを⾒るのも好きで、社内の データサイエンス勉強会にも参加
Slide 4
Slide 4 text
ハッシュタグ #nikkei_tech_talk (ところで) WWDC 23 は⾒ましたか! 4
Slide 5
Slide 5 text
ハッシュタグ #nikkei_tech_talk iOS Widgets が更に進化する! ● よりインタラクティブに ○ 今まではアプリ内への遷移のみ可能 ○ ボタンタップ時の処理などが可能に! ● より広範囲に ○ iPhone の StandBy mode ○ iPad の Lock screen ○ Mac の Desktop ○ Apple Watch の Smart Stack 5 https://www.apple.com/ios/ios-17-preview/
Slide 6
Slide 6 text
ハッシュタグ #nikkei_tech_talk iOS Widgets を開発しよう! 6
Slide 7
Slide 7 text
ハッシュタグ #nikkei_tech_talk 本発表の⽬的 1. iOS Widgets (以降 Widgets) を開発して得られた旨み を紹介 2. Widgets の開発に魅⼒ を感じてもらう 7
Slide 8
Slide 8 text
ハッシュタグ #nikkei_tech_talk アジェンダ 1. ⽇経電⼦版 iOS における Widgets 2. Widgets を開発して得られた旨み 3. データから⾒る Widgets 8
Slide 9
Slide 9 text
ハッシュタグ #nikkei_tech_talk アジェンダ 1. ⽇経電⼦版 iOS における Widgets 2. Widgets を開発して得られた旨み 3. データから⾒る Widgets 9
Slide 10
Slide 10 text
ハッシュタグ #nikkei_tech_talk ⽇経電⼦版 iOS を使ったことある⼈! 10
Slide 11
Slide 11 text
ハッシュタグ #nikkei_tech_talk ⽇経電⼦版 ● 2010/03 に創刊 ● 有料会員数 80 万⼈ 以上 ● 毎⽇ 900 本 以上の記事を配信 ● 媒体 ○ Web ○ iOS アプリ ○ Android アプリ 11
Slide 12
Slide 12 text
ハッシュタグ #nikkei_tech_talk Widgets を知っていますか? 12
Slide 13
Slide 13 text
ハッシュタグ #nikkei_tech_talk Widgets iOS 14 で発表され、毎年進化 している OS の機能 ● ホーム画⾯やロック画⾯に 配置できるミニアプリ ● アプリ外でのコンテンツ提供と アプリ内への導線の役割 ● 複数の Widgets を重ねられる Smart Stack が存在する 13 https://support.apple.com/ja-jp/HT207122
Slide 14
Slide 14 text
ハッシュタグ #nikkei_tech_talk Widgets for ⽇経電⼦版 iOS iOS 14 ~ 16 で、記事を表⽰する Widgets に対応 14 iOS 14: ● iPhone ホーム画⾯⽤の Small / Medium / Large Widgets iOS 15: ● iPad 専⽤の Extra Large Widgets iOS 16: ● iPhone ロック画⾯⽤の AccessoryRectangular Widgets
Slide 15
Slide 15 text
ハッシュタグ #nikkei_tech_talk Widgets for ⽇経電⼦版 iOS ● WWDC や HIG を⾒てデザインから作成 ※ HIG (Human Interface Guidelines): Apple が出しているデザインのガイドライン ● 記事のカテゴリを設定できるように ブログも書きました: ● ⽇経電⼦版を Widget で読む [プロダクト編] ● ⽇経電⼦版iOSのロック画⾯ウィジェット対応 15
Slide 16
Slide 16 text
ハッシュタグ #nikkei_tech_talk アジェンダ 1. ⽇経電⼦版における Widgets 2. Widgets を開発して得られた旨み 3. データから⾒る Widgets 16
Slide 17
Slide 17 text
ハッシュタグ #nikkei_tech_talk 旨み 1:アプリ外の接点を増やせた ● ホーム画⾯‧ロック画⾯から ○ 記事の概要を知れる ○ ワンタップで記事を開ける ● Smart Stack を使っていると Siri が Widgets を提案してくれる ○ Stack に無い Widgets が提案される ○ ⽇経 Widgets を配置していない⼈にも 使ってもらえる 17
Slide 18
Slide 18 text
ハッシュタグ #nikkei_tech_talk 旨み 1:アプリ外の接点を増やせた Q. 実際 Widgets を配置している⼈は、どれくらい? A. (30⽇間で) Widgets を配置していた⼈の割合は 17.6 % 18
Slide 19
Slide 19 text
ハッシュタグ #nikkei_tech_talk Q. 実際 Widgets からアプリへの遷移は、どれくらい? A. (30⽇間で) アプリに⼀度でも遷移した⼈の割合は 29.9 % (※ Widgets を配置していた⼈が分⺟) 19 旨み 1:アプリ外の接点を増やせた
Slide 20
Slide 20 text
ハッシュタグ #nikkei_tech_talk Q. アプリ外の接点と⾔えば、Push 通知があるよね? A. Push 通知は制限が増えている ● iOS15 ○ 通知の時間指定要約などが追加され、通知が⾒られにくくなる⽅向に ● iOS16 ○ ロック画⾯のアップデートに伴い、通知の表⽰領域が狭まった 20 旨み 1:アプリ外の接点を増やせた
Slide 21
Slide 21 text
ハッシュタグ #nikkei_tech_talk ● 特定の OS で実装した Widgets が 他の OS でも利⽤可能になっていった ○ WWDC 23 でも、その流れが継続 ● ロック画⾯ Widgets は Apple Watch の Complications でも使い回せる ブログ:⽇経電⼦版のwatchOS対応について Apple Doc:Creating accessory widgets and watch complications 旨み 2:複数 OS で再利⽤できた 21
Slide 22
Slide 22 text
ハッシュタグ #nikkei_tech_talk 旨み 3:検証の場として使えた 22 ● Widgets は本体アプリとライフサイクルが異なる ○ 更新も即座には出来ない ○ 本体アプリと切り離して考えないといけないことが多い
Slide 23
Slide 23 text
ハッシュタグ #nikkei_tech_talk 23 ● 本体アプリと独⽴に開発する必要があった 旨み 3:検証の場として使えた
Slide 24
Slide 24 text
ハッシュタグ #nikkei_tech_talk 旨み 3:検証の場として使えた 24 ● 本体アプリと独⽴に開発する必要があった ○ 新しい技術や設計の検証もできた ■ SwiftUI が必須になる ■ Swift Concurrency ■ …
Slide 25
Slide 25 text
ハッシュタグ #nikkei_tech_talk 旨み 3:検証の場として使えた 25 ● 本体アプリと独⽴に開発する必要があった ○ 新しい技術や設計の検証もできた ■ SwiftUI が必須になる ■ Swift Concurrency ■ … コアとなるコード (API とのやりとり、モデルの定義、…) 本体アプリ (UIKit, RxSwift, …) Widgets (SwiftUI, Concurrency, …)
Slide 26
Slide 26 text
ハッシュタグ #nikkei_tech_talk 旨み 3:検証の場として使えた 26 ● 本体アプリと独⽴に開発する必要があった ○ 新しい技術や設計の検証もできた ■ SwiftUI が必須になる ■ Swift Concurrency ■ … ○ コードベースが⼩さいので、新規メンバーも開発しやすかった ■ iOS 14:(当時) 新卒 1 年⽬の「⾼橋」が担当 ■ iOS 15:(当時) 新卒 1 年⽬の「永⼭」が担当 ■ iOS 16:(当時) 中途⼊社 1 年⽬の iOS メンバーが担当
Slide 27
Slide 27 text
ハッシュタグ #nikkei_tech_talk ● 実際は、コアコードは依存先が多く、使い回しづらかった ○ そもそも、本体アプリから利⽤される想定しかなかった ○ 将来的な変更容易性なども⾒越して、改善したい! 旨み 4:コアコード改善のきっかけになった 27 コアコード 本体アプリ Widgets ???
Slide 28
Slide 28 text
ハッシュタグ #nikkei_tech_talk 本体アプリ Widgets ● 本体アプリを巻き込んで、修正すると影響範囲が⼤きい ○ 修正量も⼤きくなるし、不測のバグも⽣みやすい 28 どう改善していった? 改善したコアコード ⼤丈夫かな...
Slide 29
Slide 29 text
ハッシュタグ #nikkei_tech_talk ● まずは Widgets で利⽤するコアコードを改善する ○ 修正量も⼩さく、不測のバグも⽣まれづらい 29 どう改善していった? コアコード 本体アプリ 改善したコアコード Widgets
Slide 30
Slide 30 text
ハッシュタグ #nikkei_tech_talk 本体アプリ ● 改善したコアコードを本体アプリでも利⽤する ○ Widgets で動作が保証されているので、安全に進められる 30 どう改善していった? 改善したコアコード Widgets
Slide 31
Slide 31 text
ハッシュタグ #nikkei_tech_talk 1. ⽇経電⼦版における Widgets 2. Widgets を開発して得られた旨み 3. データから⾒る Widgets アジェンダ 31
Slide 32
Slide 32 text
ハッシュタグ #nikkei_tech_talk 質問です! 32 Small Medium Large みなさんは どれを置きたく なりますか?
Slide 33
Slide 33 text
ハッシュタグ #nikkei_tech_talk Data 1:Medium Widgets が⼈気 Widgets の種類別配置数を⾒ると Medium が 70 % → 最初に開発するのは Medium がおすすめ (※ アプリや Widgets の特性によると思います) 33
Slide 34
Slide 34 text
ハッシュタグ #nikkei_tech_talk Widgets は表⽰するコンテンツを編集できる ● トップ ● AI推薦 ● 速報 ● オピニオン ● … どのカテゴリが⼀番⼈気だと思いますか? 34 質問です!
Slide 35
Slide 35 text
ハッシュタグ #nikkei_tech_talk →カテゴリを変更する機能のオンボーディング‧訴求が⼤事 35 Widgets に設定されているカテゴリの割合 Data 2:デフォルトのカテゴリ以外が少ない デフォルトのカテゴリは「トップ」 「速報」 Extra Large Accessory Rectangular Small Medium Large
Slide 36
Slide 36 text
ハッシュタグ #nikkei_tech_talk 36 ※ ウィジェットを⻑押しすることで、 カテゴリを選択できます ● 追加画⾯で編集できることをアピール ● よく読むカテゴリの Widgets が Smart Stack に出てくるように OS に通知 ● ⽇経の Widgets を紹介する記事を 書いてもらい、その中で⾔及 紹介記事 カテゴリが変更ができることを伝える努⼒
Slide 37
Slide 37 text
ハッシュタグ #nikkei_tech_talk Data 3:Widgets の更新頻度は OS が決める よく⾒られる Widgets の 1 ⽇の 更新頻度は 40 ~ 70 回 (ドキュメント) → 適切に更新する⼯夫が必要 ● 更新頻度の設定 ○ 例)朝だけ頻度あげる ● アプリから更新処理を呼ぶ ○ この場合必ず更新される 37 ある 1 ⽇の Widgets の更新回数の分布 (外れ値は除外) 中央値:9 第一四分位数:4 第三四分位数:28 最大値:64
Slide 38
Slide 38 text
ハッシュタグ #nikkei_tech_talk 本発表の⽬的 1. iOS Widgets (以降 Widgets) を開発して得られた旨み を紹介 2. Widgets の開発に魅⼒ を感じてもらう 38
Slide 39
Slide 39 text
ハッシュタグ #nikkei_tech_talk まとめ 39 ● Widgets を開発して得られた旨みが多かった ○ アプリ外の接点を増やせた ○ 複数 OS で再利⽤できた ○ 検証の場として使えた ○ コアコードの改善のきっかけになった ● WWDC 23 でも Widgets の強化が発表されている ⼀緒に⽇経電⼦版の開発をしませんか 😉