Slide 1

Slide 1 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. ©2021 RAKUS Co., Ltd. 酒井 幸教 チャットボットシステムの スマートフォン対応について

Slide 2

Slide 2 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 自己紹介 酒井 幸教(さかい ゆきのり) ラクスに入社後、4つのサービス(いずれもPHP)の開発・運用に携わり 現在、担当しているサービス『チャットディーラー』は サービス立ち上げ時から参加。

Slide 3

Slide 3 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 今回話す内容について チャットボットサービス『チャットディーラー』の 下記の内容について共有 • スマホ対応した際の手法 • 開発/運用で発生したスマホに関する課題 • マルチブラウザでの品質担保

Slide 4

Slide 4 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. チャットディーラーとは チャットボットを提供するサービス サイトに簡単にチャットボットを設置可能 設置 <!-- var vgHost='xxx.xxx.xx',vgProtocol='https',vgPort='443',vgAtxt='k7Y7zq0g1T',vgSid=2; (function(){try{ var ins=document.createElement('script'),dt=new Date,tg=document.getElementsByTagName('script')[0]; ins.type='text/javascript';ins.async=!0;ins.setAttribute('charset','utf-8'); ins.src=vgProtocol+'://'+vgHost+':'+vgPort+'/chat/client.js?'+dt.getTime();tg.parentNode.insertBefor e(ins,tg); }catch(e){console.log(e);}})(); //--> 設置タグをHTMLに記載

Slide 5

Slide 5 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. チャットディーラーの構成 iframe内にチャットディーラーの サイトを読み込んでいる。 ※赤枠がiframe

Slide 6

Slide 6 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について

Slide 7

Slide 7 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について PC用に最適化されたチャットを、そのままスマホで使用するのは厳しい。 スマホでのチャットの表示を最適化する必要が出てきた。 最適化

Slide 8

Slide 8 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について チャットディーラーで実際に行ったスマホ対応の 要件は下記の通り。 要件 • 画面全体にチャットを広げて表示する。 • スマホで操作しやすいサイズでチャットを表示する。 • チャットデザイン・機能はPC/スマホでほぼ同じ。

Slide 9

Slide 9 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について 課題/要望 • 端末の画面サイズは一定ではない。 • チャットを埋め込むサイトのサイズも一定ではない。 • 各フォント/要素の大きさを個別に最適化するのは大変。 • チャットデザイン・機能はPC/スマホでほぼ同じなので 出来るだけ共通化したい。

Slide 10

Slide 10 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について 対応方針 1. チャット自体はPC/スマホ共通(一部処理分岐あり)。 2. 端末の画面サイズに合わせてチャット外側のiframeを広げる。 3. チャットはiframe全体に伸縮するように実装。 4. 画面サイズに合わせてiframe内のズームを動的に行う。

Slide 11

Slide 11 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について 1. チャット自体はPC/スマホ共通(一部処理分岐あり) 2. 端末の画面サイズに合わせてチャット外側の iframeを広げる。 3. チャットはiframe全体に伸縮するようにする。 2,3 1

Slide 12

Slide 12 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について 4. 画面サイズに合わせてiframe内のズームを動的に行う。 ズーム

Slide 13

Slide 13 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. スマホ対応について 4. 画面サイズに合わせてiframe内のズームを動的に行う。 JavaScriptでiframe内のコンテンツのbodyに対しCSSでズームを設定 body { transform-origin: 0px 0px; transform: scale(1.584); } scaleの値はスマホの画面サイズから動的に算出し 適切な値を設定する。

Slide 14

Slide 14 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生した スマホに関する課題

Slide 15

Slide 15 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生したスマホに関する課題 スマホ対応を行った後、開発・運用で次のような問題が発生した。 これらは全てiOSのSafariで発生。 課題 1. 大きなサイトでチャットがぼやける 2. ダウンロードを行うとファイルをiframe内で開いてしまう

Slide 16

