【Ktai】「Ktai Library0.0.2」を公開いたします

icon_ktaiお待たせいたしました!
Ktai Library0.0.2を公開いたします。
上記タブにある 専用ページ からダウンロードできます。

本バージョンは前バージョンと比べて桁違いの機能を搭載しております。UTF-8対応をはじめ、画像のストレッチ機能・mailto機能など、おいしい機能満載です。
是非ご活用ください!

ちなみに次のバージョンは、ちょっとやることが満載になってきましたので結構間が空くと思います。やるとしたら、おそらくダウンロード機能かな、と思います。

まあこんな感じですので、機能追加していただける奇特な方がいらっしゃいましたら大歓迎です(笑)。マージ可能なものはしたいと思いますので、是非ご連絡ください。

【Ktai】最終リリース候補版(RC4)をテストしています。

icon_ktaiお待たせして申し訳ございません。
Ktai Library0.0.2の最終リリース候補版(RC4)をテストサイトでテストしています。
問題がなければ、こちらでリリースをします。DoCoMoとAUの携帯でOKの結果が出たらアーカイブを作って上げますので、端末をお持ちの方は申し訳ございませんが是非ご協力をお願いいたします。

▼「Ktai Library」機能チェックサイト
http://ktai-test.ecworks.jp/

生け贄な方(笑)からのご報告をもとに、EUCなどの携帯で一般的にサポートしていない文字コードからでも問題なくコンバートして表示できるように改良しました。絵文字コード関連のソースはかなり改良し、おかげでムダも少なくなりました(逆にdocomoの場合はムダが増えたかもしれませんが)。
emoji関数の引数に変更があり、互換がとれない場合があります。既に導入しているサイトにバージョンアップする際には若干注意が必要です(しかし、大抵は省略されている引数なので問題はないと思います)。

また、大きく変わった点として、文字コードの自動コンバートが追加された点(これはUTF-8に対応した時点でつけました)がありましたが、これと前バージョンからある絵文字の自動変換についてはコンポーネントではなくヘルパーでやることにしました。このため、コントローラで機種判定をするなどの処理をしなければ、コンポーネントは実質不要となります。helperからoutputを取るのに大変に苦労しました。outputの取り方は別記事で書きたいと思います(でも、分かってしまえば「なんだ~」と言ってしまうくらい簡単です)。

【Ktai】機能チェックサイトがVer0.0.2beta3になりました

icon_ktaiお待たせいたしました!
Ktai Libraryのバージョンがbeta3版となり、問題なければこのバージョンをアーカイブ化してリリースしようと考えています。もしよろしければお持ちの携帯でお試しいただき、ボタンクリックで動作確認をご報告いただけますと幸いです。

▼「Ktai Library」機能チェックサイト
http://ktai-test.ecworks.jp/

今回の目玉は、なんと言っても「画像ストレッチ」機能だと思います。この指定をすることで、どの携帯でも同じようなレイアウトで画像が閲覧できるようになります。ソフトバンク携帯の高解像度機種(ビエラ携帯・AQUOS携帯など)での悩みのタネでしたが、これで解決です!!

また、HelperにControllerで指定したパラメータを送り出す仕組みを「結局」搭載しました。
CakePHP1.2では、通常の方法でControllerのインスタンスを参照することが出来なくなってしまいました。なので、仕方がなく「Configure」を活用することにしました。基本的な値の受け渡しはこちらで行うことで、Controller内でKtaiHelper内へ値を送り込むことが出来ます。
コンポーネントを利用する場合は、自動的にConfigureを生成する仕組みがあるため、Helperに値を送ることを気にする必要がありません。コンポーネントを利用しない場合は、独自でConfigure::write()をする必要があります。値が設定されていれば、Helper内で勝手に見つけて反映します。なお、Controller内でいくら値を変えたとしても、結局はrender()を実行するまでHelperは動作しないため、Controller内での処理の最終の値がHelperに渡ることになります。

