アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

Cordova勉強会 #4 に参加してきました

Cordova/PhoneGap、Monacaなどを使っている方向けのユーザ会、Cordovaユーザ会 #4が2月13日(金)、日本マイクロソフト セミナールームにて開催されました。レポートを書くまでが勉強会、ということで個人的な感想を含めてレポートを書きたいと思います。





Andre氏



まず最初はAdobe社のAndre Charland氏の発表でした。彼は元々PhoneGapを開発していたNitobi社の創設者で、Adobe社に買収された後は米PhoneGapチームマネージャーを勤めています。つまりPhoneGapのすべてを知っている人と言えます。



CordovaとPhoneGapの違いは度々話題にあがるのですが、こちらの資料が一番分かりやすいと思います。





Cordova/PhoneGap/PhoneGap Enterpriseの違い



CordovaはApache財団に寄贈されたオープンソース・ソフトウェアです。MicrosoftIBMGoogleSalesforceなど多くの企業が開発に参加しています。その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 StoreGoogle Playなど)を通さずに差し替えることもできます。これはA/Bテストなどで活躍する機能になるでしょう。その他、ネイティブアプリの中にCordova/PhoneGapを内包するという仕組みも可能です。これによりハイパフォーマンスが求められる部分はネイティブで、頻繁な変更が求められるところはWebViewで実装と分けることもできます。すべてCordova/PhoneGapまたはゼロという選択肢だけでないのは良さそうです。



Cordova/PhoneGapとネイティブを組み合わせたアプリは数多くあります。Instagram/Evernote/Amazon/Yelpなどでも使われているそうです。また、Basecamp(Ruby on Rails開発元)もかなりの部分がHTML5で実装されているとのことです。



気になる数字が色々と発表されました。





PhoneGapから見る数値



  • PhoneGap CLIのダウンロード回数 15万回
  • PhoneGap Buildのユーザ数 65万ユーザ
  • PhoneGap Buildを使ったアプリ 45万アプリ
  • PhoneGap Developer Appのダウンロード回数 8万回
  • PhoneGap Desktop Appのダウンロード回数 2.3万回
  • CordovaはNPMのダウンロードトップ


最後にPhoneGap Enterpriseについて。こちらは主にマーケティング担当者向けのサービスになるようです。ダッシュボードでステータスを確認したり、その使われ方を可視化しています。さらにアプリのアップデートもPhoneGap Enterpriseを通して簡単にできるようになっています。





PhoneGap Enterpriseの画面



最後に以下のような質問があがっていました。



Q. Adobeに移ったということで、AppleAndroidのWebViewに対する発言力は増したのかどうか



A. Cordovaはオープンソースでアリ、GoogleMicrosoftなどが加わったことで影響は増している。また、AppleAndroidに対する発言力も増しているといえる。



Q. 他のプラットフォーム(Xboxなど)への対応はあるのか



A. PhoneGap自体はモバイル対応がメインで他は今のところない。将来的には分からないが対応を考えたい。






続いてMicosoft社の物江さんによりVisual Studioを使用したCordova開発という発表です。





Visual Studioを使用したCordova開発



Visual StudioではHTML5/JavaScriptでアプリを開発できますが、ストアアプリ、Windows Phone、XBOXHTML5/JavaScriptからネイティブコードに変換される仕組みになっています。そしてCordova開発はVisual Studio Tools for Apache Cordovaというアプリをインストールすると可能になります。こちらはVisual Studio 2015から今後デフォルトで入ってくるそうです。





Visual Studio 2013とHTML5アプリ



現状はエミュレータApache Rippleなのですが、2015からはHyperVベースになるのでより本物に近い形でデバッグできるようになります。Visual Studio Tools for Apache CordovaはVisual Studio 2013 × Windows 8.1(Update 3からはWindows 7も)で動かすようです。





Visual Studio Tools for Apache Cordova



開発できるターゲットはAndroid 2.33または4以上、iOSは6以上が開発対象になります。ただしiOSAndroid 4.4未満ではデバッガーが動きません。Mac OSXを経由してiOS対応もできるようですが、ブレークポイントが使えなかったりするのでAndroid向けと考えるのが良さそうです。



Visual Studio Tools for Apache Cordovaを使う大きな利点として、開発環境を整えるのが簡単であるとのことです。Javaランタイムを含め、Android SDKをインストールしたり、Cordoavaの環境を整えたりするのがVisual Studioのアドインインストールだけで完結します。これは確かに便利そうです。また、HTML5関連の開発支援機能が使えるようになります。





Visual Studio Tools for Apache Cordovaを使うメリット



後は実際に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で使うというセッションです。





CordovaをWindowsで使う



先ほどのVisual Studioで使う場合でも分かりますが、WindowsではiOS向けの開発においてかなり難があると言えます。それをどうにかして解決しようというセッションです。



アプリ開発には以下のようなプロセスがあると言えます。





これらのプロセスに対してWindowsでのAndroid開発は問題なく行えます。対してiOSでは困難です。この各プロセスに対する打開策は次のようになります。



開発/デバッグ



まだ若干難はあるものの、GapDebugを使うとiOSアプリのデバッグを行えるようになります。





GapDebug



ビルド



ビルドは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



WindowsiOS向けのCordovaアプリ開発は茨の道に見えますが、例えばMonacaシミュレータを使えば開発、デバッグ、ビルドまでWindows上だけで完結できます。GapDebugのような手段もありますので、今後Visual Studioの高機能化に期待といったところでしょうか。



Cordova勉強会は今後も行われますので参加しましたらまたレポート記事を書きたいと思います。