iOS

ZxingObjc

TheLevelUp/ZXingObjC ZxingObjcはCosta Walcott氏の書くZxingのObjective-c portingだ。 ※以前に「iPhoneで使用できる1D/2Dバーコードリーダーライブラリィ」というエントリを書いたが、その時結論は書かなかったものの総論としては「ライセンスに難がある…

AppCode 1.6

iOS

JetBrains AppCode: an Objective-C IDE That Makes a DifferenceAppCode 1.6の案内が来ていた。以下、変更点。 In-place refactorings: Rename and Introduce refactorings now work right in the editor without invoking any extra dialogs, and take int…

詳解 OpenCV

詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識作者: Gary Bradski,Adrian Kaehler,松田晃一出版社/メーカー: オライリージャパン発売日: 2009/08/24メディア: 単行本(ソフトカバー)購入: 17人 クリック: 272回この商品を含むブログ …

PortraitとLandscapeの正しい判定

iOS

デバイスのポートレイトとランドスケイプを判定する処理をなんとなく以下のように書いていた。 + (BOOL)isDevicePortrait { UIDevice* d = [UIDevice currentDevice]; return (d.orientation == UIDeviceOrientationPortrait || d.orientation == UIDeviceOr…

画像切り抜き用ライブラリィ

iOSとandroidで使えるオープンソースの画像切り抜き用のライブラリィを探している。通常の矩形を切り取るのは結構見かけるんだけど、4点を指定して台形などの方形を切り取ることができるのが良いんだがなぁ。 無ければ自分で書くしかないが、きっとまた誰か…

UIAlertViewの予期せぬwillPresentAlertView

UIAlertViewクラスのwillPresentAlertViewメッセージはUIAlertViewのライフサイクルをトラッキングするUIAlertViewDelegateに属しており、ダイアログが表示される直前に呼ばれる。 UIAlertViewDelegate Protocol ReferenceUIAlertViewクラスはUIKitの中でも…

IconKit

iOS

Mac App Store - IconKitRetina記念?で無償になっているということなので導入してみた。 Icon自体を作るものではなく、素材のIconからiOSで必要なアイコンのバリエーション(一部Androidのアイコンも)を生成するツールであり、色や簡単なエフェクト、サイズを…

苦節

iOS

初回の申請からレビュー、即リジェクトされるまで11日。 その後の再提出からレビューになるまで12日。レビューに1日。 結局iTunes AppStoreに並ぶまで24日を費やした訳だ。 長かったなぁ。毎日リリースされているアプリケーションの本数を考えるとAppleの審…

我慢のしどころ

iOS

7/27にバイナリを再提出してからもう10日になろうかという。 再提出時はすぐにレビューになると聞いていたが、"wait for review"から全然変わらない。 NGならとっとと直したいのに結果が分からないので何もできない(再提出後にブランチ切って別版で進めてい…

we are unable to post this version

iOS

かくして私の初めてのiPhone Applicationは見事にリジェクトされたのであった。理由は「既に利用されている有名なサービス(敢えて名前は秘す)に似ているコンテンツがユーザーに誤解を与える」とのこと。今回私はアプリケーションのプログラマとしてコードを…

Xcode 4.4

先日、AppleのOSであるMac OS X 10.8 "Mountain Lion"が発売されたが、私の興味はもっぱらXcodeの新版であるXcode 4.4である。 マイナーバージョンアップであり、ぱっと見では違いが分かり難いのだが、実は大きく変わっている。・The compiler automatically…

In Review

iOS

7/12に申請していたiPhoneアプリケーションだが、昨日ようやく"Wait for Review"から"In Review"つまりレビュー中になった。 既に12日が経過している訳で、レビュー待ちで10日以上って時間かかりすぎじゃないのか。この間に何もしない訳では無く当然のように…

iPhoneアプリでもiPad用のアイコンを使用する

iPhone用に開発したアプリケーションは完璧ではないにせよiPadでも普通に動くようにビルドされる。 等倍モードならiPhoneと同じ解像度で、2xモードであればiPhoneの画面を倍に引き延ばした状態(スケーリング)でiPhoneと同じようにアプリケーションが動作する…

Xcode4.2以降のUITableViewCell取得メソッドはnilを返さない

最新のXcode、StoryBoardを使用したUITableViewを使うケースでは上述したメソッドでは既にnilは戻らないと聞いていたのだが、実際にはnilが戻るのだ。 そして、nilが戻る原因が分からない。 色々な方が書いているサンプルコードではほぼ間違い無くnilをチェ…

UITableViewの振る舞いが解らない

前にも書いたがターゲットをiOS5、StoryBoardを使って作る画面、UITableViewControllerを使う画面でアプリケーションを作る場合、UITableViewが扱うUITableViewCellのモードとしては"Static Cells"又は"Dynamic Prototypes"を選択できる。前者はInterfaceBui…

HTTPステータスを取得する

冗長なことが多いObjective-C/Cocoa Foundationでは珍しく少ない行数で書けるHTTP GET/POSTだが、 NSURL* url = [NSURL URLWithString:@"http://hogehost:8080/hogeService"]; NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:url cachePol…

NSNotificationCenterでデバイスローテーションを通知してもらう際の注意点

iOS

ViewController以外でデバイスのローテートを検出する場合、NSNotificationCenterにお願いするのが手っ取り早い方法だ。コード自体は非常に簡単。 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; [[NSNotificationCenter defau…

次のUIKit/Foundationには入れて欲しいもの

iOS

がちがちに決まっているiOSアプリの開発ならばオープンソースが提供するライブラリィを使う必要など殆ど無いだろう、そう思っていた時期が私にもありました。既に使用している中から是非とも標準のライブラリィとして組み込んで欲しいなと思うものを挙げてみ…

まだあったiPhoneとiPod Touchの違い

iOS

以前にiPhone4SとiPod Touch(4G)の違いをまとめたことがあったが、重要な違いがまだあったことを今日知った。 機能 iPhone4S iPod Touch4G CPU A5 1Ghz A4 800Mhz RAM容量 512MB 256MB LCD方式 IPS TN GPS搭載 有(A-GPS) 無(Wi-fiによる位置計測有) デジタル…

SQLiteUtil

iOSはlibsqlite3が用意されておりそのままSQLiteを使えるが、それでは面倒だということでfmdbを利用しているのは前にも書いた。 ccgus/fmdb · GitHubこれで一気に作業効率アップしたのだが、やはりSQLを直に書くコーディングスタイルは必要だ。その点Android…

初めての申請

iPhone用のアプリケーションを申請した。勿論初めてだ。※法人名義であり私はプログラマでしかないので詳細はまだここで明かすことは出来ないが、ガチガチのビジネスアプリケーションであり、面白さの欠片も無いものだ。 しかし一本のアプリケーションを初め…

コード署名時の注意

そろそろ提出用にとiPhoneアプリケーションのビルド後にアーカイブしようと思って、そのための設定"Distribution"を作成してアーカイブ時だけはコード署名を行おうと、以下のようにDebug時はコード署名を行わないように設定した。 しかしこの状態でビルドす…

iPhoneとiPod Touch

iOS

現在書いているiPhone用アプリケーションはカメラは使うが位置情報や近接センサー情報を使わないので、漠然とiPod Touchでも動くだろうと思ってはいたのだが実機が手元に無いので検証しようが無い。 どうしても、どうしても動かしてみたくなったのでiPod Tou…

オブジェクト定数が欲しい

Javaでよく使うイディオムとして、共通で使うオブジェクトをスタティックな定数として定義しておくものがある。 スタティックな定数 (Java) public class LoggerView extends View { public static final UIColor COLOR_ERROR = UIColor.getColor(RED); publ…

認証が必要なアプリの申請

iOS

仮にiOSのアプリケーションの申請をするとして、自社が用意する有償のサービスに接続することを前提にした無償のクライアントアプリケーションを申請する場合はどうすれば良いのだろう。 このような場合、スタンドアロンなアプリケーションとして起動するこ…

UIAlertView showが遅延する

UIAlertViewは他のプラットホームで言う所の「ダイアログ」や「メッセージボックス」である。 デスクトップOSでのダイアログやメッセージボックスとは違い、スレッドをブロックせず、モーダルでも無い。そこで処理が止まらないので、RunLoopを使って同期処理…

UIViewControllerのデリゲートが呼ばれないのには訳がある

ビューが表示される際にSettingsをロード、ビューが消える際にSettingsをセーブすれば良いはずだが、FooViewControllerに配置されているbtnBack(UIBarButtonItem)がタップされてdismissModalViewControllerAnimated:が呼ばれた際にviewDidDisappearは呼ばれ…

UIViewControllerのデリゲートは必ず呼ばれるとは限らない?

iOS

UIViewControllerクラスにはViewのライフサイクルに関わるデリゲートが用意されており、初期処理や終了処理などの用途に恐らく最も使うデリゲートだと思うが、ViewControllerクラスの呼ばれる経緯によっては呼ばれないケースがあるようだ。私の現在開発して…

UITableViewController

iOS UIKitのコントロールの中でもUITableView(Controller)はその機能の多さと拡張性から、一覧画面の表示に良し、設定画面に良し、編集画面に良しと非常に多用するビュー(コントローラ)だが、他のコントローラと組み合わせ使うと期待通りに動作しないことが…

SQLiteはTRUNCATEをサポートしない

FMDBを使って更に抽象度を上げたSQLiteのユーティリティを書いているのだが、以下のようなテーブルを削除するコードを書いても上手くいかない。 DBHelper.m @synthesize db; - (void)deleteTable:(NSString*)tableName; } [db open]; @try { if ([db tableEx…