読者です 読者をやめる 読者になる 読者になる

アプリカンブログ

HTML5でiOS/Androidアプリが開発できるプラットフォーム、アプリカンのブログです。

HTML5でアプリを作るハイブリッドアプリの利点とは?(3)

初回は開発者視点、前回はマネージメント層の視点でハイブリッドアプリの利点を紹介しました。今回はあまり知られていませんが、ハイブリッドアプリならではのコンテンツ差し替えについて紹介します。

一般的なネイティブアプリの場合

ネイティブアプリはこれまでに紹介している通り、1から10までネイティブなプログラミング言語で作られています。iOSのObjective-C/SwiftやAndroidのJavaはいずれもコンパイル言語で、書いたプログラミングコードをコンパイルして一つのアプリにしています。

コンパイルされていますので予め書かれている動作のみ可能となっています。そのため高速に動作することが可能です。

ハイブリッドアプリの場合

対してハイブリッドアプリの場合、WebViewに備わっているJavaScriptエンジンやレンダリングエンジンを使ってダイナミックに処理を行います。JavaScriptはスクリプト言語であり、コンパイルは不要です。実行時にその場で処理を行います。そのため、コンパイル系のプログラミング言語に比べて多少遅いのが一般的で、かつiOS/Androidのネイティブ実行環境ではない、WebView上のJavaScript実行エンジンを使って実行されるので処理に時間がかかります。

コンテンツを差し替えるとは?

Webサイトなどでは読み込んでいるJavaScriptファイルを差し替えて再実行するとすぐに処理を変えることができます。例えばハイブリッドアプリの中から外部サーバ上にあるJavaScriptファイルを読み込んでいる場合、アプリの外からアプリの処理内容を変更できるようになるというわけです。

JavaScriptに限らず、スタイルシートや画像なども外部ファイルを参照していればアプリ外からの操作が可能になります。しかしこの方法ではオフライン時では使えませんし、表示もネットワークを使う分、重たくなってしまいます。

そこでダウンロード&差し替え

そこで使えるのがファイルをダウンロードした上でのコンテンツ差し替えです。私たちの提供するアプリカンでは作成したアプリのソースコード(HTML5/JavaScript/スタイルシート/画像など)をまとめて圧縮してweb.zipという形で保存しています。アプリを起動した際にはこのweb.zipを解凍し、表示を行っています。

そしてソースコードを編集して管理画面上からアップロードすると、次にアプリを起動した時にweb.zipのアップデートを感知し、自動でダウンロードを行います。ダウンロード完了後はweb.zipを差し替えて新しい表示になります。

差し替えの利点

最も大きな利点としては、アプリの審査を通さずにコンテンツの差し替えが可能ということです。一般的にアプリの内容をちょっとでも変更した場合、AppleやGoogleの審査が必要になります。Googleは早いですが、Appleの審査は厳しく、1週間〜2週間、さらに審査でリジェクト(審査落ち)すればさらに修正して再度審査を行う必要があります。

これは緊急のバグが発見された場合に大きな問題になります。一応Appleは特急審査という道を用意してくれていますが、利用回数に限度があったり、理由が適切でないと通常の審査に回されてしまいます。

動的なコンテンツ差し替えの場合はアプリの審査は不要で、すぐに変更が反映できるようになります。かつ、ファイルをダウンロードした上で差し替えますのでオフラインでも継続して利用が可能です。緊急性の高い問題があった際に、すぐに修正して反映できるのは魅力的です。

差し替えの問題点

審査を通さないリリースになりますのであまり大きな変更は控えるべきでしょう。アプリの内容全体が差し替えられますので、全く別なアプリにすることさえ可能です。しかしそういった使い方はユーザの信頼を損ないますし、それによって利用が伸びるとは思えませんので控えましょう。

また、ネイティブの機能を使う系統のアップデートについてはHTML5/JavaScript部分の差し替えだけで対応できないことがあります。例えばアプリカンにおいてはバージョン1.10.0からビーコンAPIを提供していますが、こういった機能はネイティブのAPIに絡んでいるため再審査が必要になります。iOSエンジンのバージョン1.11.0における64bit対応も同様です。JavaScriptだけでできる部分は再審査が不要ですが、ハードウェアの機能が絡んだ場合はコンパイルし直した上で再審査が必要になります。


コンテンツの差し替えはハイブリッドアプリならではの機能と言えます。使いこなせばこれまでのWebシステム開発と同様に高速な開発サイクルが回せるようになるはずです。アプリカンでは標準でコンテンツ差し替え機能を提供していますので、ぜひお試しください!

アプリカン | アプリ開発支援プラットフォーム