Cordova/PhoneGap、Monacaなどを使っている方向けのユーザ会、Cordovaユーザ会 #4が2月13日(金)、日本マイクロソフト セミナールームにて開催されました。レポートを書くまでが勉強会、ということで個人的な感想を含めてレポートを書きたいと思います。
まず最初はAdobe社のAndre Charland氏の発表でした。彼は元々PhoneGapを開発していたNitobi社の創設者で、Adobe社に買収された後は米PhoneGapチームマネージャーを勤めています。つまりPhoneGapのすべてを知っている人と言えます。
CordovaとPhoneGapの違いは度々話題にあがるのですが、こちらの資料が一番分かりやすいと思います。
CordovaはApache財団に寄贈されたオープンソース・ソフトウェアです。MicrosoftやIBM、Google、Salesforceなど多くの企業が開発に参加しています。そのCordovaに対してAdobe社が便利なツールを追加したのがPhoneGapになります。ここまでは無料で使える範囲になります。
そしてAdobe社のビジネスモデルとしてPhoneGapに解析機能であったり、コンテンツ管理機能を追加したのがPhoneGap Enterpriseであり、こちらは有償のサービスになっています。
無料のPhoneGapツールについては主な機能は以下の通りになります。
- Build
- CLI
- Desktop App
- Develper App
PhoneGap Buildはクラウド上でPhoneGapアプリをビルドできるサービスとして知られています。
Cordovaで最も気にされるのがパフォーマンスだと思うのですが、最新のOS(iOS8、Android 5.0)では十分にパフォーマンスが上がってきているとのこと。この辺りは実際に開発されている方にしても納得できるかと思います。
そしてそもそもなぜPhoneGapを選択するのかという話なのですが、一番大きいのはシングルコードでマルチプラットフォームに提供できるのが大きいとのことです。iOS/Android/Windows Phoneなど多くのプラットフォームに対して単一のコードでアプリを提供できます。さらにHTML5/JavaScript/CSSで構築されていますのでWebサイトにも使えます。
パフォーマンスについては前述の通り、OSやハードウェアが高性能化しているのに加えてUIフレームワーク(Onsen UIやIonicなど)を使うことで高パフォーマンスなUIを実現できるようになっています。
Webアプリとの違いで言えばデバイスのAPIにアクセスできる点が大きいでしょう。HTML5でも幾つかのAPIが使えますが、プッシュ通知やBluetooth、バックグラウンド処理などはネイティブアプリならではです。
また、あまり知られていませんがコンテンツをアプリストア(App StoreやGoogle Playなど)を通さずに差し替えることもできます。これはA/Bテストなどで活躍する機能になるでしょう。その他、ネイティブアプリの中にCordova/PhoneGapを内包するという仕組みも可能です。これによりハイパフォーマンスが求められる部分はネイティブで、頻繁な変更が求められるところはWebViewで実装と分けることもできます。すべてCordova/PhoneGapまたはゼロという選択肢だけでないのは良さそうです。
Cordova/PhoneGapとネイティブを組み合わせたアプリは数多くあります。Instagram/Evernote/Amazon/Yelpなどでも使われているそうです。また、Basecamp(Ruby on Rails開発元)もかなりの部分がHTML5で実装されているとのことです。
気になる数字が色々と発表されました。
- PhoneGap CLIのダウンロード回数 15万回
- PhoneGap Buildのユーザ数 65万ユーザ
- PhoneGap Buildを使ったアプリ 45万アプリ
- PhoneGap Developer Appのダウンロード回数 8万回
- PhoneGap Desktop Appのダウンロード回数 2.3万回
- CordovaはNPMのダウンロードトップ
最後にPhoneGap Enterpriseについて。こちらは主にマーケティング担当者向けのサービスになるようです。ダッシュボードでステータスを確認したり、その使われ方を可視化しています。さらにアプリのアップデートもPhoneGap Enterpriseを通して簡単にできるようになっています。
最後に以下のような質問があがっていました。
Q. Adobeに移ったということで、AppleやAndroidのWebViewに対する発言力は増したのかどうか
A. Cordovaはオープンソースでアリ、GoogleやMicrosoftなどが加わったことで影響は増している。また、AppleやAndroidに対する発言力も増しているといえる。
Q. 他のプラットフォーム(Xboxなど)への対応はあるのか
A. PhoneGap自体はモバイル対応がメインで他は今のところない。将来的には分からないが対応を考えたい。
続いてMicosoft社の物江さんによりVisual Studioを使用したCordova開発という発表です。
Visual StudioではHTML5/JavaScriptでアプリを開発できますが、ストアアプリ、Windows Phone、XBOXはHTML5/JavaScriptからネイティブコードに変換される仕組みになっています。そしてCordova開発はVisual Studio Tools for Apache Cordovaというアプリをインストールすると可能になります。こちらはVisual Studio 2015から今後デフォルトで入ってくるそうです。
現状はエミュレータはApache Rippleなのですが、2015からはHyperVベースになるのでより本物に近い形でデバッグできるようになります。Visual Studio Tools for Apache CordovaはVisual Studio 2013 × Windows 8.1(Update 3からはWindows 7も)で動かすようです。
開発できるターゲットはAndroid 2.33または4以上、iOSは6以上が開発対象になります。ただしiOSやAndroid 4.4未満ではデバッガーが動きません。Mac OSXを経由してiOS対応もできるようですが、ブレークポイントが使えなかったりするのでAndroid向けと考えるのが良さそうです。
Visual Studio Tools for Apache Cordovaを使う大きな利点として、開発環境を整えるのが簡単であるとのことです。Javaランタイムを含め、Android SDKをインストールしたり、Cordoavaの環境を整えたりするのがVisual Studioのアドインインストールだけで完結します。これは確かに便利そうです。また、HTML5関連の開発支援機能が使えるようになります。
後は実際にVisual Studioを使って、どうやって開発を行っていくのかをデモされました。強力な入力補完機能であったり、省略した入力からHTMLタグを展開したりと記述量を抑えた開発ができるようになります。CordoavaプラグインのインストールもVisual Studioから選択して行えるようになっています。
最後に以下のような質問があがっていました。
Q. Cordovaのプラグイン開発はできますか?
A. Androidはできます。iOS向けはできません。
Q. ExpressでCordova開発はできますか?
A. プラグインのインストールができないのでCommunity Editionを使ってください。
Q. Visual Studio以外の環境に移せますか?
A. ファイル構成は同じなのでフォルダを移動するだけでいけます。
Q. TypeScriptで使えますか?またはTypeScriptの方が効率的ということはありますか?
A. 使えます。実際のところ好みではないでしょうか。
Q. Cordovaのバージョンアップした場合の対応
A. 現状は入れ直しになります。将来的にはアップデートに対応予定。
最後に当社代表取締役の田中によるCordovaをWindowsで使うというセッションです。
先ほどのVisual Studioで使う場合でも分かりますが、WindowsではiOS向けの開発においてかなり難があると言えます。それをどうにかして解決しようというセッションです。
アプリ開発には以下のようなプロセスがあると言えます。
- 開発/デバッグ
- ビルド
- 実機転送
- リリース
これらのプロセスに対してWindowsでのAndroid開発は問題なく行えます。対してiOSでは困難です。この各プロセスに対する打開策は次のようになります。
開発/デバッグ
まだ若干難はあるものの、GapDebugを使うとiOSアプリのデバッグを行えるようになります。
ビルド
ビルドはMac OSX + Xcodeが必須とのことで残念です。
代替手段としてはPhoneGap BuildやMonacaを使うといった手段があります。
リリース
リリースもまたMac OSX + Xcodeが必須とのことで残念です。
代替手段として代行サービスがあるのですが、iTunes Connectのメールアドレス/パスワードを教える必要があります。セキュリティ上のリスクが大きいと言わざるを得ない状態です。
まとめとしてはiOSアプリの開発はWindowsだと色々と大変なことがつきまとうようです。ただしApp Storeへの申請を除けば、基本的にMacと同じことはできるようになっています。
最後に以下のような質問があがっていました。
Q. Windows + Androidで動けばiOSでも大丈夫?
A. 動くはずですが、社内的には色々愚痴を聞きます。
当日の様子は以下の動画で確認できます。
第4回Apache Cordova勉強会 - YouTube
WindowsでiOS向けのCordovaアプリ開発は茨の道に見えますが、例えばMonacaシミュレータを使えば開発、デバッグ、ビルドまでWindows上だけで完結できます。GapDebugのような手段もありますので、今後Visual Studioの高機能化に期待といったところでしょうか。
Cordova勉強会は今後も行われますので参加しましたらまたレポート記事を書きたいと思います。