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

アプリカンブログ

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

アプリカンのライブラリバージョンとベースバージョンについて

アプリカンのAPIで、次のメソッドがあります。

この2つがどう違うのか解説します。

アプリカンの仕組みについて

そもそもとしてアプリカンで作成したアプリがどのような構成になっているかを紹介します。

基本的なアプリカンアプリの形

このように開発したHTMLコンテンツ(web.zip)をアプリカンでラッピングしています。そしてJavaScriptからアプリカンを通してネイティブの機能を呼び出しています。

これをレイヤーごとに見ると次のようになります。

アプリカンの仕組み

この時、ライブラリバージョンとはApplicanライブラリのバージョン、ベースバージョンとはApplicanベースのバージョンをそれぞれ返すものになります。つまりライブラリバージョンはJavaScript(applican.js)だけで取得でき、ベースバージョンはネイティブ(Applicanベース)の機能を呼び出して取得する仕組みです。

そもそもなぜ2つあるのか

アプリカンのプロジェクトを新規ではじめる場合、ライブラリバージョンとベースバージョンはそれぞれ最新のものを使います。執筆時点ではライブラリバージョンは1.11.0、ベースバージョンは1.11.1です。マイクロアップデートがあった場合は異なりますが、基本的にマイナーバージョンまでは通常同じものになります。

データの取得する場所が異なるので2つのバージョンが存在することになるのですが、これが異なる場合どうなるのか解説します。

ライブラリバージョンがベースバージョンよりも新しい場合

ベースバージョンはビルド設定のランタイムエンジンによって変更できます。

iOSのビルド設定より

もしベースバージョンが1.10、ライブラリバージョンが1.11の場合、どういった問題が起こりえるかというと、最新の機能が使えないというのが挙げられます。ライブラリ側では用意されているメソッドでも、ベースバージョンにAPIが用意されていない可能性があります。そのため最新の機能を使えない可能性があります。その場合、ネイティブの機能を叩いて何も返ってこないという状態になります。

これは既に開発しているプロジェクトにおいてapplican.jsだけを差し替えた場合に起こります。後方互換性は維持されていますので既存機能についてエラーが起こることはありませんが、applican.jsを最新にされた場合はビルド設定のランタイムエンジンも最新のものに変更をお願いします。

ベースバージョンがライブラリバージョンよりも新しい場合

その逆にベースバージョンのが新しい場合です。これは既に稼働しているプロジェクトにおいてビルド設定だけ変更した場合に起こります。applican.jsに新APIを実行するメソッドはありませんので、不具合を起こすことはありませんが、iBeaconへの対応など最新のランタイムエンジンでは機能が増えていますのでapplican.jsの差し替えをお願いします。

なお、applican.jsに直接変更を加えてしまっている場合、差し替えでその変更が失われてしまう可能性があります。applican.jsには手を加えず、別ファイルで修正をお願いします。


ライブラリバージョンとベースバージョンが異なる状態であったとしてもアプリカンは安全に動作します。ただしAPIをコールしても結果が返ってこなかったり、新しいメソッドが見つからないといった問題が出る可能性があります。

最新のアプリカンではiBeaconの対応やiOS 64bit対応など様々な新機能が実装されています。ぜひ最新版にアップデートし、アプリカンの機能をフル活用してください!

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