2015年1月20日火曜日

マルチプラットフォームアプリ開発ツール14+2比較



マルチプラットフォームアプリ


という言葉を分解すると、WindowsOS(mobile含む)、iOS、Androidの3種類のマルチプラットフォーム(プラットフォームとはデバイスそのものハードウェア及びその上で動作するOSを含む)で動作する「アプリケーション」という意味合いである。

この言葉が必要になった背景は、やはりiPhoneやAndroidを中心としたスマートフォン、タブレット向けアプリケーションを開発する為に、それぞれことなった言語や開発ツールで設計開発する「多大なる手間と費用」これらを如何に抑えてユーザーに利用してもらうかどうか、ということが本当に急務であり壮大な、世界的な課題となっているからだと思う。

iPhoneを全社導入した ⇒ アプリはXcodeでObjective-Cで・・・
BYOD採用開始した ⇒ Androidにも対応するアプリの開発が必要、EclipseでJavaで・・・
そういえば、これらのアプリってパソコンでも使いたいよね ⇒ Windows PCで動くexeアプリで・・・

と、大きく考えて3通りの言語とそれぞれに対応する開発ツールが必要となる
そんなリソースどこにあるかい!新しく作れるかい!ってのが正当な話である。

じゃあ、どうするのか。

これら3つに対応する「開発ツール:IDE」ってないの?となる。当然ある。ここであるリサーチャーのレポートを確認すると以下が代表選手らしいのだが。
  1. Adobe Air
  2. Corona SDK
  3. Cocos 2D
  4. jQuery Mobile
  5. KonyOne
  6. Marmalade
  7. PhoneGap
  8. Unity
  9. Qt
  10. Sencha Touch
  11. Titanium
  12. V-Play
  13. Windows Visual Studio
  14. Xamarin
  15. SAP Web IDE*
  16. IBM Worklight*
上記の中で、エンタープライズ業界でよく出てくるのが
  • jQuery Mobile(オープンソース)
  • KonyOne(Kony社)
  • PhoneGap(Adobe社:オープンソース版だとCordova)
  • Sencha Touch(オープンソース)
  • Titanium(Appcelerator社)
  • Xamarin(Xamarin社)
であるが、この「オープンソース」のツールはエンタープライズモバイルの上では採用しづらい背景画ある、それはサポート、保証が無いという点。ここが議論の一つ。

そして社名が記入されているものは、逆にサポート、保証が有るという点ではエンタープライズモバイル業界では安心面で優位となるかもしれない。

SAPのUI5もオープンソースではあるが、IDEは「SAP Web IDE」という開発ツールが存在する(予定)。これは有償であり(月額6,000円/Userくらい)、もちろんサポートもあるもの。IBMのWorklightが無いことも気にはなるのだが、SAPと同様*として一応記載をしておく。

で?何を選択する必要があるのか?すべきなのか? ・・・ わからん!ということで調べてみることにした。ちなみに本資料ではAwarenessとして以下表がP14にある、Worklightの名前はあるがSAP Web IDEの名前は無かった(比較しづらいのかもしれない。MEAP市場ではSAP Mobile Platformが50%弱シェアの有名人なのに、おそらくWindows Appには対応していないからか、でもそれならWorklightも、他のいくつかもそうだけどね。やはりよくわからん、誰か教えて欲しい)。



ちなみに、CPT(Cross Platform Tools)を選定するときの優先順位は以下だそうだ。突出しているのは「どれだけマルチプラットフォームに対応するアウトプットができるのか」であり、次点として、コスト、メンテナンスの容易性ときている。



やはり、将来どれだけのマルチプラットフォームになるか予測できない2020年くらいまで、柔軟性をもっている、将来性があるCPTが求められていることが容易に想像できる。次に以下、それぞれのツールが対応するアウトプット形式の一覧、これ便利ね。


上記から「Native App」「Web App」「Hybrid App」「Mobile Web App」の4つ全てに対応するCPTは
  • Feedhenry
  • GeneXus
  • IBM Worklight
  • Magic XPA
の4ベンダーのみとなった。これの何が意味するだろうか。まだ、ちょっと整理できていないので、ごめん後にするよ。Magic XPAはIDE Enterpriseのユーザー数で圧倒していたので、気になる。GeneXusは最近SAPのBAPIサポートがされたということで、SAPユーザーに温かいかも。Feedhenryは?まだわからんね。

では如何にもう一つ。