Slide 16 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生したスマホに関する課題 1. 大きなサイトでチャットがぼやける スマホに最適化されていないPCサイト等に チャットを埋め込みiOSで見ると 表示中のサイトの拡大・縮小状態によって チャットディーラーのチャットがぼやける。 上に比べ、少しぼやけている

Slide 17

Slide 17 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生したスマホに関する課題 1. 大きなサイトでチャットがぼやける 原因 スマホ対応の説明のとおり、チャットのiframe内をズームすることにより 表示の最適化しているが、ズーム前の倍率の描画が保たれて 小さな画像を拡大して表示するような状態になっている可能性あり。 解決方法 未解決

Slide 18

Slide 18 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生したスマホに関する課題 2. ダウンロードを行うとファイルをiframe内で開いてしまう 画像 チャット機能でファイルの ダウンロードが行えるが iOSだとチャットのiframe内で 画像等が開いてしまう。 target指定なども試したが対応できず。 ダウンロード

Slide 19

Slide 19 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 開発・運用で発生したスマホに関する課題 2. ダウンロードを行うとファイルをiframe内で開いてしまう 原因 iframe内のクロスドメインのサイトから ダウンロードしていることが原因かと思われる。 解決方法 ダウンロードデータを parent.postMessage() で設置サイトに受け渡して 設置サイト側からダウンロードさせる。

Slide 20

Slide 20 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. 2. ダウンロードを行うとファイルをiframe内で開いてしまう 設置サイト Iframe(チャットディーラーサイト) 開発・運用で発生したスマホに関する課題 Ajaxでダウンロード(バイナリデータ) バイナリデータを文字列データに変換 (バイナリデータ → Blob → Data URI) 受け取った文字列データを使用して JavaScriptによってダウンロードさせる parent.postMessage()で文字列データを送信 送 信

Slide 21

Slide 21 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. マルチブラウザでの品質担保

Slide 22

Slide 22 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. マルチブラウザでの品質担保 マルチブラウザでのサービス品質を担保するために 適切なタイミングでテストを実施している。 こちらは一部チャットディーラー独自のものもあるが ラクスの全サービス共通の基本ルールとして行われている。

Slide 23

Slide 23 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. マルチブラウザでの品質担保 実施タイミング • OS(iOS/Android)新バージョンリリース • ブラウザバージョンアップ テスト内容 • 重要機能の動作テストを実施 ※場合によっては機能全体のテストを実施

Slide 24

Slide 24 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. マルチブラウザでの品質担保 実施タイミング • チャットディーラーの新バージョンのリリース前 テスト内容 • 改修機能についてマルチブラウザテストの実施 • 重要機能の回帰テストを実施

Slide 25

Slide 25 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. まとめ スマホでの問題は、昔はAndroidの標準ブラウザで多く発生していたが Chromiumが標準ブラウザエンジンになってからは問題の発生率が激減した。 逆に最近は、iOSに関する問題が多く見つかっている。 iOSは軽量化のために多くの施策を行っていると思われ 特に描画に関するキャッシュ等がかなり行われていると思われる。 そのため、描画関連の問題の発生率が高い。

Slide 26

Slide 26 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. まとめ 今回説明したような、環境・ブラウザ特有の課題についての対応は 昔から行われている。(個人的にはIE6対応で何度も苦戦した) 特に近年は、スマホが普及したこともあり端末の多様性が高まっているため 今後も多くの問題が発生していくと思われる。

Slide 27

Slide 27 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. まとめ マルチブラウザで発生する課題は、前もって対策することが難しい。 サービス品質を保つためには、マルチブラウザテストを実施するための 運用ルールの策定が重要。 • OS/ブラウザのアップデート情報の監視 • テストタイミングの定義 • マルチブラウザでのテストケース作成とメンテナンス

Slide 28

Slide 28 text

#RAKUSMeetup ©2021 RAKUS Co., Ltd. ご清聴ありがとうございました