Hatena::ブログ(Diary)

このブログは証明できない。

2009-11-30

[]iPhoneアプリ開発者があえて言う。iPhoneは終わる。

私は、もともとWindows開発者(.NET)で、パッケージ基幹業務アプリケーションベンダーで働いていました。同時に、家ではWeb開発をやっていました。最近は、フリーランスになって、iPhoneアプリ開発がメインになっています。ところが、iPhoneアプリ開発の比重が高まるにつれ、そのことに対する不安感が大きくなってきました。最近では、iPhoneアプリ開発の比重を減らすにはどうすればいいのか考えています。


iPhone 3GSが出てから、かなり売れてるみたいですね。私の住む熊本ではiPhoneユーザーはまだまだ少ないと思いますが、企業、団体、個人によるiPhoneアプリ開発に対する関心が高まっているのを感じています。東京あたりに行くとiPhoneアプリ開発者がゴロゴロいると聞きますが、熊本福岡では開発者が足りていない状況です。


このような状況で、なぜ私がiPhoneアプリ開発の比重を減らそうとしているのか。結論から先に言いますと、「iPhoneはユーザーインターフェイスであり、ユーザーインターフェイスのライフサイクルは極めて短い」という考えがあるのです。以降、ユーザーインターフェイスUIと略します。まずは、iPhoneUIにすぎないというお話。




iPhoneアプリの単価が下がってきているのは周知の事実です。iPhoneアプリでは稼げないという声も聞こえてきそうです。少しニュアンスは違いますが、私もiPhoneアプリ単体では限界が来ていると考えています。では、どうするか?その答えは、いま流行の「クラウド」です。EC2GAEなどの技術者的なクラウドではなく、一般に使われるクラウドです。


データやロジックを雲の向こうに置きサービス化します。そして、iPhoneをそのクライアントとして使います。サービスには、iPhoneだけでなく、WindowsMacLinuxデスクトップアプリケーションからもアクセスできます。もちろん、Webインターフェイスを作ってもいいでしょう。そうすることで、iPhoneアプリの販売ではなく、クラウドサービス(という言葉で合ってる?)の利用料という課金モデルという選択肢が増えます。


こうなると、iPhoneはサービスにアクセスするためのUIとなります。なんとなく、iPhoneUIにすぎないと言っているイメージが伝わりましたか?もちろん、iPhoneアプリにもロジックは組み込まれます、ですがそれはコアなビジネスロジックではありません。以降、ビジネスロジックBLと略し、UIコンポーネントBLコンポーネントのライフサイクルについてお話しします。




UIコンポーネントはライフサイクルが非常に短いと言えます。これは、BLコンポーネントに比べて短いということです。ここで、クライアントサーバーの歴史について考えてみましょう。まずは、ホストと端末のシンクライアント。そして、C/S型のファットクライアント。次にブラウザクライアントとしたシンクライアント。そして、上記のクラウド型に近いリッチクライアント。という具合に変遷してきました。


このようなアーキテクチャの変遷にともなって、UIテクノロジーも移り変わってきました。もちろん、BLコンポーネントの配置場所によって、BLを実装するテクノロジーも移り変わっているわけですが、BLビジネスロジック)そのものに変化はありません。ここに、UIBLの大きな違いがあるのです。


UIについて言えば、例えば、WindowsアプリケーションJavaScript + DHTML、FlashiPhoneアプリでは、ロジックそのものが違います。コンポーネントの再利用はもちろん、ロジックの再利用も不可能です。もっと言えば、デザインパターンGoFじゃないよ)すら再利用できないのです。


一方で、BLに関して言えば、COMによる再利用をはじめ、既存のBLコンポーネントをラップして使うというケースがあります。また、コンポーネントをリプレースするにしても、ロジックは変わらないわけです。フレームワークを変更しても、ロジック自体はそのままです。JavaからRubyへの移行さえも可能でしょう。ライブラリアルゴリズムのレベルでの差異はありますが。


PHP + MySQL(またはPostgreSQL)なんてシステムはいつまで経ってもそのままでしょう。しかし、UIに関しては、PHPの吐き出すものが違ってきています。最初は、HTML。そのうちに、Ajaxなんてのが出てきて。XMLJSONを出力して、RIA (Rich Internet Application)を含むデスクトップアプリケーションが利用するようになるかもしれません。また、これは明日書く予定ですが、Flashが見直される時期に来ていると考えています。それでも、BLはプレーンなPHPのままなのです。




ところで、BLの変換点はまだ来ていないのでしょうか?私は、すでに始まっていると考えています。今度は、EC2GAE的な「クラウド」(紛らわしい?)。さらに言えば、Key-Valueストア。Key-Valueストアって、RDBMSからデータ層が変わるだけじゃないのかと言われそうですが、BLそのものが大きく変化するはずです。そして、アプリケーションレベルでマルチコアサーバークラスタを活用しようと思ったら、BLそのものの見直しが必要になるはずです。


このように、BLにも遷移する時期はあります。ですが、UIと比べると、その頻度は遥かに少ないわけです。この辺のキーワードを持ち出すのは微妙かもしれませんが、Web2.0が来てもSaaSが来てもBLは変化しませんでした。一方で、UIは変化しました。そして、UIの変化には互換性がありません。




iPhoneアプリUIにすぎないというお話をしました。そして、UIのライフサイクルは短いと。すでに、Androidという競合が出ています。さらに、Microsoftも動き始めました。HTML5とCSS3への関心も高まっています。Adobeを中心にRIAも盛り上がりそうです。Windowsでは、WPFが。WPFがんばれ。Silverlightもがんばれ。


また一般的に言うクラウドの話になりますが、マルチプラットフォームが当たり前になっています。iPhoneアプリだけ作ってればいいという状況ではなくなってきています。もちろん、iPhoneアプリ単体でもまだ行けると思いますが、それをレッドオーシャンと呼ぶのか、沈みかかった船と呼ぶのかどうかは知りません。少なくとも、私はやりたくないです。




iPhoneは終わる」と書きましたが、正確には「単体iPhoneアプリ開発熱が去る」と書くべきだったかもしれません。これからのiPhoneアプリ開発者は、iPhoneマルチプラットフォームのうちの1プラットフォームにすぎないことを意識していく必要があるのではないでしょうか。

maromaro 2009/12/01 02:20 iPhoneの開発熱は冷める、次はAndroidだ、ごにょごにょだ・・という未来予測はナットク。それならクロスプラットフォーム間でもシームレスに使えるBLを作れば次世代のUIにも素早く切り替えられますね。Facebook, Mixiアプリ etcにも1アカウントで使えるアプリがあれば体験してみたいな。

pescatorepescatore 2009/12/01 11:26 ご意見、非常に参考になりました。ごもっともと思います。

p_r_partyp_r_party 2009/12/01 12:14 >UIについて言えば、例えば、Windowsアプリケーション、JavaScript + DHTML、Flash、iPhoneアプリでは、
>ロジックそのものが違います。コンポーネントの再利用はもちろん、ロジックの再利用も不可能です。
>もっと言えば、デザインパターン(GoFじゃないよ)すら再利用できないのです。

ここら辺から気になっていたのですが、あまりにも認識がおかしい気がします。
上記のものたちは「UI」という単一レイヤで論ずる事ができるものですか?
そもそもレイヤが違うのですから、再利用自体できないのは当たり前です。
論点も「iPhone」が終わるのか「iPhoneアプリ」が終わるのか不明確です。
WindowsアプリケーションをUIという枠に閉じ込めるには、あまりにも無理があるかと。

また書いている事をみると、iPhoneとAndroidを並列に扱うべきでは?Androidも終わる、と。
(ただAndroidは単なる携帯向けプラットフォームではありませんが)

shunsukさんは、WEBアプリを利用する側面からしかiPhoneしか見られていないように思えてしまいますが、
そもそもiPhoneはデバイスです。このデバイスには、多様な入出力装置が用意されています。
電波の受信、位置情報の取得、Bluetoothの送受信・・・、挙げればキリが無いですがこんなに高機能なデバイスを
いち言語であるJavaScript(+ DHTML)と比較できる訳がありません。

このような高機能なデバイスが多くの人の手元に渡った事で、「できる事」は飛躍的に増えていると思いますし
また高機能であるがゆえ、まだ誰も考えついていない新たな方向性が生まれていくような気がしてなりません。
その可能性があるからこそ、企業はiPhoneやAndroidへ積極的に投資するのでは?
だってiPhoneと同じレイヤだと考えられる「PC」は「iPhone」ほど簡単に持ち運べませんからね。
小型PC端末(デバイス)を我々は持ち歩けるようになったわけで、UIだけを持ち歩いている訳では無いでしょう。

mabotsmabots 2009/12/01 13:13 クライアント・サーバ型にシフトしていく、という点の前提が指示できれば、内容についてはまさにその通りだと思います

14ch14ch 2009/12/01 13:17 ご意見、大変参考になります。

iPhone向けにTwitterアプリやGoogleリーダー連携アプリなどが多数リリースされていますが、ああいうのを見ると、BLとUIの分離を嫌でも意識させられます。

僕はウェブUI設計などを生業としているので、どうしてもUI贔屓で考えてしまうのですが、その立場からすると、BLとUIの分離は、むしろ歓迎すべき傾向だと思っています。というのは、これまでUIというのは、BLの従属物とみなされがちでしたから。
昨今のこの状況は、純粋にUIレイヤーのみで競い合うプレイヤーがどんどん登場しているということですよね。ある意味、UIが独立した主役という側面を持ちはじめているともいえると思います。

もちろん、たとえばTwitterという巨大なプラットフォームと、その上に乗っかる多数のTwitterアプリ(=UI)とでは、強さ・寿命の差は歴然です。UIレイヤーで戦うプレイヤーは、「労多くして益少なし」ということになるのかもしれません。
でも、iPhoneを取り巻く環境全体として考えれば、このように、純粋にUIレイヤーで切磋琢磨するプレイヤーたちが健在であり続けるかぎりは、UIプラットフォームとしてのiPhoneもまた健在であり続けるだろうと思います。(思いたい…)

shunsukshunsuk 2009/12/01 13:19 p_r_partyさん。的確なご指摘、ありがとうございます。

ここではWindowsアプリやiPhoneアプリをRIAとして考えています。が、そのへんの記述が不足してますね。私の文章力の限界です。

iPhoneとAndroidは並列だと考えています。Androidも終わります。このへんがうまく書けなかったのですが、ここでAndroidと言ったときに単にOSを指してるわけではないのです。くはぁ。うまく書けない。。。

確かに、Webを利用する側面からしか見ていません。ご指摘のようにiPhoneには多様な入出力装置が用意されていますが、それはつまりUIの機能が増えたのだと認識しています。JavaScriptと比較できないというのはその通りで、これがUIの進化だと言えます。もっとも、普及率がまったく違いますから、JavaScriptの次がiPhoneだとは言えませんが。

企業は、可能性に投資しています。それが、過熱しすぎだなと思って、この記事を書きました。iPhoneに替わるステキなデバイスが出て、iPhoneを置き換えてしまうかもしれません。そのときに、UIのテクノロジーは単純に再利用できません。UIが高度化すればするほど、なおさらです。

現在のデバイスは、Webに繋がってナンボだと考えています。そこの前提をもっとしっかり書けばよかったと反省しています。

すみません。的確な返答ではないですが。

goldman244goldman244 2009/12/03 02:03 iPhoneを含めて、RIAが乱立してる雰囲気は、
CUIからGUIに変わっていくときに、MacやWinやその他色々がOSが出た流れに似ているなー。と感じています。

あの戦いが、「HTML」「Java」などの技術で(ほぼ)OS非依存になる。という事で終わったと考えるなら、
iPhoneでもAndroidでもRIAでも動作するUIが出てくるんだろうと思います。


ただ、自分の仕事を増やすという意味では、ぜんぶバラバラでゴチャゴチャになっている今の状況の方が、技術者レベルでは稼ぎやすいかもしれない。と思うのは歪んだ見方でしょうか。

shunsukshunsuk 2009/12/03 10:46 > ただ、自分の仕事を増やすという意味では、ぜんぶバラバラでゴチャゴチャになっている今の状況の方が、技術者レベルでは稼ぎやすいかもしれない。と思うのは歪んだ見方でしょうか。

技術者に限らず、コンサル、企画屋、営業マンにもオイシイでしょうね。バズワードが次々生まれるのも、バラバラでゴチャゴチャにしたいんだと思っています。その状況では、完全な雇われ技術者は大変、フリーランス的な技術者にはチャンスなのかもしれません。

zilogzilog 2009/12/03 11:57 うわさのタブレット型の大きなiPhoneが出てくれば、その広い画面を使って単体アプリでも何かできるかなと、新しいアイデアが出てくるかもしれませんよ。

マーケターAマーケターA 2009/12/04 13:43 間違いだらけの発想にびっくりです。勉強が足りてませんね。中途半端な知識で決め付けているから、完全に先が読めてない。

マーケターBマーケターB 2009/12/18 10:27 私が突っ込むことでもないですが、具体性もなく「間違いだらけ」といっても
なんら説得力ないですね。
「だらけ」「中途半端」「完全に」など程度を表すはずの言葉を非定量的に並べても
「この人は口先だけ」としか判断されませんので、みなさんも注意しましょう。

マーケターCマーケターC 2010/01/03 14:19 そう言いながらわざわざ書き込む辺り、人間の器の小ささが知れますね。

OldtimerOldtimer 2010/04/11 23:03 もう賞味期限切れかもの状況ですが、たまたま通りがかったもので…
皆さん、業界の方でしょうから今更説明も不要かも知れませんが、
何故今もメインフレームが生き残っているかです。
基本的にメインフレームのUIは80桁×24行の画面です。(web対応も「可」ですが)
しかしBLの規模は凄まじい内容です。(品質は別としてwww)
某携帯キャリアも、UIはJAVA中心でBLはCOBOL「新規」で社内システムを構築した筈です。
UIについての議論は無意味です。
ビジネスにおいてもパーソナルユースにおいても、
過去の「流行」のUIは、今どれだけ生き残っていますか?
今の「流行」のUIは、どの位生き残るのでしょうか?
好き嫌いについての議論は興味がありますが、
良し悪しの議論は不毛です。
所詮ノイマン型コンピュータが出来る範囲です。
それとも新しいUIって奴に、真剣に恋しています?

BUN WONDER JAXBUN WONDER JAX 2010/06/07 14:47 技術的にどうこうというよりも、ビジネスモデルに破綻が近づいてきているのは確かだと思います。

mYG6FRmYG6FR 2010/06/20 20:43 「iPhoneはやりたくない」という考えは、サービスを発信する側からは出てこないですよ。使えるものはなんでも使いますよ。気楽でいいですね。

shunsukshunsuk 2010/06/20 21:09 ありがとうございます。

GTC168GTC168 2010/09/03 00:53 10年近く前、学生時代にプログラミングを少しかじっただけの者です。
細かいことはわかりませんが、shunsukさんのような実際にiPhone用アプリを開発していた人の正直な感想が聞けて良かったです。


ちなみに今は音楽を嗜んでいるのですが、そういう人にとってiPhoneはものすごい可能性を秘めたマシンだと思います。
今まで、ケータイ,iPod,ボイスレコーダー,メモ帳(思いついたものを書き留める)などを常に持ち歩く必要があったのですが、iPhoneのみで良くなりました。
これは男性にとっては画期的です。ポケットには財布とカギとiPhoneでいいのですから。
更に、チューナー(どこかでギターをチューニングしたくなった時),出先でYoutube...
たまりません。
無論従来のケータイでもある程度はこなせたとは思いますが、ここまでのことはムリでした。
まだ、アプリは見つかってませんが、マルチトラックレコーディングなど出来れば売れそうな気がします(MTRの代わり)。
アマチュアでバンドをやっている人の人口はたかがしれてるかもしれませんが、
みなさんかなり機材にお金を使います。

私もその一人なので。



お仕事頑張ってください。

通りすがり通りすがり 2010/09/22 14:07 iphoneをただのUIと捕らえればそれはそうなのでしょうが、iphoneアプリがあるが故にiphoneはUIではなくBLが乗っかる完結型サービス主体の新しい形と捕らえられているような気がします。トートロジーに聞こえるかもしれませんが、だから注目されてるんじゃなかろうかと。

仮に横転するとしても特にクラウドでSOAしなくても、いくらでもやり方があるのでSOAありきでUIよりのBLを否定するのは危険かなぁと思います。

マタピー♪マタピー♪ 2011/09/28 03:53 皆さんの見識に歓心致しました。

音楽業界の方まで、システマティックな議論に参加できるのは、大変うれしい事だと思います。
(時代の移り変わりでしょうか。)

UIについての、shunsukさんへのご指摘は、皆さん一理あると思います。
iPhoneは、単一レイヤーでは、括れません。

ですが、BLとUIを分けて考えるのは、shunsukさんの考えに共感致します。
WEBシステムに然り、MVCに分割し、BLとUIを分けて考えるのは自然な流れだと思います。

また、昨今のクラウド環境が使いやすくなり(技術的にも料金的にも)、BLをWEBサービス化しクラウドに分割するのは、データの保全性や可用性(社内PCや社外のiPhoneからの利用)の面からも、すばらしい考え方だと思います。

Windowsアプリをメインに開発なさっている方は、UI(アプリ)にBLも乗っけるのが一般的だと思いますが、これからは、Windowsアプリ、Webアプリ、スマホアプリ、どれをとってもBL、UIは、明確に分離するべきだと思います。

iPhoneを単なるUIと捉えるかは、元の話の論点が違うと思います。
今回の話は、あえてiPhoneを一つのUIとして見るべきです。

shunsukさんが言いたかったのは、BLとUIをどう分けて行くかという事ではないでしょうか?

UIは、多様化しがちです。
そう考えると、一つのUI(iPhoneなど)の寿命が短いというのも納得できます。
iPhone開発に固執すると、飯が食えなると思います。


>iPhoneでもAndroidでもRIAでも動作するUIが出てくるんだろうと思います。
goldman244さんご指摘の通り、Titanium Mobileなど複数プラットフォームに対応する開発ツールが、いろいろと出てきています。


>iPhoneアプリの販売ではなく、クラウドサービス(という言葉で合ってる?)の利用料という課金モデルという>選択肢が増えます。
BLをクラウド化することで、課金モデルも選択肢になります。

乱文、大変失礼致しますが、一言述べさせていただきます。


この文へのツッコミは、大歓迎です!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証