2015年10月17日土曜日

そんな・・・どっちかなんて選べない!:名刺管理、EightとCamCard

おはようございまーす。
なんか早く目が覚めちゃった。

さて唐突ですがみなさん、名刺ってどう管理してますか?
ワタシは名刺を頂いたらとりあえず写真を撮って、Evernoteに突っ込んでました。
まあそれでいいや、と思ってたんですが。

昨日シェアスペース「Dexi」さんで仕事をしてましたら、なんか面白そうなものが置いてあるじゃないですか。


ほう、名刺管理アプリ「Eight」のスキャナーですか。しかも無料で使える、と。
さっそく試してみました。
・・・うん、いいですね。名刺の画像スキャン自体はスキャナでさくさくと進む。
名刺のテキスト情報の入力はEight側で人力で行うみたいですね。OCRと違って時間はかかりますが、まあ正確です。
人力!・・・Dr.Walletもそうですが、最近こういうサービス、増えてないですかね。

名刺の登録が終わると、Eightに登録済みの人とは自動的に「つながり」ができたりして。
おー、便利!・・・しかも、「最近の仕事は?」みたいな、なんかタイムラインみたいな機能もあるし。
こりゃ、名刺を軸にしたSNSですねー。データ化されるのが楽しみだ。

で、ほくほくと名刺がテキストデータになるのを自宅で待っていましたら。
友人が「私はCamCardってのを使ってるよ」と。

・・・。そんなこと言われたら、試すしかないじゃないですか!
こちらも、まずはアプリをダウンロードして、会員登録。
名刺画像は・・・スマホに保存してあった画像を使いました。
こちらのサービスは人力じゃなくてOCR(光学文字認識)による情報入力。
文字を認識した後に手直しが必要ですが、・・・まあ、あまり必要ないですね。
手直しが不要な分、Eightの方が少し楽です。

ただ、CamCardにあって、Eightにはない重要な機能が・・・。
それは、連絡先との連携機能。

Eightで登録した名刺を他の用途で活用するには、有償サービスに登録して、CSV書き出しをするしかないみたいです。一応、Webサイトでも名刺は確認できるんですが、一件一件コピペってのも・・・ねえ。

CamCardは、ご親切にも、名刺をGmailの連絡先と同期する機能がありました。
しかも端末に保存されているアカウントから、同期先のアカウントを都度選べる!
もちろんデフォルトで同期するアカウントを設定しておくこともできる。
・・・こりゃ便利だ。便利すぎる。どうしよう。

・・・どうしよう。
EightとCamCard、どっちのサービス使っていこうかしら。

散々悩んだ挙句(10分くらい)、両方使っていくことに決めました。
どうせ、今までも頂いた名刺はスマホで写真に撮っていたわけですし、EightでもCamCardでもスマホの写真を入力ソースにすることはできますし。

・とりあえず名刺をもらったら、その場でスマホのカメラで撮影
・スキャナがあるとき:まとめて名刺をEightにつっこむ
・連絡先に追加したい人の場合は、CamCardに名刺の写真を登録する
・そうでもないひと、つながりを持ちたい人はEightにも写真を登録する

それぞれ良いところがあるので、悩むくらいなら両方使っちゃえば良いじゃない!
みんな仲良くね!

(さて、問題はいつまで続くかだ)


2015年10月15日木曜日

ハードな罠:iPhoneのボリュームボタンで写真を撮ると上下逆になるかも

こーんばーんはー。
昨日はObjective-C、一昨日はJava、そして今日はPHPいじってて、もうなんでも来い!な気分です。はー。

ちょっと今日は個人的に「うへえ」と思ったことがあったので書いてみます。

iOS用のカメラアプリをApp Storeで公開しているのですが。
カメラで撮影して、ちょっとしたメモを合成してから写真を保存する、というアプリなんですね。
これに、カメラからの入力画像だけじゃなく、カメラロールから選択した画像にも、メモを合成できるようにしたんですよ。

そしたら、
「カメラロールから、ボリュームボタンで撮影した画像を選択してメモを付けようとすると、画像が上下逆さまになる」
とご指摘いただきました。
・・・へ?
そんな状況、見たことないな・・・。
でも、一応検索してみましたら、あったあった。

iPhoneで撮った写真が逆さまになる理由

こんな感じ?・・・ちょーっと分かりにくいかなー?


写真を撮るときに、ボリュームボタンを上にしてしまうと、カメラの向きが逆になってしまう、ということらしいです。
正しい向きは「ボリュームボタンが下、ホームボタンが右」なんだそうで。

