Curl Global Community
モバイル・アプリケーション開発を始める前に! - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Blogs (https://communities.curl.com/forumdisplay.php?fid=17)
+--- Forum: Tech blog (https://communities.curl.com/forumdisplay.php?fid=18)
+--- Thread: モバイル・アプリケーション開発を始める前に! (/showthread.php?tid=478)



モバイル・アプリケーション開発を始める前に! - hokada - 04-27-2012

こんにちは。Curl製品開発チームの岡田です。

最近、そろそろモバイル・アプリケーションを開発着手していたり、検討に入っていたり、プロトを作ったり、アプリを開発して利用し始めている企業が増えてきています。そこで、今回はモバイル・アプリケーションの開発を始める前に知っておいた方がいいと思われることをご紹介していこうと思います。

利用ケース

モバイル・プラットフォーム
まずは、プラットフォームについてですが、Android、iOS、WindowsPhoneなど様々なものがありますが、最近Appcelerator から出されたレポートによりますと、昨年まではAndroidが人気だったようですが最近ではiOSが人気になっているようです。
http://www.appcelerator.com/thinkmobile/surveys

とは言え、Androidもまだまだ人気はあるみたいです。

Windows Phoneは、日本ではまだデバイスが少ないので人気は薄いと思いますが、我々のセミナーに来られる方のアンケートの集計によると、期待されている方が多くいるように感じます。企業ではWindows PhoneやWindows8のニーズが多くなって来るのではないかと思っています。

では、実際に使ってみた感想ですが、iOSの方が安定しており、パフォーマンスもいいように感じます。また、Androidはマルウェアなど多く出没しており、セキュリティ面で多く問題を持っています。ただ、キャリアやデバイスの選択肢などを考えるとAndroidの方が融通が効きそうです。ちなみに、私はAndroidを持っています。

企業などで導入する際は、どれかに固定するのか、どれでも動くようなアプリが必要であるのかは、検討要素の1つとして考える必要はあると思います。


モバイル・アプリケーション開発方式
現在、モバイル・アプリケーション開発をする方式としては、3つあります。
  1. Web方式
  2. ネイティブ方式
  3. ハイブリッド方式
Web方式とは、モバイル上でブラウザからアクセスするHTML/JavaScript/CSSでプログラミングされた通常のWebアプリです。ただ、Webアプリとの相違はモバイルからアクセスするとモバイルに合わせたレイアウトで表示するような方式です。一般のWebサイトなどはこちらで作成することが多いと思われます。

ネイティブ方式ハイブリッド方式は、モバイル・アプリケーションとしてAppStoreやGoogle Play(旧Android Market)などからダウンロードして、デバイスにインストールする形式のアプリケーションです。この2つの違いは開発の方法が違います。

ネイティブ方式の開発方法は、iOSであればAppleが提供しているXcode上でObjective-Cという言語を利用して開発し、AndroidであればGoogleが提供しているAndroidSDKを使ってJavaで開発することになります。その他のプラットフォームもそれぞれの言語を利用して開発することになります。メリットはハイパフォーマンスであり、細かい開発も可能で、カメラやセンサーなどをコントロールできるという点です。

では、ハイブリッド方式とは、Web方式のHTML5などを利用して、1つの言語でAndroid・iOSなどのプラットフォーム上で動くアプリを作れるための開発ツールです。これももちろんカメラやセンサーなどをコントロールできるように開発ツール側で提供されています。但し、ネイティブ方式ほどはハイパフォーマンスではありませんし、機能制限もあります。ただ、マルチプラットフォーム対応をする必要がある場合には、生産性という面で非常に優れています。


ちなみに、Facebookモバイルアプリもハイブリッド方式で開発しているとのことです。
http://www.readwriteweb.com/mobile/2011/09/how-facebook-mobile-was-design.php

このことを考えると、ネイティブアプリで、iOSのObjective-CやAndroidのJava、さらには他のプラットフォームの技術を理解しているエンジニアを多く集めることは非常に難しいのではないかと思います。そのため、デスクトップやWebアプリと共通の技術で開発できるハイブリッド方式というものは、企業が導入するためにも重要な要素となってくるのではないかと思います。個人アプリを作るのであれば、個人の力でいくつかの技術を習得できれば開発できますが、企業のアプリですと、大人数のエンジニアを必要とするケースが多く、ネイティブで開発して、その後保守していくのはコスト的に負担が大きいかもしれません。
もちろん、そういった懸念事項を解消できるのであれば、ネイティブ方式がハイパフォーマンスかつ細かい実装も可能ですので、個人的にお勧めです。

下に3つの方式をまとめておきました。
3つの方式

また、利用ケースもまとめておきました。これ以外にもあると思いますのでコメントいただければと思います。(個人的な視点も入っていますので参考まで。)
利用ケース


ハイブリッド・モバイル・アプリケーション開発ツール
Web方式を選択した場合は、基本的には従来の開発ツールと同様です。


ネイティブ方式を選択した場合、基本的に開発ツールは、iOSならXcode、AndroidならEclipseを利用することになると思います。

ハイブリッド方式を選択した場合、いろんなモバイル・アプリ開発ツールがあります。例えば、以下のようなものです。 各ツールにはそれぞれ特徴がありますが、検証・選択の際に、以下のようにランキングなどもありますので、参考になると思います。
http://www.infoq.com/news/2012/02/Cross-Platform-Tools


Caedeのメリット
最後に、我々の製品も売り込んでおきます!

Caedeはハイブリッド方式をとっている製品であり、他のハイブリッド製品群と同様のメリットがあります。

他の製品の多くはHTML5でプログラミングすることになりますが、HTML5と言ってもHTML/JavaScript/CSSという3つを覚える必要があるのと、またそれだけでは生産性が悪すぎるので、jQuery MobileSenchajQTouch などのフレームワークを使うことになると思います。それらのフレームワークを検証及び選択し、勉強しなければならないという必要性がさらにプラスとして出てきます。もちろん、HTML/JavaScript/CSSについては、既にご存知の方が多いのでメリットは非常に多いと思います。


Caedeは、Curl言語1つで見た目部分もロジック部分もフレームワークに対応する部分も記述可能ということがメリットです。ただ、Curl言語を知らない場合は、Javaなどを知っていると比較的すんなりと習得できると思いますが、勉強する必要があります。

また、モバイルだけのクロスプラットフォームのみならず、デスクトップ上(Windows、Mac、Linux)リッチクライアント・アプリもCurl言語1つのみで開発可能です。この1つの言語で作ったアプリケーションがデスクトップとモバイル両方の環境で動作する「ワンソース・マルチユース」というメリットが最大の特徴です。


次回(?)
反響・要望がありましたら、モバイル・アプリケーション開発のポイントや注意事項などをまとめて、Facebookページ に投稿したいと思います。