「Web Working Group 「PWAに備える3ヶ月」 vol.2」に参加してきました

KotlinJSでServiceWorkerを使ってみた

kotlinJS in ServiceWorker

  • 良かった点
    • コード再利用できた
      • すでにあるkotlinコードを

ServiceWorkerのおさらい

  • プロキシ
    • 通信検知して書き換え
  • ページのJSとは別スレッドで動く
  • ブラウザの任意のタイミングでServiceWorkerは終了する
    • 永続化はindexedDBとか

kotlinJS

なぜkotlinJSとServiceWorker

  • 状態管理とか発生した時にkotlinいいんじゃないか-
  • state machine
    • swift,kotlin,tsで書いてたのをServiceWorkerへ移植

大変だったこと

  • 意図しないタイミングでリリースされる
  • indexedDBの型ファイル自作

使い方

  • kotlinからServiceWorker見えるように定義しないといけない
  • external
    • kotlinからJSの関数を呼ぶ
      • DOMアクセス系とか
  • 入れ子のPromiseの型の扱い
    • asDynamic

ツールを利用した対応と企業サイドの懸念点

Mobify

  • PCサイトをモバイル向けにするツール

課題

  • モバイルからのコンバージョン率
  • 顧客ロイヤルティ
  • サービス力で差をつける

事例

  • LANCOME
    • リッチなコンテンツ
    • ページ増加
    • スピード課題
  • アプリは?
    • 毎日使うようなものでもない
    • PWAで
  • 恩恵
    • アプリライク
    • プッシュ通知
      • 買い物かごに入れたまま落ちた人に通知
  • AMP + PWA
    • 入り口はAMP
    • そのあとはreact

導入企業の声

  • ネイティブライクに
    • アプリと全く同じになると勘違い
    • 見た目がwebと同じじゃんとなる
  • ios対応していないことはネガティブ要因
    • iosプッシュ通知使えないし・・
  • 新規事業と相性良い
  • ホームアイコンのみでも

メリット

  • ネイティブアプリより工数少ない
    • SSRタイプの画面ベースのページをSPAへ

お手軽PWA開発環境と近い将来の課題

お手軽PWA開発

  • create-react-app
  • ionic cli
    • start templateが豊富
    • とにかく簡単
  • PWA Builder

ユーザから見た不安

  • 見つけにくい?
    • ストアで探しても見つけることができない
    • ググればいいと言うけれど
  • そのままではPWAと思わないのでホームに追加しようと思わない
    • そもそも知らないし
    • iosは自分でホームに追加しないといけない
    • インストールしますかとか出してもそういうのはたいてい拒否される
  • ネイティブと比べて
    • 動作遅い?
    • 機能低い?

開発者から見た不安

一般的な課題

  • マルウェア対策
  • サニティチェック
  • メモリ/ストレージ使用量の把握/警告
  • ユニバーサル性/レスポンシブ性

フリートーク

  • iosだとスタンドアロンだと戻るがない
  • UI周り大変なんじゃないか
  • モバイルのスタンドアロンの場合と普通のWebアプリとして使う場合両方対応しないと
  • デザイナーが知ってないとはまりそう