Recently in iPhone Application Category

Location Clip 1.3 が Ready for Sale になりました。
まもなく AppStore に反映されると思いますので、アップデートどうぞよろしくお願いします。
先ほど、Location Clip 1.3 を審査に出しました。
今回のバージョンの新機能は、以下の通りです。どうぞお楽しみに。

1. TwitterのGeo Tagging APIの対応

Twitterに投稿するメッセージにGeoタグを付けることができるようになりました。

設定画面において、Twitterへの投稿時にGeoタグを付けるかどうかを選択できます。


2. 写真のサイズの設定

以前のバージョンでは、地図上に貼付ける写真のサイズは、長辺を200px固定としていましたが、本バージョンから、地図上に貼付ける写真のサイズが設定できるようになりました。

設定画面において、写真の長辺のサイズを180px、200px、240pxの中から選択できます。

なお、設定画面にてサイズの変更をした場合には、次に写真を貼付ける時から設定が有効になります。

もし、地図上に貼付けられている写真がある状態で設定を変更した場合、その写真のサイズは変更されませんのでご了承ください。


3. カメラで撮影した写真を保存するかどうかの設定

以前のバージョンでは、カメラで撮影した写真を必ずカメラロールに保存するようにしていましたが、本バージョンから、カメラロールに自動保存するかどうかを設定画面において設定できるようになりました。


4. URLスキーマの公開

他のアプリケーションから、Location Clipに連携できるように、URLスキーマを公開します。


URL :

com.fourmeisters.locationclip://open


パラメータ:

- 場所を指定したい場合

lat: 緯度座標

lon: 経度座標

※このパラメータが指定されない場合には、現在地を表示します。


- 地図のタイプを設定したい場合

type: 地図のタイプ。m(マップ)、s(航空写真)、h(地図+写真)。

※このパラメータが指定されない場合には、マップ表示します。


- 地図上に写真を貼付けたい場合(1枚のみ)

photo: 写真の貼付け有無。y(貼付ける)、n(貼付けない)。

貼付けたい写真の画像(UIImage)がペーストボードに入っていることが前提です。


pbname: ペーストボードの名前。

名前付きペーストボードに写真をセットしている場合には、そのペーストボード名を指定します。

このパラメータが指定されない場合には、標準ペーストボードを参照します。


- LocationClipの処理終了後、呼び出し元アプリに戻りたい場合

returnURL: yourapp://xxxxx

もし、URLの中にパラメータがある場合には、&や=などの文字は、正しくエンコードしてください。

例えば、yourapp://xxxxx?foo=aaa&baa=bbb に戻りたい場合には、yourapp://xxxxx?foo%3Daaa%26baa%3Dbbb となります。


例:

com.fourmeisters.locationclip://open?lat=37.00000&lon=139.00000&type=h

com.fourmeisters.locationclip://open?photo=y&pbname=com.foo.baa.pbname

com.fourmeisters.locationclip://open?returnURL=yourapp://xxxxx


5. Copy & Send (Lite) との連携

弊社からリリースしているCopy & Send(Lite)をインストールしている場合には、Location Clipでクリップした情報を、Copy & Send (Lite) に渡して他のiPhone/iPod touchに送信することができます。


iPhone/iPod touchのペーストボードに格納されているデータを活用するための、Copy & Sendというアプリをリリースしました。
今回は、有料版と無料版の2本立てとなっています。

スクリーンショット(2009-12-20 12.32.18).png

Copy & Send (有料版)


主な機能

通常のコピー操作でペーストボードにデータを格納した後、このアプリを起動することで、簡単にデータを活用することができます。

主な機能は、以下の通りです。
  • ペーストボード内のデータをブラウズする。
    • 複数のアイテムがペーストボードに格納されている場合であっても、一覧表示して内容を確認することができます。
    • テキスト、画像、ドキュメントについては、内容確認するための簡易的なビューワ機能もあります。
    • ペーストボードを使ったアプリを開発している方にも役立つ機能だと思います。
  • ペーストボード内のデータを、別のiPhone/iPod touchにBluetooth経由で送信する。
    • Copy & Sendがインストールされている別のiPhone/iPod touchに、データを送信して共有することができます。
    • 例えば、カメラロールにある写真を選択してコピーした後、このアプリを起動して、簡単な操作をすることで、その写真を送ることができます。
  • ペーストボード内にあるデータの中で、長く取っておきたいものを、保存する。

有料版と無料版の違いについて

無料版には、若干の機能制限があります。
  • 画像送信時のサイズ縮小
    • 有料版では、サイズを縮小せずに画像を送信することができますが、無料版は常に縮小されます。
  • データの保存機能
    • 有料版では、ローカルデータベースにデータを保存することができますが、無料版では画像をカメラロールに保存する機能のみ利用可能です。

他のアプリとの連携について

他のアプリから、このアプリを起動するためのURLを公開しています。
使用方法については、アプリ内のヘルプドキュメントにて説明していますので、そちらをご参照ください。


まずは、無料版をお気軽にお試しいただければと思います。
よろしくお願いいたします。


Location Clip 1.2 では、カメラで撮った写真をカメラロールに保存する機能がありますが、今日は、この機能の実装について取り上げたいと思います。

皆さんご存知の通り、写真をカメラロールに保存する際に利用するAPIは・・・

ですが、以下のような実装だけで終わらせている(保存完了のコールバックを設定していない)サンプルを実によく見かけます。

このような実装は、一見簡単でいいように見えますが、もし、このように実装してしまった場合、写真を保存し終わったことをアプリケーションが知る術がなくなってしまい、ちゃんと保存できたのかどうかを、アプリケーションで判断できなくなってしまいます。
処理が正常に終わったかどうかを確認するために、ちゃんとcompletionTargetとcompletionSelectorを設定するようにしましょう。

