【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セットで開発ができたので、自分でも大変に良い経験になりました。サイトのサービスインがまだなので、それが過ぎたら公開しますね。

【Ktai】Ktai Libraryが海外サイトでも捕捉されたみたいです…が

icon_ktaiKtai Libraryですが、なんか知らない間に海外サイトに取り上げられたようです。

▼Japanese Mobile Support for Cake PHP
http://blog.mobalean.com/2009/03/16/japanese-mobile-support-for-cake-php

何かいろいろと書かれているみたいですが…(大汗)
「オブジェクト指向に従っていない」「ヘルパー・コンポーネントで同じ関数を複製している(Railsで言うFowardable moduleのようになっていない)」みたいなことが書かれていますが、言い分は何となく分かるのですが、それをあえてやっていない理由をくみ取っていただけなかったのは残念だなぁ…
「キャリアコード」云々と言っている部分は意味が良く分からなかったんですが、要は「もっとシンプルに書ける」って事でしょうか。まあ「キャリアコード」というのは後から書いた部分なので、無駄があるのは承知してますので、今後の対応ですかね。

ちょっと大人げなく反論してみました(^^;;;
というか、海外でダウンロードされることはまったく予期していなくて、しかも国内よりも早く、具体的にソースの感想が述べられていたのは驚きでした。そういった意味で感謝。

【Ktai】「Ktai Library」のちょっとしたTipsとか

icon_ktaiとりあえず版ということで、Ktai Library を公開したわけですが、思った以上に反響があり嬉しく思います。特に ktai.org さんに取り上げていただいたことでかなりのアクセス数があります(現在進行形です)。本当にありがとうございます。CakePHPフォーラムの方は、後で自作自演しようかと思いましたが、newsに先を越されてしまいました(笑)。こちらもありがとうございます。

とにかく急いで上げたためにいろいろと落ち度がありますが、そのフォローも含めていくつか情報を書きたいと思います。

■UTF-8で製作したページを無理矢理利用する方法

Ktai Libraryでは、今のところUTF-8での利用を推奨しておりませんが、(たぶん)使えないわけではないと思いますので、一応やり方を記載しておきます。試していないので、出来ない場合はご容赦を。

CakePHP1.1等古いバージョンでは、afterRender()内でob_get_clean()でアウトプットをゲットしてコンバートする手法が一般的ですが、最近のバージョンはこのやり方では出来ません。何故かというと、バッファにはまだ書かれていなくて、コントローラ内の$this->output内に格納されているからです。なので、afterRender()内で、$this->outputを、mb_convert_encoding()でコンバートします。

しかし、これだけでは「絵文字が化けてしまう」問題が発生する場合があります。化けるのは「文字コードを直接指定した場合」です。つまり数値指定(&#xxxxx;)の場合は大丈夫なはずので、これを利用すれば実現が可能だと思います(数値はShiftJISのもので)。ちなみに、Ktai Libraryを通すと、これらは全て文字コード等に変換されます。

■「機種判別」について

公開サイト内で「機種判別」と書いてしまって大変に申し訳なかったのですが、現時点で「キャリア判別」は出来ますが、「機種を特定する」ことはできません。
これについては、現在機種情報を調べる仕組みを準備しております。機種(AUはデバイスID)だけでなく、画面サイズなどの情報も入手出来ます。Ver0.0.2で搭載予定です。データは既に準備しましたので、あとは関数部作成と他の機能の作成待ちです。おかげでファイルサイズは5倍になりました(笑)。

■次バージョンの話

上記の機種判別の件もそうですが、次バージョン(Ver0.0.2)は次の機能がつく予定です。

  • 機種情報の入手(上記の通り)
  • PHS対応
  • 機種毎の表示画像のフィッティング

上から2つは確実ですが、最後のはもしかしたら落ちるかもしれません。
PHSとEMOBILEについては一部情報が不正確かも知れません(正確なデータが公開されていないため)。

■その他(言い訳とか)

なんか「Ktai Library」をインストールさえすれば、携帯サイトが出来てしまう…と思われがちなのですが、言い訳しますと、あくまでも「サポート」はしますが、実際には他にも自前でケアしないと出来ないと思います。例えばiMODEでは未だにPNG画像は表示できませんので、自前でファイルを選択するような記述は必要ですし、ページ構成の都合上、実質PCサイトとの振り分けは必要だと思います。
本ライブラリは、現時点では「毎度書いていた携帯関連の関数をライブラリ化した」程度のものですので、そのつもりでいただけると。もし「こんなのがあったら」というようなものは、コメント欄などで書いていただければ、頑張ってみたいと思います。

なお、「iMODE時のセッション対応」について、本来なら「これこそ」ライブラリーに搭載するべきなのですが、環境に依存する部分もあり、ライブラリとしての提供は少々難しいかと感じます。うまいやり方が思いついたら搭載します(もしくは、その部分部分をライブラリ化するのは有りなんじゃないかとも考えています)。

【Ktai】携帯ライブラリ for CakePHP1.2公開

icon_ktaiお待たせしました!
CakePHP1.2用の携帯ライブラリを公開いたします。
上記のリンクをたどっていただくか、こちら からどうぞ!

昨日公開のつもりでいましたが、アーカイブ一式を自宅に忘れてしまい、昼アップが出来ませんでした。しかし、ソースの手直しできる時間が出来たため、昨晩改良を行い、コンポーネントも作成したりと若干パワーアップしました。
まあでも、現時点でぶっちゃけ機種判定・絵文字・メアドチェックの3種類しかできないのですが、少しずつバージョンアップしていきますので、宜しくお願いいたします。

ちなみに、開発中にいくつか有用なTipsが見つかりましたので、後日ご紹介したいと思います。

【ktai】携帯ライブラリ&CakePHP1.2用ヘルパーの公開(予定)

icon_ktaiサイトの方が準備できてしまったので、先にサイトを公開いたします。表題の通り、CakePHP用の携帯サイトヘルパーです。

詳しくは上記メニューをたどっていただくか、 こちら をご覧ください。
ダウンロードは明日(12日)昼までには出来るようにします。

【追記】
公開しました。上のリンクか こちら からどうぞ!

【CakePHP】新しいプロジェクトの公開を予定しています

cake-logoゴメンナサイ… Tplcutterじゃないんです(大汗)。

というわけで、ECWorksブランド(?)第3弾として、新プロジェクトを明日公開いたします。予定では昼頃にダウンロードいただけると思います。
それほど大げさなものではないのですが、ちょっと最近取り組んでいたサイトで必要になり、過去に制作したものをCakePHP用にリファインしたものになります。ネタ的にはいくつか出回っていたりしますが、現時点でこれといって有効なものがないため、公開してみる次第です。ついでに今風の「あるもの」にも対応して、まあちょっとしたものなら手軽に使えるかなと思います。

本当は機能をもりもり入れてちゃんとしたものにすべきなんでしょうけど、必要最低限という感じのものをとりあえず公開します。他のプロジェクトと同じくバージョン0.0.1からスタートしますので、こちらの方もどうぞよろしくお願いいたします。

【追記】
ごめんなさい。公開用ファイル一式を持ってくるのを忘れてしまったため、アップロードが出来ないというマヌケな事態になりました(大汗)。

すみませんが明日(2009/3/12)に順延させていただきます。

【追記】
公開しました。上のリンクか こちら からどうぞ!