具体的な使用方法はここでは割愛しますが、出来るだけめんどくさくないようになっています。
また、0.0.1ではパラメータがライブラリ内の値とHelper/Componentそれぞれに別々のコピーがある仕様になっていましたが、全部ライブラリ内の値を参照するようにしたため、変なバグは生まれなくなったかと思います(最初からこうするべきでした)。使い勝手は確実にあがっていますのでご安心ください。

なお、リリース前に生け贄(笑)になりたい方も若干名募集したいです。
もし興味がありましたら、コメント欄にお願いします。
コメントフォーム内にあるメールアドレスにご案内をさせていただきます(確実に連絡の取れるアドレスでお願いします)。なお、コメント欄内のメールアドレスは公開されることはありませんが、コメントについてもこちらで非承認・削除としますので、プライバシーは一応保護されます。

新バージョンリリースまでもう少しですが、もうしばらくお待ちいただきますようお願いいたします。

【Ktai】バージョン0.0.2進捗報告(というかお詫び)

icon_ktai心待ちにされている方には本当に申し訳ございません。

Ktai Library 0.0.2なのですが、リリースが遅れております。
当方の本業の方が大変にテンパっている状況でして、作業時間を割けないのが理由です。毎日終電間際なので、家に帰ってから、というのがなかなか難しい状況でして…
土日も予定が詰まっていまして、本日(4/4)は自宅で引き続き業務をしておりまして、明日の朝未明がデッドラインという状況。明日は免許の更新ということで、鴻巣の免許センターに行ってくるという感じです。夕方頃からようやく時間が出来るかな、という感じですね。

来週は確実に作業時間が持てそうです。
というのは、本業でもKtaiLibraryが動いているのですが、例の「画像ストレッチを早く作ってくれ」という依頼がありましたので、それをやりつつバグフィックスをするという感じで、時期バージョンに搭載するつもりだったものも先取りできそうな感じです。すんなり動いてくれるのなら、こいつも搭載したものが0.0.2となる予定です。

それとは別に少々困った問題もあり、改良するか持ち越そうか迷っているものもあります。というのは、現状の仕様(というか元々のCakePHPの性質なのですが)、コントローラ側からktaiヘルパーの制御が難しく、コンポーネントで設定した内容をヘルパー内でも再定義しなければならないのが非常にめんどくさいため、定義関連をコントローラ内のプロパティにするか、Configure利用で表現しようかと考えています。実は機能確認サイトで文字化けしていたのは、ヘルパーとコンポーネントの文字エンコーディングに差があったことでコンバートがうまくできていなかったのが原因でした(helperのエンコーディングがSJISのままでした)。この改良をすることで、コンポーネントとヘルパーの設定に差が出なくなる(バグを生みにくく出来る)こと、それから毎度ヘルパーを書き直す必要がなくなり、ktaiヘルパーのバージョンアップなどで苦労しなくなる、という事があるので、今のうちに改良してしまいたい方向です。もしご意見ありましたらいただければ…

作業が止まってしまっていることで、お待ちいただいている方には本当に申し訳ございませんが、もう少しお時間をください。

【Ktai】重要度の高いバグのお知らせと対処方法

icon_ktaiバージョンアップ版をなかなか更新できなくて申し訳ございません。仕事の方が緊急で忙しくなってしまい、現在また徹夜です(大汗)。本日がとりあえずの山場になりそうなので、もう少しお待ちください。

お待ちいただく間に、一つ重要度の高いバグを見つけました。ご報告と共に、対処方法をお知らせいたします。

【現象】
リダイレクトを行うと、予定していた場所に飛ばない、もしくはループする。

【理由】
Ktaiコンポーネントのextendsが「Object」ではなく「Component」になっていたため

