ObjectiveFlickrをiPhoneで使う OAuthログイン & API実行編

ログインの基本的な流れとしては 1.[OFFlickrAPIContext loginURLFromFrobDictionary:requestedPermission:]で生成されたURLを[UIApplication openURL:]で開き、 2.その中でユーザーが認証され、 3.コールバックのURLSchemeでアプリが開かれ、[UIApplication…

ObjectiveFlickrをiPhoneで使う 準備編

2.0でiPhoneにも対応したObjectiveFlickr2.0を試してみたのでメモを。 I.flickrのAPIキーを取得する http://www.flickr.com/services/apps/create/ 商用非商用で少し手続きの煩雑さが変わるみたいですが、どんなプラットフォームの何をするアプリなのかを詳…

UIViewのアニメーションを滑らかに動かす

UIViewのsetAnimationCurve:(UIViewAnimationCurve)で指定できるイージングはたったの四種類で表現力に乏しい。そこでもっと自由にUIViewを動かしたい場合、CAMediaTimingFunctionを指定してLayerを動かすとうまくいく。 UIView *moveView; CALayer *moveLay…

TextFieldがキーボードに隠されないようにする

TextFieldを全画面のUIScrollViewのscroll上に配置しておく。TextFieldDelegateに次のように書くとテキストフィールドが隠れない。 - (void)textFieldDidBeginEditing:(UITextField *)tf { NSInteger marginFromKeyboard = 10,keyboardHeight = 165;//interf…

iPhoneアプリ内からアプリを終了させる

非公開メソッドだが、exit()を使うより終了時の様々な事をやってくれる。applicationWillTerminateに設定類を保存する処理を書いていて、アプリ内からアプリを終了させたい時とかには使えそう。 [[UIApplication sharedApplication] terminateWithSuccess];

IBを使わずにリターンキー押下時にキーボードを隠す

簡易的にIBを使わずにリターンキー押下時にキーボードを隠すには、対象のUITextFieldにdelegateを設定してやり、UITextFieldDelegateのtextFieldShouldReturn:をこんな風に実装してやるといい。 - (void)textFieldShouldReturn:(UITextField *)tf { if( [tf …

iPhoneでflickrAPIを扱う方法

1.CのAPIライブラリを使う Objcetive-CはC言語を内包しているのでflickrcurlライブラリ(http://librdf.org/flickcurl/ )で間に合うかもしれない。 利点 おそらく楽 flickcurlオブジェクトを作ってflickrcurl_set_api_keyしてほげほげするだけでいいみたい。…

MobileMe + SubversionでXCodeプロジェクトのバックアップとリビジョン管理

iPhone開発者ならほとんどがアドレス帳同期などのために使っているだろうmobileme。せっかくiDiskという10GBのストレージがついてくるのだから利用しない手はない。まずは"システム環境設定" - "MobileMe" - "iDisk"タブからiDiskSyncを開始する。 次にター…

UITableViewを作る

TableはiPhoneらしいリストを作れるため重宝するが、サンプルの数やメソッドの数を見るとくじけたくなる位複雑だ。 テーブルに慣れるため、最低限のテーブルを作る方法をまとめた。 まずUITableViewを生成する際、styleはUITableViewStylePlainとでもおいて…

UIViewControllerのloadView

Implement loadView to create a view hierarchy programmatically, without using a nib. とある通りIB使って細かい配置だけしておいてビューの階層はコード内に書くこともできる。だが、その際親クラスのloadViewを呼んでおかないとシミュレータではコンパ…

iPhoneSimulatorのみや実機のみでコンパイルする

iPhoneSimulatorだけや、実機だけで実行するコードを書く #import <TargetConditionals.h> #if TARGET_OS_IPHONE 実機のみ *ではない* #endif #if TARGET_IPHONE_SIMULATOR シミュレーターのみ #endif #if !TARGET_IPHONE_SIMULATOR 実機のみ #endif iPhoneSimulatorもiPhoneOSのう</targetconditionals.h>…

TwentyFiveを少し宣伝

自分も多少関わったiPhoneアプリが結構前に公開された。ちょっと手空きの時に英語の感覚を鍛えるためにどうぞ。 http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=297326138 (iTunesリンク) http://twentyfivegame.com/ja/ このTwentyFiv…

iPhoneのDistributionビルド

まだガイドに載っていない、やりがちだがわかりづらい落とし穴。 通常AdHocでテストしてからAppStoreへアップロードするが、その際ほとんどの部分が同じだからといってAdHoc用のものをコピーしてビルド構成を作ってはいけない。 ガイドに載っている通りにし…

識別子

iPhone,iPod touch の識別子をiTunesで表示すると末尾が切れる事がある。識別子表示をした状態でコピーをすると40桁全てコピーできる。

MVCデザインパターン

モデル、ビュー、そしてコントローラの三つにプログラム構成要素を分割するデザインパターン。かなり大きな意味でのデザインパターンであり、クラスそのものの作り方についてのデザインパターンとは異なる階層。 MVC以外のプログラム構成要素のデザインパタ…

はてなキーワードを見やすくするユーザースタイルシート

はてなキーワードの画面がごちゃごちゃとしている。上部に広告が集中しているためあまり見やすく無い。そこでuserContent.cssに次のように追加した。 @-moz-document domain("hatena.ne.jp"){ /* キーワードでやたらと目につくAmazon,YahooAuction広告画像を…

userChrome.cssとuserContent.cssの違い

userChrome.cssはFirefoxの見た目に適用されるcssであり、userContent.cssはWebサイトの見た目に適用されるcssである。 後者が所謂ユーザースタイルシートである。