iOS開発修行中に参考になった本を紹介

■木下誠 「たのしいCocoaプログラミング」

iPhoneのSDKが一般公開された頃から、自分でアプリ作ってみたいと思ってMac miniまで買いそろえたりしていたものの、昔から「C」と名のつく言語(というかポインタ?)が苦手だし、オブジェクト指向も概念はわかるもののいまいちとっつきにくくて、長らく放置していました。

が、MacBook Airを買ったり、ちょっと仕事絡みで相談を受けたりを機にようやく重い腰をあげてみたのがこの年末年始。でもやっぱりObjective-CもXcodeも敷居が高くてTwitterでプログラマの友人達に助言を請うたりしつつ、1月は本当に頭を悩ませていました。本を何冊も買っては、説明がスッキリしなかったりサンプルのビルドが通らなかったりで投げ出したりの繰り返し。

そんな中で急速にObjective-CやXcodeに関する理解が進んだ感があったのが、木下誠氏の「たのしいCocoaプログラミング」でした。この本は正確にはiOS開発について触れた書籍ではなく、MacOSXに関するものです。ただObjective-CやXcodeに関しては共通事項もおおいということで、随分前にTiger版を買ってあったのを手にとってパラパラと読み返してみたところ、その前に何冊か読んでいてイマイチすっきりしてなかったところが急激に納得いくようになりました。Xcode 2.xと現行の3.xでは随分作法もかわっているということなので改訂されたLeopard版を速攻で注文。

以前友人向けにVB.NETで作った簡単なWindowsアプリをOSXにさっくり移植できてしまいました。最初からこれ一冊で足りたかどうかは定かではありませんが、断片的だった知識をこの本が再構成してくれた感は高いです。特に他の書籍ではXcodeやInterface Builder上での操作が手順でしか示されていなかったのに対し、この本ではその意味についても触れてくれていたのが大きいような気がします。.hファイルと.mファイルがペアで1つのクラスを表している、といった極基本的な事も、この本でようやく気付いたというレベル(他の本は.hにこう書け、.mにこう書け、ほら動いたでしょ、というノリ)。Objective-Cについても、例えばimport文で宣言ファイルを指定するのに、<>で括るのと””で括る意味の違いまで触れていたのはこの本が初めてでした。そういうレベルの入門者には、(iOS開発を目的とした場合やや遠回りに思えるかも知れませんが)一読の価値があると思います。

■所友太「iPhoneプログラミング UIKit詳細リファレンス」

続けて重宝したのがこちら。「たのしい~」でObjective-CとXcodeの雰囲気がつかめたので、あとはiOS特有の部分を差分的に読めればいいやってことで。iOS 3.x世代の解説本ですが、入門レベルの要素は網羅されているので支障はない気がします。まぁ、もしかするとiOS4.xなら同じことをより簡単にできるようになったりはしてるかも知れませんが。

この本を参考にして、相談を受けた極簡単なアプリのデモ版を完成させることができました。データ保存もネット通信もしないごくごくプリミティブなアプリですが、何冊も投げてきたσ(^^)としては、格段の進歩という気がしています。詳しい人にソースを見せると、とてもオブジェクト指向的とは言えないような作りかも知れませんが、それは今までのVB.NETで作ってきたツールも同じだしw。

「あとは本でもネットでも公式リファレンスでも見ながら猿真似していけば(σ(^^)個人が作る規模のアプリなら)なんとかなるんじゃないか?」という気がVB並にしてきたのは(錯覚だったとしても)大きい。あとはそのドキュメントがVBに比べるとやはり少ないのが難点ですね。

■てことで逆引き本2冊

というワケで、やりたいことがサクっと調べられるよう、いわゆる逆引き本をObjective-CとiOSで1冊ずつ買って見ました。これらはまだ活用には至ってないので、(「原則として自分で使ってみたものをレビューする」という本ブログの主旨には反しますが)紹介まで。

1冊目はObjective-Cという言語に関するもの。「文字列を文字列で分割する」とかそういうレベルの調べもの用。おそらく現時点で日本語で読める逆引き本としては唯一なんじゃないかと。先日立ち寄った書店でも2010年のプログラミング関連書籍ランキングで3位になってました。

もう1冊はiOS特化の方で、「アプリ内から写真撮影をするには」とかいったAPIレベルのノウハウが数多く収録されているようです。世代的にもiOS4.x対応なので心強いです。

 

当面この後マスターしたいのはテーブルビュー(リスト画面)とCoreData(データの保存関係)ですね(フルグラフィックなアプリを作ることはないだろうし)。それを習得できれば簡単な実用アプリは書けるようになる気がします。なんか手頃なお題を物色中。

Nintendo 3DS、予約始まりましたっ!

2011年1月20日午前9時48分現在、Amazonでまだ両色とも予約できるようです。

とりあえずアクアブルー予約してみました。

欲しいゲームいまんとこないけどw。カメラとかで遊んでみようかと。

同日午後5時39分追記:両色とも予約受付終了。マーケットプレイスのぼったくり(4~5万)価格のものだけになりましたね。

iPhone4カバー買い換え パワサポ Air Jacket ラバーコーティング

iPhone4のカバー(NUDE)が割れてしまったので買い換えました。少し前に買った静電容量タッチパネル対応手袋が滑りすぎて危ない感じだったので、ラバーコーティングのものをチョイス。既に同社の保護フィルムを2種類とも保持していてかつ余っている(2枚組なので)身としては、抱き合わせ販売で割高感があったんですが、パワサポのエアジャケットにしてみました。

店頭の見本ではあまり感じなかったんですが、実機にはめてみるとラバーコーティングの感触が思いのほか手に馴染んでしっくり来ます。適度な摩擦で安心感があります。それでいて手持ちのベルトケースの出し入れがひっかかるほどでもなく。ラバーだけに汚れ(特に皮脂的なもの)や傷付きやすさは不安ですが、その辺は少し使い込んでみないとなんともですね。でも今の印象でいえば、ダメになったらまた買うかも、というレベル。基本クリアが好きなので、最悪ラバーコーティングは冬の間用(手袋対策)と割り切るつもりで買ったんですが…。iPhone4って3/3GSと比べて角張ってる上にガラスで冷たいので硬質な印象が強いんですが、適度な温もりのようなものを感じて手にもった時にホッとします(ちょい大袈裟)。

SDIM0975

本体上部の写真。エッジ部分に微妙な段差がついていてちょっぴり高級感があります。前のケースは音量ボタンのところから割れてきてしまったんですが、こちらの方が若干強度がありそう。そもそもクリアケースではゴミが入ったのが気になって時々外して拭いたりしてたんですが、それが見えないとなればそう滅多につけはずししない気しますし。スイッチ類の押しにくさは全くありません。

 

SDIM0974

こちらが下側。スピーカー&マイクが一部隠れてるのが気になります。強度的に必要だったんでしょうか?開口部こそ拾いですが、はまり方はピッチリしていて、勝手に緩んだりしそうな気配は今のところ皆無です。もちろんいくら薄いといっても純正Dockには刺さりません。

 

SDIM0976

こちらが本ケースの特徴の1つ、フラッシュガードパーツ。フラッシュ撮影時に光の反射がレンズに映り込むのを軽減するんだそうです。ホントかしらって気がしますが、まぁついてる方がカッコイイ気がするのでつけておきます。ちなみに1つ予備がついてきます。

 

当初、単品でも比較的高価な部類の液晶保護フィルムがセットになってて割高感があったんですが、使ってみると予想よりしっくりして気に入りました。保護フィルムの品質は折り紙付きなので、まだ液晶保護フィルムも買ってないという人はまとめてこのセットはオススメですよ。

iPad用スタンド付き防水ケース

SDIM0970

MacBook Airが快適ですっかりお風呂専用と化しているVAIO Pの処分を検討してまして、ならばと代わりにiPadをお風呂で使えるようにしようじゃないかということで防水ケースを物色。当初VAIO PやPSPで利用実績のあるアクアトークのiPad用にしようと思ったんですが、レビューによるとかなりピッチリなサイズでハードケースをつけた状態では入らないらしいことと、やはりお風呂で使うならハンズフリーでしょってことで却下。

ググっていたらちょうどタイムリーに(国内)発売したばかりのDRiPRO製のものを発見。輸入代理店であるフォーカルポイントの公式楽天ショップで速攻注文しました。

ウチのiPadはSoftbankブランドのAirジャケット(パワサポのOEMと思われる)を装着してますが、そのままでも無事入りました。ただつけてようがいまいが、HOMEボタン以外のハードキー(スリープ、音量、回転ロック)は基本操作不能と思っておいた方がよいです。その分、液晶面はかなりピッチリと貼り付くのでヨレて映り込みが酷いとか以前買ったKindleDX用のケースみたいなことにはなりません(このブランドのiPad用もありましたが当然スルー)。ただ湯気による曇りが結構気になります。しかも画面にタッチするものなので、タッチした部分だけ濡れて湯気が晴れてしばらく使うとまだら状態に。まぁ、乾いたタオルでマメに拭けばいいんですが。試しに水中眼鏡用の曇り止めを塗布してみたところだいぶマシになりましたが、今度は若干指滑りが悪くなった気がします(^^;)。

SDIM0963

右の写真は口の部分。3列のビニールファスナーで念入りに止めた上で、さらにそれを折り込んでベルクロのフラップで止めるという厳重仕様。ぶっちゃけ出し入れが面倒です。多分水が入るとしたら劣化して角に空くとかの方が心配で、口はここまで厳重じゃなくてもいい気がします。お風呂で使うだけなのでIPX8等級(10m防水)とかオーバースペックじゃなかろうかと。さすが訴訟大国。IPX4(防沫)程度でいいのでもう少しシンプルな出し入れができた方が嬉しかったです。


SDIM0962

お次の写真は背面のスタンド部分。折り返したフラップが引っかけられる部分が2重になっていて、スタンドとした時の傾きが2段階から選べます。本当に上からひっかけるだけなので、例えば少し位置を変えようとかって持ち上げたりするとすぐに外れてまた両手でひっかけなおさなければならなかったりします。ハードボタンも操作できないし充電もできないこのケースで常時使う訳はないので、もう完全にお風呂スタンドとして割り切ってもう少ししっかりした固定方法を採用して欲しかった気がします。どちらかの高さを諦めて固定してしまおうかとも思ってます。

 

あと見ればわかることですが、横向き専用形状なので、例えば電子書籍アプリで読書するには向かない点も惜しいですね。一番向いてるのは動画系だと思います。触らなければ画面も濡れないし。そういう意味ではVAIO Pよりも画面も大きく(対応形式は絞られるものの)再生もスムーズなので快適です。

AppleTVで写真が「読み込み中」のままになる時の覚え書き

実家のWindows7なAtomサーバー機に入れた4,5千枚の写真が入ったフォルダをiTunesで共有設定して、有線LAN経由のAppleTV2で表示しようにも「”(サーバー名)”を読み込み中…」と出たまま変化がない。いくらAtom機とはいえ、たかだか数千枚の写真でここまで時間がかかるのはおかしいというか、正常な動作としては実用にならない遅さ。

ってことでいろいろいじった挙げ句、共有対象フォルダの中にあるiPod Photo Cacheフォルダを削除したところ治った気がします。これは文字通りAppleTVなどでサクサク表示するために最適化した一時データなので、消しても自動的に作り直されるだけで、元の写真には影響しません。

復旧後はそこそこのレスポンスで閲覧できるようになりました。