SDKがあり、mBaaSとしても充実しています。この記事は、APEXやVisualForcePageなど、Force.comがプラットフォームとして用意しているアプリケーション開発環境のコアなところを活かしつつ実用的なモバイルアプリケーションを素早く作成する手法として、iOS向けハイブリッドアプリケーションの開発について調べたことをまとめました。Cordovaのプラグインとして提供されています。そのため、開発にはCordovaの基本的な知識が必要となります。iOS版」を参照ください。Cordovaは通常、アプリ内にhtmlやjsなどのアセットを含めてビルドしますが、ハイブリッドリモートという構成をとると、VisualForcePageなど従来からのサーバーサイドレンダリングの仕組みを活用することができます。そこで、この記事では、iOS向けハイブリッド、かつハイブリッドリモートという構成のアプリケーションを作成するための手順について説明していきます。Hybrid」が参考になります(対応する日本語記事も会ったような気がしたが見つからない)。こちらも併せて参照ください。Cordovaの実行環境と基礎的な知識アプリを実機にインストールするためのXCodeとその操作に関する知識この記事では、これらの内容については、扱いません。接続アプリケーションの作成モバイルアプリケーションの認証はOAuthを利用しますので、接続アプリケーションを作成してOAuthの設定を追加します。開いて、[接続アプリケーション]の[新規]ボタンをクリックします。[新規接続アプリケーション]画面で以下を入力して[保存]します。]と表示される画面で[次へ]をクリックすると作成された接続アプリケーションの詳細を確認できます。[コンシューマ鍵]と[コールバックURL]は次のプロジェクトの作成のパラメータとして使います。SDKはnpmパッケージとして公開されているので、以下のコマンドでインストールできます。createコマンドを実行します。必要なパラメータを、対話形式で入力していきます。以下、コマンドの実行例です。www/bootconfig.jsonディレクトリMobileForceAppにCordovaプロジェクトが生成されます。SDK独自の設定ファイルbootconfig.jsonに書きだされます。このファイルは必要に応じで編集します。開発者コンソールを開きindexという名前のVisualForcePageを作成しますプロジェクトディレクトリに移動して、プラットフォームiOSを追加してエミュレータでアプリを起動してみます。emulateシュミレーターが起動され、作成したアプリケーションが表示されます。OAuthログインするとVisualForcePageが表示されることを確認できます画像の通りステータスバーと表示が重なってしまっていますので、こちらはcordovaプラグインstatusbarを利用して修正します。Cordovaプラグインの利用ステータスバーなど、iOSネイティブの機能はCordovaのプラグインを利用して制御することができます。apache/cordova-plugin-statusbar)を利用して、アプリケーションを修正してみます。プラグインを以下のコマンドでインストールします。org.apache.cordova.statusbarプラグインをインストールしたら、Cordovaの設定ファイルconfig.xmlにステータスバー用のプロパティを追加します。/></widget>エミュレータを起動し直します。emulateステータスバーとコンテンツが重ならないようになりました。ハイブリッドアプリケーションでのステータスバーの制御iPhone実機へのインストールplatformes/iosディレクトリに、iOS用のXCodeプロジェクトが生成されています。プロジェクトをXCodeで開いて、iPhoneにインストールします。platforms/ios/ForceMobileApp.xcodeproj/開発機のiPhoneを選択してアプリケーションを実行すると以下のようにエラーになります。Bitcode]をNoに変更します。再度実行すると正常にiPhoneアプリケーションがインストールされ実行されました。PageからのCordovaライブラリへのアクセスアプリに表示するコンテンツは、サーバーサイドのVisualForcePageを呼び出し取得しますが、Cordovaのコア機能やプラグインのJavascriptやネイティブコードはアプリ側にパッケージされます。VisualForcePageで、Cordovaやプラグインの機能へアクセスするには、ハイブリッドリモートアプリケーションの開発で説明されているようにlocalhostで必要なjsファイルを指定したscriptタグを追加する必要があります。この仕組みは、カメラやPush通知などデバイスにアクセスする機能を実装する場合に必要になります。CordovaPush通知の実装Force.comは、Push通知機能が標準で用意されています(結構発見した時は驚きました)。Push通知の設定は、接続アプリケーションに用意されていて、iOSであればAPNsの証明書をアップロードするだけでPush通知が利用可能になります。[アプリケーション]を開き、作成した接続アプリケーションの横の[編集]をクリックして編集画面を開きます。以下の変更を加えて[保存]します。以上で、Force側はPush通知を送る準備が整います。次にアプリ側でPush通知を登録するコードを追加しますアプリケーションのコードは、www/index.jsを追加して記述しました。SDKを利用したハイブリッドアプリの作成の基本とおまけでPush通知について解説してきましたが、いくつか気になった点がありました。SDKが提供しているプラグインのコードの初期化に時間がかかっている様子。Pageがよく表示されてしまう。SDKに含まれるCordovaのバグの影響。実際に、運用上レスポンスが要求されるような業務は、ちゃんと作成した方がよいですが、プロトタイピングとトライアルを重ねて業務をブラッシュアップするような開発には、この構成は検討の価値がありそうです。