Softbank携帯の電話帳データをVCard方式でiPhoneに移行してみる

さて、相方さんのところにやってきた iPhone 4S ですが、なによりもまず電話帳の移行は最重要。

なのですが、公式サイトによると

どうやら旧携帯からサーバに電話帳をアップロードして、それをiPhoneで読み込む、という方法らしい。

いやいや、そもそも携帯壊れてますから!ってことで、先月SDカードにバックアップしていたデータからの移行を目指します。

あ、あらかじめ言っておくと、私の環境下ではこうやりましたっていうだけなので、携帯の機種によっては多少形式が違うかもしれませんし、保証はしませんので、あしからず。ちなみに、使用した元の携帯は830SHってやつ)

既存のアプリで読み込んでみる

SDカード(正確にはマイクロSDカード)をMacに差し込んで VCard形式の .vcf ファイルを探します。で、通常ならこれをMacのアドレスブックで読み込んでから同期すればよいのですが、既存の(僕の)アドレスブックと同期してごちゃごちゃしてもいやなので、直接iPhone内で読み込む方法を探します。

まあ、当然ながらそういう類いのアプリはいくつかでていて、有料のものも含めて、いくつか試してみました。

「いくつか」っていうのはつまりうまくいかなかったっていうことなんですが、そもそもファイルを読み込んだ瞬間に落ちるものとか、正常に読み込めているようにみえるものの、1つずつ手動で追加しなくちゃいけないものとかあって、いやいやそういうことじゃなくて一気にずばーっと読み込んで自動で登録して欲しいのですよ。登録数も10件とかそういう少数じゃないのですから。

結局自分でコードを書く

じゃ、結局どうするかっていうと、やっぱり自分でコード書かんといかんのかなあと思いながら、VCardのパーサ部分はさすがに面倒すぎるのでググって既存のオープンソースプロジェクトを探しました。

そしたらね、なんと、iOS5から標準のAPIでVCardの読み書きに対応しているじゃないですか!なんて便利!というわけで早速使ってみました。

ただ、やっぱりそのままの .vcf ファイルを読み込んでも1件も認識されず、うまくいきませんでした。(上記のファイルを読み込んだらすぐ落ちるアプリもこれが原因だったのかもしれません)

というのも、その .vcf ファイルはこんな感じになっていまして。

コンソールにでた警告をみるかぎりでは↓で、1つの要素中に改行を含んでいるのがダメっぽい。

で、これを削除すると、とりあえず正常に認識できたのですが、まだまだゴミが載っています。

ここまでくると、一通りアドレス帳に読み込んで使える物にはなるのですが、なぜか読み仮名が反映されていません。くわしくはわかりませんが、どうやらiOSはVCardのv3に対応しているっぽく(よく見たらこの .vcf ファイルはv2.1って書いてますね)て、そのへんの兼ね合いなのかなという感じ。

この SOUND;X-IRMC-N; の部分を X-PHONETIC-LAST-NAME; や X-PHONETIC-FIRST-NAME; で置き換えるとうまくいきました。

せっかくなので、サンプルがてらということで使用したプロジェクトを公開しておきます。

上記テキスト整形の部分は必要に応じて別途行うことを前提としています。ほとんど、単純なテキスト置換でできるので、それほど大変じゃないとは思いますが。

で、もちろんですが、自己責任でお願いします。(下手するとアドレス帳が消えるかもしれないですしね)

さてさて、これで無事に電話帳の移行ができました。めでたしめでたし。

相方さんがiPhone4Sユーザになりました

こんな日が来るなんて全然想像していなかったです。

まさか、超アナログ人間の相方さんがiPhone4Sのユーザになるなんて。

たしかにiPhoneはスマートフォンの中では圧倒的に使いやすい部類に入ると思うのです。でもね、いわゆるガラケーで十分ていう人にとってはかなりの機能過多。それが故にいろいろと混乱することもあるわけで、そのへんサポートするの面倒なんだよねえ、なんて思いつつも、基本的に身の回りのガジェットに不慣れっぽい人たちにはiPhoneをおすすめしていなかったわけです。こんな職業なのにね。

ことの発端はこれ。

もともと、相方さんの携帯は3年以上前の機種で、子供たちに投げられたり、落とされたり、一度は液晶が割れているし、電池カバーも変形してちゃんとしまらないし、というぐらいのぼろぼろな感じで、最近特に調子が悪かったんです。

ちょっと前には、本気で機種変するつもりで、ショップを回ったりしたんですが、その時は電池の交換だけで済ませていたわけですが、そんな時に上記キャンペーンが始まりました。

「あれ、これなら初期費用は安上がり。確かにiPhone4は開発機として余ってるよ」

と思ったんですが、よくよく考えてみると。iPhone4はiOS4で凍結しています。でも使ってもらうならiOS5にしたほうが断然いい。でもそうすると開発機としての位置づけは完全に解除、というか我が家からiOS4デバイスが無くなるのでそれはとても困る。

ぐぬぬぬ、、、っていっているうちに、それならもう普通にiPhone4Sに機種変したらええやん!っていう気分になってきたわけです。

で、そういうしながら、ケースなんかを物色している(先にケース買っておかないと、今の携帯のぼろぼろっぷりをみるかぎり裸で持たせるなんてとんでもない!)と、ある日、携帯の充電コネクタにコードがささらなくなり、そのまま充電切れとともに携帯は文鎮へ。。。

もう一刻の猶予もありません。この時期、年末っていうこともあって携帯での連絡が増えるわけで、携帯なしの日々は危険がいっぱい。そんなこんなで慌てて近くの量販店にいってきました。

お店の人曰く「普通は予約無しじゃ、在庫はないんですけどね」という状況下、奇跡的にiPhone4S 16G白、という希望の機種が余っていました。なんてラッキー。その場で機種変の手続きを済ませて、無事にiPhoneユーザへ。

しかしあれですね、機種変する時の最初のチェックシート。あれ、普通の人には何書いてあるかわからんと思うのです。ほんと。

その場で液晶保護フィルムを買って、ケースは暫定的に私のiPhone4のおさがりを使用。いいケースを探さないとね。ほんとはこれがよかったんですが、そういや相方さんは左利きなので、見開きタイプのケースは使えないのでした。残念。

早速いろいろセットアップ。不要なアプリはフォルダにまとめて、シンプルな構成にしてみました。i.softbank.jp も使わないって思えば、メールアプリも要らんですよね。電話とメッセージがメイン。あとは一部の携帯サイト(例えば小児科の予約とか)用にSBrowserとか。

ちなみに、電話帳の移行は結構大変でした。前の携帯がまったく動かないのでソフトバンク推奨の方法が使えません。ただ、ちょっと前にSDカードにデータを書き出していたのでそのVCARDファイルから取り込めばなんとかいけるはず・・・ということでいろいろ四苦八苦したのですが、これについてはまた別のエントリで。

全然不慣れな人がどう使うのかっていうのは開発者としてもいろいろ気付きがあるんだろうな、と思っているわけですが、はてさてどうなりますことやら。

追記

電話帳の移行についてのエントリ書きました>Softbank携帯の電話帳データをVCard方式でiPhoneに移行してみる