私はオープンソースが大好きですが、それ以上に、貴重な余暇の時間を費やして奇跡を生み出す開発者の皆さんが好きです。彼らが苦労して築いた成果を無償で共有してくれていることに感謝します。オープンソースの作者やコントリビューターの皆さん、あなたたちは本当に素晴らしい。すべての尽力に感謝します。

全部集めないと死んでしまう星人の私としては、個人的な好みでいくつかのiOSオープンソースライブラリを選びました。これらのプロジェクトの順番は完全にランダムで、どれも最高に素晴らしいものです。ほとんどがCocoaPodsに対応しているので、Xcodeプロジェクトへの追加は朝飯前です。

この記事の最後には「長文注意」バージョンがあります——タイトルとプロジェクトリンクだけのシンプルなリストです。この記事が役に立つと思ったら、iOS開発をしている仲間たちに共有してください。良い酒も路地の奥では知られずに終わりますから。

1. DZNEmptyDataSet

DZNEmptyDataSetは、空のtable viewやcollection viewを処理するための、かなり標準的なiOSの方法です。デフォルトでは、table viewが空の場合、画面も空になります。これではユーザー体験はあまり良いものではありません。

7916618959919052905

このライブラリを使えば、いくつかのプロトコルに準拠するだけで、iOSが自動的にcollection viewをきちんと処理し、ユーザーメッセージを適切で美しい形で表示してくれます。どのiOSプロジェクトでも自動的に処理できるので、いちいち気を配る必要はありません。

2. PDTSimpleCalendar

アプリにシンプルで美しく、正常に動作するカレンダーコンポーネントが必要ですか?もうあります——PDTSimpleCalendarは、おそらくiOSで最も優れたカレンダーコンポーネントです。動作ロジックも外観も、あらゆる面でカスタマイズできます。

7916687129639967930

3. MagicalRecord

彼らは言います。「Core Dataはシンプルで使いやすい」と。またこうも言います。「とても素晴らしくて便利だよ」と。は?本当ですか、Apple?各プロジェクトに追加される大量のボイラープレートコードは、「シンプルで使いやすい」という基準には全く合致しません。大量のエンティティの追加・削除・更新、contextの保存、環境ごとに異なるCore Dataスタックの作成などは言うまでもありません。もちろん、私はCore Dataが好きです。しかし、Appleはもっとうまく簡素化できたはずです——MagicalRecordのやり方でなら。

7917025779221885438

MagicalRecordは、Core Dataにラッパーをかぶせて、関係のないものをすべて隠してくれます。アクティブレコードパターン(Ruby on Railsなど)を使ったことがある人なら、分かるはずです。心からおすすめします。アプリでCore Dataを使っている皆さんは、ぜひ試してみてください。

4. Chameleon

ここまで読んできたということは、あなたはおそらくデザイナーというよりプログラマーでしょう。ここにぴったりのものがありますよ。

7916513406802779586

Chameleonは、iOS用のカラーフレームワークです。モダンなフラットカラーを使い、UIColorを美しく拡張します。カスタムカラーを使ったパレットの作成も可能です。他にも多くの機能があるので、readmeを参照してください。アプリを美しくしたいなら、このライブラリをぜひプロジェクトに追加してください。

7916867449546916812

5. Alamofire

Alamofireは、Swiftで書かれたシンプルなネットワークライブラリです。AFNetworkingを使ったことはありますか?Alamofireはその弟分です。より若く、よりスタイリッシュです(もちろん、AFNetworkingはObjective-Cで書かれています)。

7916867449546916814

ダウンロード、アップロード、JSONの取得など、ネットワーク関連の作業が必要なら、Alamofireこそが必要なものです。GitHubで8000人以上から推薦されています。間違いありません。

6. TextFieldEffects

標準のUITextFieldは少し退屈だと思いませんか?私もそう思います——TextFieldEffectsを紹介しましょう!余計な説明は抜きにして、いくつかの例を見てください:

7916854255407382019

7917016983128864819

7917048868966067776

そう、どれもシンプルなドロップインコントローラーです。storyboardでIBDesignablesを使うこともできます。

残念なことに、このライブラリはCocoaPodsに対応していません(もし未来から来た人で、この状況が変わっていたら、Twitterで教えてください)。ただしCarthageには対応しています。GitHubからプロジェクトをダウンロードして、自分のworkspaceに入れるだけでOKです。

7. GPUImage

カメラアプリを書いたことはありますか?まだなら、すぐにこのライブラリに出会うことになるでしょう。

7917025779221884764

GPUImageは、GPUアクセラレーションによるカメラエフェクト(写真と動画の両方に対応)を提供し、処理速度は非常に高速です。App Storeでは、このライブラリを使っているアプリが数百あります。私もGPUImageを使っているアプリを1つ持っています。GitHubでは8869個のスターを獲得しており、まだ伸び続けています。

7916491416570287001

8. iRate

App Storeでより多くのレビューを得る最良の方法は何でしょうか?この質問に答えるには確かなデータがありませんが、どうしても推測するなら、ユーザーに尋ねることを提案します。少しベタかもしれません——最近の開発者の多くは、カスタムのアプリ内アラートを作成していますから。

しかし、時間がない場合や、ゼロから実装したくない場合は、iRataを使うのが最善です。これがiRataです——小さなライブラリで、プロジェクトに入れるだけで、アンケートなどはすべて忘れてください。iRateが適切なタイミングでこの問題を解決してくれます。

9. GameCenterManager

シングルトンパターンが好きかどうかに関わらず、1つのGameCenterを管理する方が、私たちが知っている他の逆のパターンよりはるかに優れています。(あなたのゲームにはGameCenterが1つだけですよね?)

7917081854314897416

正直なところ、iOSで素のGameCenterを管理するのはそれほど難しくありません。しかし、このライブラリを使えば、より簡単に、より速くなります。良いものがさらに良くなるのは、もっと良いことではないでしょうか。

7916999390942818369

私は自分のゲームの1つでこれを使っており、とても良い感触でした。

10. PKRevealController 2

これは注目です。本当に素晴らしい!私が最も好きなiOSコントロールの1つです。PKRevealControllerは、スライド式のサイドバーメニューです(左、右、または両方向に対応)。指で軽くスワイプするだけで操作できます(またはボタンを押すこともできますが、スワイプするほどクールではありません)。

7916931221221331262

この種のコントロールを提供する他のライブラリもいくつか試しましたが、PKRevealControllerが最高です。インストールは簡単で、高度にカスタマイズ可能、ジェスチャー認識も優れています。iOS SDKの標準コントロールと言っても過言ではありません。

11. SlackTextViewController

SlackのiOSアプリを使ったことはありますか?大きなソフトウェア企業で働いているなら、使ったことがあるでしょう。使ったことがない人にとっては?——Slackは魅力的です。Slackを使うアプリも同様に魅力的です。特に、優れたカスタムテキスト入力コントロールとして使用される場合は最高です。これで、アプリですぐに使えるコードが手に入ります。

自動調整されるテキストエリア?試してみてください。

ジェスチャー認識、オートコンプリート、マルチメディア統合?試してみてください。

手軽なドロップインソリューション?試してみてください。

他に何が欲しいというのでしょう?

12. RETableViewManager

RETableViewManagerは、テーブルビューの動的な作成と管理を支援します。定義済みのセル(ブール型、テキスト、日付など——下のスクリーンショットを参照)が提供されていますが、カスタムビューを作成してデフォルトのビューと一緒に使うこともできます。

7916702522802756705

左のスクリーンショットは非常に古臭く見えます!storyboardでこのライブラリなしにできることはこれくらいです。しかし、時にはコードの方がビジュアルエディターよりも優れています。

13. PermissionScope

このライブラリを使うと、ユーザーに尋ねる前に必要なシステム権限を通知できるため、より良いユーザー体験を提供できます。受け入れ率の向上—>アクティブユーザーの増加->維持率の向上->データの改善->ダウンロード率の向上。超おすすめのpodです。

7916854255407382018

