その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

2011-04-01から1ヶ月間の記事一覧

Titanium開発情報(日本語)を集めてみました

Objective-CはわかるけどJavaScriptは全くわからないのでTitaniumは今まであまり意識してこなかったのですが、最近「AndroidアプリとiPhoneアプリをひとつのソースコードでつくれる」いわゆるクロスプラットフォーム開発環境は何がいいか?を模索していて、…

Xcode 4 の IB で UITabBarController に UINavigationController を組み込む方法

Xcode3 の Interface Builder ではインスペクタから選ぶだけでできたのですが、 http://iphone-app-developer.seesaa.net/article/130194298.html (3) Inspectorの左端のtabでTab Bar Controller/View Controllersの項目の、Titleが"First"の部分を"View Con…

アプリのメモリ使用量をリアルタイムに表示するクラスを公開しました

なるべくUIViewを使わず描画するとか、nibを使わないとか、iOSアプリの動作を軽快にするためのTipsは数あれど、実際どれぐらい効果あるんだろう、ってことを調べたい、でもInstrumentsはめんどくさい、ってことでメモリ消費量やUIViewの数など、「負荷を示す…

iPhone の空きメモリ量や使用中のメモリ量を取得する

Instrumentsを使用せず、アプリ内から空きメモリ容量や使用中のメモリ容量を取得する方法です。 下記は空きメモリ容量を取得するサンプルです。 host_statistics()という関数を使用して、vm_statistics_data_t なる構造体を取得し、free_countという要素を出…

ビルド設定の "Other Linker Flags" に "-ObjC" を設定する意味

とある静的ライブラリ(拡張子.a)をリンクして使用しようとすると、実行時になぜか unrecognized selector sent to class XXXX とエラーが出るので、ビルド設定を見直したところ、"Other Linker Flags"(Xcode3.xで言えば「他のリンカフラグ」)に "-ObjC" …

大量の画像ファイルを圧縮したzipファイルをiPhoneで解凍するのに要する時間

画像をたくさん使いたい、でもバイナリサイズ20MBは超えたくないという場合に、 1. 初回起動時にサーバーからダウンロードする 2. zipで圧縮しておいて初回起動時に解凍する 3. あきらめる。なんとか切り詰める といった選択肢があるわけですが、サーバー連…

iOSにおけるパターンによるオートマティズム

勉強になりすぎてなかなか読み進めないので、個人的に参考になりそうな部分をかいつまんでまとめていきます。 iOS開発におけるパターンによるオートマティズム木下 誠 ビー・エヌ・エヌ新社 売り上げランキング: 69,541Amazon.co.jp で詳細を見る 通知のパタ…

バックグラウンドのアプリが殺される優先度

バックグラウンドで動いてるつもりでいつの間にかkillされるというのは EncountMe のようなアプリにとってなかなか切実な問題なのですが、こんな貴重な情報を見つけました。 http://d.hatena.ne.jp/kimada/20100722/1279807029#20100722f1 WWDC2010のスライ…

cocos2d を使用したゲームアプリのソースコード集

実装の参考になるかもしれないので、cocos2d を使ったアプリのソースコードをいろいろと集めています。 Gorillas https://github.com/Lamentum/Gorillas ビルドするのにプロジェクトをもろもろ整備する必要あり。 https://github.com/Lamentum/iLibs と coco…

Assets Library からの読み込みを高速化するための試行錯誤

