John Holdsworth AppleOS Software Engineer From assembly language though scripting languages, Java(Script) and SQL to Objective-C(++) and Swift, John has the answer to your low level engineering and performance and tuning requirements. Available for remote work in the Europe or US timezone John has been an independent iOS and MacOS dev since 2008. Open Source Contributions This has focused on impro
クラスメソッドを@selectorで呼び出せないかな — 進藤こだまさん (@kodam) 3月 22, 2012 というツイートを見かけたので、備忘で書いておきます。 パラメータとかが短くて簡単な場合 [[UIApplication class] performSelector:@selector(sharedApplication)]; 簡単ですね。 パラメータ複数だったりして面倒な場合 // id target=[UIApplication class];//でもOK id target = NSClassFromString(@"UIApplication"); // SEL selector = @selector(sharedApplication);//でもOK SEL selector = NSSelectorFromString(@"sharedApplication")
以前にNSDictionaryへのNull挿入の強制をMethod Swizzlingで行うというエントリを書いた。 [Objective-C][iOS]Method SwizzlingでNull挿入パターンを実装する / Kazzzの日記 このときは上手く行ったので調子にのって、以下のようにMethod Swizzlingをユーティリティとして外だしにして BBRuntimeUtil.m (抜粋) + (void)swizzleMethod:(Class)clazz from:(SEL)originalSelector to:(SEL)newSelector { Method origMethod = class_getInstanceMethod(clazz, originalSelector); Method newMethod = class_getInstanceMethod(c
Mac OS X のアプリケーションを作る方法が Objective-C だけとは、限りません。 今回はそういった意味ではだいぶ実装がアレな拙作 SkypeLogger の実装を見ながら、こんな作り方もあるよねということを紹介したいと思います。 SkypeLogger の紹介 まず、SkypeLogger ですが、何をするものかというと、Skype のチャットログを人間が読める形で普通のファイルに書きだしてくれるツールです。Skype.app 自体にログを残す機能はあるのですが、人間が読めないし、機械でも読めない独自の形式1で書き出されるので不便なのです。 そこで、Skype API を使ってチャットの発言の送信、受信イベントをもとにチャットの発言を逐一ファイルに書き込んでいくだけの簡単なお仕事をしていただく、というツールです。 しかしこの Skype API が曲者で、API とは名ばか
どうも@kuroji1987です。 遅ればせながら@hitoriblogさんの『Reeder Mac Patcher』を導入させて頂きました。これはマジで最高です! 『Reeder Mac Patcher』は、Reederでの記事閲覧中にTwitter投稿画面を立ち上げると、記事名とアドレスがすでに挿入された状態にしてくれているというもの。コメントを添えるだけで即共有できます。 しかも「command+enter」のショートカットで投稿できるので、とにかく楽! Twitterでガンガン共有できるようになりました。 設定方法 ひとりぶろぐさんでも解説されているのですが、OS X Lionだと少し手順が変わるのでメモしておきたいと思います。 まずはこちら「Reeder for MacからTwitterへのポストをスピーディーにするReederMacPatcher」で、ショートカットを使えるバ
2012/03/23 SIMBL を使えば Reeder でテンプレートができた このエントリはマニアックで不親切で皆さんのプラスにはならないかもしれません が感謝の意味のエントリなので許してください。 最近やっている azur256 's check ですが Sylfeed のテンプレート機能と連携しているからこそ半自動化できています。 この半自動の仕組みは特定のフォーマットに合わせた呟きだけを抽出してから自動整形しているのですが、Mac 上の RSS リーダではテンプレートが設定できる良いものに巡り合えていないため、どうしようかと思っていました。 そんな時に @kuroji1987 さんのエントリでヒントを貰うことができました。 「Reeder for Mac」から爆速でTwitterへポストできる『Reeder Mac Patcher』を設定しました | NANOKAMO B
2011年6月25日土曜日 iPhone Simulator Capture インストール手順。 備忘録。 iOSアプリのデモ動画を作る時に活躍する「iPhone Simulator Capture」 情報元は→http://www.moongift.jp/2011/06/20110618-2/ 情報元のサイトにも記載しておりますが iPhone Simulator CaptureはSIMBLプラグインとして提供されるソフトウェアです。 という事で、まずはSIMBLをインストールしたいと思います。 ■手順1 SIMBLをインストール SIMBL SIMBLは下記URLからダウンロード。 http://www.culater.net/software/SIMBL/SIMBL.php ダウンロードができたらインストーラーを起動してSIMBLをインストール。 ■手順2 iPhone Simula
OS X Lion の新しいフルスクリーンを未対応のアプリケーションでも使うためのSIMBLプラグイン。drikinさんの Drift Diary XIII で紹介されていて早速試してみました。当然ながらSIMBLのインストールが必要です。 Lionの新しいフルスクリーンではウィンドウを拡大するだけでなく、Mission Control の一つの作業ウィンドウとしてそのフルスクリーンアプリケーションを追加することで、二本指スワイプでさくさく切り替えて作業ができるようになります。 ただそれにはアプリケーション個別に対応が必要なのですが、とりあえずという形でそれが未対応のアプリケーションでも使えるようになります。 ダウンロードページ ダウンロード・解凍し【Maximizer.bundle】を、一つのユーザーで使いたい場合は【~/ライブラリ/Application Support/SIMBL/P
前略 日本語圏には数えるほどしかいないと思われる SIMBL プラグイン開発者のみなさま、そしてこれから SIMBL プラグインを作りたいと考えている奇矯なるみなさま、いかがお過ごしでしょうか。コレ入れましょう。 class-dump class-dump はクラスをダンプするヤツです。 Cocoa アプリケーションのバイナリから、構造体とクラスの定義を取り出せます。 % class-dump /System/Library/PrivateFrameworks/Safari.framework/Safari /* * Generated by class-dump 3.3.3 (64 bit). * * class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2010 by Steve Nygard. */ #pragma mark N
BathyScaphe 1.1 から採用された Previewer プラグインを作成しよう。 目次 用意するもの チュートリアル(シンプルプレビューアを作ろう) 概要 プロジェクトの作成 Info.plist の編集 ターゲットのプロパティの編集 ターゲットのビルドの編集 インターフェイスの作成 クラスの作成 クラスとGUI部品を関連付ける (Cocoa Binding) コーディング BSImagePreviewerProtocolに準拠する 使ってみよう 初期設定を使う。 ヘッダファイルの変更 インプリメントファイルの変更 少し発展した情報 自動インストール ローダブルバンドル(プラグイン)のデバッグ よくある質問と答え Q, BathyScaphe Plugin Developer Guideにはdeallocは呼ばれないと書かれていますが? Q, では本当にどうしても終了時にやらな
もう2ヶ月くらい前になるかもしれませんが、Xcode関連で調べ物をしていたときに偶然見つけた方法をちょっと弄ったらうまい具合に SIMBL plugin 向けにも動いたよっという話です。 超ニッチな情報ですが、僕は超テンションが上がりましたのでご紹介。 Custom Executable を追加 メニューバーから ”Project” > ”New Custom Executable” をクリック 出てきたウインドウに適当な名前を付けて、プラグインの対象となるアプリを選択。 Run Script Build Phase を追加 メニューバーから ”Project” > ”New Build Phase” > ”New Run Script Build Phase” をクリック 出てきたウインドウに以下のスクリプトをコピペ。 # clean up any previous products/s
(先日までのプラグイン調査の記録) Cocoaの日々: WebKit Plug-in Study (4) 全てのページでプラグインを動作させるには? Cocoaの日々: WebKit Plug-in Study (5) 全てのページでプラグインを動作させるには?#2 Cocoaの日々: SIMBLプラグイン作成の参考情報 先日までの調査で WebkitPlugIn では目的とするプラグインの実現は難しそうなので、急遽 SIMBLの作り方を参考に独自のプラグインを作ることにした。なお先日紹介したブログで SIMBLを使わなくとも(トリッキーな方法で)目的のクラスをロードする方法が見つかったので、実装ではこの方法を利用してSafari用プラグインを作っていく。 今回は検証用のひな形プロジェクトを作る。 WebkitPlugIn の作法には従わないので今回は Xcode のテンプレートは "Co
MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard (前回)Cocoaの日々: Objective-C 2.0 ランタイムの情報 2.0 ランタイムから追加された method_exchangeImplementations を使ってメソッドを置換してみる。 具体的な方法は下記のサイトが参考になった。 MethodReplacement CocoaDev: MethodSwizzling Mac Dev Center のコードがシンプルでとてもわかりやすい。 が、ここでは Cocoa Dev のたくさん方法が書いてある中で下記のコードを使ってみた。 void Swizzle(Class c, SEL orig, SEL new) { Method origMethod = class_getInstanceMethod(c, o
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く