近況報告(1)

ここ約2ヶ月間は、いつにも増して筆無精になっていました(すみません)。

その理由は、リアルの用事(?)が増えた、というのもあるにはあるのですが、意外と熱心に Kaku の開発を続けていた、ということもあります。まずは、そのご報告から…

Kaku 進捗

1. img タグ挿入支援機能の改善を進める

これまでは、

  • 「Kaku イメージタグ」という独自のタグを、img タグの代わりに挿入 → 記事の投稿時に HTML img タグに変換

という方式をとってきましたが、この分かりにくい/操作ミスの恐れがある「Kaku イメージタグ」を廃止し、ちょうど Mail.app のアドレス欄のように、はっきり本文と区別して表示する、というところまでやりました。まだ完成していませんが、こんな感じ:

2.(たぶん広義の)リファクタリングを開始

が、1 まで進んだ後、(自分で言うのもなんですが)Kaku の内部構造のひどさに、ついに○狂、これがブログへの投稿を鈍らせる最初の原因になったのですが、いつもやろうと思っていった内部構造の見直しを、今度こそ徹底的にやる、という決意をしました。

その主なメニューは:

  1. nib ファイルの分割

    これは以前メールでアドバイスを頂いていたことです(ありがとうございます)。ようやく実行しました。

    現行バージョンで 2 個しかない(!)nib ファイルを 10 個にまで分割。最新マシンでは微妙ですが、うちの初代 iBook G4 では、体感できるほど起動速度が向上、(閉じたウィンドウはがんがん解放するので)起動中の占有メモリも減少しました。

    このとき「AppleScript Studio アプリで、Objective-C/Cocoa を使って nib ファイルを読み込む」という、極めてまれな状況下で、大きな落とし穴を発見。恐らく誰もそんなところには行かない(!)と思うので、ここでは説明を割愛しますが、万が一そんなことをしようと思っている人がいたら、ご連絡を。

  2. データの保存先を Core Data に変更

    Kaku には「データをほぼ全部初期設定ファイルに保存する」という、とても大きな声では言えない悪癖があるのですが、これを断ちます。

    これは 50% 弱完了。前述のような横着をしているせいで、訳の分からないグルーコードを大量に作る羽目になっているので、この修正でコード量が結構減ると思います。

3. The Cocoa XML-RPC Framework のひとつ上のレイヤーを、Cocoa で書き直し

…とここで、またもや中断。別の作業を開始します(手を広げ過ぎ)。

Kaku では、The Cocoa XML-RPC Framework を採用しているのですが、これを使えば簡単にブログエディタが作れる、というわけではありません。

例えば、ひとつの XML-RPC メソッドの実行をラップするような、新しいメソッドを作るのは簡単です。たぶん、メソッドの中で、モデルオブジェクトから、ブログ ID・ユーザー名・パスワードなどを取り出して、パラメータの配列を作って、XML-RPC フレームワークを使って、サーバーにリクエストを送ればよいでしょう。

が、記事の新規作成・更新・削除といった、多様なメソッドを作りたい場合、(特にユーザー名・パスワードは毎回呼び出すことになるのに)そのメソッドごとに前述のような「あそこからアレを取り出して…」(なんか公序良俗に反するような表現しかできない…笑)というようなコードを書くのは非常に無駄になります。やはり、XML-RPC メソッド名を渡すだけでパラメータを準備してくれるような、上位レイヤーが必要です。僕がイメージしているのは、こういうヤツ:

…のつもりだったのですが、今見たら全然違うような…(笑) ともかく、ただ単にメソッド名とパラメータを渡して XML-RPC するだけでない、上のレイヤーが必要だ、ということです(無理矢理)。

で、これまでの Kaku では、この部分を「XMLRPCManager」というスクリプトオブジェクトが担当しており、しかもこの部分は Kaku のリリース当初からそんなに大きく変わっていない、という実績があるのですが、いろいろ例外を許すような設計になっていたので、非常にメンテナンスしづらい状態になっているため、これを汎用性に重きを置きながら、Cocoa で書き直しています。

この作業をするメリットは、iPhone への移植が容易になる という点。関係ないけど、ちょっと前はこういうこともしていたことですし…:

4. 1 に戻る(今ここ)

…というわけで、最近更新が滞っていたのは、結構熱心に Kaku を改善していた + その他 という理由が大きいのですが、もうひとつ、「すでに img タグ挿入支援機能改善のアイデアがいくつか浮かんでいるので、それがまだ使えない Kaku で記事を書くのがめんどくさく感じてしまう」という、作者にあるまじき理由(!)も、実はありました。

が、2、3 の完了はかなり時間がかかりそうなので、このままではいつまでたっても記事が書けません。そこで、現行の最新バージョン 1.3.2 からブランチを切って、とにかく img タグ挿入支援機能の改善を進めてみることにしました。

2、3 は、ほとんど苦行のよう(フルスクラッチで書き直すよりちょっと楽なぐらい)なのですが、img タグ挿入支援機能の改善は比較的早く進み、とりあえず一晩で、2 つ画像を用意すると、簡単に画像リンク(以下を参照)を作れる(ブログエディタの画像挿入機能としては珍しい方式だけど、僕はよく使います)ところまではできました。試してみます:

UI はまだかなりひどいですが、こんな感じ:

これに、サムネイルの自動生成(この方式がポピュラーですね)、WordPress などブログシステムが生成したサムネイルの利用、簡単な画像の編集(かなり厳しいかもしれないけど、拡大縮小・切り抜きなどができれば…)などを追加できれば…と思っています。

長過ぎるので、この辺で。

One thought on “近況報告(1)

  1. Pingback: ppmweb » Blog Archive » 最近読んでいる本

Leave a Reply

Your email address will not be published. Required fields are marked *