« 2012年1月 | メイン | 2012年4月 »

2012年3月 8日

iOS SDK5時代の私的アプリ開発方針

iPhoneアプリを開発したり、androidアプリを開発したりの日々を過ごしている今日この頃です。
最近たてつづけにiPhoneアプリを開発していくなかで、自分なりの開発の方針みたいのが決まってきた風味なので、ちょっとまとめてみようかと思います。

SDKは最新、Development targetは4.x

iOSのどのバージョンを最低バージョンにするかっての、割と悩ましいんですけど、僕は、「4.1」か「4.2」にすることが多いです。
まだ、iOS4ユーザはかなりの数いると思うので。
SDKは最新のものを使って、Development targetを4.1とかにすると、最新の開発環境で、古いOSに対応したアプリを開発することができます。ただし、古いOSで使えないクラスやメソッドを使わないように気を付ける必要がありますが。
Development targetを5.xにできるようになるのは、iOS6が出たタイミングかなぁ。

ARCは(基本)使わない

Objective-Cのメモリ管理はめんどくさい! だから、ARC使うべき!
これは、真理なんですが、個人的に自分で確保したメモリは自分できちんとおかたづけしたいと思ってしまうので、ARCは基本的に使いません。
オープンソースのライブラリや俺ライブラリなどでARC対応でないものも多いので、そのあたりも統一したい感じ。
でも、ARC対応のライブラリをどうしても使いたい時は、そのライブラリのファイルだけをARC有効にして使っています。

EZ-NET: ファイル毎に ARC の有効・無効を設定する - Automatic Reference Counting

StoryBoardは使わない

iOS5以上で使えるStoryBoardは画面遷移が簡単に作れちゃう優れものなのですが、僕は使っていません。
StoryBoardを使うとiOS4では動かないアプリになっちゃうってのもあるけど、画面遷移のコード書くのって、そんなに難しくも面倒でもないし、どちらかというと、個人的にその部分のコード書くの好きだったりもしてw
ターゲットがiOS5で行けるようになったら使うのかなーと思ったりもしますが、でも、やっぱり使わないような気もします。
それは、次の理由もありまして。

xibは使わない

xibは使いません。つまりInterface builderでの画面デザインは行わず、すべてコードでUIを作っています。
xibを使わない方がアプリの速度が(若干)速くなるってのもありますが、それ以上にあのドラッグ&ドロップでアクションや、アウトレットを結びつけたり、デリゲートやデータソースを結びつけたりってのが嫌なのです。
うっかりデータソースを結びつけるの忘れちゃったり、ヘッダからアウトレット削除したのに接続を解除しなかったためにアプリが起動しなかったり。
コードで書いていれば、あまり忘れないし、経験上、仮に問題が起きた時でも発見が早いと思います。
なので、基本、すべてコードでUI部品を配置してます。
Xcodeが作るひながたのxibを使わないバージョンのプロジェクトを作っておくと便利ですよ。

iOS開発におけるパターンによるオートマティズム
木下 誠
ビー・エヌ・エヌ新社
売り上げランキング: 42015

投稿者 CHEEBOW : 12:10

[ iPhone ]

2012年3月13日

「ヤモリの指から不思議なテープ」が素晴らしい

ヤモリの指から不思議なテープ
松田 素子 江口 絵理
アリス館
売り上げランキング: 10100

新宿ジュンク堂が今月で閉店ということで、先日、買い物に行きました。
新宿ジュンク堂、大好きな本屋で、これから新宿で本買うの困るなぁと思いながら、お店をぶらぶらしていました。
そんな時、見つけたのがこの本でした。

結構評判になっている本らしいのですが、なんとなく今まで手に取ることがなかったのです。しかし、ジュンク堂での展示が素晴らしくて(本に書かれているいくつかの技術が展示されていた!)、つい手に取ってしまいました。
ちょっと読み始めたら、わくわくが止まらなくなっちゃったので、即買いしました。

ヤモリはなぜ、壁や天井を歩き回れるのか? カタツムリの殻はなぜ、いつ見てもきれいなのか? 地球の上で、何億年もの長い時をかけて試され、変化し、工夫されてきたすばらしいしくみが、私たちのすぐそばにある、なにげない自然のなかに、小さな生きもののなかに、ひそんでいるのです。 自然に学ぶ技術、ネイチャー・テクノロジーの本です。

自然の中の「なぜ?」からその秘密を探り、それをどうやって人間の技術としていくのかが書かれています。その過程は、まさに良質のミステリを読んだ時の読み心地。
科学離れが叫ばれる昨今ですが、まずはこの本から「なぜ?」とか科学のわくわくを体験するのはどうでしょう?
家族で楽しめる一冊なのではないかと思います。

読み進めるのがもったいなくて、毎日少しづつ読み進めています。
それくらいのわくわく本で、ここ数年でももっともわくわくした本かもしれません。
ほんと素晴らしい本なので、エントリ書かずにいられませんでしたよ。

投稿者 CHEEBOW : 10:55

[ BOOK ]

2012年3月23日

iOSアプリでアプリ内課金を実装してみた

僕個人が細々と開発を続けているiOSアプリ、BPMのアプリ内課金対応バージョンが本日リリースされました。

このアプリ、最初に公開したのが、2009年2月12日ですから、もう公開して3年はたっているわけですが、毎日100本くらいはダウンロードされているし、きちんと集計はしていなかったんですけど、おそらく累計で20万本くらいはダウンロードされているんじゃないかと思われるアプリです。

AppStoreでアプリを公開するにはそれが無料のアプリであっても、年間参加費8400円がかかります。好きなプログラミングで自分の欲しいものを作ってるんだから、それくらい仕方ないかなーとも思っていたんですけど、ダメもとでアプリに広告(iAdとAdMob)を表示するようにしてみました。おかげさまで、これだけで年間参加費くらいは十分賄えるくらいになったのですが、ユーザさんの一部から「有償でもいいから広告なしバージョンが欲しい」というメールをもらうようになりました。とはいえ、有料のアプリにするほど立派な機能やデザイン性のあるアプリではないので、躊躇していました。

アプリ内課金で広告が邪魔な人だけ広告を消せるようにしたらいいんじゃない? とは割と早いうちから考えていたんですけど、アプリ内課金ってなんだか敷居が高い気がしたんですね。
サーバとか必要なんでしょ? とか、お金が絡むとなんかいろいろエラー処理とかめんどうそう、とか。
でも、コンテンツダウンロード型の課金ではなくて、元からある機能のロックを外したり、不要な機能を削除するタイプは、特にサーバを用意する必要もないし実装も楽だし、購入に関するもろもろはAppleにお任せで結構らくちん! ってことが分かってきました。
そこで、今回「広告を除去」を85円で購入できるようにしてみました。

どういう結果が出るのか楽しみでありますし、技術的なノウハウも手に入れたので、本業の方でも役立ててみたいと思っています。
あ、このあたり興味ある方は、ご相談くださいませ(宣伝)。

投稿者 CHEEBOW : 14:43

[ iPhone ]