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

とあるStartupに勤めるエンジニアの技術ブログ

Salesforce、テスト関係の技術ブログなどを書く予定

今更ながらMobile Packsを読む

Force.com HTML5 JavaScript

随分前にリリースされたMobile Packsを今更ながら眺めてみました。

Salesforce Platform Mobile Services > Mobile Packs
http://www2.developerforce.com/mobile/services/mobile-packs

Mobile Packsとは、jQueryMobile、AngularJS、Backbone.jsの3種類のPackがあり、それぞれのライブラリでモバイル向けの画面を作る際に作りやすいようにサンプルコードがまとめられたものです。とはいえ、UI周りについてはどのPackもjQueryMobileだったりします。そういう意味では、「Mobile Pack for jQueryMobile」は「Mobile Pack for jQuery」のほうが名称として正しいかもしれません。


まず、気がつくのは、Salesforce Platformは最近のバージョンアップでHTML5が扱いやすくなったことです(邪魔しないオプションを追加した、というのが正確ですが)。下記のようにすることでバリデーションが緩くなるので、HTML5で拡張された属性を追加してもエラーにならないようになります。

<apex:page docType="html-5.0" showHeader="false" sidebar="false" standardStylesheets="false" cache="true">

・・・

</apex:page>


もうひとつ気になる点といえば、Metaタグです。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Salesforce Mobile Developer Week Meetup Tokyoの岡本さんの発表で連呼されたResponsive Designに対応するためのものです。Mobile Packのサンプルコードではディスプレイサイズに応じてデザインを切り替えるものはありませんでしたが、色々と想いを馳せてしまう1行でした。


Mobile Pack for jQueryMobileは、Visualforceページのソースコードで154行で実装しています。API側はstandardControllerに任せていますが、それだけの実装で一覧表示・追加・更新・削除ができるモバイルアプリが作成できるのは非常に生産性が高いです。しかも、別途開発環境を準備したり、Objective-Cを習得する必要がなかったりするところは大きなメリットになります。


2013/7/1修正
ソースコードを読んでいて違和感を感じたのは、REST API呼び出ししているところ。JavaScriptのサンプルコードなので全然OKなのですが、REST APIAPI消費してしまいます。できるならばJavaScript Remotingを利用したソースコードのほうが望ましいように思いました。

ソースコードを読んでいて、これは?と感じたのは、REST API呼び出ししているところ。Salesforce.com社としてはモバイルファーストを標榜しながらも、サードパーティとしてはREST API呼び出し回数制限があるため、モバイルアプリに舵を切りにくいところがあります。本家のサンプルコードがREST API呼び出しになっていることを考えるとAPI Quotaの緩和も近いのかもしれません(この点はぜひ緩和してもらいたいですね!)。



最後になりますが、業務アプリのモバイル対応はどうなっていくか少し考えてみました。基本的には標準UIが提供されてある程度まではプラットフォームが吸収してくれるようになるでしょう。
その先のカスタマイズの部分でHTML5なのか、ネイティブアプリなのか、ハイブリッドなのか?

個人的には業務アプリの定型的な機能はサービス化してネイティブアプリが提供され、残りの部分はHTML5に収束していくのではないかと考えています。そうなると、Visualforceページで利用するライブラリが今後どうなるか期待されるところですが、「Salesforce Touch Platform モバイル開発ガイド」で紹介されている「Mobile Components for Visualforce」は公式なものですが、正式なものではありません。

Oracle社と提携を発表したりとネタに事欠かないSalesforce.com社ですが、モバイル開発についても今後の動向が気になるところです。


ということで、業務系エンジニアとしてはHTML5+JavaScriptを勉強しておいて損はないかと思い、Mobile Packsを試してみました。


Happy Birthday to My Blog, and me.