2015年5月16日土曜日

Apple Watchで、カメラのシャッターを切るアプリのサンプルを作ってみた

いちおうapple watch対応のアプリ
https://itunes.apple.com/us/app/flkpermitter/id982128143?mt=8
を出している私。
デベロッパーっぽい内容の記事があってもいいだろうと思ったので、今回のエントリを書いています。

前にフリーのデベロッパである堤さんが書かれていたブログに
http://d.hatena.ne.jp/shu223/20150424/1429850973
apple watchからカメラのシャッターが切れる
という記述があったので、実際に手を動かして作ってみるかと思い、今回ちゃっちゃと作ってみました。
コレ。
https://github.com/sohichiro/cameraRemote

作り方はとても簡単で
・iphoneアプリで、カメラを動作させる
・シャッターを切るメソッドを公開する
・AppDelegate上で、handleWatchKitExtensionRequestを実装して、その中で、シャッターを切るメソッドをコールする

・watchアプリをターゲットに追加する
・ボタンを追加する
・ボタンのアクションとして、openParentApplicationをコールする 。これはAppDelegate上のhandleWatchKitExtensionRequestをコールするトリガというだけ。

という感じ。

カメラを起動させる実装は、クラスメソッドさんの記事がとても参考になりました。というかほぼコピペ。コピペしただけで動作できるレベルの記事を公開していただいてありがたい限りです。余談ですが、ViewController.mにすべきところがViewController.hになってますね。読む人が読めば分かりますが。。
http://dev.classmethod.jp/smartphone/ios-camera-intro/
今回は一番簡単なUIImagePickerControllerを使う方法で、カメラを起動する実装しました。

ほぼほぼクラスメソッドさんが公開されている記事をコピペして作ったViewControllerに、外部からカメラのシャッターを切るメソッドを追加しています。
//以下の記述を.mファイルに。
-(void)takePicture
{
    // 写真を撮る
    [self.pickerCtr takePicture];

}

//以下の記述を.hファイルに追加

-(void)takePicture;

追加したメソッドを、AppDelegateのhandleWatchKitExtensionRequest内でコールすると。これで、iPhone側の実装は完成。あ、AppDelegate.mにViewController.hをインクルードするのを忘れずに(それは僕だけか笑)

続いて、watch側の実装。
Xcodeのメニューから、File>New>Targetと選び、templeteを追加する画面から、WatchKit Appを追加。
プロジェクトに、WatchKit Extensionと、WatchKit Appが追加されます。

で、WatchKit Appには、Interface.storyboardがあるんで、iphoneアプリのstoryboardに追加するのと同じように、ボタンを追加。ボタンからピーと線を引っ張って、アクションをWatchKit ExtensionのInterfaceControllerに追加っと。

作成したアクションに、openParentApplicationを実装して、一応今回の目的であるカメラのシャッターをApple Watchから切ることが出来る最小限のアプリが完成します。

一応サンプルをgithubにおいておきますので、詳細はコードを確認していただければ。
https://github.com/sohichiro/cameraRemote

とはいえ、カメラを使うコードなので、動作の確認は実機で行っていただければと。
あと、認証コードはどーなんだろう。。

ではでは。
Read more ...

2015年5月15日金曜日

こいつはヤバい。SmartICOCAを落とした時の対処法

とても簡単。
SmartICOCA紛失ダイヤルに電話をして、おねーさんの指示に従って対処する。
これだけです。

これだけだとちょっと中身薄すぎなんで、僕の実体験を。

SmartICOCAを紛失したことに気づいて、とりあえず紛失ダイヤルに電話。
例の「順番におつなぎしております」のコールの後にオペレーターのおねいさんに繋がります。
僕の場合は3分程度の待ちでしたが、この辺りは時間に依る気がします。
気が急いてるとは思いますが、素数でも数えながら落ち着いて待ってください。

でもってオペレーターのおねいさんにつながると
・名前
・生年月日
・電話口は本人か?
を確認されて、登録している電話番号を聞かれました。このあたりは電話での個人確認のテンプレート通りな感じがします。

