きっかけ
- 自社コンテンツをwebページとして閲覧する用途にCCTを使いたいと思いました。
- WebViewよりも新しいコンポーネントなので負債になりづらいのでは?と思いました。
- WebViewとCCTの比較をしたい
この記事について
- 実際に実装せずに資料を見て自分の考えをまとめています。CCTでもWebViewの代わりになるよ!ってご意見もあると思います。
参考ページ
-
CustomTabsSample
https://github.com/sakebook/CustomTabsSample
https://play.google.com/store/apps/details?id=com.sakebook.android.sample.customtabssample
Chrome Custom Tabs(CCT) pros/cons
Pros
- ブラウザとデータを共有できる。
- WebViewsはブラウザと状態を共有せず、保守オーバーヘッドを追加します。
- WebViewよりもシームレスにアプリとwebを行き来できる。
- パフォーマンス良い。アプリケーションから余計なリソースを奪わない。プリフェッチ。
- lolipop未満の端末でも最新のブラウザ機能を使えるよう。
- アドレスバーでSSL証明書を確認することができる。
- 外部のドメインのwebを表示するときに向いている。
Cons
- 自社コンテンツを表示するだけならWebViewの方が良いかも(信頼できるのでセキュリティ要件が低いからだと思います)
- URLハンドリングなど複雑なことできるか調べる必要ある。
- 複雑な処理が大変そう。
- ページの一部にwebを表示することが大変そう
- webViewでもAndroid5以降で、Safe Browsingを有効にできる
結論
WebViewの方が良さそう
- 自社コンテンツを表示するのでセキュリティ要件はそこまで高くなさそう
- アプリ内の操作のためURLハンドリングや細かい処理が必要そうだがCCTが対応しているか不明
- ページの一部にwebを表示したいという要望が出た時にCCTだと辛そう。
CCTに向いていることは?
- CCTはチャットワークやTwitterのような外部ページへの遷移用途に向いてそう(OSのリソースを無駄遣いしない)
- OAuth 2.0を利用するにも良いのかなという印象です。
最後に
- CCTはDroidKaigi2017でセッションを聞いてWebViewの後継コンポーネントだと思っていましたが、調べるうちに考え直しました。パフォーマンス、シームレスなWeb表示などは強化されていますが、WebViewの強みはまだ残っていました。
- 画面の一部だけWebを表示したいや、柔軟な処理が必要な場合はまだまだWebViewが必要になりそうですね。
- 誤っている箇所や認識などありましたらご指摘いただけますと幸いです。