2014年9月16日火曜日

IFTTTのJazzHandsを使用したチュートリアルサンプル

使ってみました。

所感ですが、
できることできないことを把握して、これを使う前提でチュートリアルを組むなら
申し分ない出来です。
が、さらにリッチに動くものを作るとなると自前で
scrollviewdidscrollを利用して実装したほうがいいかもしれません。



とはいえ、そこまで複雑でないアニメーションであれば、
IFTTTAnimationを実装しても、scrollViewのdelegateをオーバーライドして実装すれば
応用が効きました。

実際やってみたのは、ページ単位で自動発生するアニメーションをios7から実装されたUIKitによる
キーフレームアニメーションで実装し、同じオブジェクトにIFTTTAnimationをセットしても
特に問題なく動きました。


viewのalphaやらx座標やらが結構ややこしくなってくるので、そこらへんをしっかり管理すれば、
簡単なアニメーションと組み合わせて非常に効率よくチュートリアルを作れるんじゃないでしょうか。




1年もしないうちにこのUIが古臭くなる恐怖を覚えつつ・・・。

2014年9月4日木曜日

他社の通信の解析。自分メモもかねて。

チームメンバーにスーパーハカーがいます。

その方の共有なのですが、
他社のアプリがどういう通信を行っているか解析する方法(httpsは不可)
です。

1.ここを参考にMacをアクセスポイント化します。 http://weekly.ascii.jp/elem/000/000/136/136392/ 

2.テスト端末をアクセスポイント化したマックのWiFiにつなげます。 

3.Wiresharkをインストールして起動&Analyze開始 


すげーwww

これで今はやりの白猫解析を行ってもらった結果

- 素材DLとゲーム処理は別サーバーに分けている 
- ゲーム処理はAWSのTokyoリージョンで処理 
- 素材はAkamaiのCDNを利用 
- 暗号化はHTTPSを使わずに独自の暗号化処理を用いている(おそらくSSLによる負荷を気にしての措置) 
- Nginxは使っておらず直接Apacheにアクセスしているっぽい。たぶんPHPなんだろうな。



めっちゃ勉強になります!

2014年9月3日水曜日

Facebookとかが公開IDをどうやってつくってるのか

http://qiita.com/daisy1754/items/98a6e6b17d8161eab081

ここにまとまっているんですが、
プチすごいのがFacebook。

一種の発想の転換ってやつだなって思いました。

一般的なのはInstagramあたりのやり方なんでしょう。
また、さらに簡単なのもあって、
phpならuniqidというメソッドを使ったあれやこれやでしょう。

ただ、せきゅりてー的にどうなんとかあり、各社独自のプログラム組んだりするわけです。

これは裏側に、
リアルタイムに独自のロジックでユニークかつランダムな文字列を生成しなければならない
という事情がありまして、負荷とかできるだけかからないように作らなければならないんです。
(これが意外とやっかいちゃん 理由は最下部で)


そこでFacebookの手法。

リリース前とかに一気に300万件とかかぶらないID作っておけばいんじゃね?

ユーザーいねーから負荷かかってもいーじゃんね。



その発想はなかったわー。



まさにこれを実装しているんですが、
ぱぱっと作って300万件レコードつくってみたら
ロングフリーズ発生してそのまま帰ってこなかったのはナイショ。




ちなみに、ユニークかつランダムな文字列を負荷がかからないように作るのが
なぜやっかいちゃんかというと、

123abc という文字列から3つランダムに取り出して並べる

って作業をします。

すると、 b2a という文字列が出来ます。

これをテーブルAに登録しておきます。

テーブルA:[b2a]

さて、もう一人ユーザーが増えました。

また例の文字列つくらにゃあかんですね。

さっきのロジックで作りましょう。

3ba という文字列が出来ました。

登録。

テーブルA:[b2a,3ba]

順調、順調。

またまたユーザー登場。

b2a という文字列出来た。

とうろ・・・ できねー!

かぶってますね。

これ回避するために、かぶってるチェックしなきゃあかんすね。

これは二人目のときからどげんかせんといかんやつだったのですが、
二人目が 3ba 作った時に一回テーブルAにアクセスして
3ba かぶってない?大丈夫?
って聞かないといけません。

セーフならそのままいっちゃってー
アウトならもっかいランダムで作り直すわ。

これが100万人目とかなったら。。。
イメージできました?
大変そうです。


細かく言えばいろいろあるんですが、
ざっくりこういうことなんでやっぱFacebookの発想おもろいです。

2014年9月2日火曜日

UIチームができる理由

わかる気がします。

造っている中で、あれが欲しい、これが欲しいってのは当然出てきて
当然それはユーザーに基づいて考えるわけですが、
では、
全て叶えてあげればユーザーにとって至極のものが出来ます!
ということはないです。

サービス全体を見る。
これにつきます。

UIを理由に~という機能をつけない

この意見は最初反対でした。
しかし、これを割り切れることがユーザーがより使いやすいサービスを
産み出すことにつながることが理解できました。


具体的には、例えばボタンの位置と遷移のアニメーションの関係。
~の機能を追加するには8割それを起動するボタンが必要になるはずです。
そして、その機能が起動した後はこれまた8割は画面に変化があります。

ボタンを押す⇒画面が変化

まずこのワンアクションがユーザーに違和感を与えないか、
そして、ここに至るもしくはここから至る経緯で違和感を与えないか、
これは画面の変化のアニメーションに大きく影響しているなと感じています。



さらにここにユーザーのアクション(スワイプ等)が絡み合ってくるでしょうが、
まずは遷移のアニメーションから。


そして、これからの遷移のアニメーションには
InteractiveTransition
これです!

詳細はまた。