前回のエントリでは、企業内の特定業務利用を前提とした iPadネイティブアプリ開発の良さげな特徴を述べた。今日のエントリでは、その課題と解決策について書いてみようと思う。

【実際には大きな課題も残るiPadネイティブアプリ開発】

しかし実際に企業の「業務アプリ」を、iPadネイティブアプリケーションとして開発、そして維持・運営するには大きな難題もある。その難題とは、「Visual Basic」と「塩漬け」と言う、おそらく多くの企業内業務アプリケーションに付随する、2つのキーワードのことだ。

課題1:iPadアプリはVB(Visual Basic)で開発できない
「何を当たり前のことを!」と多くの人は思うだろう。私もそう思っていた。しかし、当Blogに「iPad VB」もしくは「iPad Visual Basic」と言うキーワード検索で訪れる人の多さを目の当たりにして、改めてこのプログラミング言語の普及の度合いと、そのニーズの多さに驚いた。
Visual Basic入門

「プログラマ」と呼ばれる人々の中には、超人的な能力を持つスーパープログラマもいれば、学校を出たての初心者プログラマもいて、そのレベルの差は極端に大きい。その中で、いわゆる「業務アプリ」を作る人々の大多数は、どちらかと言うと「底辺」に位置しており、その人々の「数の力」で業務アプリは支えられている。そしてそのようなプログラマ達にとって、慣れ親しんだVisual BasicやWindowsの世界から抜け出て未知の世界に踏み出ることは、相当に勇気のいることなのだ。もちろん全ての業務アプリプログラマがそうだと言えず、積極的にiPadネイティブアプリ開発に乗り出すプログラムもいるにはいるだろう。しかし、圧倒的多数派のプログラマにとっては、言語もAPIも文化もまるで異なるApple iOS SDKの世界に踏み出すのは簡単なことではない。仮に勇気を出して踏み出したとしても、その世界で今以上に仕事になるかどうかは、誰も担保してくれないのだ。間違いなく言えることは、企業がiPadネイティブアプリを開発しようと思った際に、それが出来るプログラマを安い単価で調達するのは、依然として難しいと言うことだ。

課題2:iPadの世界では「アプリの塩漬け」はできない
「塩漬け」なんて、IT(情報技術)の世界とは縁の無さそうな言葉に聞こえるかもしれないが、企業ITの世界では頻繁に使われる「俗語」である。
塩漬け

ITの世界での「塩漬け」とは何か?
それは、一度作って(とりあえず)動作したソフトウェアやシステムを、全く改変を加えることなくしばらくの期間(短くて4年以上)使い続けることを言う。中でも「全く改変を加えない」と言うところが重要だ。例えば、動き始めた当初に使っていたOSがWindows XPだった場合、Vistaや7を使うためには「ソフトウェアの改変」が必要になるので、ずっとずっとWindows XPを使い続けることになる。それどころか、Windows OSの「Service Pack」なんて代物も、適用するとOSの動作が変わってアプリの「改変」が必要になりかねないので、SPの適用もせずに使い続けることになる。

実際に業務アプリの世界では、この「塩漬け」が実によく行われている。「ソフトウェアのメンテナンスコストを抑える」と言う点では、それなりに合理的な判断だからだ。

一般的にソフトウェアを開発し利用するうえでは、「新しく作るときのコスト」よりも、「メンテナンスのコスト」のほうが高くつく場合が多い。ここで「メンテナンス」とは、実際に使い続けることで見つかるソフトウェアの障害(バグ)を、ひとつひとつ修正していく作業を指す。ソフトウェア使い始めて最初は問題が無さそうに見えても、しばらく使い続けて初めて問題が顕在化することはよくある話だ。特に何らかの「新しいことをやる」場合に、新たな問題が見つかることが多い。上述した「OSの変更」や「OSのService Pack」の適用もそのひとつだ。

不特定多数の場面で使われる「パッケージソフトウェア」であれば、この種のメンテナンスは避けて通れない。しかし特定の企業内だけでしか使われないソフトウェアであれば、とにかく同じものを同じように使い続けることによって、新たな障害が顕在化することを防ぎ、結果としてメンテナンスコストを抑制することは十分可能だ。

いまだに企業ITの世界では、「Windows XPを使いたい」と言うニーズが極めて大きいことは、過去のこのエントリでも書いたし、そのエントリは当Blogの人気エントリのひとつになっている。これも「システムの塩漬け」をしたいがために古いOSを使い続けたいのである。

ところがだ!
Windowsの世界では出来た「塩漬け」も、Apple iOS(iPadやiPhoneのOS)の世界では出来ないと思ったほうが良い。

ご存知の通り、iOSは比較的頻繁にアップデートを行うし、そのアップデートによってかなり大きな「仕様変更」も行われる。これはまさに「塩漬け」を阻害する要因になる。

であれば、「iOSのアップデートそのものをやらなければ良い」と思えるかもしれない。旧機種を何年も使い続けられるのであればその通りだが、ハードウェアの故障や追加調達などで新たなデバイスを調達したい場合は、残念ながらそう言うわけにはいかない。運用を始めて1年もすれば、ハードウェアの仕様もOSの仕様も大きく変わったデバイスしか手に入らないかもしれないのだ。

iPadネイティブアプリの業務利用で、「塩漬け」が通用するのは下記の2つの条件を両方とも満たす場合だけだろう。
1) 将来の利用デバイスの「追加」は絶対に無いと断言できる
2) デバイスが故障した場合の「バックアップ用デバイス」を当初から余分に購入しておく

1)はともかく、2)を実施するのはかなり非現実的だ。iPadのハードウェア的な寿命がどれくらいかは未知数だし、またどれくらいの割合で故障するのかも、誰も分からない。どれくらいの台数をバックアップ用として揃えておけば良いのか決めようがないのだ。

結論としては、業務アプリ用のプラットフォームにiPadを使い、ネイティブアプリケーションの開発を選択した場合は、ハードウェアやOSのアップデートに合わせて、業務アプリのメンテナンスを続けるしかないのだ!!こちらのサイトにも、業務アプリをiPadネイティブで開発する際のリスクとして、アップデートのリスクが述べられているが、まさにその通りだと思う。 



【「塩漬け」がしたいのであれば】
結局のところはこちらのエントリで紹介した方法に戻ってくる。業務アプリは「塩漬け」の効くWindowsベースで開発し、端末デバイスとしてだけiPadを利用すればよいのだ。下のデモのように。