bbs
oopers.com
5243 OOPer: 2015-05-17 01:36:14
地中海日記(準備編その5…端末)
現地へ持って行く端末をどうしようかずっと考えていたのだが。3年前のバルト日記を読んでいたら、持って行ったのはAndroid端末だけ。しかも、各所に「次は(文中では『来年は』だが次の年は海外に出なかったんで)iPhoneにするぞ」と書いてあるので、まぁ、iPhoneだけ持っていくことにした。最近海外に出かけた人の話を聞いても、携帯をスられた盗られたって話は、非常によく聞くので、かなり気をつけないといけないのだが。

で、まぁ、iPhone搭載のブラウザの何が困りものかと言うと、Uploadボタンから写真を選択できるのは良いのだが、サイズを選べないのだな。あらかじめ写真アプリを開いて、サイズを縮小した版を作っておかないと、フルサイズの画像がドカンと送られてしまう。しかも、うちのサイト(書き込みができるのは今の所旧サイトのみ)、いまだにスマホ対応していないから、画面は見にくいし、ボタンは押しづらいしで、写真にちょっとしたコメント入れてアップするだけでも、超大変だったりするのだな。

と言うわけで、ちょくちょくfbにアップしているのはiOSのシェア機能を使っているんで、『うぱこむアクセス用のShare Extension作っちゃえ』なんて思い立ったのが、一昨日のこと。

書き込み用のページとそっくり同じ中身をPOSTで送るだけだから、簡単だろうと思ったんだが、甘かった。
 Appleさんってば、iOS8の鳴り物入りの新機能であるExtension絡みのクラスについて、ちょっと込み入ってくると全くドキュメントに記載してくれていないのだな。写真アプリから共有ボタンを押して開いてるのに、中身の画像を取り出すのにこれほど苦労するとは思わなかった。
 しかも、書き込み用の旧うぱこむは、UTF-8じゃなくてEUC-JPだという壁にはたとぶち当たる。Swiftの内部表現はUnicodeがデフォルトなんで、EUCを使うとあちこちコードが長くなっちまう。ってことで先日作った(多少汎用性のある)アップロード用補助クラスもUTF-8専用に作っちまったのだな。
 仕方がないやってことで、新サイト側にアプリ用のapiを設けることにした。最初はフレームワークの内側もごそごそいじりかけてたんだが、まぁ、こんだけ短期間でフレームワークの奥の方まで(データアクセス系のクラスがBLOBをサポートしてなかった)いじると、デバッグの暇なく出発する羽目になるんで諦めた。
 極めて応急で、セキュリティーも大甘のapiで我慢して、localのテストサーバでざっくり動いたから、いよいよ実機で、と思ったら動かない。肝心の写真画像データが取得できないようだ。もうほんまにね、この辺の挙動のことなんてほんまに全くドキュメント化されていない。

試行錯誤しながら「実機で動く」を探ってコードを書き直し。結局、画像サイズの変換は、自前で書く羽目になっちまった。2日もあれば「ちゃんとしたアプリ」にできると思ってたんだが、もうユーザIDとパスワードはコード内にベタがきのとんでもない代物のままで、こんな時間になっちまった。

出発まであと3日、さすがにアプリばかりいじってられないので、この辺りで諦めることにしよう。はてさて、現地からのリアルタイム情報は書き込めるのだろうか、それとも「携帯盗られた」なんて報告をどっかのネカフェから書き込む羽目になるか、皆様乞うご期待。