Todayee シリーズ第5弾「Todayee Place」をリリースしました。無料です。
iOS標準のマップを利用したアプリで、表示しているマップ画像をそのままエバーノートへ投稿することができます。
この状態で投稿するとこうなります。
3Dにも対応していてこんな投稿もできます。
Todayeeの特徴である複数アプリ・デバイスからの投稿を1つのノートへまとめる機能も、もちろん健在です。
他の Todayeeシリーズのアプリと一緒に使っていけます。下は Place と Photo からの投稿が1つのノートにまとまっている例です。
他の Todayeeアプリの記事
【アプリ】Todayee Text / Photo 1.0 をリリースしました
【アプリ】Todayee Silent 1.0 をリリースしました
【アプリ】Todayee Extension 1.0 をリリースしました(無料)
開発メモ
MKMapView のスナップショット
MKMapSnapshotter という名前のまんまの便利なクラスがあるのでこれを使った。ただし Annotationは含まれないので、これは最後に UIImageで合成してやる。地図上のAnnotation位置(緯度経度)と UIImage上の位置(x,y)を合わせる必要があるが、その用途の為のメソッド pointForCoordinate() を使えば容易に変換できて位置決めできる。スナップショットのオプションは MKMapSnapshotOptionsという関係クラスで定義しておくが、これには cameraプロパティもあって、これを使うと 3D表示した状態のスナップショットが撮れる。
MAP画像の投稿
Placeは技術的な課題はまったく無いと言ってよく、それよりも一番心配だったのは MKMapViewのスナップショットをエバーノートへ投稿するアプリが審査に通るかという点。もしかしたら審査が通らずアプリがお蔵入りになる可能性に怯えつつ、とにかく審査に出してみないことには進まないと考えて開発してきた。そのため最初のバージョンはできるだけシンプルにして審査の状況確認だけを取ることを念頭にスピードを重視した、と当初は考えていたけれどそんな風にはうまくは進まない。作っているとどうしても色々盛り込みたくなるし、あまりにショボいのは気が引けるし、ということで結局通常どおりの開発にはなってしまった。。それでも Todayeeプラットフォーム上での開発なので1ヶ月と短めではあったけど。審査に向けては 1.エバーノート投稿画像には著作権リンクを付与、2.アプリ説明には標準APIを使っていることを強調、と少しでもリジェクトを避ける努力もした。そのかいあってか(?)審査自体は2日で通過、本日無事にリリースできた。これにはホッとした。
場所検索
当初 Yahoo! ローカルサーチAPIを検証していたが、Google Place API を試したところ検索結果はこちらの方が良い感じがしたので切り替えた。検索結果は若干謎な感じも残ってはいるが日本以外も対応しているので使い勝手は良い。検索結果に出てくるアイコンはいつもの icon8 から調達した。Place API ではアイコン画像も提供されているのだが、これはデザインがイマイチなので面倒でもカテゴリ(typeと呼ばれる)毎に一つ一つ自分でアイコンをピックアップして割り当てた。
Place API は諸事情から iOSライブラリを使わず WebAPIを使っている。そのため JSONのパースとモデルクラスの用意が必要になった。このあたりは Unbox というライブラリを使った。変なクセもなく使い勝手は良かったと思う。
JohnSundell/Unbox
データ用のクラスは JSONExport という Mac用のアプリを使った。
Ahmed-Ali/JSONExport
これは便利。ただし用意されいてるテンプレートの用途は限られているので Unboxで使うためには生成されたクラスをちまちま書き換えていく必要はあった(それでも1から作るよりはぜんぜん楽)。
あとがき
エバーノートに記録を残す上でずっと作りたかったアプリだったのでリリースできたのはうれしい。元々は地図だけの Map と場所情報の Placeと別々のアプリの開発を進めていたのだけど、Placeは結局地図が必要になるしMapは地図だけだと機能がショボいので最終的には統合して Placeになった。結果としては良かったかと思う。今後は Flyoverにも対応してみたい。
Todayeeシリーズはこれからも毎月を目処に新作を提供して行きます。お楽しみに。
今後考えているもの
・Pics
・Rec
・Video
・Viewer
:
アプリの入手は下記からどうぞ。無料です。