現在表示中:

AEM Mobile On-demand Services アプリの作成は、Cordova(または PhoneGap)シェルで直接実行するアプリの作成とは異なります。開発者は、以下の事項に精通している必要があります。

  • 標準でサポートされているプラグイン、および AEM Mobile 固有のプラグイン。

注意:

プラグインについて詳しくは、以下のリソースを参照してください。

  • プラグイン機能を使用するテンプレートは、プラグインのブリッジなしでもブラウザーでオーサリング可能なように記述する必要があります。 

例えば、プラグインの API へのアクセスを試みる前に、deviceready 関数を待機します。

AEM 開発者向けガイドライン

以下のガイドラインは、サイト開発を担当する経験豊富な AEM 開発者がモバイルアプリテンプレートやコンポーネントを作成する際に役立ちます。

再利用性と拡張性を向上させるために AEM サイトテンプレートを構造化する

  • 単一の大きなコンポーネントスクリプトファイルよりも、複数のコンポーネントスクリプトファイルの方が望ましい
    • customheaderlibs.html や customfooterlibs.html など、空の拡張ポイントが多数用意されているので、これらの拡張ポイントを使用してページテンプレートを変更でき、中核となるコードの複製を最小限にできます。
    • 作成したテンプレートは Sling の sling:resourceSuperType メカニズムを使用して拡張、カスタマイズできます。
  • 使用するテンプレート言語は、JSP よりも Sightly/HTL の方が望ましい
    • Sightly/HTL を使用すると、コードをマークアップから分離でき、XSS 保護を組み込めます。また、使い慣れた構文を利用することができます。

デバイス上でのパフォーマンスを最適化する

  • 記事固有のスクリプトおよびスタイルシートは、dps-article コンテンツ同期テンプレートを使用して、記事のペイロードに組み込む必要があります。
  • 複数の記事で共有されるスクリプトおよびスタイルシートは、dps-HTMLResources コンテンツ同期テンプレートを使用して、共有リソースに組み込む必要があります。
  • レンダリングを妨げる外部スクリプトを参照してはなりません。

注意:

レンダリングを妨げる外部スクリプトについて詳しくは、こちらを参照してください。

Web 向けの汎用的な JS および CSS ライブラリよりも、アプリ固有のクライアント側 JS および CSS ライブラリの方が望ましい

  • jQuery Mobile などのライブラリで多数のデバイスやブラウザーを処理する際のオーバーヘッドを回避するためです。
  • テンプレートがアプリの Web ビュー内で実行されるときに、そのアプリがサポートするプラットフォームとバージョンを自身で管理でき、JavaScript がサポートされることをあらかじめ把握できます。例えば、jQuery Mobile よりも Ionic(CSS のみなど)、Bootstrap よりも Onsen UI の方が望ましいといえます。

注意:

jQuery Mobile について詳しくは、こちらを参照してください。

フルスタックライブラリよりもマイクロライブラリの方が望ましい

  • 記事が依存するライブラリが増えるほど、デバイスの画面上にコンテンツが表示されるまでの時間が長くなります。記事ごとに新しい Web ビューを使用してレンダリングすると、毎回ライブラリが初期化されてしまうので、さらに時間が長くなります。
  • 記事が SPA(シングルページアプリ)として作成されていない場合は、Angular などのフルスタックライブラリを組み込む必要がない可能性があります。
  • ページに必要なインタラクティブ機能を追加するには、FastclickVelocity.js などの、より小規模で特定の目的に特化したライブラリを使用することが望ましいといえます。

記事のペイロードのサイズを最小限に抑える

  • サポートする最大の表示域に適切な解像度で効率的に表示ができる、可能な限り小さいアセットを使用します。
  • ImageOptim などのツールを画像に使用して、余分なメタデータを削除します。

さらに先のステップ

他の 2 つの役割および責任について詳しくは、以下のリソースを参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー