GitHubの便利なリポジトリの選択



最近、私はGitHubで多くのマークされたリポジトリを収集しました。さまざまな種類の、有用で、あまりコードではありません。 私はそれらを自分で構築し、一般に公開することにしました。







facebook / three20





iPhone用のさまざまな機能を備えた非常に有名なライブラリ。 公式のFacebookアプリケーションで使用されます。 以前はプライベートAPIにいくつかの問題がありましたが、Three20は問題なくAppStoreで検証を渡します。 ライブラリは非常に強力であり、このため、最初の研究では多少複雑です。 ヘルパーマクロには多くの種類があり、メモリの操作から始まり、高度なログで終わります。



キットには、画像(TTPhotoViewControllerは標準のPhotosのフォトブラウザに相当)、レター(メール送信用の完全に拡張可能なUI)を操作するためのインターフェイスも含まれています。 TTTableViewControllerアドバンストテーブルコントローラーは、ネットワークからデータを受信するように特別に設計されています。 TTTextEditorは、SMSと同様に、動的に拡張可能なUITextViewにテキストを入力できる優れたコントロールです。



UIに加えて、Foundationレベルにはいくつかの便利なクラスがあります。たとえば、TTURLRequestを使用すると、ディスク上にリクエストをキャッシュできます(FoundationツールではiPhoneで実行できないもの)。 TTNavigatorはまだ非常に興味深いが、理解するのが少し難しいため、アプリケーション内で柔軟なナビゲーションシステムを作成できます。 実際、Three20はこれに関する別の記事に値します。



pokeb / asi-http-request



CFNetworkのラッパー。高度なHTTP要求を作成できます。 便利な瞬間から:データをファイルに直接アップロードできます。 POSTリクエストでファイルを転送するためのシンプルなインターフェイスをサポートします。 ダウンロードの進行状況を更新するデリゲートのサポートがあります。 さまざまな承認スキーム(Basic、Digest、NTLM)のサポート。 要求への応答と送信の両方に対するGZipのサポート。



これに加えて、ASI HTTPはAmazon S3で動作し、高度な機能から、シェーピングのダウンロードをサポートし、プロキシを介して動作します。 ASI HTTPは、Mac OS XとiPhoneの両方で快適です。



パルマノワール/ jscocoa



本当にクールなことは、本質的にJavascriptからCocoaへのブリッジングです。 Webkit JavascriptCoreに基づいて動作し、標準のブリッジングよりも多くの機能を提供します。



このライブラリにより、JSランタイムで新しいクラスを作成できるだけでなく、既存のクラスのスウィズル(メソッド置換)、およびObjCオブジェクトの標準JSメソッドを実行できます(特にドキュメントからの正規の例が好きです: myNSString.match(/pattern/)



)。 JSCocoaを使用すると、スクリプトとプラグインのサポートをアプリケーションに簡単に追加できます(iPhoneアプリケーションでのスクリプトのサポートは拒否される可能性があることに注意してください)。



andrep / RMModelObject



Objective-Cでモデルオブジェクトを実装するためのガイドを読みましたか? その場合、本格的なモデルクラスを作成するために必要な作業量を想像してください。CoreDataは特効薬©ではありません。 RMModelObjectは、より多くの実装を行います。 本質的に、モデルインスタンスの説明は次のコードになります。



 @interface MyBlogEntry:RMModelObject

 @property(コピー)NSString * title;
 @property(コピー)NSCalendarDate * postedDate;
 @property(コピー)NSAttributedString * bodyText;
 @property(コピー)NSArray * tagNames;
 @property(コピー)NSArray * categoryNames;
 @property BOOL isDraft;

 @end

 //

 @implementation MyBlogEntry

 @dynamic title、postedDate、bodyText、tagNames、categoryNames、isDraft;

 @end 




ivarを明示的に宣言する必要はありません。 アクセサーを記述する必要はありません。 NSCopyingとNSCodingの両方に対する既製のサポート。 指定された比較基準に従ってオブジェクトを比較するための既製のサポート(-isEqual:および-hash)。 準備完了-dealloc。 一言で言えば、素晴らしいことです。 また、そのようなクラスは、モデルのフィールドが変更されたときに通知(簡易KVOなど)を受信します。これにより、検証とインスタント保存の両方が可能になります。 もちろん、これはすべて、バインダーなどの他のCocoaテクノロジーと非常に友好的です。



内部のRMModelObjectは非常に興味深いエンジニアリングソリューションです。ランタイムで掘りたい場合は、ソースを読むことをお勧めします。



エリカ/ *



Erica Sadundは有名なプログラマーであり、優れた作家です。 彼女のリポジトリには、日常業務に役立ついくつかのカテゴリがあります。 NSObject拡張により- (id) objectByPerformingSelectorWithArguments: (SEL) selector, ...;



セレクターを呼び出すためのいくつかの興味深いオプション(たとえば- (id) objectByPerformingSelectorWithArguments: (SEL) selector, ...;



)を作成し、ランタイムから情報にアクセスできます。



NSArrayの拡張機能を使用すると、setに従来使用されている選択を行うことができます。uniqueMembers、unionWithArray:、intersectionWithArray:; NSArrayとスタックまたはキューを操作するための拡張機能と同様に、指定されたセレクターと引数に対する操作をマップ、収集、拒否します。



NSDate-ExtensionsはNSDateにメソッドを追加して、日付をすばやく作成し、今日、昨日、明日、今週などをチェックします。 カレンダークラスを使用せずにNSDateをコンポーネントに単純に解析します。



他のEricaリポジトリも調べることをお勧めします。



ギココア/ gccalendar





GCCalendarは、カレンダーインターフェイスを作成するためのクラスです。 GCCalendarは1日ビューのみをサポートしますが、非常にうまく機能します。



uliwitness / UliPhoneKit



iPhoneで指定されたサウンドを2行で再生できます。 サウンド表示をプロジェクトにすばやく追加するのに非常に貴重ですが、他には何もできません。



enormego / EGOTableViewPullRefresh





UITableViewをドラッグアンドドロップすることでTweetieを使用して更新する方法は、すでにさまざまなアプリケーションに広がり、iPhoneとやり取りするための完全に標準的なパターンになっています。 EGOTableViewPullRefreshは、アプリケーションで同様の機能をすばやく簡単に実現するのに役立ちます。 更新ボタンがインターフェイスに収まらない場合、またはそれ以上のスペースが残っていない場合は、pull-refreshを試してください!



また、 enormegoブログ非常に興味深いものです。



tmdvs / TDBadgedCell





TDBadgedCellは、バッジ番号プロパティをUITableViewCellに追加します。これは、MobileMailと同様に、指定された番号を右側のバッジに表示します。



mattball / MBCoverFlowView





MBCoverFlowViewはMac OS X用のクラスで、FinderとiTunesでのカバーフローの効果を動作させるのに使用できます。



sdegutis / SDModelObject



SDModelObjectは、既に説明したRMModelObjectのより単純なバージョンです。 サポートされているのは、-dealloc内のすべてのプロパティオブジェクトを自動的に解放し、特定のキーセットと-hashに対して-isEqual:をチェックすることだけです。



ccgus / jstalk



どういうわけか、私はAppleScriptでいくつかのスクリプトを記述しようとしました。 残念ながら、この言語を完全に理解することはできませんでした。これは非常に珍しいことです。 JSTalkは、JSコードを使用してScriptBridgeを介してアプリケーションと通信できる興味深いプロジェクトです。 さらに、JSTalkはプリプロセッサーを介した特別な種類の呼び出しをサポートします。これにより、JSで従来のObjCスタイルのメソッド呼び出し[someObje someMeth:someArg]



を使用できます。



sdegutis / SDKVO



SDKVOカテゴリは、すべてのオブジェクトに次のメソッドを追加します。

  -(id)observeKeyPath:(NSString *)newKeyPath
			  オプション:(NSKeyValueObservingOptions)someOptions
			  ハンドラー:(void(^)(idオブジェクト、NSDictionary * change))newHandler; 


10.6SDK(iPhone4.0SDK、またはPLBlocks)のブロックを通じてKVOを使用できます。



sdegutis / SDKeychain



SDKeychainは、OSXキーチェーン(CのネイティブAPIのみ)を操作するための2つの適切なCocoa APIのみを提供します。

 +(NSString *)securePasswordForIdentifier:(NSString *)ユーザー名;
 +(BOOL)setSecurePassword:(NSString *)somePassword forIdentifier:(NSString *)ユーザー名; 




yfactorial / ObjectiveResource



ObjectiveResourceは、Objective-CのレールActiveResourceポートです。 残念ながら、フォローアップの瞬間からこのリポジトリを選択していませんが、それでも私は非常に興味深いように見えるので、ここで言及します。



blakeseely / bsjsonadditions



ネットワーク経由でデータを送信するためにJSONに依存している場合(個人的にはXML Plistを好みます)、bsjsonadditionsを試してください。 JSONのエンコードオブジェクトと文字列の解析の両方がサポートされています。



sdegutis / CocoaREST



CocoaRESTには、Facebook、FriendFeed、Identica、Twitterなど、さまざまなサービスのRESTful APIを操作するためのクラスのファミリーがすべて含まれています。 APIのサポートを記述するのも非常に簡単です。



イカ/ミニマロー



NSURLConnectionの非常にシンプルなラッパー。ファイルを転送するなど、複雑なPOSTリクエストを作成できます。



それがすべてのようです。 また、Google Codeにはお気に入りのリポジトリ( Google Toolbox for Macjson-frameworkkissxmlplbocksおよびXMPP Frameworkを含む )がありますが、それらについてはいつか変更します。



All Articles