Monthly Archives: 5月 2014

「Xcode 5 徹底解説 for iOS/OS X」買った

発売以来、主にその大きさから購入をためらっていた(電子書籍化を待っていた)んだけど、この週末読む時間が取れそうだったので、ついに買った。


Xcode5徹底解説 for iOS/OSX

ちゃんと読み込んでものにすれば、アプリの開発効率がかなりあがりそうなので、手を動かしつつ、目を通していこうと思う。

それにしてもIT系の書籍はもう電子書籍デフォルトでいいんじゃないかと。
DRMフリーなら、紙より高くてもいいから!(自炊する手間や置く場所を考えればちょっとぐらい高くても電子書籍の方がいい)

広さ的な意味で住環境が劣悪な日本でこそ、電子書籍はもっと輝くはず!
そんなに本置けない!!

とはいえ、いろいろ事情があったりして難しいものもあるんですかね。
その場合は、こういう理由で電子書籍当面出ないよ!とか告知してくれると諦めがついて購入しやすい気がします。

 

Chromecast触ってきた

今日は暑すぎて何もする気が起きなかったし、ビックカメラでやってると聞いたChromecastの体験会に行ってきた。

chromecast

↑はイベント参加者に配られたシール。気前よく2枚もくれた、ラッキー。

デモの内容はAndroidでYouTubeアプリを開いて、その動画をChromecastで再生するというもの。

AirPlayと違って、Chromecast自体がYouTubeから動画を持ってくる仕組みらしいけど、そんな感じの動きをしてた。
※ 再生を指示してからローディング(?)がしばらくあって、(ようやく)再生される。

スタッフさんは、

    • 競合は(つまりApple TV)1万円ぐらいするけど、Chromecastは4500円!
    • 動画を再生した後、端末側でメールとか電話とかできる!

の2点をメリットとして挙げられていました。

2つ目のメリットをアピールするためには、YouTubeじゃないサンプルのほうがいいんじゃないかなぁ(そもそもApple TVは単体でYouTube見れちゃうので)とか思いながら、
結構迷ったけど、既にApple TVを持ってることもあって、購入は見送った。

最近、このどこの誰が言ったかわからない名言にしたがってるんだが、わりといい感じ。

まぁ、5000円ぐらいのガジェット、何も気にせずに鼻ほじりながら買えるくらいお金があればいいんですが。

もっと稼げるアプリを作りたいです。

 

The Blocks of the Dead: Objective-CのBlocks構文をひたすらタイプして覚えよう

「そろそろObjective-CのBlocks構文をスラスラ打てるようになりたい!」と思って作ってみた。
空白の扱いとかもうちょい改善したいところはあるけど。ひとまず動くようになったので公開。

The Blocks of the Dead

blocks_play

tnantoka/blocks

名前はセガの名作からパクりました。
「The Typing of the Blocks」じゃないのは、Blocks構文のややこしさにふさわしい”Dead”を残したかったから。

参考サイトはHow Do I Declare A Block in Objective-C?です。
(オリジナルはURLがよろしくないwordなので、公式のミラーサイトへリンクしてます。)

はじめてのAngularJS

以下Objective-CではなくJSの話。


AngularJSアプリケーション開発ガイド

を読んだので、AngularJSでやってみました。
(というか、AngularJSの勉強のために作った感じ。)

今までBackbone.jsしか使ったことがなかったので、初Angualrです。

Angularの方がいろいろ書き方が決まってたり、テストの仕組みまで揃ってたり、至れり尽くせりな印象を持ちました。

Backbone.jsは、Backboneで提供されるModelやViewを継承することは決まってるけど、その先は結構自由で、設計力が試されるイメージ。
※ 何も考えないとrender()がやばいことになったり

僕みたいなへっぽこには、Angularのガチガチ感が心地よかったです。Rails Way的な。
もうどうせならモデルの仕組みまで用意してくれたらいいのに、とも思ったり^^
(最近フレームワークに頼りすぎて、自分で1からクラス的なもの書かないからちょっとテンパったorz)

あと、公式で用意されてるangular-seedがコンパクトで良いテンプレートでした。(Gruntなし。NPMとBowerで管理。)Yeomanが生成するやつはちょっといろいろ入りすぎてウッってなるので…。

次もAngularでなんか作ってみようと思う。
HTML5 Japan Cupなんておもしろいものが開催されてるらしいから、何か応募してみようかなぁ。

MacBook Pro 15インチを持ち運ぶためのトートバッグを買った

今まではこのリュック↓を使ってて、デザインも使い勝手も気に入ってたんだけど、年齢的にリュックはそろそろきつくなってきたなぁ(※)と思い、トートバックタイプのものに買い換えることにした。
※ ただしイケメンは除く

 

いろいろ探したんだけど、ナイロン生地の安っぽいのとか、ポケットだらけのゴテゴテしたものが多くて、あまり選択肢はなかった。

条件は以下の3つぐらいでそんな厳しくないつもりなんだけど…。

  • ・価格は1万円以下。(5000円ぐらいならなお嬉しい)
  • ・鍵などを入れるファスナー付きポケットがあること。
  • ・PCを入れるのでクッションも必要。
  • ・革製は相当いいやつ買わないと硬くて肩が痛そうなので、布製で。

調べていくうちに、HUGGERとGOLLA製のものがいい感じだとわかり、
最終的に以下の3つが候補になりました。

HUGGER 1514

 

ポケットもたくさんあり、小物入れのポーチまでついて、使い勝手がよさそう。
触ってみたところ、生地もいい感じでした。
紐の長さが調整できないので体格によっては厳しいかも。

1639が黒です。大きさが少し違いますが、誤差かな、と。

HUGGER 1575

 

見た目はかっこよくて、大容量なのもいいんですが、
三枚おろしの魚みたい(?)な構造になっているので、好き嫌いがかなり分かれそう。
僕は実物見た上でごめんなさいしました。

GOLLA 1443

 

Gollaってインナー用スリーブケースのイメージしかなかったんですが、バックもたくさん出してたんですね…。
ちょっと厚みが乏しいですが、PCと財布などの小物類をいれるには十分かと。
こちらも肩紐の長さは調整できないので注意。

パープル(1444)もあります。

結論

最終的に3つめのGolla製のものにしました。

決め手は…価格ですw
もともと他のより安いのに、さらに、ヨドバシでパープルが3000円ぐらいになっていたので「これだ!」となってしまいました。

ただ、実際届いてみると、思ったより青々しててちょっとびっくりしました。(ネット上の写真だとネイビーよりに見えたけど、届いたら、あぁ、確かにパープルですね、これは…ってなった)
あと、黒より生地が安っぽい?
※ 買う前には黒しか実物確認できなかった

肩紐についてるボタンからシャンシャン(?)音がするのも微妙に気になる。

なので、お金に余裕がある人は1番目のHUGGERのやつの方がオススメかもです。

使用感

その後、2週間ぐらい使ってみた感想ですが、ずっと肩にかけて移動していると肩こりが半端ないです^^
なので普段は手に持って、両手を開けたい緊急時だけ肩にかけるようにしています。

肩紐がもうちょっとだけ長かったらかけたりおろしたりが楽になるのになぁ。

その他は特に不満はなく、3000円で良い買い物ができて満足でした。

UIViewControllerのinitではviewをいじらない方が良い

いや、考えれば当たり前なんですが、眠気と闘いながら書いてたりすると、背景色とかinitで設定しちゃってたり…。

例えば以下のようにAppDelegateからViewControllerを設定しているとします。

AppDelegate.m

こちらが問題のないViewController。

(問題のない)ViewController.m

出力されるログは以下のように、(1)-(I)-(2)-(II)-(3)の順になり、想定通りです。

2014-05-17 14:46:56.865 init[1497:60b] AppDelegate – (1)
2014-05-17 14:46:56.867 init[1497:60b] ViewController – (I)
2014-05-17 14:46:56.867 init[1497:60b] AppDelegate – (2)
2014-05-17 14:46:56.868 init[1497:60b] ViewController – (II)
2014-05-17 14:46:56.870 init[1497:60b] AppDelegate – (3)

次に問題のあるViewControllerの場合。initでself.view.backgroundColorを操作しています。

(問題のある)ViewController.m

ログが(1)-(I)-(II)-(2)-(3)の順で出力され、先ほどの例と変わってしまっています。

2014-05-17 14:49:21.885 init[1516:60b] AppDelegate – (1)
2014-05-17 14:49:21.886 init[1516:60b] ViewController – (I)
2014-05-17 14:49:21.887 init[1516:60b] ViewController – (II)
2014-05-17 14:49:21.887 init[1516:60b] AppDelegate – (2)
2014-05-17 14:49:21.889 init[1516:60b] AppDelegate – (3)

これは、init内でself.viewにアクセスしたことにより、そこでviewが読み込まれてしまい、発生した差異です。

多くの場合、問題は起きないと思いますが、いざハマると解決に時間がかかりそうな気がします。

気をつけよう…。

1 2  Scroll to top