「UIWebView の取り扱いによってはjavascript経由でサンドボックス外のファイルシステムにアクセスできてしまうという話と対処法」 で、UIWebViewにfile://スキームのリソースを表示する場合の脆弱性について触れられていた。 ちょうど自分もこのあたりの仕組みが必要だったのでいろいろ試してみたのだけど、結論から言えば、その場合はNSURLProtocolを使えば良いと思う。 CocoaではUIWebViewやその下のNSURLConnectionがアクセスするリソースはNSURLProtocolで抽象化されているので、 独自のスキームを定義し、それを通してアプリケーション内のリソースを表示するようにする。 以下のようなNSURLProtocolのサブクラスを定義する。: @interface HogeProtocol : NSURLProtocol @end @impl
スワイプの処理 RootViewController にUIGestureRecognier を左右両方向について登録しておく。 - (void)viewDidLoad { [super viewDidLoad]; : UISwipeGestureRecognizer* swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(didSwipeCell:)]; swipeGesture.direction = UISwipeGestureRecognizerDirectionRight; [self.tableView addGestureRecognizer:swipeGesture]; [swipeGesture release]; swipeGesture = [[UIS
CoreData を使うアプリであればこの程度の件数はすぐに行くので、起動時にマイグレーションが走ると確実に落ちてしまう。これを防ぐためには起動時に CoreData へアクセスさせないのが最低限の対策になるが、その場合でもユーザが CoreData へアクセスする操作を行った瞬間にマイグレーション処理に時間がかかって画面が固まったようになるのでユーザビリティは良くない。 マイグレーションを考慮したパターン よって CoreDataを使うアプリではマイグレーション用の画面を用意するのがベスト。処理フローはこんな感じ。 起動 ↓ (1)マイグレーションチェック もし必要なら、マイグレーション用の画面へ遷移し、(2)マイグレーション実行 ↓ 通常画面マイグレーションチェックは NSPersistentCoordinator を使えばわかる。 Cocoaの日々: [iOS][Mac] CoreD
2011-06-09 追記 UITableViewCell の Identifier 設定を忘れてたので追記しました。 UINib を使うと簡単に Nib で定義した UITableViewCell が使える。 今回のサンプル: 次に CustomCell クラスの実装(*.m/*.h)を作成する。こんな感じ。 CustomCell.h @interface CustomCell : UITableViewCell { } @property (nonatomic, retain) IBOutlet UILabel* nameLabel; @property (nonatomic, retain) IBOutlet UILabel* dateLabel; @property (nonatomic, retain) IBOutlet UILabel* descLabel; @property
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど 問題 この前リリースしたカスタム UIAlertView は表示メソッドを呼び出した後はそのまま処理が続行される。 Cocoaの日々: [iOS] ユーザ名/パスワードの入力ができるカスタム UIAlertView ライブラリを公開 例えば下記のような場合。 - (IBAction)showAlert:(id)sender { [LKAccountPanel showWithTitle:@"Test" completion:^(BOOL result, NSString* username, NSString* password) { NSLog(@"result: %d\nusername: %@\npassword: %@", result, username, password)
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど Keychain Serivce の簡易ラッパー LKKeychain を公開しました。 lakesoft/LKKeychain - GitHub パスワードの追加、更新、削除が行えます。追加はこんな感じ。 [LKKeychain updatePassowrd:@"hdsI3823Khdf" account:@"hashiguchi@lakesoft.jp" service:@"SampleService"]; インストール GitHubからプロジェクトをダウンロードした後 Xcode で開く。 その中から LKKeychain.h と LKKeychain.m を自分のプロジェクトへコピーして追加する。 使い方 用意されているクラスメソッドを呼び出す。 追加・更新[LKKeychai
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど ISO 8601日付文字列を NSDateに変換する 例えば 2010-12-01T21:35:43+0900という文字列があった場合 NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; NSDate* date = [formatter dateFromString:string]; [formatter release];で NSDate へ変換できる。 ISO 8601 には多くのバリエーションがあって上記書式は Facebook API などで使われている ISO 8601 書式の一つ。 参考:ISO 8
VocalKit I no longer advise using VocalKit, as a much better project, Open Ears has come out. http://www.politepix.com/openears/ VocalKit is a wrapper for available open source Speech related packages. It's goal is to ease the development of voice recognition solutions for the iPhone by providing a nice, simple Objective-C API. Currently VocalKit is in an Alpha version and just wraps Pocket Sphinx
記念すべき記事IDが777のポストだ。 何が出来るの? ピンチイン・アウトによる画象の拡大・縮小。ドラッグによる移動ができます。 注記 QuartzCore.frameworkを追加しないと動きません。 実際のソース UIImageResizeView.h #import <Foundation/Foundation.h> @interface UIImageResizeView : UIView { UIImage *image_; CALayer *imageLayer_; CGFloat lastScale_; CGPoint firstPosition_; } @property (nonatomic, retain) UIImage *image; @end UIImageResizeView.m #import "UIImageResizeView.h" #import <Qu
こんにちは! ノンアルコールビールはビールと認めない派、gaoohです。 今回はiPhoneで簡単に画像にフィルターをかける方法を紹介します。 いわゆるカメラアプリによく搭載されている、撮った写真を白黒にしたりセピアにしたりする例のアレです。 基礎知識 まずは、そもそも画像を変化させるというのはどういうこと?を理解しなければなりません。 このあたりはデザイナーの人のほうが詳しかったりするので、もよりのデザイナーに聞くのが一番ですが、ざっくり説明すると色は 赤(A) 、緑(G)、青(B)、で表現することができます。 いわゆるRGB値というもので、HTMLやCSSなどでよくみかけるおなじみのものですね。 これに透過を表すアルファチャンネル(A)を加えてRGBAというものもあります。 さらに色相(hun)、彩度 (saturation)、明度(Value)、による色の表し方をHSVといいます。
※タイトルはあまり深い意味は無い。なんとなく「第三の〜」の響きが良かったので。。 前回紹介した Keychain Services を使えば制限付きながら iOS 上の複数のアプリケーションでデータ共有ができることがわかったのでそれを解説する。 [前回] Cocoaの日々: [iOS] Keychain Services とは 仕組み Keychain Services に格納されるアイテム(パスワードなど)のアクセス制御は Keychain Access Group(グループ)を元に行われる。アイテムにはこのグループ属性があり、同じグループに所属しているアプリケーションからのみアクセスが許可される。 Keychain Services のアイテムはパスワード、秘密鍵、証明書を格納するようになっているが、CFData(NSData)型 であればパスワードである必要はない。格納したい値を C
他アプリケーションが格納した Keychain Services 内の情報へのアクセス Mac OS X の場合はユーザが許可を与えれば他のアプリケーションの情報へアクセスすることができる。一方、iOS の場合、アプリケーションは自身が保存した情報のみアクセスが行える。他のアプリケーションの情報へは基本的にアクセスすることができない。ただし同じプロビジョニングプロファイルを使ってビルドされたアプリは設定により情報を共有することができる(後述)。 iOS での特記事項 iOS には単一のキーチェーンのみ存在する(Mac OS X は複数)。 iOS の場合、PC接続時にストレージの内容は暗号化されたままバックアップされる。これを復号化するパスワード(keychain password)はバックアップされない(iOSデバイスの中から外に持ち出されない)。 Keychain Service はプ
こんにちは!こんにちは! 最近JavaやObjective-Cで開発をしていて、やっぱりPerlって使いやすい言語なんだなぁと改めて感じている栗原です。 #と言いつつもJavaもObjective-Cも好きだったりします。 今回は「スマフォのライブラリなどの管理をどげんかせんといかん」とCTOに言われたために考えた、弊社のスマフォ開発チームが行なっているAndroid、iPhoneそれぞれの社内用ライブラリやスニペットの管理方法についてご紹介したいと思います。 ソースの管理方法 まずソースの管理についてですが、現在弊社のスマートフォン系のアプリはGitを使って管理しています。 通常のアプリも含めて「android」と「iphone」というプロジェクトを作成し、その中でそれぞれのプラットフォーム毎にリポジトリを作成しています。 以下のようなイメージですね。 git://example.com
プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMacやiPhoneなどの話題が中心のブログ 前回の記事「iOSで独自カスタムURLスキームを設定する方法について」では独自のカスタムURLスキームを設定して、他のアプリケーションから利用可能にしました。本記事ではカスタムURLスキームによってアプリケーションが切り替わった時に表示する画像を設定する方法について紹介します。なお、前の記事からの続きで、スキーム名mySampleAppをInfo.plistで設定済みとします。 画像の用意 画像を表示する方法は基本的には起動時画像の設定の方法とあまり違いはなく、Resourceフォルダに表示するための画像を用意すればよいだけです。ただし、ファイル名にスキーム名が追加されます。 例えば、前回の例と同様のスキーム名mySampleAppでアプリケーションが切り替
プログラミング (iOS, JavaScript, Jenkins, Sikuli) とMacやiPhoneなどの話題が中心のブログ 前回の記事「iOSでカスタムURLスキームを利用してアプリケーションを起動する方法について」では、カスタムURLスキームを利用して他のアプリケーションを起動する方法について紹介しました。今回は自分のアプリケーションに独自のカスタムURLスキームを設定して、他のアプリケーションから利用可能にする方法について紹介します。 Info.plistへのエントリ作成 今回はカスタムURLスキームmySampleApp:を受け入れるサンプルアプリケーションとして、新規プロジェクトを作成します。プロジェクト名をCostomURLSchemeSampleとしてテンプレートはView-Based Applicationにします。 独自のカスタムURLスキームを設定するために、ア
OpenCVはIntelが開発したコンピュータビジョンのライブラリで、例えば顔検出などを簡単に行うことができます。 覚え書きとして、OpenCVをiOS SDKをつかってiPhone上やiPadで使う方法を、ビルドスクリプトとデモアプリケーションつきでメモしておきます。 これらのサムネイルはデモアプリケーションのスクリーンショットです。 最新のOpenCVとiOS SDKに対応 プロジェクトをOpenCV 2.2.0、iOS SDK 4.3、Xcode4に対応しました (2011/4/17更新)。 ひとまず使ってみる すべてのソースコードとリソースはgithubのレポジトリに公開されています。 簡単に使えるように、事前にコンパイルしたOpenCVのライブラリとヘッダファイルを入れてあります。 すでにgitがあるなら、githubからレポジトリをcloneしてください。ない場合は、githu
iOS 4.0 からMessage UI Framework に追加されたMFMessageComposeViewController を使用すると、アプリケーションから SMS を送信することができます。 使い方は下記のようになります。 // Displays an SMS composition interface inside the application. -(void)displaySMSComposerSheet { MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init]; picker.messageComposeDelegate = self; picker.body = [NSString stringWithUTF8String:"これはSMS送信のテ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く