SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

キーパーソンインタビュー

業務アプリのモバイル対応、どう進める?
―モバイルアプリ開発ツールベンダー座談会(前編)


それぞれの開発スタイル、メリット/デメリットは?

 CodeZine:ありがとうございます。今のお話しの中で、「Webアプリ」「ネイティブアプリ」「ハイブリッドアプリ」といった言葉が出てきたのですが、各社さんのツールでどのような形態のアプリを、どのようなスタイルで作れるのかについて、もう少し整理してみたいと思います。また、その際のメリットやデメリットについても、触れていただければ幸いです。

 アドビ:アドビの場合は「PhoneGap」が大きな役割を担っていますね。これは、HTMLとCSSベースで開発されたWebアプリをラッピングし、ネイティブ化、ハイブリッド化できるテクノロジーです。PhoneGapは基本的にオープンソースのプロダクトですが、Adobe Creative Cloudの有料メンバーシップを持っていれば、「PhoneGap Build」と呼ばれるサービスを使って、各プラットフォーム向けのパッケージングまでをクラウド上で行えるようになっています。PhoneGapを利用すると、マイナーなものも含めて、ほとんどすべてのプラットフォームに対応できます。

アドビシステムズ アンディ・ホール氏
アドビシステムズ アンディ・ホール氏

 PhoneGapのメリットは、「ハイブリッドアプリ」が持っているメリットと同じですね。各デバイスが持っている特有の機能にアクセスできる。開発デザインを外注しやすいといった点でしょうか。ハイブリッドアプリの課題となっているパフォーマンス面も、徐々に改善が進められ、十分使えるものになってきています。

 SCSK:Curlの場合、アーキテクチャは「ハイブリッド」アプリに近いですかね。開発はオブジェクト指向の独自言語である「Curl言語」から、HTMLやCSSにトランスレートした上で、パッケージングして、1つのアプリケーションにする流れになります。

SCSK 岡田一志氏
SCSK 岡田一志氏

 Curlのトランスレーターでハイブリッドアプリを作る場合のメリットとデメリットですが、まずデメリットとしては、他のハイブリッドアプリやWebアプリと同様、WebViewやWebKitといったコンポーネントの機能に依存する点です。一方のメリットとしては、Curlのコンポーネントとトランスレータで、パフォーマンスが良好になるよう、かなりのチューニングを行っている点でしょう。普通の開発者がHTMLを手で書くより、より高いパフォーマンスを得られます。

 独自のCurl言語を覚えなければいけない点は、デメリットと言われてしまうかもしれませんが、一方で、Curlで書けば、プラットフォームごとのブラウザの方言をトランスレータで吸収でき、本当のクロスプラットフォームを実現できます。学習コストも決して高くなく、Javaが分かる方には、スムーズに理解していただけるのではないかと思っていますし、JavaScriptを大規模開発やエンタープライズ・システムで利用する場合に問題視されることの多い型指定や名前空間の問題も解決できます。

 エンバカデロ:エンバカデロのツールで作るモバイルアプリは「ネイティブ」になります。なので、パフォーマンスは高いですね。先ほども述べましたが、ドラッグ&ドロップでネイティブアプリの開発が可能な点がメリットです。デバイスの機能に対しても、コンポーネントが各デバイスの機能をネイティブに呼び出して利用できるようにしています。デバイスの「共通項」的な部分だけでなく、デバイスの特定の機能を使えるわけです。しかも、OSレベルのAPIも直接コールできますから、固有の機能を実装することもできます。「簡単なことは簡単にできて、必要ならば難しいこともできる」というのがポイントです。

