nobu417.jp

ブログエントリー

iPad と Mac で ToDo やプロジェクトの管理を統一した環境でしたくて、いろいろなアプリケーションを試してみたものの自分にしっくりしたものがなかなかなかったので、思い腰を上げて自分で一から開発してみることにした。

FileMaker で挫けた

最初は Mac にも iPad にも対応している FileMaker なんかで簡単にデータベースが作れないかな、なんて思って体験版をダウンロードして作ってみてはいたのだが、なんというかイマイチ痒いところに手が届かないというか、お行儀のいいデータベース過ぎるというか、単純に言ってしまえば画面レイアウトの設計方法なんかを覚えるのに挫けてしまって、これなら自分でフルスクラッチした方が自由度が高いしいいかな、なんてことで開発をはじめることにした。

要件や仕様をちょっと考えて開発をはじめたものの・・・

まずは自分で使うものとして考えていたのだが、どうせなら公開できたら尚よいかな、と言ったところから、コアになるプログラムと機能を拡張するためのプラグインとを別に書くことにした。仕様として、ログインとログアウト以外の全ての機能は、プラグインによって実装することにしてみたのだ。ちなみにプラグインは Perl が書ける人なら簡単に書けると思う。

現時点では、コア部分の半分くらいと、基本となるプラグインは大体できているのだが、一部機能はコアプログラムの中にコードを存在させていて、まだプラグイン化が進んでいなかったり、はたまたコア自体もプラグインを読み込んで実行する仕組みがまだまだ完全じゃなかったりと苦戦している。

ただし自分で実地テストを行うことができるレベル、機能不足の感は否めないものの最低限使えるレベルにまでは開発が進んだので、現在は試しに自分で使いながらプログラムの修正を行ったりしている。

CSS を置き換えればデザインも自由自在に

いろいろなプロジェクト管理ツールを使ってみて思っていたことのひとつが、画面デザインがごちゃごちゃし過ぎていて目的のものを探すのに手間取ってしまうことが多いということだった。また、自分で CSS を書き直そうにも構造が複雑過ぎたりしてなかなか着手できないような仕様のものが多かった。

その経験を生かし、NzPad では HTML の構造をできる限りわかりやすくして、CSS を簡単に書き換えて使えるように設計している。もちろん、いろいろな画面があるのでどうしても最適化しても HTML が読みづらい部分はあるだろうが、基本構成をヘッダー、サイドバー、フッターのみにし、メインのコンテンツ部分も見出しとデータ入力や出力用の簡単なテーブルのみにしてあるので、Safari などに付属している開発者用ツールで HTML 構造をちょっと確認したりすれば、比較的簡単に CSS 書き換えによるデザイン変更ができるようになっている。

ナビゲーションに Ajax を採用

ToDo 管理ツールといった性質上、タブで ToDo をいくつも開けたら便利かもしれないとか思いつつ、ページのナビゲーションには、ページ自体が遷移しない Ajax を採用した。これには大きな理由があって、冒頭にも書いたが iPad での利用も想定しているので、3G 回線でも快適に利用できるようにしたかったのだ。ページ自体を遷移させた場合、どうしてもヘッダーの画像などページ毎に読み込まなきゃいけない都合上、通信量が多くなってしまいがちだが、メインとなるページは最初に表示させた後、その後のページ切り替えは Ajax を使ってページ内部だけにしたことで、だいぶ通信量を削減できたのではないだろうか。

Copland のようにならないように気を付けないといけない

Apple の Copland 計画を覚えている方はいるだろうか?以前、まだ Mac OS X が登場する前の話になるが、親愛する Apple は次世代の OS として Copland 計画を立ち上げていたアレだ。しかしモジュール化されたプログラムの断片が収集がつかなくなったり、要件だけが膨らみ過ぎて、それに伴った開発が進まなかったりして、Copland 計画自体が頓挫した。

実は NzPad もそこまで大規模な話ではないのだが、そうやって頓挫してしまう可能性があった。

単純に Todo とプロジェクトの管理ツールを作るだけだったらそんなに大変ではないのだろうが、コア部分とプラグインに分けたことで、一時は自分の頭の中でも収集がつかなくなってしまっていた。

ただ、基本的にプラグインで拡張できるといった仕様だけは守りたかったので、ToDo とプロジェクト管理を当初はそれぞれのプラグインにわけて開発していたのを、コアプラグインとしてひとつにまとめることで、コアプアグイン自体は若干大きくなってしまったものの、なんとか問題は解決することができた。

また、現在はまだプラグインを開発していない機能でも実装したいものはいろいろと残っているので、その部分は別途プラグインとして開発するか、もしくはコアプアグインに組み込むかして開発を進めていこうと思っている。

サービスとして公開するか、ソース自体を公開するか

今の時点で悩んでいるのが、この NzPad をウェブサービスとして公開するか、それともソース自体を公開して、ダウンロードして使ってもらえるようにするか、と言った点だ。現行のソースではウェブサービスとして公開するようには作っていないのだが、かと言ってソースを公開してもそんなに簡単に導入できるかもちょっと疑問だ。いつも Perl でプログラムを書く時にはお世話になっている CPAN で公開されているモジュールをいろいろ使っているので、利用者はまずそれらのモジュールを導入しなければ使えない。しかし CPAN モジュールは勝手さえ知っていれば簡単に導入できる反面、その勝手がわかっていないと導入に苦慮してしまう。Movable Type のようにモジュールも含めて配布できればいいのかもしれないが、モジュール同士の依存関係などを調べるのもまた手間なのでどうしたものか、と考えてしまっている。

フリーランスで活動する人に使っていただきたいアプリケーション

現時点で実装している機能を考えると、この NzPad はフリーランスや比較的少人数のグループで制作なんかをやっているチームに使っていただきたいと思えるアプリケーションになっている。きっと大規模なグループでの各種管理にはもっともっとよいアプリケーションやソリューションが存在しているだろう。それこそもっとちゃんとしたグループウェアなんかを導入した方がいいかもしれない。しかし有名どころのグループウェアなんかだと、大人数で作業する時には適しているものの、少人数の場合はむしろ機能過多になりすぎに感じられる。

近いうちに実際に触ってもらえるデモ版をリリースします

サービスとして提供するにしろ、ソース自体を公開するにしろ、そう遠くはないうちに、どんなアプリケーションなのか実際に触ってもらえるようにデモ版を公開しようかと思っている。NzPad の名称の通り、恐らく Studio N'z 名義で公開することになると思う。

お楽しみに。

おまけ : ソースを公開するとしたら・・・

現時点でもデータベースにテーブルを作成するレベルの簡単なインストーラーはあるのだが、ソースを公開するとしたら、これをもう少し便利にしたインストーラーを別途用意しなければいけないことに、このエントリを書いていて気が付いた。しかもコア部分のアップデートにも対応できるように、インストーラー兼アップデータにしなければならない・・・どうしたものか。

この記事へのコメント