カヤックが中心になってオープンソースで開発しているPerlのWebフレームワークArk を使って、モバイルサイトを構築するための、便利なArk拡張モジュールをまとめて公開いたします。
ArkはCatalystというPerlのWebフレームワークを参考にしており、Catalystを使ったモバイルサイト構築にはMobileCatというプロジェクトが非常に参考になります。
今回のArk拡張モジュールは、MobileCatとその使用しているCatalystモジュールをArk向けに移植したものが多いです。
Arkを拡張する時の拡張方法の目安にもなるのではないでしょうか。
1. Ark::Controller::MobileJP
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Controller/MobileJP.pm
モバイルサイトでは、携帯のユーザーエージェントやIPアドレス、携帯の端末IDを使用して携帯か否か判断することがあります。
その機能を支援するためのモジュールです。
2. rk::Plugin::MobileAgent
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/MobileAgent.pm
携帯のユーザーエージェントをパースし、機種情報を得るためのモジュールとして、HTTP::MobileAgent があります。
Ark::Plugin::MobileAgentは、Ark::Requestにmobile_agentメソッドを追加し、Ark::Requestから簡単にHTTP::MobileAgentを取得できるようにしたものです。
3. Ark::Plugin::Session::State::URI
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/Session/State/URI.pm
一部の携帯キャリアの機種では、Cookieをサポートしていないものがあります。
このモジュールを使うと、Cookieをサポートしていない機種で、セッションの状態をリクエスト間で保持するために、URIの最後にセッションIDをつけます。
4. Ark::Plugin::RelativeURI
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/RelativeURI.pm
携帯の端末IDを取得するために、次のArk::View::MobileJpFilterを通してHTML::StickyQuery::DoCoMoGUID を使用し、リンクにguid=ONをつけます。
HTML::StickyQuery::DoCoMoGUIDは絶対パスの場合、guid=ONをつけませんので、$c->uri_forで相対パスにするモジュールです。
5. Ark::View::MobileJpFilter
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/View/MobileJpFilter.pm
モバイルサイトの構築では、HTMLは3キャリア共通で書き、最後にHTMLを機種/キャリア毎に異なるフィルタにかけて出力する、という方法を使う場合があります。
このモジュールを使うとHTML::MobileJp::Filter を利用して上記のことを行うことができます。
6. Ark::Plugin::Authentication::Credential::MobileID
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/Authentication/Credential/MobileID.pm
携帯の端末IDを使用してユーザー認証をする場合には、このモジュールを使います。
ArkはCatalystというPerlのWebフレームワークを参考にしており、Catalystを使ったモバイルサイト構築にはMobileCatというプロジェクトが非常に参考になります。
今回のArk拡張モジュールは、MobileCatとその使用しているCatalystモジュールをArk向けに移植したものが多いです。
Arkを拡張する時の拡張方法の目安にもなるのではないでしょうか。
- Ark::Controller::MobileJP
- Ark::Plugin::MobileAgent
- Ark::Plugin::Session::State::URI
- Ark::Plugin::RelativeURI
- Ark::View::MobileJpFilter
- Ark::Plugin::Authentication::Credential::MobileID
1. Ark::Controller::MobileJP
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Controller/MobileJP.pm
モバイルサイトでは、携帯のユーザーエージェントやIPアドレス、携帯の端末IDを使用して携帯か否か判断することがあります。
その機能を支援するためのモジュールです。
2. rk::Plugin::MobileAgent
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/MobileAgent.pm
携帯のユーザーエージェントをパースし、機種情報を得るためのモジュールとして、HTTP::MobileAgent があります。
Ark::Plugin::MobileAgentは、Ark::Requestにmobile_agentメソッドを追加し、Ark::Requestから簡単にHTTP::MobileAgentを取得できるようにしたものです。
3. Ark::Plugin::Session::State::URI
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/Session/State/URI.pm
一部の携帯キャリアの機種では、Cookieをサポートしていないものがあります。
このモジュールを使うと、Cookieをサポートしていない機種で、セッションの状態をリクエスト間で保持するために、URIの最後にセッションIDをつけます。
4. Ark::Plugin::RelativeURI
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/RelativeURI.pm
携帯の端末IDを取得するために、次のArk::View::MobileJpFilterを通してHTML::StickyQuery::DoCoMoGUID を使用し、リンクにguid=ONをつけます。
HTML::StickyQuery::DoCoMoGUIDは絶対パスの場合、guid=ONをつけませんので、$c->uri_forで相対パスにするモジュールです。
5. Ark::View::MobileJpFilter
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/View/MobileJpFilter.pm
モバイルサイトの構築では、HTMLは3キャリア共通で書き、最後にHTMLを機種/キャリア毎に異なるフィルタにかけて出力する、という方法を使う場合があります。
このモジュールを使うとHTML::MobileJp::Filter を利用して上記のことを行うことができます。
6. Ark::Plugin::Authentication::Credential::MobileID
http://github.com/typester/ark-perl/blob/284ab0ed1ca990804771a77d8755c7b601abae42/lib/Ark/Plugin/Authentication/Credential/MobileID.pm
携帯の端末IDを使用してユーザー認証をする場合には、このモジュールを使います。