Exploring Objective-C through fine-grained, flexible abstractions
iOS4からBlockが導入されました。利用目的としてはDelegateパターンと大差ないと思っていますが、処理記述が呼び出し元で記述できることで可読性が高くなります。 また、コールバック時に利用されるperformedSelectorが非常に使いづらく複数の引数となった場合などを考慮してNSDictionaryで定義したりInvocationを使う必要がったりと面倒な点が多々ありました。 今回は、CoreFoundationにカテゴリで組み込まれたBlockを活用したBlocksKitフレームワークを紹介したいと思います。かなり便利なため、今後のコーディングスタイルを変えてしまうほどのインパクトがあると個人的には思っています。 BlocksKit https://github.com/zwaldowski/BlocksKit BlocksKitはBSD, MITライセンスの元で利用可能で
第一回目の”fantagramができるまで”は、GPUImageの組み込みの解説をします。 前回のcocos2dで簡単なゲーム作っていくよ(まとめ・サンプルコードあり)と同様に、コードはGitHub上で公開してます。 https://github.com/kasajei/ios-fantagram-kasajei GPUImageはsubmoduleとして追加しているので、ターミナル上で $ git clone https://github.com/kasajei/ios-fantagram-kasajei $ cd ios-fantagram-kasajei $ git submodule init $ git submodule update としてください。 *注:UIKitHelperという独自で作った、UIKitを便利にするライブラリーも使っています。これも、Submodule化
こんなかんじのフィルターが作れるようになります。 このレジュメを元にした勉強会が「MTL主催【学生限定・iPhone勉強会】蜷川実花監修カメラアプリcameranのエンジニアが教える高速フィルターカメラアプリの作り方です。 学生の皆様はふるってご参加下さい。 GitHubのリポジトリは https://github.com/kasajei/MTLSeminar201303 です。 あと、Xcodeをダウンロードしてきてね☆ Xcode カテゴリ: 開発ツール 価格: 無料 アジェンダ プロジェクト作成 GPUImageの組み込み とりあえず、GPUImageを動かしてみる PIP Cameraみたいなおしゃれなフィルターを作ってみる プロジェクト作成 まずプロジェクトの制作をします Single View Applicationを選択 名前はMTLSeminar201303にしましょう 次
リモート通知はシュミレータではサポートされていないので実機転送する必要がある。 プロヴィジョニングプロファイルに含めるApp IDのBundle Identifierにワイルドカード(*)は使用出来ない。 作成したApp IDのConfigureでDevelopment Push SSL CertificateをEnabledにする必要がある。 App IDを作成後、作成されたAppIDを選択しEditボタンを押したら、Push Notifications の Development SSL Certificate の Create certificateボタンをおしてcertificateする必要があります。 認証局に証明書を要求する際に「鍵ペア情報を指定」にチェックを入れておく。 「アプリケーションの有効な"aps-environment"エンタイトルメント文字列が見つかりません」って
# armv7 clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -c mattn.c ar mattn-armv7.a mattn.o ranlib mattn-armv7.a # i386 clang -arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk -c mattn.c ar mattn-i386.a mattn.o ranlib mattn-i386.a
iPhoneの新しいGoogle Mapsのアプリ、色々弄り倒してますがステキな感じ。 でこれひょっとして、「NimbusKit使ってない?」って思ったら、案の定で使ってた。 NimbusKitはiOS用のヘルパークラスと、コンポーネントと、デバッグツールの集合体。 以下のような機能がサクサクとつけられる。 CSSスキニング インターフェースの外見にCSSを適用できる。ビューのカスタマイズがラクチンに。 TextLabel iOSの微妙なTextLabelにリッチテキストやリンクがつけられるように。 バッジ 通知件数などのバッジを簡単に作成。 他アプリとの連動 他アプリ・・・マップ、ストア、電話、SMS、FB等の連携をラクチンに。 アプリ内ホーム画面 ホーム画面的なUIをアプリ内に簡単に追加できる。 キャッシュ/非同期通信つきのImageView 画像ローダー付きのImageView拡張。
以前は MKMapView 上に線を引いたり四角形を書いたりするのに自前で View を作成しないといけませんでしたが iOS4 になって地図上に図形を書くためのクラスが追加されました。使い方がわりと簡単なので紹介したいと思います。 地図に線を引く 地図に線を引くには MKPolyline クラスと MKPolylineView クラスを使います。山手線の渋谷駅から新宿駅に線を引く例をもとに説明します。 手順は以下の通りです。 プロジェクトに MapKit.framework を追加 UIViewController のサブクラスを作成し MKMapViewDelegate プロトコルの実装を宣言する viewDidLoad メソッドで MKPolyline オブジェクトを生成し MKMapView の addOverlay メソッドを使ってオーバーレイを追加する mapView:view
チャオ! Objective-cで2点間の距離を出すのは超簡単! 2つのCLLocationデータから出すサンプルは結構あるんですが、経緯・緯度からってのがあんまりなかったので!って言っても簡単する過ぎて記事がすぐ終わりング まず、以下のframeworkを突っ込んでおく。 CoreLocation.framework 次に、距離を出したいファイル(*.hでも良いです)でCoreLocationをimport #import <CoreLocation/CoreLocation.h> 最後に下記で距離をゲット、距離はメートルで取れる感じです。 (下記は大阪城から皇居までw) // 2点の経緯・緯度を設定 double latA = 135.5258549; double lngA = 34.6873527; double latB = 139.75313186645508; double
こんにちは、iOSプログラマーの_ishkawaです。 このエントリは tech.kayac.com Advent Calendar 2012 8日目の記事です。 テーマは「私の中のマイイノベーション 2012」です。 12月。恋人たちが心の溝を埋めていく中、僕はiOSバージョンの溝を埋めております。 今日はそのテクニックを紹介したいと思います。 それと、紹介するテクニックを使ったマイイノベーションも紹介します。 基本中の基本 iOSでは、バージョンによってクラス/メソッドの有無やプロトコルへの適合状況が異なります。 これらの状況の違いは以下の方法で判別することができます。 メソッドが存在するかどうか: respondsToSelector: クラスが存在するかどうか: [Class class] プロトコルに適合しているか: conformsToProtocol: これらの条件を以下のよ
この辺で詳しく説明されているのだけれども、全然知らなかった。そして踏んだ。 日本語環境では、NSDateFormatterでフォーマットした日付がおかしい - 24/7 twenty-four seven NSDateFormatter - 文字列と日付の変換 - 強火で進め 一般->言語設定->カレンダーで西暦以外(和暦orタイ仏歴)を選択していると、NSDateFormatterでフォーマットする年が平成yyyy年とかになるらしい。 つまり、和暦に設定した状態でこんな感じのプログラムに_dateとして「2011/6/13」を与えた場合、 NSString* _dateOfFirstStr = _date; NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatt
iOS6では、設定.appにプライバシーという項目が追加され、”写真”(フォトライブラリへの保存や読み込み)や”連絡先”などにアクセスする時に、 許可のダイアログが表示され、”いいえ”を選択した際はそれらへのアクセスが出来ないようになっています。 【iPhone】iOS6の写真系トラブル「写真へのアクセスを求めています」を「許可しない」としてしまった場合の対処 – OK!stiloドットコム iPhone5やiOS6で、カメラ系アプリが画像を保存しなくなった場合の対処方法 | fladdict ユーザーが”写真”へのアクセスを許可したかどうかを判定するには、AssetsLibrary.frameworkの+ (ALAuthorizationStatus)authorizationStatusを使って判定することができます。 AssetsLibrary.frameworkを追加して、[ALA
そのクラスに指定したクラスメソッド(セレクター)が存在するのか判定する為には - (BOOL)respondsToSelector:(SEL)aSelector; を利用します。 このメソッドはインスタンスメソッドなんですけど、なぜかクラスに対して呼び出すことができます。コンパイルも通るし実行時に落ちたりもしません。(小一時間調べたけど分からずじまい)
3. UIImagePickerController とは iPhone で、 Camera で写真を撮ったり、 Photo Library から写真を選択するためのクラス。 非常に簡単に利用できる。 iPhone SDK が提供している、 Camera を使うための公式な唯一の手段。 5. @interface CameraViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> { UIImagePickerController* cameraController; } @property (nonatomic, assign) UIImagePickerController* cameraController; @end 6. #define
処理が終わったら(サンプルでは2秒間のウェイトが入れてある) contentInsets.top = -60 へ戻してやる。すると最初のヘッダが隠れた表示に戻る。なお contentInsets も UIViewアニメーションの対象なので +[UIView animateWithDuration:aniamations:] を使うとヘッダが隠れるまでがアニメーションになる(逆に使わないと一瞬で切り替わり、やや不自然になる)。 コードではヘッダの表示制御用にメソッドを用意してある。こんな感じ。 - (void)_setHeaderViewHidden:(BOOL)hidden animated:(BOOL)animated { CGFloat topOffset = 0.0; if (hidden) { topOffset = -self.headerView.frame.size.heig
仕事を持つ女性が一段と増えて来ています。 自立する女性が多くその結果、晩婚化や少子化の原因とも言われています。 しかしながら自分で生活して男性に頼らなくてもいいということは、女性のが男性に依存しなくてもいいので自由度が多くなって来たと言えるでしょう。 働きながらでも結婚して仕事を辞める事なくやっていく事も、可能になってきました。 今でもいわゆるマタニティハラスメントと呼ばれるものもあり、妊娠したら辞めるように言われる事もあるみたいですが働きながらでも育児休業を利用している人も多くいるのです。 しかし、そのような環境で勤務されている人もまた少ないのではないでしょうか? 公務員や大企業では、育児休業などもきちんととれると思いますが一般の中小企業では難しいものがあると思います。 今の時代は女性が働ける環境が整っているところは、まだ少ないと思います。 その上この不景気が続いていては、給料が少ないた
例えばHTTP通信で取得したデータをUITableviewに表示するようなアプリで、最初に20件表示しておき、一番下の「もっと読む」のアクションでさらに20件追加してUITableviewに追加したいっていう時のお話。 要はNSMutableArrayに追加していき、UITableviewをReloadするだけなんだけれども、NSMutableArrayに追加するやり方がビンゴっていう記事に巡り合えなかったので、うまくいった内容をメモメモ。 List.h @interface List : UITableViewController { NSMutableData *buffer; NSMutableArray *articles; } @property(retain, nonatomic) NSMutableData *buffer; @property(retain, no
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く