2017年1月1日日曜日

2017年になりました。2016年を振り返りつつ、今年の展望を手短に。

あけましておめでとうございます。
2016年も、あっと言っている間に過ぎ去ってしまい、2017年になっております。

去年は色々ありましたので、ダイジェストで振り返ってみましょう。


  1. 東京に移住
  2. アプリ開発者として会社へ
  3. 彼女ができた
どれもこれも自分の中では大きなことで、楽しんで生きることができてるなぁと思っています。

東京へ移住

兵庫県の端っこで生まれ育ち、大学でちょっと中国地方に出てたりしましたが、社会人になってからはずっと関西に住んでいたので、東京に移住するというのは自分の中では結構大きなことでした。
電車に乗っていると、メディアで見たり聞いたりしたことのある地名がどんどん出てくるのは、自分の中ではワクワクします。
ただ東京は、以前住んでいた京都に比べると物理的に広く、様々な場所に向かうのに時間がかかるのが難点かなと。

アプリ開発者として会社へ

個人で活動していましたが、会社に入ってアプリ開発することにしました。
会社に入ると、社会保障費がごっそり天引きされますが笑、給与的には安定するのが何よりも楽です。
お仕事でコードを書くというのは、自分が作りたいものではなく、お客様のためにコードを書くということで、いろんなことに気を配るようになり、自分だけが判れば良い最速のコードを!という感じのコードではなく、他の人が見てもわかるようなコードを書く、というのが大事だなと。

会社としてはまだアプリ開発者が少ない職場なので、かかる責任も重いですが、自分のことを重要視していただけてるのは、ありがたい限りで。
期待に応えられるように日々精進しなければと思ってる次第です。

彼女ができた

これについては深くは語りませんが、幸せです笑。

さて、これからの展望ですが、、
実際の生活が安定してきたこともあり、しっかり捲土重来を期すタイミングだと思っている次第です。
エンジニアとしてのスキルをしっかり磨く
自分の存在をアピールする
の二点について、頑張っていきたいと思っています。

今日はそんな感じで。

Read more ...

2016年1月8日金曜日

Googleアカウントに不審なアクセスが来たら、セキュリティ診断をしよう

朝起きると、googleから怪しいメールが届いておりました。。
「他のユーザーがあなたのパスワードを使用しました」


Read more ...

2015年9月10日木曜日

Appleスペシャルイベントでiphoneアプリのデベロッパ兼ヘビーユーザーが気になったところ

日本時間の2015/09/10の早朝に、appleがいろいろと発表を行いました

その中で、発表された情報のうちiphoneアプリのデベロッパ兼ヘビーユーザーである私が気になったところをまとめました。
おおよそみなさんが知りたい情報を網羅できているんじゃないかと。

Read more ...

2015年7月10日金曜日

WWDC2015情報共有会に行ってきました

先日アプリ開発に関する発表会に行って発表してきました。

何を発表してきた??

WWDCというAppleが行うソフトウェア開発者向けの新技術説明会が毎年サンフランシスコで行われています。昔はそこで新ハードがOne more thingで発表されてたりして、一般の方にも知られたイベントになりましたが、本来は、ソフトウェア開発者向けのクローズドなイベントでして、今年はちょっとAppleミュージックの発表が長すぎたんじゃねーかとか言われてますが、まぁそういう会がありました。
そこでの発表資料は、全てWeb上に公開されているのですが、新技術の守備範囲はとても広く、しかも英語で公開されるので、一人で全ての内容を網羅することは至難の技なのです。
なので、みんなで知っていることを持ち寄って情報を共有しようというのが今回の会の趣旨でした。

ことの流れは??

自分の実力が、その界隈ではまだまだ足りてないから発表する勇気が持てなかったんですが、みんな最初から実力があったわけではないし、すごい人も最初の一歩がどっかであったはずで、最初の一歩を踏まないと、何も始まらないと思って、僕の師匠からメッセでプレッシャーかけられてたこともあり、勇気を持って「抽選制」の発表者枠に立候補しました。
外れちゃえば、まぁ運がなかったよねと開き直れるし、当たっちゃったらそれはそれでしょうがないから頑張って準備しようみたいな、そんな運任せでいいや!って感じでの発表者枠への立候補でした。

結果は、残念ながら?当選、発表する流れになりました。

後から聞いたんですが、主催者の@akio0911が発表者の枠を後からいじって全員発表できるようにされてたようで、結局なんか手のひらで踊らされてた感じが(笑)
そんなわけで、発表するには実力が足りないかもしれない、こんなこと発表する意味ないかもしれないという葛藤と戦いつつ、資料を新宿に向かう高速バスの中でも作りつつ現場に向かい、発表をしてきました。