14. SVProgressHUD

この画像は正常に読み込まれており、長く待ったりページを更新したりする必要はありません。これはまさに、SVProgressHUDがあなたのアプリ内で見せる動作です。カスタマイズ可能なローディングインジケーターが必要なら、これがそれです(おそらく最高のものです)。

7916702522802756704

15. FontAwesomeKit

Font Awesomeは素晴らしく、これを使えば簡単にプロジェクトにフォントを追加できます。使い方も多岐にわたります。

7916764095453912512
 

16. SnapKit

自動レイアウトは好きですか?もちろん好きです!少なくともstoryboardで作成するときは好きです。 コードで制約を完全に手作業で作成するのは非常に苦痛ですが、幸運なことにSnapKitがあります。それを使えば、制約をシンプルかつ直感的に書くことができます。

7916762995942284689
 

17. MGSwipeTableCell

これは、多くのアプリでよく見られるもう1つのUIコンポーネントです。Appleは、標準のiOS SDKに同様のものを追加することを検討すべきです。スワイプ可能なテーブルセル——これがこのpodの最良の説明であり、最高のものでもあります。

55ae0953304a9

55ae09e206728

55ae09eeebdf6

これはほんの3つのアニメーションタイプにすぎません。他にも多くのバリエーションがあるので、readmeを確認してください。

18. Quick

Swiftでのユニットテストに使用され(Objective-Cでも使用可能)、Xcodeと統合されています。Objective-Cのファンなら、代わりにSpectaを使うことをおすすめします。しかし、Swiftユーザーにとっては、Quickが最良の選択です。

7916762995942284684
 
7916702522802756700
 

19. IAPHelper

アプリ内課金は大量のサンプルコードを伴いますが、このライブラリはそれらのコードを排除し、金銭取引に関するほとんどの一般的なタスクをシンプルにラップしています。

20. ReactiveCocoa

さて、これは小さな怪物です。

ReactiveCocoaは、このリストの他のライブラリとは異なり、小さなドロップインプロジェクトではありません。ReactiveCocoaは、シグナルとデータフローに基づいた、まったく異なるプログラミングスタイルと構造をもたらします。まず、これまで知っているすべてを忘れてから、その動作方法を理解する必要があります。非常に難しいですが、その価値は計り知れません。

7917081854314897412
 

ここでReactiveCocoaを教えるのは少し適切ではありませんが、興味があれば、いくつか良い情報源を紹介します:

  • Getting Started with ReactiveCocoa
  • Mattt Thompson:Reactive​Cocoa
  • ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2

注意:iOS開発コミュニティの皆さんにとって、これは少し技術的な内容を含む作業になります。

21. SwiftyJSON

SwiftでのJSON解析をシンプルにします。

22. Spring

アニメーションを、シンプルさ、連鎖可能性、宣言性の面で向上させます。

7916931221221331258
 

23. FontBlaster

カスタムフォントの読み込みがより簡単になります。

24. TAPromotee

クロスプロモーションは、無料で実現できる最高のマーケティング戦略の一つです。このライブラリを使えば非常に簡単で、使わない手はありません——TAPromoteeをあなたのpodfileに追加して、無料で設定し、より多くのダウンロードを楽しみましょう。

7916702522802756701
 

25. Concorde

アプリで大量のJPEGを読み込んでいませんか?Concordeを使えば、もっと良い方法で解決できます。これは大きな進歩です。

7916764095453912513
 

26. KeychainAccess

Keychainアクセスを管理する小さなヘルパーです。

7916762995942284690
 

27. iOS-charts

最後になりましたが、決して重要度が低いわけではありません——iOS用チャートライブラリ!非常に便利で美しい。ここでは余計な説明は不要です。下を見れば、これで何ができるかわかります。

7916854255407382020
 

そう、すべてがドロップインコンポーネントになりました(もしかすると「コードインコンポーネント」かも)。

7917016983128864820
 
7917048868966067777
 

残念ながら、まだCocoaPodsに対応していないため、手動でXcodeワークスペースにドラッグする必要があります。