LEXUES BLOG

レキサスブログ

初めてのipadアプリ開発で学んだ10の事 その2

こんにちは、宮里です。

大分間が空いてしまいました。。初めてのipadアプリ開発で学んだ10の事 その1 の続きを書こうかと思います。
ちょっとネタが古いかもしれませんがご了承ください。


教訓その6. 見た目よりも動作のスムースさを優先せよ

その通りです。見た目は重要ですが、動作が遅かったら、とても使う気にはなれません。ましてや、そのせいでハングアップされた日にはユーザとしてはたまったものではないです。まずは動くものを。これ鉄則です。

教訓その7. デバッガの機能を駆使せよ

Xcodeにはデフォルトでデバッガがついています。泣く子も黙るgdb。いちいちNSLogをとる必要もなく、デバッグポイントを置いて、コンソールにて吐き出せば、逐一データを確認できます。また、ブレーク中にカーソルを変数等の上にもっていけば、勝手に内容をツールチップ的に表示してくれたりします。まぁそれはXcodeの機能という事もありますが。

さらに、メモリリークが起きた(予感がする)時、もしくは原因不明でアプリが終了してしまうような時などは、Xcode付属のデバッグツールInstrunmentsを使用しましょう。Xcodeメニューの Run > Run with Performance Tool 以下に色々とツールが入っています。

特に私が使ったのは、LeaksというInstrunment。これを使えば、リークが起きたコード個所をピンポイントで指摘してくれます。神ツールですよね。

教訓その8. NSArrayを共用変数的に使ってしまえ

良く使う手かもしれませんが、グローバル変数が欲しいと思ったときに、連想配列でもってデータを共有すると便利です。Objective-Cで実現するならば、NSArrayです
(NSMutableArrayでも可です)。

使用方法としては、

1. グローバルなファイル appGlobals.mなどに、PropertyとしてNSArrayのインスタンス変数を一つ確保する
2. アプリの初期化時にあらかじめキー値を指定してNSArrayを確保
3. 対応するキー値に好きなデータを出し入れ

これで、とりあえずはデータを共用変数的に使うことができるかと思います。
こうすれば、extern const みたいなコードを大量発生させずに済みます。

注意点として
・挿入する時、上記の型かもしくは、同型のMutable版を使用可能ですが、取りだす際はimmutableとして返ってきます。
※例として、たとえばNSMutableStringを挿入したとしても、取りだす時はNSStringとして返ってきます。

・静的にしか変数を割り当てる事ができません。

教訓その9. MutableにできるものはMutableにしておけ

通常NSDictionaryとかNSArrayは、領域を確保した後、領域を追加することはできません。なので、後々変更があるかもしれない変数で、且つMutable(可変)にできるものは、予めMutableとして生成した方が後々楽かと思います。
※例として、NSDictionaryは予めNDMutableDictionaryとして宣言するなどしておくと吉。

教訓その10. 最後は根気とやる気

これ一番重要だと思います。

Cocoa touchフレームワーク(iPhoneSDKといってもいい)は全てのパーツ(クラス)が充実している訳ではないです。超発展途上です。なので、結構低いレイヤーから作らないと行けない場合も多かったりします。

さらに、バージョンアップの度にメソッドがdeprecatedになっていて、メソッド変更しなきゃプログラム動かないといったことがあります。なので、その度に該当箇所を変更します。

また、基本リファレンスは英語です。英語には日々慣れ親しんでおかないと大変です。

ある程度考えて行き詰まったらまずは人に聞くのが一番です。ですが、人がいなければ調べるしかありません。そこで検索能力ですとか、解読力、柔軟性が問われます。
検索し、これだと思った手法をすぐに試す。無理ならすぐ次へ。この繰り返しではないかなと思っています。あまり頑固だといけません。根気よく、且つさくさくと続けられればいいかなと思っています。

以上、私の記事が少しでも皆様のお役にたてれば幸いです。実はまだまだ隠していることがあったり。。
また、良いネタありましたら、ご報告しまっす。

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US