Author Archives: yamada

iOS SDK:他のアプリからドキュメントを取り込む仕組み

0
Filed under iOS SDK, iPadアプリ, iPhoneアプリ
Tagged as , , ,

他アプリと連携

iOSアプリを作っていて、「他のアプリからドキュメント(データファイルや画像ファイル)を取り込めるようにしたい」と思って調べた内容のまとめです。

「自分のアプリ内のドキュメントを他のアプリで開く」というのは UIDocumentInteractionController あたりをキーワードに検索してみるといろいろ出てくると思います。
この辺りの、iOSでファイルを共有する概要や実装手順については、下記ページが分かりやすいです。

今回やりたかったのは、↑このページの、項目3. Accepting Incoming Documents (Document Reader)というのがそれです。

取り込みの概要

ファイル取り込みの仕組みは本当にシンプルで、するべきことは次の2つ。

  • 対応ファイル形式の定義
  • 送られてきたドキュメントの処理

これを順番に説明したいと思います。

対応ファイル形式の定義

Xcodeでプロジェクトを選択し(1)、”ターゲット”(2) の “Info”(3) を開き、リスト内にある “Document Types”(4) に追記します。
Addボタンから、Add Document Typeを選択します(5)。
これで、
Document Typesに項目が追加(6)されるので、これを編集します。

次に、この項目の設定内容について説明します。

Document Types – Name

上記画像では「型紙(ZIP)」としているところですが、これは単に項目の名前。
他のアプリから見たときにこの名前が見えるわけでも無いようです。
自分で分かりやすいように命名すればOKです。

Document Types – Types

ここが肝で、対応ファイルの形式を書きますが、ファイルの拡張子ではありません。
Uniform Type Identifiers、略して UTI と呼ばれる識別子を列挙します。
一覧はiOS Developer Libraryの Uniform Type Identifiers Reference というページにあります。
例を挙げると、次のような感じになります。

  • PDF — com.adobe.pdf
  • PNG — public.png
  • ZIP — com.pkware.zip-archive

複数のファイル形式に対応することも可能で、例えば、PNG/JPEG/GIFを同等に扱う場合、次のようにTypesに入力します。

public.png, public.jpeg, com.compuserve.gif

Document Types – Icon

Iconには他のアプリで対応ファイルを開いたときにPOP内に表示するアイコン画像を指定できます。
指定しない場合、デフォルトのアプリアイコンを使った画像が表示されます。
自分で準備する場合、iPhone用には、22×29, 44×58、iPad用には、64×64、320×320の画像を用意する必要があり、ドロップシャドウとページカールエフェクトがかかるので、それを想定して作る必要があり、他にもマージンの設定が細かく決まっていて結構面倒なので、オリジナルを用意するのは相当余裕がある人だけでいいんじゃないでしょうか。
詳しくはこちらです↓

なんと、ここまでの設定だけで、特定のファイル形式に対して自分のアプリを開けるようにする準備は完了です!
かなり簡単ですね。

読み込みの仕組み

で、次にやるべきは、他のアプリから特定のファイルを指定し、自分のアプリを開いたあとの処理の実装。
UIApplicationDelegate インターフェイスの実装をしているクラスの、次のメソッドが呼び出されますので、この中に処理を書けばOKです。
- (BOOL)application:(UIApplication *)application openURL:(NSURL*)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
urlには次のようなファイルパスが入ってきます。

file://localhost/private/var/mobile/Applications/XXXXX/Documents/Inbox/sample.zip

自分のアプリの、Documents/Inbox/ フォルダ内にコピーされており、そのファイルへのパスが関数に渡ってくる、という仕組みです。
この Documents/Inboxフォルダですが、ここは書き込みできず、読み込みと削除しか出来ません。
そのため、もらったファイルは、自分でどこか適当な場所に移動することから始めるとよさそうです。

読み込みコード – サンプル

例えば、openURLに渡ってきたファイルの拡張子を判定し、Documentsディレクトリ直下に移動するには、次のようなコードになります。( application:openURL:sourceApplication:annotation: 内に書くことを想定しています)

