その後のその後

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

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

ARC の有効/無効をファイルごとに設定する方法

プロジェクト全体でARCを有効にした状態で、一部ファイルを無効にしたい場合は、 1. プロジェクト設定画面のBuild Phasesタブを開く 2. ARCを無効にしたいファイルをまとめて選択 3. リターンキーを押すとダイアログボックスが出てくるので、"-fno-objc-arc"…

Python スクリプト実行時に UnicodeDecodeError が出る場合の対処方法

Xcode の Run Script 機能を使ってみようと思い、Github で拾ってきた Python スクリプトを実行しようとすると、下記のようなエラーが出て困りました。 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position xx: ordinal not in range(128…

mecab での形態素解析を試してみました

https://github.com/FLCLjp/iPhone-libmecab こちらに上げられている mecab を用いて形態素解析を行うサンプルアプリで、どういう結果がでるのか試してみました。 入力文1:ゴルフに行ってきた 入力文2:ゴルフ行ってきた うーん、微妙だ。。 キーワード抽出的…

Stats : Class to monitor the real-time memory usage in iOS app

What is "Stats" "Stats" is a class to display set of parameters that indicate the load status such as memory usage, the number of UIView subclasses to create a directly below in real time. When you run the included sample project will appe…

CIFilter の効果を一通り試せるサンプルコード(フィルタ名一覧つき)

iOS5から使えるようになった CIFilter の効果を一通り試せるサンプルプロジェクトをgithubに上げました。 こんな感じでフィルターを試せます。 (フィルタのパラメータはランダムに生成されるので、かける度に変わる場合もあります) プロジェクト一式、こち…

KVC で setValue:forUndefinedKey: エラーが発生する場合の対処法

たとえば、CIFilterを使っていて、下記のようにinputImageに値(画像)を渡そうとしていて、 [filter setValue:_filteredImage forKey:@"inputImage"]; この filter が inputImage というプロパティを持たないものだったとき(たとえば CICheckerboardGenera…

NSUserDefaults の内容を一括消去する方法

ゲームアプリ開発時等、動作確認用にリセット(初期化)ボタンをつけたくなる場合があり、NSUserDefaults の内容を一括消去する方法について調べてみました。 以下のコードでいけました。 NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; …

海外アプリレビュー依頼先

最近リリースした、KOF-eという無料アプリを北米でもっとDLしてもらうべく、 海外におけるAppBankさん的なサイトはないものかと(日本語で)ググってみたところ、 開拓者な方々がいろいろと情報を残してくださっていたので、そのまとめです。 海外レビューサ…

NSUserDefaults に保存されている全てのキーと値の一覧を取得する

NSUserDefaults の、 - (NSDictionary *) dictionaryRepresentation というメソッドを使用すると、保存されている全キーの内容を取得することができます。 NSDictionary * dic = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; NSLog(@…

位置情報のOn/Off、許可/不許可を確認する

Appleのドキュメントを見ながら、CLLocationManager の Boolean を返す系のメソッドがそれぞれどういうことを意味しているのか調べてみました。 ただこの調査、iOS5リリース以前(2011年7月)に行ったものなので、情報が古いところがあるかもしれません。 lo…

Xcode 4 のプラグイン開発方法

ちょっと調べてみたのですが、 http://stackoverflow.com/questions/6316921/xcode-4-plugin-development As far as I know there is no official way to create Xcode 4 plugins (just like there wasn't one for v3.x). "Xcode 4 does support user-define…

Push Notification おさらい

プッシュ通知を実装するときに、「バックグラウンドで通知受けたときはapplication:didFinishLaunchingWithOptions:とapplication:didReceiveRemoteNotification:、どっちが呼ばれるんだっけ?」とかなんだかいつも自信なくなってきてドキュメントを見返した…

パフォーマンスチューニングに関するアップルのドキュメント

アップルの『 iOSアプリケーションプログラミングガイド(英語版)』に、『パフォーマンスと応答性のチューニング』という章があって、これが今読むとかなり参考になったので、引用します。 個人的には、「リソースをあらかじめロードしておくと高速化になり…

Objective-Cの.gitignoreテンプレート

同僚のFacebook投稿で知ったのですが、各種言語の.gitignoreテンプレートを集めたリポジトリがあります。 https://github.com/github/gitignore ちなみにObjective-Cのテンプレートの中身はこんな感じでした。 https://github.com/github/gitignore/blob/mas…

CATransform3D で 複数軸に沿って回転させる場合の注意点

たとえば、 y軸について110度回転 z軸について30度回転 CATransform3D transformY = CATransform3DRotate(transform3D, DEGREES_TO_RADIANS(110.0), 0, 1, 0); CATransform3D transformZ = CATransform3DRotate(transform3D, DEGREES_TO_RADIANS(30.0), 0, 0…

UnityプロジェクトのLibraryは削除してもよい?

Library配下には何やら意味不明ファイルが沢山生成されて、バージョン管理システムにコミットする必要はないのかな?と調べてみたら、どうやら必要そうでした。 http://www.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/Manual/Behind%20t…

位置情報サービス利用の際のバッテリー電力節約のためのヒント

位置情報対応プログラミングガイドみてたら、わかりやすくまとまってたので。 iPhone OSベースデバイスの無線によるデータの送受信は、デバイス上のその他の操作に比べ、より 多くの電力を必要とします。Core Locationはこれらの無線を利用してユーザの位置…

Unity の iOS サンプルプロジェクトを一通り試してみました

Unity の公式サイトにある http://unity3d.com/support/resources/example-projects/iphone-examples.html:Unity iPhone Examples というページに、iPhoneのサンプルプロジェクトがあがっています。 これらを一通りダウンロード&ビルドしてみました。 加速…

MonoDevelopの文字化け対策最終手段

Unityに標準でついてくるMonoDevelop、使ってみた方はご存知の通り文字化けします。で、こちらの対処法が一般的なようなのですが、 http://d.hatena.ne.jp/eco31/20101026/1288094681 gtkrc の修正 "/Library/Frameworks/Mono.framework/Versions/Current/et…

Unity での Bundle Identifier の設定方法

とあるUnityサンプルプロジェクトをiOSビルドしてみたら、下記エラーが出ました。 Exception: Error building Player: Exception: iPhoneBundleIdentifier has not been set up. で、そのBundle IdentifierのUnityでの指定方法です。 File -> Build Settings…

Facebook iOS SDK で "xmlParseEntityRef" エラーが出る場合の対処

ログインしようとすると、遷移先でこういう画面になった場合の対処。 https://github.com/facebook/facebook-ios-sdk/issues/297 Please check the following: In the previous version, you were using the "app key". In the update you have to use the "…

オープンソースのカスタムUIシリーズその5 : CWUIKit

UIKitになく、かつUIKitベースなオープンソースのUIライブラリを紹介していきます。 いきなりその5から始まるのは、過去に書いた、 UIPopOver風のWEPopover カバーフローのOpenFlow フリップカード風のFlipCardNavigationView グラフ描画のs7graphview に続…

iOSのフレームワークやクラスを紹介するサイト "iOS Frameworks"

A curated catalog of iOS frameworks and classes for the pragmatic iOS developer と銘打たれた、iOSのフレームワークやクラスを紹介するサイトを見つけました。 http://iosframeworks.com/ と紹介してみたものの、ざっと見た感じではイマイチかも・・・ …

機能が豊富(そう)なビジュアライズライブラリ "PowerPlot"

線グラフだけなら以前紹介したs7graphviewが手軽でおすすめなのですが、 今回発見したPowerPlotのexampleのページをみると、 と、なにやら機能が豊富そうです。 ただ、downloadのページをみると、 と、CHAPCHAまであったりしてなんだかめんどくさい・・・ と…

UIFont の fontName 一覧

たとえば IB で Helvetica を選んで「ボールド・イタリック」を選択した場合、Font欄には『Helvetica Bold Oblique』と表示されます。 で、これを真に受けてプログラム側でフォントを指定したい場合に、 self.hogeLabel.font = [UIFont fontWithName:@"Helve…

iOSアップデート中に"This device isn't eligible for the requested build"エラーが出る場合の対処

他の原因でも発生しうるみたいですが、僕はこれで解決しました。 TinyUmbrellaを開いている場合は閉じる /etc/hosts からgs.apple.comを参照している行を消す(自分で追記した覚えがなくてもTinyUmbrellaを使ったことがあれば追記されている可能性があります…

リファクタリング講座メモ

5/29にRainbowApps卒業生の方が主催された合宿に参加した際、そこでバスケさんが話されていた「公開リファクタリング講座」が非常にためになる内容だったので、そのときのメモを公開しておきます。 メモリまわりのデバッグ/リファクタリング leaksが有名な…

LLVM GCC と LLVM Compiler 2.0 とどっちがいいのか?

Xcode 4 からコンパイラのシステムデフォルトが GCC 4.2 から LLVM GCC 4.2 へ変更されましたが、その下にある LLVM Compiler 2.0 ってのが気になるので調べてみました。 LLVM GCC と LLVM Compiler 2.0 の違い GCCと比較した場合、LLVMコンパイラでビルドす…

GeoHexのレベルとサイズの対応

先日のgeohexエントリに引き続き、国産アルゴリズムGeoHexについてです。 下記コードで各レベルにおけるhexSizeをログにはいただけですが、コード書かずとも知りたい人もいると思うので、載せておきます。 for (int j=0; j<15; j++) { NSLog(@"level:%d, hex…

Objective-C版GeoHexを試してみました

GeoHexとは 独自の座標系を用いて世界中(GoogleMapsのカバー範囲)を隙間の無いHex(正六角形)で埋め尽くし、Hexによって世界中の全ての緯度経度の地点を表現するための仕様。Hexの大きさは25段階(レベル)で指定できる。・見た目がcool!!・隣接する6つのHex…