Liner Note

{ Connecting data makes web more familiar }

格安SIMカードを条件で絞り込んで比較できるサービスを作りました

タイトルの通り、“SELECT SIM”という格安SIMカードを種類、料金、月間通信量などで絞り込んで比較して選べるサイトを作りました。

サイトスクリーンショット

理由

  1. MVNO同士を比較してみたかったから
  2. Javascript MVCフレームワークの勉強をしてみたかったから
  3. 訪日外国人に向けた情報インフラの整備

MVNO同士を比較してみたかったから

現在IIJmioのSIMカードを利用していて、月3000円前後で3デバイス分通信できるのが気に入っているのですが、他のメーカーはどうなのかと比較してみたいと思ったのが一つですね。実際やってみたら、まあ今の選択でよかったぽい感じでしたが。

比較の観点は、自分自身が選ぶときに気にしていたポイントを載せています。

あとはこれは載せてないんですが、MNPで電話が使えない期間ができると嫌なので即変更できるかもポイントでしたね。結構、SIM別送みたいなものが多いので・・。店頭で即変更できたのが確かIIJmioくらいだったんですが、今は増えているのかな。

それと、いまはまだ中身が無いんですが、速度レポートという欄を作っています。

というのは最近、容量無制限というプランが各社から出てきているんですね。ただ、当然大量のデータを使う人が出てくれば、通信速度が遅くなってしまう(MVNOは○○Mpbsいくらで容量を買っていて、その中で通信をやりくりしないといけないので、混雑した時は通信速度を落とすなどして切り抜けなければいけない。そこがMVNOが安い理由)のですが、内実はどうかわからない。

混んできたら速度を落としますよと言っているけど、実際いくらになるかは契約してみるまでわからないわけです。そういう非対称性があるわけですね。

なので、個人のブログなどに掲載されている利用者の速度をリンクとして貼り付けて少し参考になればいいかなと思っています。見切り発車でとりあえず公開しますが、ぼちぼち貼っていこうかなーと思います。

Javascript MVCフレームワークの勉強をしてみたかったから

続いて技術のお話。

angular.jsやbackbone.jsに代表されるJavascript製のMVCフレームワークを簡単なプロトタイピングに使えたらいいけれど、使い方わかんないしと言うことで、angular.jsで作って体験してみることにしました。

しかし、今考えると以前作ったフォームをリプレイスするくらいがちょうど良かったですね。。(今回、angular.js以外で苦労するところが多すぎて、3週間くらいかかってしまいました・・)

ドットインストールのangular.js入門日本語リファレンスの主要部分をざざっと見て、コーディングに移ったのですが、予想以上に「○○はどうやるの?」「AにXができて、BにXができないのは?」みたいなことが多く、大変苦労しました・・

特にangular.jsを絞り込み検索に使うのは意外とウェブ上の事例が少なく(ElasticSearchと組み合わせる方法ばかり出てきました・・)、結構つまるところが多かったです。絞り込み検索に関連してわからないところは、Qiitaで質問してみたのですが、特に回答をもらえなかったので、結構な力技で突破してます・・

A/B/C/Dという条件があった時に、A条件を考慮しない件数を出したいときに(data|filter:byB|filter:byC|filter:byD).lengthとか2015年のコードとしてはかなり辛い。もう少しスキル磨けばやり方見いだせるかなあ。

— Naoki Hashimoto (@hashcc)

2015年 1月 1日

なので、コード的には40点くらいでしょうか・・。正直いい方法をご存じの方がいれば回答ください。

あと、表のスクロールが超重いのは、おそらく行固定するための処理のためです。いろんな方法があるようなのですが、今回要件的にはテーブル分割法という一番重いものでしか実装できませんでした。。早いところposition:stickyで楽に固定できるとよいのですが。(追記)結局、この部分はライブラリを使わず、自分で書き直して速くしました

できれば、サービス名の部分も固定したいですね。

データ入力

データはJSONで用意しましたが、さすがに手打ちだとやってられないので、Googleスプレッドシートを入力UIとして使いました。

幸い、シートデータをJSONでアウトプットできるGoogleAppScriptを公開されている方がいたので、今回はこれを使ってJSON出力しました。データ収集→入力は3日くらいで終わりましたが(目にしたMVNOは全部入れておいた)、手打ちだと倍はかかってたかも・・

Googleスプレッドシートでのデータ編集の様子

ちなみに元データはこちらJSONデータ)です。クリエイティブ・コモンズ 表示・非営利・継承ライセンスとして置いておくので、使いたい人は適当にどうぞ。

訪日外国人に向けた情報インフラの整備

別の記事で詳しく書こうと思いますが、2020年の東京オリンピックも決まって、何年後かには日本を観光で訪れる外国人の方も増えてくるかと思います。

その際の情報インフラとして政府としては無料Wi-Fiの整備とかをやっているわけですが、個人的にはプリペイドの格安SIMの方が解決策としては優れていると思っています。Wi-Fiって移動しながら使えないし、変なログインとか登録の手間がありますしね。お金持ってないわけない(観光するくらいなんだからあるでしょう)んだからプリペイドSIMのほうは良いでしょうと思うわけです。

まあ、OS上でキャリアを選択できるApple SIMのようなイノベーティブな方法もあるし、あるいはソフトバンクモバイルがSprint契約者向けに日本での通信を定額ローミングするとかも考えられますけどね。

ただ、自分としてできることがあればいいなというわけで、プリペイドSIMの比較もできるようにしています。多言語化はまだできてないですが、ぼちぼちやっていこうかなと思います。