ここ約2ヶ月間は、いつにも増して筆無精になっていました(すみません)。
その理由は、リアルの用事(?)が増えた、というのもあるにはあるのですが、意外と熱心に Kaku の開発を続けていた、ということもあります。まずは、そのご報告から…
Kaku 進捗
1. img タグ挿入支援機能の改善を進める
これまでは、
- 「Kaku イメージタグ」という独自のタグを、img タグの代わりに挿入 → 記事の投稿時に HTML img タグに変換
という方式をとってきましたが、この分かりにくい/操作ミスの恐れがある「Kaku イメージタグ」を廃止し、ちょうど Mail.app のアドレス欄のように、はっきり本文と区別して表示する、というところまでやりました。まだ完成していませんが、こんな感じ:
2.(たぶん広義の)リファクタリングを開始
が、1 まで進んだ後、(自分で言うのもなんですが)Kaku の内部構造のひどさに、ついに○狂、これがブログへの投稿を鈍らせる最初の原因になったのですが、いつもやろうと思っていった内部構造の見直しを、今度こそ徹底的にやる、という決意をしました。
その主なメニューは:
- nib ファイルの分割
-
これは以前メールでアドバイスを頂いていたことです(ありがとうございます)。ようやく実行しました。
現行バージョンで 2 個しかない(!)nib ファイルを 10 個にまで分割。最新マシンでは微妙ですが、うちの初代 iBook G4 では、体感できるほど起動速度が向上、(閉じたウィンドウはがんがん解放するので)起動中の占有メモリも減少しました。
このとき「AppleScript Studio アプリで、Objective-C/Cocoa を使って nib ファイルを読み込む」という、極めてまれな状況下で、大きな落とし穴を発見。恐らく誰もそんなところには行かない(!)と思うので、ここでは説明を割愛しますが、万が一そんなことをしようと思っている人がいたら、ご連絡を。
- データの保存先を 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 などブログシステムが生成したサムネイルの利用、簡単な画像の編集(かなり厳しいかもしれないけど、拡大縮小・切り抜きなどができれば…)などを追加できれば…と思っています。
長過ぎるので、この辺で。
“近況報告(1)” への1件のコメント
[…] の説明 を思い出しました。XML-RPC はまさにこういうところが難しいので 悩んでいる というか…(「The Cocoa XML-RPC Framework のひとつ上のレイヤーを、Cocoa […]