こういう場で発表してみて感じたこと

発表の内容は専門的な内容になるので割愛しますが、発表の場で経験したのは、今までに経験したことのない緊張でした。
いつもの発表であれば、自分がしゃべることは、誰よりも自分が知っている状態で発表するので、質問されてもちゃんと回答できるという自信がありました(あ、こう思うとやっぱり自分に自信を持つって大事なんですね)。

ですが今回の発表内容は、アップルによってすでに公開されている情報(ただし英語)を、自分より技術水準の高い多くの方々に対して発表するということで、これは自分より発表内容をよく知っている方がたくさんいてはる可能性が高い、自分が答えられないツッコミが来る可能性が、従来のものよりはるかに高い=恥をかかされる可能性が非常に高いということを示していて、おっそろしく僕にとってアウェイな環境(と思ってた)の中で発表したので、途中で、喋ってて息が、息が、、っていう状態、息継ぎが自然にできない、意図的にしゃべるのを止めて深呼吸をするぐらいに普段より緊張した状態で発表を行い、まぁなんとか発表をさせていただいたわけです。

やっぱり所定時間をオーバーしてしまったりしたわけですが、今考えるとそこまでアウェイの環境じゃなかったんじゃないかと思ったりもしています。なぜならできるソフトウェア開発者の方ほどそういう場で発表をされていて、その辛さを経験されたことがある、あまり人を色眼鏡で見ない、純粋に自分の知識にないものを、だれか素性の知れないような人が言っても受け入れる、ということで決してけなしたりするような人はその場にいなかったから。ただ僕の思い込みで、いろいろやばいかもって思ってただけでした。

発表を終えて。。

会での反応はというと、発表を終わった後、特に質問もなくて、あー、発表内容微妙だったか。。とか思ってたのですが、
・トップバッターとして発表させていただいたこと
・自分がわかるようにしか発表内容は作れないので、結果として誰にでも発表内容に言及できる程度の難易度の内容を発表したこと
・結構な目玉機能なのになぜか日本語情報が少ないということ
などから、結構僕の発表内容にハッシュタグ上で、言及があってとてもありがたい気持ちになっています。
今になって考えると、自分にわかるようにしか資料は作れないわけで、なおかつ、自分のスキルレベルがその場では結構低い方だと思うので、あの場にいる方なら誰でも理解できた、つまり興味がないんじゃなくて、全部理解してもらえた人が多かったということだと考えると、質問が少なくても、良かったのかなと考えています(ハッシュタグ上での言及は多かったし)。

これはブログとかでも同じだとは思いますが、「既存の情報をわかりやすい形でまとめなおす(今回の場合は、アップルの発表内容を、要点を押さえて、英語を日本語にする)」ということも、世間に対しての貢献となるんだなぁと思いました(過去にどっかで見た気がするな)。
ハッシュタグを追っていると、僕よりもはるかにすごい方々が、僕の発表内容を聞いて、参考になった的な内容をtweetされてて、別に難しいことを言う必要はなくて、必要とされること(なぜか日本語情報が少ない目玉機能についての解説)を言えばいいんだーと思って、勇気を持って発表してみてよかったなぁと。
そんなことを感じながら、今このことを書いています。

今、どんな感じになっているんだろうと思って、ハッシュダグを追っていると、今回の会のハッシュタグでとぅぎゃったーが作成されており、これがまた結構見られていて、なおかつ、僕の作ったスライドをslideshareというスライドをネット上で公開するサービスで公開してるんですが、そこでのスライドのビュー数が、僕のブログの普通の記事のPVなんかよりもはるかに多いView数を集めていて(いや、それは僕がpost数を確保できてないからで笑、僕のあまり書いてないブログでもちょっとPV狙ってみた人気記事よりかは今の所少ないですけど。。)、ちゃんと強みを発揮してそれをネット上に残していくことで、影響力は大きくなっていくな、と感じた次第です。

と長々と書いてしまいましたが、最期に参考資料だけ添付しときます。

昨日のイベントのハッシュタグ
https://twitter.com/search?q=%23WWDC21cafe
イベントの募集ページ(だれがイベントに来はったか分かる)
http://connpass.com/event/16691/
→このイベントに資料(今回なら↑にあるslideshareのURL)を紐付けると、参加者に対してメールが飛ぶ→さらにアクセスが集められるという仕組みが。。
Read more ...

2015年5月27日水曜日

Apple Watch内で表示される名前と、iphone内Apple Watchアプリに表示されるwatchアプリの名前について

