ベストプラクティス best-practices
IMPORTANT
AEM 6.5 の新規インストールでは、AEM Mobile アプリケーション機能はサポートされていません。 AEM でヘッドレスコンテンツの管理に推奨されるエディターは次のようになりました。
- ヘッドレスコンテンツを視覚的に編集するユニバーサルエディター。
- ヘッドレスコンテンツをフォームベースで編集するコンテンツフラグメントエディター。
AEM Mobile On-demand Services アプリの構築は、Cordova (またはPhoneGap)シェルで直接実行されるアプリの構築とは異なります。 開発者は、次のことについて把握している必要があります。
- すぐに使えるプラグインと、Adobe Experience Manager(AEM)モバイル固有のプラグインを提供しています。
-
プラグイン機能を使用するテンプレートは、プラグインブリッジが存在しない場合でもブラウザーでオーサリング可能な方法で記述する必要があります。
- 例えば、プラグインのAPIにアクセスする前に、deviceready関数を待つようにしてください。
AEM開発者向けガイドライン guidelines-for-aem-developers
次のガイドラインは、モバイルアプリテンプレートとコンポーネントを構築するサイトを対象とした、AEMの適切な開発者に役立ちます。
再利用と拡張性を促進するためにAEM Sites テンプレートを構成する
-
単一のモノリシック形式よりも複数のコンポーネントスクリプトファイルを優先する
- customheaderlibs.htmlや customfooterlibs.html など、空の拡張ポイントがいくつか用意されています。これにより、開発者はコアコードをできるだけ複製せずにページテンプレートを変更できます
- テンプレートは、Slingのsling:resourceSuperType メカニズムを使用して拡張およびカスタマイズできます
-
テンプレート言語として、JSPよりもSightly/HTLを優先する
- これを使用すると、マークアップからのコードの分離が促進され、組み込みのXSS保護が提供され、より使い慣れた構文を使用できます
オンデバイスパフォーマンスの最適化
- アーティクル固有のスクリプトとスタイルシートは、dps-article contentsync テンプレートを使用して、アーティクルペイロードに含める必要があります
- 複数の記事で共有されているスクリプトとスタイルシートは、dps-HTMLResources contentsync テンプレートを使用して、共有リソースに含める必要があります
- レンダリングブロッキングされている外部スクリプトは参照しないでください
NOTE
レンダーブロック外部スクリプト について詳しくは、こちらを参照してください。
web固有のJSおよびCSS ライブラリよりも、アプリ固有のクライアントサイド JSおよびCSS ライブラリを優先
- jQuery Mobileのようなライブラリで膨大なデバイスやブラウザーを処理するオーバーヘッドを避ける
- テンプレートがアプリのweb ビューで実行されている場合、アプリがサポートするプラットフォームとバージョン、およびJavaScript サポートが存在するという情報を制御できます。 たとえば、jQuery MobileよりもIonic (CSSのみ)を、BootstrapよりもOnsen UIを好みます。
NOTE
jQuery mobileについて詳しくは、こちらをクリックしてください。
フルスタックよりもマイクロライブラリを優先
- コンテンツをデバイスのガラスに取り込むのに要する時間は、記事が依存するすべてのライブラリによって遅くなります。 この遅さは、新しいweb ビューを使用してすべての記事をレンダリングする場合に悪化するため、各ライブラリをゼロから再初期化する必要があります
- 記事がSPA (シングルページアプリ)として構築されていない場合は、Angularのようなフルスタックライブラリを含める必要はないでしょう
- ページに必要なインタラクティブ機能(FastclickやVelocity.jsなど)の追加に役立つ、小さな単一目的のライブラリを好みます
記事ペイロードのサイズを最小化
- サポートする最大のビューポートを効果的にカバーできる最小のアセットを、合理的な解像度で使用します
- 画像に ImageOptim のようなツールを使用して、余分なメタデータを削除できるようにします
experience-manager-65-help-mobile