self memo

タグ:モバイル ( 3 ) タグの人気記事

「一日一選」というサービスを作ってみた

先週から今週にかけての間で、「一日一選」というサービスを作ってみた。
一日一選
モバイル向けのみだけど、何とか動くようになったかと。

このサービスの主な機能は、モバイルから画像をメール投稿出来るだけだ。
ただそれだけ。
しかも、1日に投稿できる画像は1枚のみっす。
※同日に再投稿すれば、上書きされる

元はといえば、このサービスは奥さんの企画だ。
珍しく奥さんと意見が一致した、記念すべきサービスなのである。
これぞ正しく、"初めての共同作業"。

私のように、携帯のカメラ機能を全く使えていないような人がもしいたら、お気軽に使ってみて頂けるとありがたいっす。

継続してみると、面白い物が出来るはず!と信じて、まずは自分だけでも使ってみようと思います。
[PR]
by aratafuji | 2008-12-17 00:31 | つぶやき

CakePHPでのサービス開発

今日からCakePHP(1.2)を使って、新しいサービスを作り始めてみた。

今日やった事のメモ。

Net_UserAgent_MobileをcakePHP1.2RC2で使う
[cakePHP1.2]モバイルサイトとPCの切り分け その2
CakePHP 1.2で携帯用ビューを表示する
CakePHP 携帯専用サイトを作成する
上記の記事を参考にして、以下のコンポーネントを作成。
app/controllers/components/mobile.php

App::import('Vendor', 'pear_ini');
App::import('Vendor', 'Net/UserAgent/Mobile',
array('file' => 'Net' . DS . 'UserAgent' . DS . 'Mobile.php'));

class MobileComponent extends Object {
function startup(&$controller) {
$this->controller = $controller;
$mobile = &Net_UserAgent_Mobile::factory();
// 非モバイル
if ($mobile->isNonMobile()) {
// PCからモバイル用のURLにアクセスがあった場合は、PCのURLにリダイレクト
if(preg_match("/^m\//", $this->controller->params['url']['url'])){
$url = '/'.preg_replace("/^m\//", "", $this->controller->params['url']['url']);
$this->controller->redirect($url);
}
// モバイル
}else{
// モバイルからPC用のURLにアクセスがあった場合は、モバイルのURLにリダイレクト
if(!preg_match("/^m\//", $this->controller->params['url']['url'])){
$url = '/m/'.$this->controller->params['url']['url'];
$this->controller->redirect($url);
}
// Docomoでguid=ONが付いていなかったら付ける
if ($mobile->isDoCoMo()) {
if(!isset($this->controller->params['url']['guid']) or
$this->controller->params['url']['guid'] != 'ON'){
$url = '/'.$this->controller->params['url']['url'].'?guid=ON';
$this->controller->redirect($url);
}
// 全てのリンクに、guid=ONを付ける処理
output_add_rewrite_var('guid', 'ON');
}
// UID取得
$this->controller->uid = $mobile->getUID();
// SoftBankは下15桁を使う
if ($mobile->isSoftBank()) {
$this->controller->uid = substr($this->controller->uid, 1, 15);
}
}
}
}
?>

このコンポーネントを、app/app_controller.phpで読み込むようにした。
app/app_controller.php
class AppController extends Controller {
// 共通コンポーネント
var $components = array('Mobile');

// 共通ヘルパー
var $helpers = array('Html', 'Xml');

// UID
var $uid;

function beforeFilter() {
}
function beforeRender() {
if (isset($this->params['prefix']) or isset($this->uid)){
// モバイル用レイアウト設定
$this->layout = 'mobile';
// モバイル用ヘルパー設定
array_push($this->helpers, 'Mobile');
}else{
// PC用レイアウト設定
$this->layout = 'pc';
}
}
}
?>

prefixの設定は、以下の通り。
app/config/routes.php
    Router::connect('/m/', array('controller' => 'pages', 
'action' => 'index', 'prefix' => 'mobile'));
Router::connect('/m/:controller', array('prefix' => 'mobile'));
Router::connect('/m/:controller/:action', array('prefix' => 'mobile'));
Router::connect('/', array('controller' => 'pages', 'action' => 'index'));

※本来は下2行だけで良いはずなのだが、それだとモバイルのTOP(/m/)にアクセスすると、うまく動かなかったため、暫定的に上2行も記述。こちらは引き続き調査する。

後は、各コントローラーにPC用のアクション(index)とモバイル用のアクション(mobile_index)を実装し、各ビューも、PC用のビュー(index.ctp)とモバイル用のビュー(mobile_index.ctp)を作成。

ここまでで、PC、モバイルのアクション、ビューの切り分け、モバイルの場合はUID取得まで出来るようになった。

一番はまったのは、エラー(404とか)用ビューの切り分け。
上記prefixの設定で、PCでの404はapp/views/errors/error404.ctp、モバイルでの404はapp/views/errors/mobile_error404.ctpが呼び出される事を期待したが、うまくいかず…。
携帯サイトの404ページの作成方法
こちらを参考にしてみても、
$this->viewVars['code']
には何もセットされない…。
[php][CakePHP]viewVarsって使っていいの?
これとか見ると、そもそもviewVarsは参照しちゃダメっぽかったので、結局はエラー用のビューを以下のようにして、PCとモバイルを切り分けた。
app/views/errors/error404.ctp

if(isset($this->params['prefix'])){
echo $this->renderElement("mobile_header");
}else{
echo $this->renderElement("header");
}
?>
ページが見つかりません
if(isset($this->params['prefix'])){
echo $this->renderElement("mobile_footer");
}else{
echo $this->renderElement("footer");
}
?>


今までCakePHPはチュートリアル見てサンプル程度しか書いた事無かったけど、いざ使い始めてみるとかなり楽しい!

明日からも没頭して、今週中にサービスを立ち上げたいと思う。
[PR]
by aratafuji | 2008-12-09 02:38 | レポート

大学生向けSNS

DormItem、地域別の大学クラシファイド広告
Campus Reader、カレッジニュースをアグリゲート

この辺の記事を見て思ったのだが、日本でも大学生向けに特化したサービスで成功しているところってあるんだろうか。
SNSナビで探してみるとそこそこありそうだが、うまくいってるのかどうか全く分からない。
http://www.snsnavi.jp/list/05/35/
http://www.snsnavi.jp/list/05/37/

まあ、facebookの成功は有名だろうから、日本でも同じ事を考えている人はたくさんいるだろうけど…。

例えば登録は実名(名前、大学名、学部名、学年)登録を原則とし、
サービスとしては、

■スケジュール共有(オンラインカレンダー)機能
- 友達、ゼミ仲間、サークル仲間とかをグループ分けして管理
- 時間割、個人スケジュール、サークルスケジュール管理
- グループ毎の一斉メール、チャット、情報共有(掲示板?)

■C2C(クラシファイド)
- 教科書、参考書から家電まで色々
- レポート代行、代返アルバイト…

■出会い
○普通の出会い
- メアド知らなくてもアタック可能
- サークル勧誘(スパム?)
○サークル対戦相手募集
- 大学をまたいで

とか出来たら便利で楽しいかと思った。
※もちろん、モバイルでの利用が前提

そんな事考えていたら、同僚からe-collegeというサービスを教えてもらった。

口コミでの履修情報や試験情報は自分のイメージに近いなと思ってたら、合コン広場(合コン検索サービス)なんて素晴らしいサービスを発見!
でもよくよく見てみたら、提携カードを作った人(特待生)のみが利用可能との事…。
なんてクローズドなサービスなんだ!(怒)
[PR]
by aratafuji | 2006-11-25 19:09 | レポート