1
2
3
4
5
6
7
8
9
10
11
12
// 拡張子で処理分岐:zipの場合.
if( [[url pathExtension] isEqualToString:@"zip"] ){
  // ここでzipの処理.
  NSArray* paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
  NSString* pathDocumentRoot = [paths objectAtIndex:0];
  NSString*	pathTempZip	= [pathDocumentRoot stringByAppendingPathComponent:[url lastPathComponent]];
  NSFileManager* fm	= [NSFileManager defaultManager];
  NSError* error = nil;
  if( [fm moveItemAtPath:[url path] toPath:pathTempZip error:&error] ){
    // zip移動成功後の処理.
  }
}

テストできるアプリ

さて、これで準備は出来たのですが、一般的に出回っているアプリ内のうち、どのアプリからなら送れるか?ということですが、やっぱりDropboxが便利ですね。
ただ、テキストファイル(.txt)、zipファイル(.zip)、はいけるんだけど、PNGとか画像そのものはダメでした。
これは、標準メーラーも同じ。
GoodReaderでは、画像も書き出しが出来たので、これを使ってみるといいと思います。
GoodReader for iPhone 3.13.1(¥450)
カテゴリ: 仕事効率化, ユーティリティ
現在の価格: ¥450(サイズ: 24.2 MB)
リリース日: 2009/02/28

ss1 ss2


[AD]

↓enchant.jsの書籍が出るらしい!

HTML5とJavaScriptでスマートフォンゲーム作成! ゼロからはじめるenchant.js入門【公式ガイド】

著者/訳者:布留川英一 伏見遼平 田中諒

出版社:アスキー・メディアワークス( 2012-02-18 )

定価:¥ 3,150

Amazon価格:¥ 3,150

大型本 ( 272 ページ )

ISBN-10 : 4048862588

ISBN-13 : 9784048862585


「あんぽん 孫正義伝」読了

0
Filed under
Tagged as , , ,

本屋で見かけた「あんぽん 孫正義伝」、気になってしまい、忙しいさなかでしたが買って、鞄につっこみ、移動の合間に読んでいました。

あんぽん 孫正義伝

著者/訳者:佐野 眞一

出版社:小学館( 2012-01-10 )

定価:¥ 1,680

Amazon価格:¥ 1,680

単行本 ( 399 ページ )

ISBN-10 : 4093882312

ISBN-13 : 9784093882316


「スティーブ・ジョブズ」の2巻目も途中なのですが、ちょっと読んでしまったこっちが面白くて、先にこちらを読み終わってしまった。
ちなみに、本書は書き下ろしではなく、2011年に週刊ポストで連載されていたものを大幅加筆したもの、ということです。

在日韓国人伝

購入時に想像していたのは「スティーブ・ジョブズ」の孫正義版。
これから読んでみようかな、という人に言いたいことは一つ。
全然違います!!
どちらがいいとか悪いとかではなくて、全くタイプが違う書籍です。
「スティーブ・ジョブズ」は、この本を買う人の期待通り、中心にあるのは、ジョブズのビジネス手腕の話。
「あんぽん」にはビジネスの話は、孫正義が手がけたビジネスの話は、ほとんど出てきません!
では、本書には何が書かれているのか?
孫正義の生い立ちです。
しかも、2世代以上前から、孫正義が起業するあたりまでの話。
私は不勉強で、在日韓国人の方のこととか、彼ら彼女らの処遇とか知らなかったのですが、そういうことがよくわかる歴史書にもなっています。

行動力!

驚いたのは、その行動力!
孫正義の行動力はもちろん、彼の父、母、祖父、祖母らもすごい。
なによりすごいのは本書の著者、佐野眞一の行動力です。
孫正義より10歳年上になるわけだが、孫正義のルーツを探る取材力は本当にすごい。
本人も知らない過去を暴きだしているのです。
そんな佐野が本書に書きたかったことは次のようなことらしい。プロローグより引用させてもらいます。

誰でも感じているはずのそんないかがわしさの根源を探る。この評伝のテーマは、その一言に尽きる。
孫正義は成り上がり者だから、いかがわしさを感じるのか?ノーである。
孫正義は元在日朝鮮人だから、いかがわしさを感じるのか?ノーである。
孫にまとわりついたそのいかがわしさの源泉については、この評伝でおいおい検証していくことにしよう。

むしろこの著者にいかがわしさを感じてしまったが、終始このテンションである!
痛快ノンフィクションを読みたい方にはお勧め!
孫正義のビジネスノウハウを探している方は別の本を取ったほうがいい。

