loctouch_title06


はじめに


こんにちは、平野です。
ロケタッチではアシスタントプログラマーという立場で、本連載の第4回に登場したメインプログラマーの吉川さんのお手伝いをしています。あとケータイ版や、社内向けの管理画面なども担当しました。

RD6W0206



お手伝い


お手伝いの具体的な内容は、吉川さんが私に「○○な機能を作って」と指示を出すので、それを作ります。
ですがプログラムの主要な機能は吉川さんが既に用意しているので、私がすることはそれらを利用して、必要なデータを処理・操作するだけです。なので、私がゼロから機能を作った部分は少ししかありません。また、プロデューサー/ディレクターから指示をもらうこともあります。

そのお手伝いの際に、当然吉川さんのコードを読むことになるのですが、これがとても勉強になりました。また、私がコミットした部分が、後に吉川さんによって数段クールなコードになって返ってくることもよくありました。

このお手伝いをすることにより、私は色んなことを学習し、成長することができました。当然ながらそれはプログラマとしてはとても楽しいことで、ありがたいことでした。また、開発に詰まったときに相談したら、私が考えつくことができなかった解法をもらったことも何度もあります。

当然、最初から吉川さんが書いたほうが良かったケースも沢山生まれました。その節は本当に申し訳ないと思いつつも、また同時に感謝しています。


よいものを作るために必要なこと


今回はほぼ初期からロケタッチの開発に携わりました。既に書かれているように、この開発では考案にとても時間を費やしました。

コンセプト、目的、用語、語感、ロゴ、カラーリング、雰囲気などの細かい点について、何度も会議を繰り返し、一度決まった事でも次回の会議で違和感を覚えたら決め直すなど、本当に長い時間でした。

使った人がどう思うか、どんな事を感じ・受け取るか、何が望まれているか、ということを必死に何度も考えました。早く開発に入りたいと思った事もありましたが、思い返せばとても有意義で必要な時間でした。

面白い・ヒットするものを考えるのは難しく、ちゃんと多角的に考えていなければそれは生まれないし、あの時間があったからこそ、ここまで皆さんに好評を頂けるものに出来上がったのだと思っています。

私は今までプログラムの分野に注力する事がほとんどだったので、こういう経験は初めてで、ユーザビリティを考えるということの大事さと大変さが身に染みました。


携帯での位置情報の取得


ロケタッチではタッチやスポット検索を行う際に、位置情報を必要とします。最初にリリースされたスマートフォン向けのwebアプリ版では、対応ブラウザが位置情報を取得できる機能があったのですが、ケータイ自身にはそのような機能はありません。

そこで使用したのが、各キャリアが提供している位置情報の取得機能です。本来は119番などの際に正確な位置情報を把握するために用意された機能のようですが、既にこの機能を使っているサービスも増えており、サービス開発側としても実に有用な機能です。

調査したところ、docomo / au / softbank の各キャリア共に、

・GPSによる高精度な位置の取得
・基地局などの情報を利用した簡易な位置情報の取得

の二通りの方法が用意されていました。例えばdocomoではGPSに対して「iエリア」というものが用意されています。

ケータイ版では、端末がGPSが使える場合にはGPSを、使えない場合には簡易な情報を使うようにしてあります。スタッフが試してみたところ、都心部では簡易な情報でもGPSに迫る精度の情報が得られたのですが、地方では基地局が少ないため、精度が下がってしまうようです。


開発の話


少しだけ開発の話をしてみます。

測地系


位置情報を使用する際には、緯度・経度を持った測地系を用いるのですが、これには日本測地系と世界測地系の二通りがあります。また、ロケタッチでは世界測地系を使っているのですが、スポット詳細からスポット付近の地図を参照する際には自社サービスのlivedoor 地図情報を使うのですが、これは日本測地系を使っています。これらの異なる測地系を、目的に応じていちいち変換しなければなりませんでした。

これらのことから測地系の利用が面倒かと思われましたが、Geo::Coordinates::ConverterというCPANモジュールを使うことにより、とても楽に使用できました。

また他にも、ケータイ開発に有用なHTTP::MobileAgent、Twitter連携の処理の簡易化にOAuth::Lite::Consumer、ログイン・認証の処理の簡易化に WebService::Livedoor::Authなどのモジュールを使っています。
このようにCPANに便利なモジュールが沢山あり、またそれらが全てオープンソースなのはPerlの良いところです。


Twitter連携とxAuth


webアプリ版などではタッチなどを行う際に、Twitter連携をしていると同時にTwitterにもポストできます。この際のTwitterの認証はOAuthという方式を使用します。

この機能をケータイ版に実装するときに困ったのが、携帯ではOAuthが使用できないということです。Twitter側が対応してくれればよいのですが、今のところ対応されてはいません。

そこでxAuthという方式を使うことにしました。OAuthは誰でも使えるのですが、xAuthはIDとパスワードを送信するという特性上、Twitterの許可を受けたアプリしか使う事ができません。
許可を得るためTwitterと直にメールのやりとりをしたのですが、全て英語でした。ここは社内の英語が堪能な方に手伝っていただき、スムーズに話を進めることができました。


おわりに


私はこの開発メンバーの中では一番社員歴が短いのですが、そんなことは全く気にせず楽しく開発できました。
月並みな言葉ですが、最高のメンバーで最高の開発をすることができたと思っています。
ライブドアで楽しく成長したい! という方は、どうぞこちらからご応募ください。

RD6W0044


第1回 プロデューサー編 (佐々木)
第2回 ディレクター編 (荒井)
第3回 デザイナー編 (小黒)
第4回 プログラマー編 (吉川)
第5回 マークアップエンジニア編 (浜)
第6回 プログラマー(ケータイ版)編 (平野) ※本記事
第7回 プログラマー(iPhoneアプリ版)編 (浅見)


ロケタッチの<br>
新規登録はこちら