そしてまた、保存処理中にアプリケーションを終了してしまったりすると、カメラロールに写真が保存できなかったり、サムネイルが保存されなかったりすることがあるため、 UIActivityIndicatorView などを使って保存処理中であることをユーザに対して示すような配慮をしてあげると良いと思います。

表題の通り、先日、審査に提出した Location Clip 1.2 を、一旦、セルフリジェクトし、再提出しました。

理由は、先日提出したアプリでは、カメラアイコンを使ったボタンをメイン画面に配置していたのですが、これでは、カメラのついていない iPod touch を利用しているユーザ様に誤解を与えるかもしれないため、これを修正したためです。

お待たせして申し訳ありませんが、審査の間、しばらくお待ち頂ければと思います。

影付き画像(UIImage)を作成する。

| 1 Comment | 0 TrackBacks
Location Clip 1.2(現在審査中)では、写真を地図上に貼付ける機能が追加されますが、今日は、この機能の中から、地図上に貼付ける画像に影を付ける部分の実装について取り上げたいと思います。
locationclip1_2.jpg

ポイントは以下の通りです。
- 作成する画像のサイズは、写真のサイズに影のサイズを加算したサイズにする。
- 影を付けるには、CGContextSetShadow(または、CGContextSetShadowWithColor)を使う。
- CGContextSetShadowで、グラフィックスコンテキストに対して、影を有効にした後、画像を描く。

以下に、実装例を示します。
以下の実装例では、写真部分を 320 x 240px、影部分を 12px で出力するものとしています。




表題の通り、Location Clip 1.2 を審査に出しました。

今回のリリースでは、以下の機能が追加されています。

- カメラ撮影した写真やフォトアルバムから選択した写真を地図上に貼付ける機能

- 緯度経度座標をクリップした地図画像の上部に付加する機能

- クリップした位置情報を履歴として保存する機能

- 履歴として保存した位置情報の検索機能、グルーピング機能、表示機能、復元機能


審査が終わるまでの間、しばらくお待ちくださいませ。

Google Documents List Data APIのドキュメントダウンロード機能を使用することで、ドキュメントをいろいろなフォーマットでエクスポート可能であることを、Google Documentsからドキュメントをダウンロードするにて説明しました。大変便利な機能ですが、試してみると、ちょっとした制約があることに気付きました。

Export for Google Documentsアプリケーションの次バージョン(現在Appleに申請中)で、すべてのドキュメントをPDFとしてExportする機能を追加していますが、実際に出力されるPDFのフォーマットが、期待通りにならないケースがあります。

Documentsタイプの場合
各ドキュメントの「印刷設定」に従って、PDF生成時の用紙サイズなどのフォーマット設定が、決定されるようです。特に何も指定していない場合には、デフォルト値が適用され、用紙の方向は、常に縦方向(Portlait)になります。ただし、用紙サイズのデフォルト値は、ユーザの言語によって異なる値になるようです。
日本語の場合: A4(210mm x 297mm)
英語(US)の場合: Letter(8.5" x 11")
特に用紙サイズを指定しない場合は、言語の設定に注意してください。

Spreadsheetsタイプの場合
Webブラウザから実行する場合は、用紙サイズや向きを指定することができますが、API経由では、常に決まったフォーマットになってしまうようです。試してみたところでは、
用紙サイズ: ユーザの言語設定に関係なく、Letter(8.5" x 11")
用紙の方向: 縦
となりました。

Presentationsタイプの場合
そもそも、用紙サイズという概念がないため、常に固定サイズになるようです。


以上、簡単にまとめてみましたが、いかがでしょうか?
Export for Google Documentsをご使用の際には、PDF変換を使用するか否かを、適宜選択していただければと思います。
将来のバージョンで、柔軟に変換フォーマットを指定できるパラメタが追加されることがあれば、対応を考えたいと思います。

MKMapViewの地図のタイプを変更する。

| 1 Comment | 0 TrackBacks
MKMapViewでは、地図のタイプとして、以下の3種類を選択することができます。
  • マップ
  • 航空写真
  • 地図+写真

今日は、この地図タイプの切り替えについてのトピックです。

ポイントは、以下の通りです。
  • 地図のタイプを選択するセグメントコントロールを用意する。
  • UIControlEventValueChangedイベント(セグメントコントロールの値が変わったタイミングで発行されるイベント)を処理するためのメソッドを定義する。
  • セグメントコントロールの値が変わったタイミングで、地図のタイプを変更する。
  • 地図のタイプの設定は、MKMapViewのmapTypeプロパティの値を設定することで行う。

以下に、実装例を示します。

-- MyViewController.h --

-- MyViewController.m --


簡単でいいですね。
MapKit、とても良く出来ています。

MKMapView上にアノテーションを追加すると、当然、ドラッグして動かしたくなりますよね。
今日は、その時に、アノテーションを "ぽよん" と浮かせる方法についての記事です。

ポイントは、以下の通りです。
- MKPinAnnotationViewのサブクラスで、タッチイベントを処理する。
- touchesBegan:withEvent: が呼ばれたら、MKPinAnnotationViewのimageをピンが浮いているように見える画像と入れ替える。

えっ、それだけ?という方もいらっしゃるかもしれませんが、はい、これだけです。

以下に、実装例を示します。

-- MyPinAnnotationView.h --

-- MyPinAnnotationView.m --


注)
なお、この方法は、Location Clipでは、そうしているというだけで、正しいやり方かどうかはわかりません。ご了承ください。

iPhone Applications

Twitter