これらの情報をもって本人確認がなされ、SmartICOCAの所有者であることが確認されると、ふた通りの対応案が提示されました。

一つは、今の状態でカードを無効化して、SmartICOCAの残高や、定期の情報を、新規カードに入れて再発行するパターン。このパターンを取ると、この電話口において、その時点でカードが凍結されるため、カードが発見されても使えなくなっています。凍結前の情報を新規に発行するカードに移し替えて、使用を続行するパターン。
カードに入っている残高もそのまま移行できるのがポイント。
ただしカードが見つかったとしても、そのカードは使えないし、再度カードを発行してもらう手間が発生します。

で、もう一つの対応案は、現金なしでチャージができる(紐付けたクレジットカードにチャージ分請求される)クイックチャージの機能のみ停止させること。悪用されても残高がなくなれば、普通のICOCAと同様に自分でチャージする必要があるので、際限なく自分のクレジットの残高増えることはないと。
この対応案は、カードが凍結されないので、仮に見つかれば、その場でまた使い始めることができるけれども、その時点でチャージされている残高は保障されません。使われて減っているかもしれない。
あと確認はしなかったのですが、きっとクイックチャージの復旧作業をする必要あると思われます。
見つかりそうな心当たりがある場合や、悪用されてもチャージされている分のみなら割り切れる、悪用されないような場所例えば家の何処かとか、会社の中でとかで、落としてるのが間違いないというのであればこっちを選ぶという手もあります。

前者を選べば無条件で、新規発行の手続きが必要(大阪駅まで取りに行くor郵送?)になり、後者の場合でも、結局見つからなかった場合は新規発行が必要になります。

新規発行手続きは、大阪駅に行ってやるか、電話からも、可能なようですが、受け取りは大阪駅で行う必要があるので、電話での新規発行手続きしておいて、翌日以降に大阪駅に出向くのが、一番手間が少ないかなーと思います。
郵送してもらえないのかな??
聞くの忘れちゃった。

という感じです。ではでは。

Read more ...

2015年5月14日木曜日

狭い部屋でもたくさんのモノを収納する工夫

引っ越しをしたので、どうやったらスマートに物が置けるかなーというのを考えたのでメモ書き。
とっても簡単な事なんですけどね。


  • なるべく縦に積む
  • 同じ種類のものは同じところへ
  • モノの定位置を決める
  • 使うところに使うものを置く
こんなところでしょうか。

なるべく縦に積む

これは、下にモノを置いた場合、なるべく天井までの空間を使ったほうが、部屋が広く見えるかなという感覚。
下にモノをおいているということは、その床のスペースはどうやってもモノに専有されるわけで、モノを置いたスペースを縦に有効利用したほうが、何もないスペースは広がるなと。結構上のスペースって余ってるんですよね。
僕はつっかえ棒なんかを使って、上のスペースにモノを置くのが好きです。

同じ種類のものは同じ所へ

これもあたりまえっちゃ当たり前のような気がするんですが、例えばドライバーが自分の机と、作業場の二箇所にあると、どこにどの種類のドライバーがあるかわからなくなるんで、同じ種類のものは一箇所にまとめておいたほうが使い勝手がいいという話。
そーすれば、アレはあのへんにあったとかイメージしやすくなって、必要な物がすぐに取り出しやすくなる。

モノの定位置を決める

上の項目とも関連するんですが、どこに何があるかわからなくなる理由は簡単で、モノが何処においてあるか忘れるから。だから天才の机は散らかっていても、何処に何があるかわかるから余り問題にならない。。のではなかろうかと。。(書いてて自信なくなってきた)
何処においてあるかを忘れないようにするには、いつも同じ場所にモノがあればいい→戻す場所を決めてやればよいという流れ。

使うところに使うものを置く

これまた上の項目とも関連するんですが、モノの位置は、自分が使う場所に近ければ近いほど便利。
モニターの前にキーボードがあるのが便利。
キーボードがお風呂場にあったら、意味ないし、いちいち取りに行く手間もかかるしで、不合理。
とかなので、そのものが、使う場所の近くに配置されていると便利。

という感じです。

ではでは。
Read more ...

スポンサードリンク