先日出した高速スライドショーアプリは最高0.1s/枚とうたっていますが、実際のところ、なかなか1秒に10枚表示とはいきません。 ALAsset から UIImage へ変換する部分の実装ではこんな感じになっているのですが、 ALAsset *aseet = (ALAsset *)[self.assets o…

スクリーンショットを撮る

たまたまDeveloper Centerで見かけたもの。引数不要、戻り値はUIImageと、使いやすそうなので載せておきます。 (自分ではまだ試してないのですが・・・) http://developer.apple.com/library/ios/#qa/qa1703/_index.html%23//apple_ref/doc/uid/DTS4001019…

cocos2dでの3Dアプリケーションの開発を可能とするエクステンション「cocos3d」

"cocos3d"なるcocos2dエクステンションが出たようです。 http://brenwill.com/cocos3d/ とりあえずダウンロードしてデモを動かしてみました。 デモのビルド方法 cocos2dとcocos3dのソースが入ってないので、追加してやる必要があります。以下追加手順です。 …

2つの Xcode 4 プロジェクトのビルド設定を比較する

・アプリケーション名.xcodeproj のパッケージの中身をFinderで開く(もちろんターミナルでアクセスしてもok) ・パッケージ内にある project.pbxproj がプロジェクトの設定ファイル。これをXcodeなりテキストエディタなりで開く ・project.pbxproj の中の、…

Assets Library フレームワークを使用した無料アプリをリリースしました

大量の画像をダーッと見るための高速画像ビューアです。 『i走馬灯』 ※無料です Assets Library というiOS4から追加されたフレームワークを使用して、フォトライブラリの中身をまるっと取得することで、高速スライドショーを可能にしています。 Assets Libra…

CoreData をちょっとだけ勉強

習得してしまえばCoreDataの方が開発効率がいい、という話をちらほら聞くので、テンプレートから生成されるソースを元にCoreDataってどういうことなのか、を勉強してみました。 30分やって何となくでもわかならいようならあきらめる、ということで。 テンプ…

cocos2dの使いどころ

最近cocos2d+UIKitでゲームアプリを開発していたのですが、どうも遷移、アニメーション、階層構造でハマることがやたら多く、よく考えてみたら今つくってるゲームは弾幕もないしパーティクルもないし遷移エフェクトは必要ないしで、あんまりcocos2dのメリッ…

Xcode の環境変数一覧

Xcode4からビルドパスが変更になり、ライブラリ検索パスとかヘッダ検索パスとか指定してあるXcode3.xで作成されたプロジェクトではビルドに失敗したりします。 (参考情報) http://blog.takezou.com/2011/04/22/xcode4のビルドパス/ http://akisute.com/201…

ユーザー登録なしでユーザーを識別するベストプラクティス

アプリを起動していきなりサインインや新規アカウント作成が必要だとそこで辞めてしまうユーザーは多い。 で、ユーザー登録ステップを踏まずにユーザー識別する手段としてまずUDIDを使う方法を思いついてしまうのですが、下記のようなすごくためになる記事が…

CLLocationCoordinate2D から指定方向に指定距離離れた場所の緯度経度を計算する

たとえば渋谷の緯度経度が (35.659406, 139.70203) だったとして、そこから北東に時速4km(徒歩)で1時間移動した先の緯度経度はどうなるか、という計算です。 こんな風にしました。(引数のdistance、directionの型がポイントなので、詳細を後述します) + …

モックAPI作成手順

APIないと動きがよくわかんないよ、という場合にさくっとAPIを仮実装するべく、手順化しておくことにしました。(mac / PHP / MySQL) 注:ほぼ自分用メモです。環境の違い、前提知識の違いは全く考慮しておりません。 ローカル環境の準備 バーチャルホスト…

初回起動の判定方法

初回起動時だけポップアップを出すとか、特定のAPIをコールするとかやりたい場合に、NSUserDefaultsに値をセットする以外のエレガントな方法があるんじゃないか(僕の知らないそれ用のメソッドとかあるかもしれない)とふと思い立ち、検索してみました。 で…

UITableViewController のreloadDataをコールするタイミング

こちらのページで知ったのですが、下記のように書いておけばビューが表示されるたびにリロードされ、かつ初回表示時に二重にリロードされてしまうこともないらしいです。 - (void)viewWillAppear:(BOOL)animated { [self.tableView reloadData]; [super view…

デザインを配色で乗り切る

僕が個人でアプリをつくる場合、「さくっとつくる」のが大前提としてあります。が、いつもデザインに手間取ってしまいます。 例えば、こないだ出した『i走馬灯』は、実装は思いついてから設計/技術調査含めて1時間ちょいでできたのですが、アイコン作成やス…

プロセス情報を取得する

NSProcessInfo というクラスを使えば、プロセス情報をいろいろと取得することができます。 以下のコードを実行すれば一通りの情報を見ることができます。 こちらのページからの引用です。 NSProcessInfo *processInfo = [NSProcessInfo processInfo]; NSLog(…