参考文献

本書内で、何度も触れている「にあんちゃん」、読んだ事無いので気になった。

にあんちゃん (角川文庫)

著者/訳者:安本 末子

出版社:角川書店(角川グループパブリッシング)( 2010-02-25 )

定価:¥ 580

Amazon価格:¥ 580

文庫 ( 282 ページ )

ISBN-10 : 4043821018

ISBN-13 : 9784043821013


あと、たけしの出ていた映画「血と骨」、これは見たことある。
本書を読んでいる間、自分の中ではこの映画をベースに風景を空想していました。

血と骨 通常版 [DVD]

販売元:ポニーキャニオン( 2005-04-06 )

定価:¥ 3,990 ( 中古価格 ¥ 1,199 より )

Amazon価格:¥ 2,997

時間:144 分

1 枚組 ( DVD )



[AD]

↓「あんぽん」で孫正義の背景が分かったので、次に彼のビジネスについて読みたくなった!

志高く 孫正義正伝 完全版 (実業之日本社文庫)

著者/訳者:井上 篤夫

出版社:実業之日本社( 2010-12-04 )

定価:¥ 720

Amazon価格:¥ 720

文庫 ( 400 ページ )

ISBN-10 : 4408550191

ISBN-13 : 9784408550190


孫の二乗の法則 孫正義の成功哲学 (PHP文庫)

著者/訳者:板垣 英憲

出版社:PHP研究所( 2011-04-09 )

定価:¥ 620

Amazon価格:¥ 620

文庫 ( 285 ページ )

ISBN-10 : 4569676219

ISBN-13 : 9784569676210


事を成す 孫正義の新30年ビジョン

著者/訳者:井上 篤夫

出版社:実業之日本社( 2010-08-31 )

定価:¥ 1,890

Amazon価格:¥ 1,890

単行本 ( 232 ページ )

ISBN-10 : 4408108596

ISBN-13 : 9784408108599


iOSシミュレータ:任意の位置でピンチズーム!

0
Filed under iPadアプリ, iPhone, iPhoneアプリ, Mac, 仕事ツール

iOSアプリを開発するにあたって、Xcode付属のiOSシミュレータは超便利です!
ほんとうに良く出来ているのですが、唯一大変なのが、マルチタッチ動作をテストする方法
これはハードウェアの制限上しょうがないですね。
3本以上は出来ませんが、2本ならサポートされており、ピンチ操作も出来るというのは多くの方はご存知だと思います。
それでは、2本指でスワイプ、とか、画面の端の方にあるオブジェクト上でピンチ操作ってどうやればいいのでしょうか?
必要にかられて調べてみたら出来ることが分かりましたので、下記にメモしておきます。

Optionキーで2本指表示

まず、シミュレータ操作の基本で、画面中央にあるオブジェクトについてピンチ操作するのは簡単です。

Optionキーを押し下げるだけ!

Optionキーを押すと、2つの円が出てきますので、2本指の操作をシミュレートできることがわかります。
そのままマウスでドラッグすると、2本の指のうち、カーソルがない方の円は、カーソルがある方の円と、画面中央をを中心として点対称に動き、ピンチ操作が可能です。

大体の場合はこれで問題ありませんが、これでは画面センターを中心とした操作しかできず、画面の左上の方のオブジェクトに対してピンチ操作することが出来ません。
その方法を以下に書きます。

Shiftで相対位置ロック

二本指でのスワイプなどをシミュレートしたい場合があります。

そのためにも使えるのがこの方法。
Optionキーを押しながらマウスカーソルを動かし、2つの円の位置関係をそのまま止めたくなったら、さらにShiftキーを押し下げます。これで2つ目の円の相対位置が固定されます。

そのまま、マウスを動かすと、一緒に動きます。
これでドラッグすると二本指スワイプが可能になります。

任意の位置でのピンチズーム!

そして今回の本題「任意の位置でのピンチズーム」の方法は、上記の2つの方法をうまく組み合わせることで可能になります。
まず、Optionキーを押しながらカーソルを画面センター付近に持ってきます。2つの円が近づきます。
次に、この状態で、Shiftキーを押し下げ、そのままマウスを動かし、ピンチしたいオブジェクトまで持って行きます(点1)。
そして、マウス左ボタンを押し下げ、Shiftキーを離します。キーボードは、Optionキーのみ押下している状態です。
これでマウスを動かすと、点1を中心にピンチアウトができます。

