やりたいこと
Androidアプリ内にお知らせページを作りたい。
お知らせページは更新頻度が高めなので、アプリの更新をしなくてもお知らせ情報だけ更新できるようにしたい。
サーバーは用意できない。
そこで思いついたのが下記の2つ。
- Google Apps Scriptを用いてHTMLを生成・配信。
- Firebase Hostingを用いてHTMLを配信。
Google Apps Script(GAS)を用いてHTMLを生成・配信。
実際に試してみましたが、生成したHTMLをアプリのWebViewで表示するとなにやら上部に謎の表記が。。。
拡大してみるとこんな表記が。
This application was created by another user, not by Google.
Report abuse - Terms of Service
消し方が分からず、これを出しっぱのままアプリをリリースするわけにもいかないのでFirebase Hostingの方を選択してみました。
Firebase Hostingを用いてHTMLを配信。
ここではFirebase Hostingの導入から、ホスティングした静的コンテンツ(HTML)を表示できるようにするところまでを紹介します。
前提として、Firebaseにてプロジェクトを作成済みであるとします。
Node.jsとnpmのインストール
まずはNode.jsとnpmのインストールを行います。
https://nodejs.org/ja/
インストーラの手順に沿ってインストールを行ってください。
Firebase CLI(コマンドライン インターフェース)のインストール
npmを用いてFirebase CLI(コマンドライン インターフェース)のインストールを行います。
コマンドラインツールから下記コマンドを実行してください。
npm install -g firebase-tools
実行時にError:EACCES
というエラーが発生するかもしれません。
その場合は下記の記事を参考にしてください。
http://qiita.com/Gaddict/items/8c76d92bd0adec2bfb6a
Firebaseへのログイン
ここからはFirebase CLIのコマンドを使って操作をしていきます。
まずはFirebaseへのアクセスを可能にするために下記コマンドでFirebaseのプロジェクトと紐付いたアカウントにログインします。
Firebase login
Firebaseアプリの初期化
ログイン後、Firebaseアプリの初期化を行います。
ここでいうFirebaseアプリとは、Firebase Hostingで配信する静的コンテンツのことを指します。(たぶん。。。)
下記コマンドをアプリのルートディレクトリにて実行してください。
firebase init
私の場合はAndroidアプリをBitbucketで管理しているので、静的コンテンツも同じように管理したいと思いアプリのプロジェクト直下にディレクトリを移動してから上記コマンドを実行しました。
上記コマンドを実行すると、まずはじめにFirebaseのどの機能を利用するかを聞かれるのでHosting
を選択します。
さらに、紐付けるFirebaseプロジェクトを聞かれるので、自分が設定したいプロジェクトを選択してください。
続いて、公開ディレクトリの指定を促されます。今後はこのディレクトリ内に静的コンテンツを配置していくことになります。そのままEnterを押すとpublic
というフォルダが作成されその中にindex.html
が作成されます。
最後に、アクセスを全てindex.html経由にするかどうかを聞かれます。複数のHTMLを配置してそれぞれに直接アクセスできるようにしたい場合はNO
、全てのアクセスをindex.html経由にしたい場合はYES
を入力してEnterを押してください。ちなみにここでNO
を選択すると、index.htmlが生成されたフォルダ内に404.htmlが生成されます。
これにて初期化は完了です。
静的コンテンツをデプロイする。
先ほど指定した公開ディレクトリの中身の静的コンテンツに外部からアクセスできるようにするには、このフォルダ内のコンテンツをデプロイする必要があります。
下記コマンドを実行することでデプロイできます。
firebase deploy
成功するとプロジェクト固有のドメインが表示されるので、そのドメインにアクセスするとindex.htmlの内容が表示されることが確認できると思います。
終わりに
Firebase Hostingを用いることでサーバレスでHTMLを配信することができました。
無料のアカウントだと保存容量が1GB、ユーザーアクセスによるダウンロードが10GB/月なので、個人開発のアプリやサイトであれば十分な容量ではないかと思います。
皆さんも是非、使ってみてください。