なんだかタイトルが、早口言葉みたいになってますね。。
2015/05/27現在、watch用のアプリは、iphoneアプリとセットにしてリリースしないといけないんですが、それぞれのアプリの名前を入力する箇所がたくさんあります。
実は、僕もwatchアプリの初回リリースの時にやっちゃいまして、Apple Watchアプリ内のwatchアプリの名前と、Apple Watchに表示される名前が違ってました。
実機がないときにSubmitしたので、実機で動かして初めて気づくという感じ。
で、この表記を統一するために、いろいろそれっぽいところを触って、どこがどーなっているのかを確認したわけです。

自分への忘備録として、どこで何が設定できるのかをまとめておきます。


Read more ...

2015年5月23日土曜日

パスワード管理アプリ1PasswordとLastPassの比較

パスワード。。
というかIDとパスワードがたくさんありすぎて管理が面倒です。。

ということで、そろそろパスワード管理アプリを本格的に導入しようかなと考えているところです。

そうやってパスワード管理アプリを調べていると、幾つか選択肢があるようで、その中でも1PasswordとLastPassについて、詳細を比べてみました。

これからパスワード管理アプリを導入しようかな?という方の時間の節約になればと思います。

Last Passのロゴ
こっちは1Password



Read more ...

2015年5月22日金曜日

やりたいことをやる人とやらない人の違い

iphone3Gを買った時から、
このすごい端末で動くようなアプリを作りたいなと思ってた。
その頃はMac持ってなくて、
「開発環境がない」
という言い訳で、アプリ開発を諦めた。

Read more ...

Apple WatchとiPhoneアプリとの間で、データを共有する方法

watch-phone間において
データを共有する方法として、
僕が把握している限りでは、

1)openParentApplication:replyと、application:handleWatchKitExtensionRequest:replyを使う方法

App groupを使う方法
2)app group + NSUserDefault
3)file share = containerURLForSecurityApplicationGroupIdentifier
4)whormHole (app group)
5)realm

App group+Keychain
6)Parse

いうパターンがあるようです。
これらは順を追って記事にしていこうと考えていますが
今回は
1)openParentAplication:replyとapplication:handlewatchKitExtensionRequest:reply
を使った方法で、アプリ間のデータを共有に関して、エントリします。

エントリを書いた2015/05/22現在、Apple Watchのアプリは、iPhoneのアプリに付属した状態でしか作成できません。
通常のiphoneに加えて、WatchKit ExtensionとWatchKit Appを加えることで、Apple Watchに対応したiphoneアプリを作ることができます。

通常のiphoneアプリのプロジェクトに、WatchKit ExtensionとWatchKit Appを加えるのはとても簡単で、File > New > Targetとたどっていき、iOS下のApple Watchを選択すると、WatchKit Appを追加できると思います。

openParentApplication:replyはどうやって使うかというと、、
このメソッド、WatchKitに実装されている関数です。
リファレンスの説明には、
Open the containing iOS app and sends the specified data to it
と書いてありまして、iOSアプリを開けて、データを送ると書いてあります(ざっくり意訳)

もう一つ気をつけることが
Calling the method causes iOS to launch the app in the background (as needed) and call the application:handleWatchKitExtensionRequest:reply: method of its app delegate.

このメソッドを呼ぶと、iOSアプリが”バックグラウンド"で走り、handleWatchKitExtensionRequestが”AppDelegate”で呼ばれます
と書いてあります。

ということで、これらをわかりやすく実装してみました。
Apple Watch上のボタンを押すと、iPhone上のラベルが現れたり消えたりします。

わかりやすくするために、不要なものは極力入れてません。
まず、Apple Watch上のボタンを押すと、(シミュレーターでは、Hardware > External displayで、watchの画面を表示させてないとシミュレーションできません笑)
pushAbuttonか、pushBbuttonがコールされます。
これらの関数は、StoryBoardに配置したボタンからコードに向かってぴーって線を引っ張って作るタイプのアクションです。iOSアプリを作るのと同じ。

で、このアクションの中で、openParentApplicationをコールすることで、Apple WatchからiPhoneアプリへ、データを送ります。
このデータを受け取るのはhandleWatchKitExtensionRequest。
そのため、AppDelegateに、handleWatchKitExtensionRequestを実装する必要があります。
AppDelegateから、それぞれのViewControllerへデータを送るのは、いろいろ方法があると思うので、ここでは触れませんが、今回は通知センターを使って伝えています。
そこまでリアルタイムの動作を必要としてませんし。

急ぎで、Apple WatchとiPhoneとのデータ共有方法について確認されたい方は
AppDelegate.mと、InterfaceController.m(WatchKit Extensionの中)を確認いただければと。

全体通して見てもそこまで多くの量のコードがあるわけではないので、ご一読いただければと。


ではでは。

Read more ...

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 ...

スポンサードリンク