・・・。
いやね、私自身は普段ボリュームボタンで写真撮らないんで、困らないんですが・・・。
ヒトコト、言わせてもらうわ。
「これは酷い仕様」

だってさ、普通のコンデジとかデジカメのシャッターボタンって、右上じゃん?
ボリュームボタンで写真が撮れると分かったら、そりゃ、ボタンが右上になるように構えるよ・・・。
端末の向きが「ホームボタン左」になったら撮影した画像の上下を補正するとか、そういう風に標準カメラアプリ作れなかったのかね・・・アップルちゃん・・・。

さーて、対応どうしようかなー・・・。

2015年10月9日金曜日

起動せぬなら 殺してしまおう setupAVCapture:カメラアプリのレイアウトをシミュレータで確認する

どうも。へへへ。おはようございます。
只今絶賛不具合修正中ですが、個人的にちょっと衝撃的だったので、備忘録として投稿ー。

iOSのカメラアプリを開発しているのですが、ワタクシ、実機はiPhone 5sしかもってません。えへへ。だってお金ないもん。
でもXcodeのSimulatorでは、カメラが扱えない。
カメラアプリを起動すると、最初のスプラッシュスクリーンが表示されて、そこで止まってしまうんですね。カメラからの入力画像が表示されない。
だからカメラアプリの開発には、どうしても実機が必要になるのですが・・・。

ここで問題が。
iPadでシャッターボタンなどが表示されないよ、とアップル様からご指摘を受けました。
でも自分は実機持ってない。
・・・どうしよう。試せない。試せないと修正できない。うわー。

で、10分くらい悩んだ結果、はたと思いついた。
「カメラ機能を一時的に使えなくすれば、Simulatorでも動くんじゃね?」

やってみました。
いつもはこうしてるのを、
[self setupAVCapture];
こうしてみた。iPhoneの時だけsetupAVCapture動かしたるw
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {        [self setupAVCapture];    }

・・・動いた。SimulatorのiPadで。ほんとかよ。
まあ、もちろんカメラからの撮影機能とかは試せませんし、リリースする前に元に戻さなきゃならんのですが。
少なくとも、これでレイアウト崩れは再現と修正ができそうです。

やれやれ。

(最初からStoryboard使ってレイアウト作っとけばよかったな。次はそうしよう

2015年10月5日月曜日

iOS9のいじわるー。:iOS9でcanOpenURLを使ってみた

こんばんわ。お久しぶりです。
なんか寝つけないので、ブログでも更新してみんとす。

ついこの間リリースされた「iOS9」で、カスタムURLスキームを使って別のアプリを呼び出そうとしてたんですよ。
でも、iOS9には痛い目に遭っているので(詳しくはまたいずれ)、今度は事前によーく調べてからにしようかなーと、検索してみましたら、こちらの記事がヒット。

【追記】iOS9でcanOpenURLを有効にする方法

えっなになに・・・「iOS9でcanOpenURLが使えなくなった」・・・。
ダメじゃん。きー!とか思ってたら、対処方法も書いてあった。ふんふん。
「Info.plist」に「LSApplicationQueriesSchemes」のキーと、アプリで許可するカスタムURLスキーマを登録すればいいらしい。

ふんふん。
で、このinfo.plist、XcodeでProperty Listとして値を編集することもできるようですが(というかこっちがデフォルト)、最近Xcodeがすっごく重くなってまして。

一度Property List表示で編集しようとしたら、画面が乱れてしまいました・・・
(;_;)
仕方ないので、Open AsのSource Listでソースとして開いて編集。
これなら問題ないやね。
というか、ワタシはもともとSGMLやらXMLのヒトなので、こっちの方がやりやすかったりする。

で、端末にカスタムURLスキーマを設定した自社アプリがあればそっちを起動するし、なければApp Storeのダウンロードページを表示するようにしてみた。

んー。上手くいかない(笑)
・・・最初は「canOpenURL」で分岐させてたんだけど、上手くいかないー。
ちょっと悩んだけど、もっと単純に考えたらあっさりできました。
要はデバイスのアプリをまず開いてみて、失敗したらストアに飛ばしゃいいのよ。うん。

NSURL *url_store = [NSURL URLWithString:@"https://アプリストアのURL"];
NSURL *url_device = [NSURL URLWithString:@"CustomURLSchema://"];
if ([[UIApplication sharedApplication] openURL:url_device]) {
        NSLog(@"OK");
} else {
        [[UIApplication sharedApplication] openURL:url_store];

}

この、何でもめんどくさく考える癖、直さなきゃな。
ということで、おやすみなさーい。