その後のその後

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

2011-01-01から1年間の記事一覧

コードスニペットまとめサイト

UIViewのブロックアニメーションについて調べようと検索かけてみたら、偶然便利そうなサイトを発見しました。 Code Snippet Collection 試しにLanguagesのタブからObjective-cを選んでみると、 http://icodesnippet.com/language/objective-c/ ざくざく出て…

UIKitのクラス名と、UI Automationでのクラス名の対応

UIAutomationをちょろっと使用してみたのですが、 「UIKitのあのクラスはUIAutomationでは何て名前?」 ってのをサッと知りたかったので、AppleのUIAutomationのリファレンスを見つつ、UIKitとUIAutomationのクラス対応表みたいなものを作ってみました。 ビ…

otoolでバイナリの内容をいろいろと調べる方法

new BSDライセンスについて調べていたら、こちらの有名な事件に関してのまとめ記事に行き当たり、 NatsuLion for iPhone クローン (略) から学んだこととかまとめ その中でこんな記述がありました。 今回の場合は、まず、Twitterville が見た目上ソックリで…

BMPファイルのカラーパレットを書き換える

ゲームのキャラ画像など、一つの画像に対して配色パターンがたくさんある場合、画像ファイルは1つだけ持っておいて、カラーパレットを動的に書き換えるという方式をとるようです。 これだと容量を節約できるし、全ピクセルに対して色変換する場合と違ってパ…

インストールしているアプリ一覧を共有するサービスappsfireのしくみ

ここで開発者の方が自らヒントを出してくれています。 http://forums.macrumors.com/showthread.php?t=1121778 I'm a Product Manager at Appsfire. We're happy you've found the app and hope you're enjoying.Everything we do is within Apple's guideli…

csvファイルからplistを生成するPHPスクリプト

エクセルとかGoogle docsで編集されたデータをplistファイルとしてアプリに持たせたい、といった場合用の、csvファイルからplistファイルへの変換スクリプトです。 こちらに置いてあります。 https://github.com/shu223/csv2plist たとえばこういうcsvファイ…

構造体を NSDictionary や NSArray に格納する方法

C言語の構造体をNSDictionary や NSArray、NSUserDefaultsなどに格納する方法、つまりObjective-Cのオブジェクト化する方法についてです。 CGRectとかCGPointを格納するときと同様、NSValueを用います。 例として下記のようなRGBAの色情報を持つ構造体を定義…

CCDirector のソース解析

CCDirectorのソースを解析してたときのメモがあったので、載せておきます。 (UIKitとcocos2dの併用時にCCSceneの遷移でハマっていたので、原因の目星をつけられるようソースを読んでました) CCDirectorの正体 CCDirector *director = [CCDirector sharedDi…

MKAnnotationViewのコールアウトをカスタマイズする

地図をタップしたときに出るフキダシをカスタマイズする方法です。 (参考ページより) 参考ページではかなり詳細に書かれているのですが、コールアウトのカスタマイズに関わる部分の要点だけ抜粋すると、 MKAnnotationViewのサブクラスをつくり(サンプルで…

OpenAL、AVAsset を使用した無料アプリをリリースしました

左右で別々の音源を聴くことが可能な、学習加速アプリです。 『i聖徳太子』 ※無料です やりたいことはシンプルなのに、 iPodライブラリから取得した曲を 左右にパンニングして再生 という必須要件を満たそうとするとそのまま MPMediaItem をMPMusicPlayerCon…

バッテリー消費量の計測方法など、iOSのデバッグに関するドキュメント

NSZombieEnabledをYESにするとか、そういう開発ノウハウの情報ソースはどこにあるんだろうと不思議だったのですが、iOS Dev Centerのドキュメントを漁っていて発見しました。 iOS Debugging Magic たとえばNSZombieEnabledなどの話は、Table 10 Foundation e…

AdMobの入金タイミング

iOS

AdMobの収益が振り込まれるタイミングがよくわからなかったので調べてみました。 http://helpcenter.admob.com/ja/content/お支払い方法 サイト運営者様へのお支払いスケジュール 月々の収益の支払い処理は、収益があった月の翌々月に開始されます。 処理に…

Instruments の Leaks の見方(Live Bytes や Living の意味)

このLive BytesやらLivingやら、タイトルから大体推測できるものの、ちゃんとした定義をしりたかったのですが、ヘルプ内を探しても見当たらず、iOS開発関係の本を見てもどの値が何とまでは書いてくれていませんでした。たまたまググったら出てきたので、下記…

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…