【対処方法】
1:extendsを修正
class KtaiComponent extends Component {

↓↓↓

class KtaiComponent extends Object {

2:initialize()とshutdown()内に含まれている「parent::~」を削除

以上で正常動作をすると思います。
完全に私のポカミスです。
申し訳ございません。

kenji0302さんが指摘されていましたが、上記の対処が正式だと思います。
いつもありがとうございます。

なお、かる~い進捗ですが、「UTF-8絵文字の報告終了後の文字化け」は、どうやらサイト側の問題でした。文字エンコーディングの設定がされていない部分を見つけましたので、おそらくSJISコードをUTF-8内で表示しているだけだと思います。一応念のために対策をしたコードが用意できましたが、まだサイト等には上げていません。
そしてmailtoの不具合ですが、こちらはまだ未解決です。仕事が忙しくて実際に検証が出来ていません。
他には特に問題が出ていなそうなので、こちらの方を解決した後にとりあえず公開しようかと考えています。一つ厄介な問題を見つけたのですが、こちらは根が深くて考え中が、実害はないとは思います。簡単に書くと「直接emoji()で作った絵文字をさらに全体変換してしまう…つまり二重変換の可能性が出ているのですが、docomoとAUはかぶっているコードがないので、とりあえずは大丈夫ではないか…という感じですね。

げーもう4時過ぎか…
とりあえず仕事に戻ります。

【Ktai】中間報告とか今後のお知らせとか

icon_ktai思いっきり体調崩しています。
仕事のほうで少々トラブルがあり、昨日徹夜をしてしまった影響が。
以前なら1週間徹夜続きとかザラだったんですけど…もう若くないなぁ、なんて(^^;;;

というわけで、Ktai Libraryの中間報告なのですが、emoji_tableを大幅に変えたバージョンが動き始めてきました。DoCoMoはとりあえずShiftJISとUTF-8がばっちり表示できるようになりました。
問題はAUで、何故かというと端末を持っていないのです(大汗)。まあ会社で試せば(というか試してもらえば)いいのですが、Ktai Libraryは基本的に個人的なものなので他の人に頼みにくい(大汗)。シミュレータでUTF-8試せるのかな?
SoftbankはShiftJISもUTF-8も同じコードであることは確認しているので、こちらは問題なし(と思われます)。
なので、とりあえずはUTF-8化は目処がつきました。

次に問題になるのはSJIS←→UTF-8の相互変換部分なのですが、やはりコードそのものを直接変換するのは難しいです。文字化けした状態のコードをテーブル化するアイデアもあったのですが、PHPの方でルールが変わってしまったりすると困るので、いまのところは&#xxxxx;で置き換える方式が有力です。つまり、次のように変換を行います。

【SJIS→UTF-8の変換】
1 : 絵文字変換。DoCoMoとAUはSJIS→&#xxxxx;(UTF-8コード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(UTF-8コード)→UTF-8で置き換え(DoCoMoとAUのみ)

【UTF-8→SJISの変換】

1 :絵文字変換。 DoCoMoとAUはUTF-8→&#xxxxx;(SJISコード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(SJISコード)→SJISで置き換え(DoCoMoとAUのみ)

処理コスト削減として、3をやらないオプションも付ける予定です。

それから、これはちょっと違う話なのですが、現在仕事で携帯サイトを作っていまして、そちらの方はほぼ落ち着いたので、その時の開発話などを今後少し語っていきたいと思います。CakePHPを使っていますし、今回発表していますKtaiLibraryも、原型バージョンをこのサイトで使っています。それから忘れてはならないのはTplcutter。もちろんこの開発でも使っています(0.2.0版です)。おそらく、一般公開サイトで、外注にTplcutter向けテンプレートを作らせて、しかも携帯サイトだった開発は今回初めてだと思います。CakePHP + Tplcutter + Ktai Libraryの3セットで開発ができたので、自分でも大変に良い経験になりました。サイトのサービスインがまだなので、それが過ぎたら公開しますね。