AppleTVはじめにはじめまして。株式会社ビデオマーケットでサーバサイドエンジニアを担当しております、yamakzと申します。弊社のtvOSアプリはTVMLKitで実装しております。TVMLKitとはTVMLファイルとJavaScript環境を介してUIを構築できます。TVMLとJavaScriptによってUIが生成されます。多くのことがサーバ側で行えるため、利点も多いですが、ネイティブアプリとは違った注意点もあります。今回はJavaScriptのキャッシュで不都合が生じましたので、その要因と解決法について記載いたします。アプリ審査へ提出せず画面を改修できるのが利点だと思います。TVMLはHTMLに近いのでフロントエンドエンジニアの方も理解が容易です。JavaScriptキャッシュの問題サーバ側で更新が完結するTVMLですが、難しい点もあります。その一つがJavaScriptのキャッシュの問題です。アプリ内にキャッシュが残ってしまい、サーバ側の更新がアプリで適用されていないことがあります。ブラウザと違い、簡単にキャッシュクリアというわけにはいきません。アプリの再インストールで解決しますが、これをすると上記利点がなくりますので、再インストールをせずに解消する方法を模索しました。TVMLKitでの実装方法まず、TVMLで実装する方法を簡単に記載します。1.JavaScriptファイルを設置する任意の場所に起動時の処理を記載したJavaScriptファイルを配置します。developer.apple.com2.各ページの処理を記載したJavaScriptファイルを読み込む起動時に各ページの動作を記載したJavaScriptファイルを読み込みます。developer.apple.com3.アプリ側でURLを指定する下記のようにアプリ側で利用するJavaScriptのURLを指定します。developer.apple.comキャッシュが残る状況1.のJavaScriptファイルは起動時に再読み込みされるようで、こちらの更新は即時反映されます。2.のようにevaluateScriptsから読み込んだ別ファイルのJavaScriptの場合、読み込み先ファイルのキャッシュが残り、更新されませんでした。対応方法3.でJavaScriptのURLを指定する際に下記のようにダミーのtimestampパラメータを付与することで常に最新のファイルが読み込まれました。JavaScriptでアプリケーションが作成できるのはとても良い点だと思います。機会に記載したいと思います。TVMLKitで作成されるアプリケーションが少しでも増える助けになれば幸いです。公式のドキュメントの他、以下も参考にいたしました。08:57関連記事2024-05-30VMAFスコアを可視化するこんにちは。バックエンドエンジニアの阿部です。Storageを用いたAndroidライブラリ用の社内Mavenリポジトリ...こんにちは。7はてなブログをはじめよう!vm_creatorsさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。