【Monaca】テンプレートエンジン機能を廃止します
平素より、Monacaをお使いいただき、ありがとうございます。アシアルの大塔でございます。
2013年1月11日(金)に、Monacaのバージョンアップを行います。このリリースの際、テンプレートエンジン機能を廃止させて頂きます。本ブログ記事は、その理由と影響範囲について記載します。
テンプレートエンジンとは?
Monaca開発当初から用意されていた仕組みで、HTML内に独自のタグを記述することで、変数を埋め込んだり別のファイルを読み込める機能となっています。PHPでいうSmarty、PythonでいうJinjaのようなものです。
テンプレートエンジンを搭載したHTML5モバイルプラットフォームはMonaca以外に存在せず、特徴的な機能として使って頂いているユーザー様もいらっしゃるかと思います。しかし、下記の理由でどうしても廃止せざるを得ないという判断を致しました。
廃止する理由
以下の2つの理由により、社内にて議論を重ねた結果、テンプレートエンジンを廃止させていただく形になりました:
1. テンプレートエンジンの存在によって、UIWebViewではwindow.historyの関数群が使えなくなります。その結果、jQueryやjQuery Mobileで「戻る」操作ができなくなり、動作が制限されてしまうこと。
jQuery Mobileのドキュメントにも、loadData(Monacaテンプレートエンジン方式)でなくloadRequestでファイルを読み込むように記述があります。
2. AngularJSなどのMVCライブラリで、同じテンプレートエンジン構文を用いている場合に競合してしまうこと。
今後JavaScriptのテンプレートエンジンが主流になっていくと考えられるなか、JavaやObjective-Cでネイティブ実装されたテンプレートエンジンの代替が既に可能であると考えました。
この理由から、Monacaで「想定通りに」JavaScriptライブラリーが使えるよう、テンプレートエンジンの廃止を行わせていただきます。テンプレートエンジンの構文({%~%}等)を使用されている方は、1月11日のリリースを持ちましてアプリケーションが動作しなくなる可能性があります。お手数おかけして大変心苦しい状況ですが、何卒ご理解いただきますようお願い申し上げます。
なお、本件につきましてご質問等ございましたら、忌憚なくご要望・ご意見頂戴できれば幸いです。こちらの問い合わせフォームよりご連絡いただきますよう、よろしくお願い申し上げます。
皆様に支持される開発プラットフォームとなるべく、今後も尽力してまいりたいと思います。どうぞよろしくお願いいたします。