強火で進め

このブログではプログラム関連の記事を中心に書いてます。

iPhoneプログラミング

画像が綺麗にマスクされないときの対処法

画像のマスク処理についてStack Overflowで興味深い質問が上がっていたので紹介します。 Any idea why this image masking code does not work? - Stack Overflow http://stackoverflow.com/questions/1133248/any-idea-why-this-image-masking-code-does-no…

Objective-CとC言語の速度差

Objective-CとC言語の速度差を比較されているブログ記事。 Why game devs don’t use Objective-C « iPhone Open Source - Nick Vellios http://www.vellios.com/2010/08/22/why-game-devs-dont-use-objective-c/ Objective-Cだと30fps、C言語だと60fpsと予想…

バージョン番号の文字列を比較する方法

Objective-Cではバージョンの文字列の比較は NSString の compare:options: メソッドに NSNumericSearch を指定して行います。 NSString *versionA = @"1.0.0"; NSString *versionB = @"1.41.0"; if ([versionA compare:versionB options:NSNumericSearch] =…

オライリーの「iPhone/iPadゲーム開発ガイド」、本日発売

オライリーの「iPhone/iPadゲーム開発ガイド」、本日発売です。 2Dゲーム、3Dゲームの両方に対応しています。以下の様なゲームの作成方法が解説して有ります。 ターゲットとしては以下の様な層みたいです。 「iPhone/iPadゲーム開発ガイド」はゲーム入門書の…

アイコンファイル関連情報のまとめ

iPad、iPhone 4の登場で今までのiPhone、iPod touch向けの57x57のサイズ以外にもたくさんのアイコンが必要になりました。以下のページを元に主な情報をまとめました。 Technical Q&A QA1686: App Icons on iPad and iPhone http://developer.apple.com/iphon…

iTunesを使ったファイル共有機能を使う方法

iOS(当時はiPhone OS)3.2から追加されたiTunesを使ったファイル共有機能を使う方法を試してみました。iTunesのAppタブを選択したときに画面下部に表示されるコレでiPhoneアプリとファイルをやり取りする機能です。 Mac⇔iPhoneまたはWin⇔iPhoneなどPCとiPhone…

iPhoneのホーム画面の様な動作を行うオープンソースなアプリ

rigoneri's myLauncher at master - GitHub http://github.com/rigoneri/myLauncher#readme ライセンスはApacheライセンス バージョン2.0。

ロケールから国名を日本語で取得

以下のプログラムで取得可能です。 for (NSString *localId in [NSLocale preferredLanguages]) { NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"]; NSString *displayNameString = [locale displayNameForKey:NSLocaleIdentifier…

iPhoneで大きな整数の計算を行う

C99からの仕様である long long int 型がiPhoneの実機でもちゃんと使えるか確認してみました。今回は以下のサイトを参照しつつテストしました。とてもシンプルにまとめて有り、とても読みやすかったです。 プログラミング言語 C の新機能 http://seclan.dll.…

ジャイロ(gyroscope)で取得出来る値を調査

iPhone 4に新しく搭載されたジャイロ(gyroscope)を使ってみた - 強火で進め http://d.hatena.ne.jp/nakamura001/20100628/1277747006 前回作成したこちらのジャイロのサンプルですが pitch や roll のプロパティでは自分がイメージしている値とは異なるもの…

マルチサンプリングアンチエイリアシング(MSAA)を試してみた

iPhone 4から搭載されたMSAA(Multisample anti-aliasing)を試してみました。 MSAA無し MSAA有り [左]なし、[右]有り 画像をクリックして元のサイズでネクタイやネギに注目して貰うとアンチエイリアシングが効いて画質が向上してるのが確認出来るかと思います…

シミュレータ上で書き出したファイルの確認方法

1. プログラムにファイルのフルパスを出力するNSLogを記述。 NSString *exportPath = [NSString stringWithFormat:@"%@/export.jpg", [[NSBundle mainBundle] resourcePath]]; NSLog(@"exportPath : %@", exportPath); [imageData writeToFile:exportPath at…

JPEGファイルのExif情報を読み書きする

※このプログラムはiOS 4以降対応です。それ以前のOSでは正しく動作しません。(2013/12/16 追記) iOS SDK 7だと不具合が発生しています。ご注意を!! iOS SDK 7でImageIO Frameworkを使ってExif情報にユーザコメントを書き込む時は注意が必要 - 強火で進め htt…

iTamabi、openFrameworksでiPhoneプログラミング

多摩美術大学で“iTamabi”というiPhoneアプリ開発プロジェクトが行われているみたいです。 こちらのプロジェクト、授業の資料も公開しています。 openFrameworksというライブラリを使っているとということも有り、少ないコード量で動きの有るアプリが作成出来…

UUIDを生成する

ちょっと前に高木さんとソフトバングモバイルのCTOとのとtwitter上での話で「セキュリティ的に正しい方法はデバイスのUDIDを使うのでは無くアプリの初回起動時にランダムな文字列を生成し、それをキーとすべき」との話がありました。 高木浩光@自宅の日記 -…

UITabBarの背景を変更する方法

UITabBarの背景を変更する方法を書いて有るブログが有ったので紹介。 新しく、UIViewを背景として追加する事で実現している様です。 Tip: UITabBar Tint at Under The Bridge http://www.alexcurylo.com/blog/2010/06/04/tip-uitabbar-tint/ こんな感じに変…

iPhoneでWebフォントを使ってみた

数日前に有ったこちらのイベントでiPhoneやiPadでもSVGフォントであればWebフォントが使えると聴きました。 WDE ex -Vol10 『Webフォントの未来』 : ATND http://atnd.org/events/4396 スライド https://docs.google.com/viewer?url=http:%2F%2Fpeople.mozil…

plistファイルからアプリのバージョン情報などを取得する方法

バージョン情報取得は以下の様に行ないます。キーを指定すると値が返されるというシンプルなメソッドです。 NSLog(@"CFBundleShortVersionString : %@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]); ビルドバー…

iPhone 4に新しく搭載されたジャイロ(gyroscope)を使ってみた

iPhone 4に新しく搭載されたジャイロを使って分度器の様なものを作ってみました。 AppStoreでは既にジャイロを使ったゲームもリリースされたみたいです。 ニテンイチリュウ : GUN RANGE for iPhone 4 http://www.nitenichiryu.org/articles/gun-range-with-s…

iPhone SDK 4からの新機能UI Automationの使い方

UI AutomationはJavaScriptで記述されたプログラムでUIの自動テストを行うものです。 JavaScriptの記述 例えばこの様に記述します。 UIALogger.logStart("Starting Test"); UIALogger.logDebug("--logElementTree()"); UIATarget.localTarget().frontMostApp…

retain、assign、copy、nonatomicについての簡潔な説明

公式の日本語資料で有るこちらが簡潔かつ、分り易く記述して有ります。 Objective-C 2.0プログラミング言語: プロパティの宣言と実装 http://developer.apple.com/jp/documentation/cocoa/conceptual/objectivec/Articles/chapter_5_section_3.html#//apple_…

上付き文字、下付き文字を使う

iPhoneプログラム時にはUIも含め基本的に文字コードはUnicodeなので普通に上付き文字 ² などを使えばそのまま表示されるみたいです。ここに記載しているものをコピペして使っても良いですし、以下の様にコードポイントで指定する事も可能です。 NSString *st…

NSDate - 日付の計算、過去の日や末日を求める方法

日付計算のうちよく使う可能性の高いものを紹介。 オフセット付きのNSDate生成 NSDate生成時に現在の時刻に指定秒のオフセットを加え、過去や未来の時刻を指定する。 NSDate* date; date = [NSDate dateWithTimeIntervalSinceNow:0.0f]; // 現在の時刻 NSLog…

NSDateFormatter - 文字列と日付の変換

文字列→日付、日付→文字列の変換を行うNSDateFormatter、理解するまではちょっと難しそうな印象があるこのクラスの使い方を解説します。 フォーマットの指定 文字列 intputDateStr を inputDateFormatter で指定したフォーマットでパースしてNSDate に格納。…

TwitterのOAuth認証を使う

(2010/06/18 追記) OAuthのみへの移行がワールドカップによる負荷を理由に8月16日からに変更されました。 moving the OAuth switch over date to august 16, 2010 - Twitter Development Talk | Google グループ http://groups.google.com/group/twitter-dev…

Unityを使ってiPhoneの3Dゲームを作る本「iPhone 3D Game Programming All In One」

3Dゲームの開発ツールとして最近注目されているUnityでiPhone向けに3D Gameを作る方法が解説して有る本です。目次を見るだけでも気になる内容ですね。Unity本は洋書でもほとんど出ていないのにiPhone向けの解説とは凄くうれしいですね。発売が楽しみです。 C…

iPhoneアプリでAES暗号を使う方法

基本的には以下のApple公式のサンプルを読めばOK。 CryptoExercise http://developer.apple.com/iphone/library/samplecode/CryptoExercise/Introduction/Intro.html 特に読むべきところは SecKeyWrapper.m ファイルの以下のメソッド - (NSData *)doCipher:(…

HTML5でiPhone向けテトリスを作成する講座

こちらにて解説されています。 How to Make an HTML5 iPhone App http://sixrevisions.com/web-development/html5-iphone-app/ HTMLだとAppleの審査も無いですし、みなさんも良ければチャレンジしてみては如何でしょか。 関連書籍 HTML5&API入門作者: 白石俊…

App StoreにリリースされているOpen SourceなiPhoneアプリ

open-source-iphone-app-store-apps from maniacdev.com - StumbleUpon http://www.stumbleupon.com/su/1M6IxN/maniacdev.com/open-source-iphone-app-store-apps//r:t

iPhoneでProcessingプログラムが出来る。iProcessing

iProcessing http://luckybite.com/iprocessing/ openFramework、SDLなどに続き、ついにProcessingによるiPhoneアプリの開発も可能になりました。付属のサンプルのフォルダ名を見るだけでも色々とiPhone固有の機能が使えるみたいでなかなか興味深いです。こ…