カテゴリー : 2014年 1月7日

OS Xファーストの開発スタイル


去年の末から、うちの会社では、「OS Xファースト」のスタイルで開発するものが増えました。開発するときに、まずOS Xで動かす。その後で、iOSに移植する、というやり方です。これがねぇ、とてもいいんですよ。

このスタイルになった一番の理由は、ドキュメント・ベース・アプリケーションのものが増えたからです。書類を作成するタイプのアプリ、つまりはエディタタイプのものですね。エディタものをiOSで作ろうとすると、色々面倒なんですよ。というより、OS Xの方が圧倒的にエディタに向いているんです。理由は以下の通りです。

標準のファイルブラウザが使える

OS Xには、ファイルシステムに存在するファイルを確認および操作するファイルブラウザがあります。何の事はない、Finderのことですね。忘れがちですが、iOSにはFinderに相当するものがありません。

エディタアプリだと、書類を作成するんです。そうすると、ファイルの確認や操作が必要になるんですよ。OS XだったらFinderでひょいっとのぞけばおしまいなんですが、iOSだとソースコード書き連ねてアプリ側でやらないといけない。メンドクサイ。

あと、オープンダイアログ。OS Xには標準のオープンダイアログがありますが、iOSにはないんです。だから、まず始めにオープンダイアログを自作しないといけない。超メンドクサイ。

プルダウンメニューが使える

エディタアプリは、どうしても操作のためのコマンドが多くなります。これは複雑というよりは、単に求められるものが多いんですね。たとえば、アンドゥでしょ、リドゥでしょ、カットにコピーにペーストでしょ、削除でしょ、すべてを選択でしょ…。これらをボタンとして並べていったら、iPhoneの画面がそれだけでいっぱいになってしまいます。そうならないために色々とUIを考えるんですけど、そっちにやたら時間を取られるんですよ。

でもこれがOS Xならば!プルダウンメニューがあるじゃないか!プルダウンメニューの素晴らしいところは、プルダウンできるところです!当たり前すぎて何言ってるか分からないですが、つまりいつもは隠れていて、必要なときにクリックして引き出す事のできるUIということですね。これは、多くの項目を並べるのにとても適したものなんです。

だから開発の初期段階では、とりあえずコマンドの呼び出しはメニューだけにして、中核機能だけ先に作っちゃえということができます。キャッチーでファンタスティックでバブリーなUIは、後でじっくり考えればいいのです。

キーボードが使える

エディタアプリでは、文字を入力する事が多いです。文字の入力には、そりゃなんだかんだいってもキーボードでしょう。キーボードを使うのがいちばん効率いいです。

ユーザの使い勝手だけでなく、プログラムの立場からでもそうです。iOSでは文字入力時にソフトウェアキーボードが表示されますが、あれが出てくると画面が狭くなるんですね。となると、動的にビューの大きさ変更しないといけないし、狭い画面でも使えるUIにしないといけない。うわー、メンドクサイ。

こういった理由から、まずはOS Xで動くものを作っています。もちろんプロトタイプの使い捨てではなくて、きちんと世の中に出せるレベルまで持っていきます。始めにきちんと設計しておけば、かなりのソースコードをOS XとiOSで共有できます。モデルだけではなく、コントローラクラスも共用できます。OS XではNSViewControllerのサブクラス、iOSではUIViewControllerのサブクラスとして、同じクラスに実装していきます。#ifdefだらけになりますが。

ただこうしてOS X版を作っても、リリースするかどうかはまた別の話ですね。出したとしてもどれだけ売れるのやら、という問題がありますから。