今月の Software Design : 2013/02 (その5)

 「今月の Software Design 」の2月号の投稿第5回目です。

 早くしないと次号が発刊されてしまうので、さっさと書いてゆきます。

 ということで、今月も以下のフォーマットで各記事の要約と感想を書いてゆきます。

 

・記事のタイトル
( 1 行目 ) 記事の要約
( 2 行目以降 ) 感想

 

iPhone OS アプリ開発者の知恵袋

 iPad mini についてと、iOS アプリの市場の話、そして昨年 9 月から日本で始まったボリューム購入プログラム (Volume Purchase Program) の話。iPad mini については、本体サイズと解像度の違い、そしてそれに伴うアプリデザインの注意点について 4 ページにわかって解説しています。またボリューム購入プログラムの登場によって、これまでコンシューマ向けのアプリ主流だったのが、toB 向けのアプリが登場しビジネスユース市場が育ってゆくと予想しています。

 先月の内容がマーケティングの話で、今月の内容がデザインと新ライセンス、そして市場のお話です。これが 「iPhone OS アプリ開発者の知恵袋」なのだとすると、iOS アプリ開発者というのはスーツを着てモノを売り歩く人間なのではないかと思えてきます。

 それの良し悪しはこの際置いておいて、だとすると "iOS アプリ開発者" という存在もまた、これまでと同じようなギーク的なエンジニアなのだろういう考えは、大きく改めるべきなのだろうと思いました。

 また iOS アプリ市場の話で、Apple が開発者にこれまで支払った額が 2012 年 10 月時点で 65 億ドルに達したと記事で報じています。売上における Apple のショバ代が 30% なので、アプリの総売上は約 93 億ドル になる計算です。この数字がいつの時点からのものなのかは書かれていませんが、累計だとするとその程度かと思ってしまいます。

 国内のモバイル事業最大手の D 社と G 社の昨年の売上はそれぞれ 1460 億円と 1580 億円で合わせて約 3000 億円になります。また両者の売上に占めるモバイル事業の割合はそれぞれ 89.5% と 91.7% でその大部分を占めます。このうち iOS アプリの売上がどの程度かは公開情報からは不明ですが、iOS 市場の多くを両企業が持っていると推測できます。

 ただボリューム購入ライセンスでビジネス向けアプリの市場が開けるという話はおもしろいです。どんあリスクがあるかは不明ですが、もしかするとアリエルみたいなお堅い企業が iPhone アプリを本気で作っちゃう日が来るかもしれません。

 

 

Android エンジニアからの招待状

 Android, iOS そして WindowsMobile アプリのフレームワーク Rhodes の紹介記事です。Rhodes は UI を HTML と JavaScript で記述し、ロジック処理を Ruby で記述できるフレームワークで、最終的にこれらの記述を各端末のネイティブコードに変換します。記事では、Eclipse プラグイン Rhodes 開発環境の RhoStudio で Android サンプルアプリの開発を解説しています。

 Sencha Touch や jQuery Mobile などといった web アプリ開発用フレームワークだけでなく、ネイティブの開発フレームワークにおいても今やクロスプラットフォームが当たり前になってきました。Rhodes の他にも PhoneGap や Titanium Mobile なんかが有名ですね。クロスプラットフォームの開発環境について議論する際、Android SDK なんかのネイティブのフレームワークの方が機能を最大限に利用できるという話がよく出てきます。確かに、各プラットフォームでの機能的な差異を吸収しなければならないという課題もありますが、Rhodes などのクロスプラットフォームフレームワークの開発が進むことでいづれその問題も克服出来るんじゃなかろうかと楽観的に見ています。

 かつて Android SDKAndroid アプリを 1 年半ほど作っていたせいで、すっかり Java に慣れちゃいましたが、現在のようなフレームワーク環境が整備された中で開発していたら、当時もっと楽しめたんじゃないかと思えてなりません(Java での開発もそれなりに楽しかったですが)。

 

 

・レッドハットなにわ通信(地方エンジニアあるある)

 大阪が一体どんなところかの紹介にはじまり、地方エンジニアはこんな感じで辛いんだという話に続き、渋ちんの地方会社の下で検証環境を用意するというくだりで、KVM のゲスト OS 上で別のゲスト OS を起動する Nested KVM についての紹介をしています。

 別の記事でも「地方(=東京以外)」について扱っていますが、この記事にしても地方は "人が少ない", "金がない", "不安定" といったネガティブな言葉で語られています。真偽のほどは定かではありませんが、こうして記事に書かれるくらいに多くの人がこうした印象を持ち、またそうした実情を感じている人が居るというのは確かなようです。

 ホントに、東京一極集中は何とかして欲しいです。個人的にそう思っているというのもそうですが、東南海地震や(まかり間違って)首都直下型地震が起きたらどうすんだろうかということは、誰もが想像することだと思います。全国津々浦々を高速鉄道網で繋いで、首都機能を分散させようという構想があるようですが、仮に東京ー大阪を 2 時間 1000 円で結ぶ交通手段(リニアとか)が出来たら、岐阜県辺りに家を建てようと密かに思っています。

 

 

・システムに必要なことは全て UNIX から学んだ

 シリアル通信の歴史的変遷と現在の通信機器等で使われている通信インターフェイスについてのお話です。最後に Mechanize について紹介しています。

 ルータなどのネットワーク機器における Web インターフェイス (I/F) は確かに面倒で、その点シリアルコンソールがある機器の操作は楽です。でも、インポートとエクスポート機能をサポートしてくれていれば、個人的には Web I/F でもシリアルコンソールでもどっちでもいいんじゃないかと思っています。

 Mechanize とか、正直これは bot を作る用途以外に使ったことはありません。こんな後ろ向きなツールを使わないとコマンドライン操作が行えない機器など滅んでしまってもいいんじゃないかと思っています。

 

 

Linux カーネル観光ガイド

 前半は、カーネルのメモリ管理システムにおけるページフレームの回収のお話。カーネルがアクティブリストと非アクティブリストを使って、ページキャッシュと無名ページを回収する仕組みについて解説しています。また、cgroup を通したユーザプログラムのメモリ状況について eventfd を使って取得する方法について紹介しています。後半の VFS Hot Data Tracking では、アクセス頻度を元にホットなファイル (i-node) とブロックを記録し、それらをユーザプログラムから取得する方法について解説しています。

 前半の最後で紹介されている cgroup (Control Group) を通したユーザプログラムからメモリ状況を取得する方法や、後半の VFS Hot Data Tracking の情報をユーザランドから取得する手法については初めて知りました。

 カーネルレイヤの中身についてだけ書いているわけではなく、その中身の仕組みをユーザプログラムから取得したりチューニングしたりといったことも絡めて書いてあるので、読んで面白いだけでなく、知って嬉しい内容になっており、非常によかったです。

 メモリ周りの内容については、ファイルシステムのキャッシュ周りともともかなり密接に関わっているので、その辺りの仕組みとチューニングのための sysfs などを介したインターフェイスについて解説してくれている記事なんかが読んでみたいです。