ちょっとトリッキーですが、iPadアプリ開発ではイメージピッカーが端の方に出てくることが多いので、この手法はマスターしておきたいですね!

トラックパッド!

というか、MacBookのトラックパッドや、Magic Trackpadでのマルチタッチ操作がそのままシミュレータに伝われば便利なんだけど、残念ながら現状出来ません。

Apple Magic Trackpad MC380J/A

Apple Magic Trackpad MC380J/A

定価:¥ 6,800

Amazon価格:¥ 6,032

カテゴリ:Personal Computers

発売日:2010-07-29


Apple Magic Mouse MB829J/A

Apple Magic Mouse MB829J/A

定価:¥ 6,800

Amazon価格:¥ 7,800

カテゴリ:Personal Computers

発売日:2009-10-31


Hello New Year! Goodbye FarmVille.

0
Filed under facebook, games
Tagged as , , ,

あけましておめでとうございます!
去年の秋からいろいろ考えていることがありまして、今年はもっと自分の時間をコントロールしていくために、FarmVilleをやめることにしました。

Level 96

いきなりやめるよりも、自分の中に区切りを作ったほうがいいかなと思い、レベルが100に到達するか、2011年末でやめようと考えていました。
結局レベルは96までしかいきませんでしたが、2011年が終わりましたので、ここで一旦FarmVilleを終了します。Neighborとなってくれた方々ありがとうございました。

2 years

最初にプレイしたのが2009年の年末なので、トータルで2年チョットやっていたことになります。

この2年の間にzyngaもウノウを買収したり、2011年末にはIPOしたり、といろいろと変化があったりしましたが、当時見てたFacebookアプリのアクティビティ調査サイトもサイト名が変わっていたりしました。


このサイトを見ると、2012年1月2日でMAUが33,900,000と、アクティビティが2年前の半分位になっていますが、それでも大きなサービスであることは間違い無いですね。
zyngaはランキングでFarmVilleよりも上にある、CastleVilleやCityVille等も継続してリリースしているのがやっぱり数とスピードの強さですね。体裁を考えて練って練って数年に1本というリリースペースを行なっている企業とは違います。
IPO後、価格が微妙に下がっていますが、まぁ、期待値が高すぎたというのはあると思うので、一旦下がった後はそれほど下がることもないのではないでしょうか。

0 doller

リアルマネーを使うことでサクサクと農作物をつくることが出来る仕組みなのですが、私は結局リアルマネーは全く使わなかった。
レア作物は入手出来なかったけど、それ以外は大抵地道に進めることで対応できたし。
FarmVilleはバランスがいいのかもしれない。

2 points

そのバランスの良さについてもいろいろ考えてみたいとは思っていましたが、あまりうまくまとめることも出来なさそうなので、気になる2点だけピックアップしておきたいと思います。
一番重要だと思ったのが、ソーシャルゲームと呼ばれるものでだいたい入っているのですが、次のプレイ時間を考える仕組み。FarmVilleで言うと農作物が出来上がり、収穫可能になる時間。さらに言うと、放っておいたときに枯れるまでの時間。このゲームの面白さ、継続性とかはいろいろ考えるべき所があるとは思いますが、やっぱりこれが一番重要じゃないでしょうか。
あと、UIの使い勝手の悪さ、レスポンスの悪さは、あえてあのような出来にしているのかもしれない。という仮説を考えていたのですが、これはちょっとあまり考えが煮詰まりませんでした。ただ、苦労した感じを与える、というのはゲーム性、継続性に必要な要素かもしれない、と思っています。
この2点は同様のサービスを作っていく人は考えておくべきでしょう。

4 farms

現在、FarmVilleでは、4つの地域で農場を作ることができるようになっています。
まさかこういう展開でゲーム性の確保をするとは思いませんでしたが、MMOとかでもよくある新シナリオだと思えば納得のシステム。数年は持ちそうですね。
一番面白いのは、日本で普通に英語を勉強していたらなかなか出会えない言葉が多いこと。農作物、植物系の単語に偏った知識が増えていきます。
最後に現在の農場の様子をスクリーンショットを載せてFVとお別れしたいと思います。

Read More »