エンバカデロ・テクノロジーズ 藤井等氏
エンバカデロ・テクノロジーズ 藤井等氏

 エンバカデロのツールを使うメリットとして、従来クライアント/サーバ開発をやっていた人が、モバイル開発に移っても、これまでのスキルをそのまま活かせる点があると思います。一方のデメリットとしては、ツールとして「純正」のものに対するキャッチアップに、ある程度の時間が必要になる点があります。開発チームも努力はしていますが、完全に同じタイミングで、新たなデバイスやプラットフォームを100%サポートするのは難しく、ツール側での対応に若干のタイムラグが出てしまいます。とはいえ、例えばiOS 7リリース時には、即日アップデートを提供しています。そのあたりを考慮していただければ、非常に良いツールだと思います。

 キヤノンITS:「Sencha」の基本はWebアプリになりますが、ネイティブ・パッケージングもできますので、「Webアプリ」と「ハイブリッド」に対応する形になります。デバイスが持つ機能への対応はSencha自身のネイティブAPIまたはPhoneGapを通じて行えますね。

キヤノンITソリューションズ 髙本勉氏
キヤノンITソリューションズ 髙本勉氏

 先ほど、SCSKさんのお話にもありましたが、一般的にHTML5でアプリを作ろうとすると、パフォーマンス面でのチューニングに手間がかかります。これについて、Senchaでは、さまざまなコンポーネントに対して、チューニングを施しています。ユーザーは、難しいことを考えず、コンポーネントを使うだけで、高いパフォーマンスを得られます。

 また、デバッグオプションなどにもパフォーマンス向上に関するものを用意しており、ネイティブに迫るパフォーマンスをHTML5でも出せるよう工夫をしています。Senchaで開発したWebアプリのパフォーマンスについては、FacebookのWebクライアントである「Fastbook」というデモアプリとしても公開されていますので、そちらで実際に体感していただくこともできます。

 マジック: Magicアプリの開発は、Windows上の開発環境「Magic xpa Studio」で行います。開発したものを「Magic エンジン」と呼ばれる実行環境上で動作させますが、これは、マジック側があらかじめ準備した業務アプリケーションの処理に必要な、コンパイル済みのプログラム群になります。DBアクセスの専用モジュールも用意しておりSQL文の記述も不要なので、開発者側で行う必要があるのは「業務処理の定義」の部分だけになります。

マジックソフトウェア・ジャパン 渡辺剛氏
マジックソフトウェア・ジャパン 渡辺剛氏

 手順としては、開発環境上でDBを定義し、画面を設計して、ビジネスロジックを定義するという形で進めます。すると、XML構造のアプリケーション・メタデータが生成されるのですが、これが、各プラットフォーム上で動作するネイティブの「Magicエンジン」によって解釈され、実行されるという仕組みです。そのため、ソースコードからコンパイルして…といった、一般的な開発のスキームとは全く異なります。

 ビジュアルな表現力という部分については、ある意味で「捨てている」と言えるかもしれません。現時点ではよくある「PC用業務アプリ」としての画面を表現する程度のUI開発機能しか実装できていません。

 ただ、より見ばえのよい画面は作れないのかというとそうではなく、Windowsクライアントでしたら.NETコンポーネントが利用可能です。また、ブラウザの機能をMagicアプリに提供するコントロールを用意しているので、これを使うと、例えばGoogle MapsやSenchaなど、ブラウザで表現可能なものはMagicアプリに組み込むことが可能です。ビジュアルの表現力は、それを得意とするツールに任せるか、用途に適したコンポーネントを必要に応じて選択できるという形です。

 Magicでは、高度なビジュアライズの部分については、あえて追求せず、データベースのフロントエンドとして、業務ロジックの変更をいかに容易に修正できるか、できる限りロジックを変えずに、幅広いプラットフォームに対応できるかという部分で、モバイル開発については勝負していますね。

(後編に続く)

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
キーパーソンインタビュー連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

柴田 克己(シバタ カツミ)

フリーのライター・編集者。1995年に「PC WEEK日本版」の編集記者としてIT業界入り。以後、インターネット情報誌、ゲーム誌、ビジネス誌、ZDNet Japan、CNET Japanといったウェブメディアなどの製作に携わり、現在に至る。現在、プログラミングは趣味レベルでたしなむ。最近書いているの...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7557 2014/01/20 11:55

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー