個人やチームを対象にしたアプリケーションで、現状、一体どういう形態と開発言語が考えられるのか、自分なりにメモっておきたくなったので。
デスクトップアプリケーション
デスクトップアプリのメリットは、何よりもレスポンス性の良さだ。Webアプリケーションはいちいちサーバーと通信するので、その分がオーバーヘッドになる。サーバーへの負荷集中が無いという点でも、デスクトップアプリのパフォーマンス上のメリットになっているのではなかろうか。
Webアプリケーション
Webアプリケーションのメリットは、データをインターネット上に保存することができる点。これにより、別のPCからも同じ環境へアクセスすることができるようになった。例えば、Gmailなどのおかげで、自宅でも会社でも容易にメールチェックができる。
今のメインストリームではあるが、何でもWebという風潮には歯止めがかかってきた感じ。Webアプリに適したものはそのまま残り、それ以外のものはハイブリッド型へと移行するのではなかろうか。
モバイル向けアプリケーション
多分、フロンティア的な意味で、いま一番元気がありそうなカテゴリ。特にiPhoneやGoogle Androidといったあたりの注目度は、かなり高いのではなかろうか。反面、Windows Mobileは何だか乗り遅れてそうなイメージ。うん、イメージです。
主な開発環境や言語
- iPhone
- Google Android
- Windows Mobile
- .NET系
- Visual C++
ハイブリッド型
データはインターネット上へ保存し、デスクトップアプリやモバイルアプリを通して利用する形態。ただし、Webからも簡易的なアクセス手段を用意してあるので、ネットカフェからなどでも容易にデータを操作できたりと、実用性が一番高いパターンではなかろうか。
代表例はEver NoteやDropbox。
その分、開発に必要なスキルが多岐に渡り、手軽に開発できるという印象はない。
主な開発環境や言語
これまでに挙げた諸々。
しかし、こうしてみるとJavaって強い。Write Once, Run Anywhereがしっかりと生きているのかも。でも、なんだかJavaで作られたデスクトップアプリって、重くて使いづらい印象があるんだよなぁ。最近は違うのかしら。
Windowsなら、ユーザーのことを考えれば、Visual C++という選択になりそうだ。Apple系を攻めるなら、明らかにObjective-C。Linuxは良く分からないや。C++っぽいけど。
サーバーサイドは、私ならハイブリッド型を意識して、Ruby on RailsでRESTfulなアプリを組んでおきたい。
Rubyとか、ある程度本格的なデスクトップアプリだと、どこまでやれるんかなぁ。はっ!Adobe AIR(Action Script)という選択肢もあるのか。まぁ、でも、実行環境をユーザーが用意しなければいけないってのは、やっぱハードルが高めかもしれない。