具体的にどんなプラットフォーム(デバイスとOS)に対応するアプリケーションを開発できるIDEなのか、という表であるが、結論を一ついうとすべてに対応するCPTは無いということがわかる。ある程度、元々の出身もあると思うが、デスクトップアプリよりだったり、モバイルアプリよりだったり、WEBアプリよりだったりすることが原因と想像する。(しかしSymbian:ノキアとかなつかしーなーw。Firefox OSとか対応する必要あんのかKDDIさん、って考えもするしね。Badaはサムスン、Sailfishは2013年のMobile World Congres:MWCで発表があった新しいOS:フィンランドのJolla(ヨラ)、UbuntuはオープンソースOSだ。Tizenは消えかかったけど・・・日本ではドコモが開発するとか)

おっとスゴイこの資料、それぞれのツール料金がある。


と、ここで更に視野を広げる必要がある。ビジネスを行う上でアプリケーションを開発するためには、その市場は「企業内の業務」だけではなく、「消費者が便利に使う」アプリも存在するし、どちらかというと後者が先に進んでいる気がする。しかし、従来の「エンターテインメント企業が提供するコンシューマー向けアプリ」だけでは、今後の社会は語れない。パズドラもモンスターストライクも、当然iOSとAndroidに対応したモバイルアプリがメインではあるが、今後もしかしたら、TVの大画面で遊ぶかもしれない、車の中で遊ぶかもしれない、グラスやウオッチのようなウェアラブルな特殊端末上で遊ぶかもしれない(少なくともこれらと連携はするよね)。

そうなると、プラットフォームの数はさらに増大、増大・・・


具体的には
  • スマートTV:そういえばSONYがGoogle TVを出すとかなんとか2015CESでね
  • ゲーム機:Xboxやプレステのような専門機器でも
  • カーデバイス:カーナビはナビだけやってんじゃねーよって
と、まー少なくともこんな感じ。加えていうと、IoTの世界実現によってさらにプラットフォームは増えるかもしれないよね、てか想像も困難・・・、正直これを書いている自分も困惑状態w

しかし上記で考えると全てのプラットフォームに対応するCPTベンダーが唯一

Unity


で、かろうじてFeature Phoneにだけ対応しない

Qt(キュート:かわいいね)


が目立つよね。まー、ゲームコンソールに対応するのはとても特殊だし、今後はさらにユーザーが限定的なので(ハードウェアに依存するゲームは厳しいと思うから)、Game Consoleを除けば
  • Qt
  • Unity
  • Xamarin*
  • AnyPresence*
の4つに絞られた。*表示は残念ながらFeature phone未対応ということだが一応ね。

さて、次に必要な言語(というかこれらのCPTツールで開発するための言語)は何か。こちら。


Non Programmingという一番左の枠もあるが、本当の意味でこれだけで採用が左右されるかというとそんな簡単なものではないと考える。今後IoTやConnected Carの広がりと標準化を考えるとおそらく、高度なプログラミングが必要なのは必至かと思う。そういう意味では、従来からあるCベースの言語となるか、逆にGeneXusやMagic XPAのように独自のProprietaryソフトウェアという選択肢となるように感じる。

市場(お客様)の要望と期待は、実はWindowsアプリにあるようだ。てかやはりWindowsだよね。なぜなら、普段一番目の前で利用しているアプリケーションのほとんどがWindow PC上で動作している、Windows7や8OSアプリなのだから。それをスマートデバイス(iPhoneやAndroid)、今後はウェアラブル端末も、そして未来には車の中でも、家の中でも、どうように便利なアプリケーションを使いたい。そのベースとなるものはWindowsだ、と考えていることは自然に理解できる。


まとめにはいるよ。

Windows、つまりマイクロソフトが目指すべき、世界中の70億人に対して提供すべきプラットフォームの方向性が少し見えてきたような気がする(MSに興味が高まった瞬間!)。さらにそれらのアプリケーションを開発するツールとして(CPT)、何がBESTっぽいのか、わかってきた気がする、それは、Magic XPAかQt、もしくはUnityだろうと(理由はIoT時代への対応)。


と思ったのだが、本資料が言う「CPTベンダのリーダーは・・・・」、Qtとなっていた。あれ、Magic XPAは出ても来ないのだが、、、次点でCoronaとかUnityが登場。以外にもここでXamarinが出てくる意味が僕には理解が出来ないが、Qtは突出しているが他は全て五十歩百歩だね。

以上、ということで以下16製品の比較をしようかと思ったが、これからそれぞれの特徴を書くと膨大過ぎるのでやめて、あとでQt(キュート)CoronaUnityについて調べて紹介できればいいかなと考えている。

①Adobe Air
②Corona SDK
③Cocos 2D
④jQuery Mobile
⑤KonyOne
⑥Marmalade
⑦PhoneGap
⑧Unity
⑨Qt
⑩Sencha Touch
⑪Titanium
⑫V-Play
⑬Windows Visual Studio
⑭Xamarin
⑮SAP Web IDE*
⑯IBM Worklight*

ではでは、これにて閉幕。