Catalyst でテンプレートをPCとモバイルで分ける

にはどうするのが良いのだろう?と思って、使用例を調べました。

MobileCat の場合
http://mobilecat.koneta.org/static/doc/
TTのWRAPPERを2段構えにしている。

id:orangevtr さんの場合
http://d.hatena.ne.jp/orangevtr/20081116/1226817452
View::TT の process() をオーバーライドして、テンプレート探索パスを変えている。

自分のニーズとしては、PCとモバイルで結構デザインが変わる可能性があるので、後者がよさそうです。
で、Catalyst::View::TT のマニュアルを読んでみたらコントローラ内からも INCLUDE_PATH を追加できるようなので、process() 上書きでなくこっちの方法にしてみることに。
http://search.cpan.org/~bobtfish/Catalyst-View-TT-0.34/lib/Catalyst/View/TT.pm#DYNAMIC_INCLUDE_PATH

こんな感じに Root.pm の end に書けば、おおむね同じことかな、と。
(携帯判定には Catalyst::Plugin::MobileAgent を使います)

sub end : ActionClass('RenderView') {
    my ( $self, $c ) = @_;
    # pc と mobile でテンプレートパス切り替え
    if ($c->request->mobile_agent->is_non_mobile) {
        $c->stash->{additional_template_paths} =
            [$c->config->{root} . '/pc'];
    } else {
        $c->stash->{additional_template_paths} =
            [$c->config->{root} . '/mobile'];
    }
}

他に現在のスタンダード的手法があったら教えてほしいのココロ。