GitHubのStarsが多いSwiftライブラリ

## GitHubから特にStarsの多いライブラリをピックアップして一覧にしてみました。
iOSアプリを新規開発するときにある程度どんなライブラリを使って進めて行こうか検討するかと思います。
毎回、「いいライブラリないかな〜」ってgithubやCocoapodで検索するのはもったいないので、
このライブラリを使っておけば安心なライブラリをまとめました！

<details><summary>**10k~**</summary><div>

## 10k~

#### [Alamofire](https://github.com/Alamofire/Alamofire)
<img src="https://raw.githubusercontent.com/Alamofire/Alamofire/master/alamofire.png" width="50%">


iOSのHTTP通信で一番使われてるのではないでしょうか??
あまりにもメジャーすぎるので説明しないです。

- 使用されているアプリ
    - マンガワン
    - Pontaカード
    - ヤンジャン


#### [ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa)
<img src="https://github.com/ReactiveCocoa/ReactiveCocoa/raw/master/Logo/PNG/logo.png" width="50%">

リアクティブプログラミングで実装していくライブラリです。
もし導入するならアプリ作り始めから入れるべきかなと。

#### [SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON)
簡単にJSONのパースができるライブラリです。
個人的には`Codable`が優秀すぎるのであまり使う機会がないです...

#### [Hero](https://github.com/HeroTransitions/Hero)

<img src="https://camo.githubusercontent.com/dff8b6dffa1dd8feac1646f287ad2a84672cdc1c/68747470733a2f2f63646e2e7261776769742e636f6d2f6c6b7a68616f2f4865726f2f343237643566322f5265736f75726365732f4865726f2e737667" width="20%">
<img src="https://camo.githubusercontent.com/ad3b44a1f8c9ad51ba120b6281b03335bd78bb22/68747470733a2f2f63646e2e7261776769742e636f6d2f6c6b7a68616f2f4865726f2f656262336632632f5265736f75726365732f66656174757265732e737667" width="30%"> <img src="https://camo.githubusercontent.com/f5211ae92678aa22b6edf2d18e08b0dce63bcaa4/68747470733a2f2f63646e2e7261776769742e636f6d2f6c6b7a68616f2f4865726f2f656262336632632f5265736f75726365732f6665617475726573322e737667" width="30%">


UIのアニメーションライブラリで一番Starを集めています。
サンプルコードや参考記事も沢山あるし、実装も難しくないのでかなり使いやすくおすすめです。

#### [RxSwift](https://github.com/ReactiveX/RxSwift)
<img src="https://raw.githubusercontent.com/ReactiveX/RxSwift/master/assets/Rx_Logo_M.png" width="10%">
**ReactiveCocoa**同様リアクティブプログラミングで実装していくライブラリです。
Starの数は**ReactiveCocoa**の方が多いですが、世に出ているアプリをみると**RxSwift**を使っているライブラリの方が多いかなって印象です。
**RxSwift**の本も確か日本語で出版されているので**ReactiveCocoa**よりも導入しやすいかも
参考書名: `比較して学ぶRxSwift入門`


#### [SnapKit](https://github.com/SnapKit/SnapKit)
<img src="https://camo.githubusercontent.com/31e716ea5f9dcf84442b4a908c4751e39f45aa47/687474703a2f2f736e61706b69742e696f2f696d616765732f62616e6e65722e6a7067" width="40%">

AutoLayoutをソースコードで軽量的に記述することができるできるライブラリです。
AutoLayout関連のライブラリで一番Starが多いです。

#### [Realm](https://github.com/realm/realm-cocoa)
<img src="https://github.com/realm/realm-cocoa/raw/master/logo.png" width="20%">

モバイル向けの高速データベースです。CoreDataよりも高速で使いやすいという理由で多く使われていますね。
あのモバイルSuicaも使っています。

- 使用されているアプリ
    - Suica



#### [Kingfisher](https://github.com/onevcat/Kingfisher)
<img src="https://raw.githubusercontent.com/onevcat/Kingfisher/master/images/logo.png" width="40%">

画像を非同期で取得しキャッシュ化してくれるライブラリです。
似たようなライブラリの比較は[Swiftの有名画像キャッシュライブラリを比較してみた](https://qiita.com/H_Crane/items/422811dfc18ae919f8a4)を参考に

#### [IQKeyboardManager](https://github.com/hackiftekhar/IQKeyboardManager)
<img src="https://raw.githubusercontent.com/hackiftekhar/IQKeyboardManager/v3.3.0/Screenshot/IQKeyboardManager.gif" width="40%">

TextFieldやTextViewがキーボードが重なったときにずらしてくれるライブラリです。
SwiftではなくObjective-CですがSwiftでも全然使えます。
導入コストも全くかからないので、私はどのライブラリよりも一番先に導入します。

#### [Spring](https://github.com/MengTo/Spring)
<img src="https://camo.githubusercontent.com/301f360304b089f40989a870ff3c04572054e288/687474703a2f2f636c2e6c792f696d6167652f316e3145326a3357337932342f737072696e6773637265656e2e6a7067" width="60%">
UIアニメーションライブラリになります。
サンプルアプリもあるので比較的導入コストも低いかと。

#### [SwiftLint](https://github.com/realm/SwiftLint)
<img src="https://github.com/realm/SwiftLint/raw/master/assets/screenshot.png" width="80%">

Swiftの静的解析ツールです。
複数人開発する場合は必須でしょう。

-  ルール  
[SwiftLintの全ルール一覧(Swift 4.2版)](https://qiita.com/uhooi/items/7f5d6cf2b240f60ba1ed)

#### [PromiseKit](https://github.com/mxcl/PromiseKit)
<img src="https://github.com/mxcl/PromiseKit/raw/gh-pages/public/img/logo-tight.png" width="50%">
非同期処理を簡単に書くことができるライブラリです。
個人的には覚えるの辛かったです...
今はGoogleの[Promises](https://github.com/google/promises)を使ってます。

#### [Moya](https://github.com/Moya/Moya)
<img src="https://github.com/Moya/Moya/raw/master/web/diagram.png" width="50%">


簡単に言うとAlamofireをさらに拡張したライブラリになります。
また私は使ったことがないので後日詳しく説明出来れば...


- 使用されているアプリ
    - Pontaカード

#### [animated-tab-bar](https://github.com/Ramotion/animated-tab-bar)
<img src="https://github.com/Ramotion/animated-tab-bar/raw/master/Screenshots/animatedTabBar.gif" width="50%">

タブバーをリッチにできるライブラリです。
最近デザインにこだわったアプリが多くリリースされていますし、使っているアプリはかなり多い印象です。

</div></details>

<details><summary>**9k~**</summary><div>

## 9k~

#### [FoldingCell](https://github.com/Ramotion/folding-cell)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470777/245f25af-8787-398a-3705-5e3497960484.png" width="30%">


- 折りたたみ式のCellを作成することができるライブラリ

#### [NVActivityIndicatorView](https://github.com/ninjaprox/NVActivityIndicatorView)
<img src="https://raw.githubusercontent.com/ninjaprox/NVActivityIndicatorView/master/Demo.gif" width="30%">

- お洒落ななインジケーターライブラリ

</div></details>

<details><summary>**8k~**</summary><div>

## 8k~


#### [SkeletonView](https://github.com/Juanpe/SkeletonView)
<img src="https://github.com/Juanpe/SkeletonView/raw/develop/Assets/header2.jpg" width="60%">

- データ取得中に仮のViewを表示できるライブラリ
- Youtubeのローディングにそっくりなものが作れそう


#### [Quick](https://github.com/Quick/Quick)
<img src="https://camo.githubusercontent.com/bcd71a03c67bd89a4cfc390c7c22cc4f06db91b1/687474703a2f2f662e636c2e6c792f6974656d732f30723145313932433152306232673251336832772f517569636b4c6f676f5f436f6c6f722e706e67" width="40%">

- 単体テストライブラリ
- よくXCTestと比較されることが多いですね



#### [ObjectMapper](https://github.com/tristanhimmelman/ObjectMapper)
- jsonマッピングライブラリ
- SwiftyJSONと同様、Codableで十分です...

#### [IBAnimatable](https://github.com/IBAnimatable/IBAnimatable)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470777/28dcc06d-8abe-548d-c185-075f21079e57.gif" width="40%">


- Interface Builderで簡単にゴージャスなUIを作成できるライブラリ
- 個人的には文句なしのライブラリで必ず使います。

#### [SwifterSwift](https://github.com/SwifterSwift/SwifterSwift)
<img src="https://camo.githubusercontent.com/5d919daa24d2e934b11f2155f21a0f86fbf3abba/68747470733a2f2f63646e2e7261776769742e636f6d2f5377696674657253776966742f5377696674657253776966742f6d61737465722f4173736574732f6c6f676f2e737667" width="40%">

- 500以上のSwift　Extensionがサポートされているライブラリ
- かなりの拡張されてますので、とりあえず入れとけばいいやで使うことが多いです

</div></details>

<details><summary>**7k~**</summary><div>

## 7k~

#### [CryptoSwift](https://github.com/krzyzanowskim/CryptoSwift)
- 暗号化ライブラリです
- ハッシュ化などを行いたい場合は間違いなくこのライブラリを選択します

#### [R.swift](https://github.com/mac-cain13/R.swift)
- xibやAssets、Storyboardなどのリソースに簡単にアクセスできるようになる超万能ライブラリ
- これを入れるだけだいぶ工数減ると思います
- プロジェクト作成時に導入したいライブラリの１つ

#### [LTMorphingLabel](https://github.com/lexrus/LTMorphingLabel)
<img src="https://cloud.githubusercontent.com/assets/219689/3491822/96bf5de6-059d-11e4-9826-a6f82025d1af.gif" width="40%">

- リッチで格好いいUILabelを作成できます

</div></details>

<details><summary>**6k~**</summary><div>

## 6k~

#### [SQLite.swift](https://github.com/stephencelis/SQLite.swift)
- モバイル向けのDBライブラリです
- Realmに人気を取られかけています...

#### [Jazzy](https://github.com/realm/jazzy)
<img src="https://raw.githubusercontent.com/realm/jazzy/master/images/logo.jpg" width="40%">  

- javadocのswift版です
- ドキュメントコメントからコマンド一本でファイルを生成してくれます

</div></details>

## まとめ
- 今回ピックアップしたライブラリのほとんどがMITライセンスになります。
- ライブラリを使うだけでなく、ライブラリの中身がどう実装されているのかを知ることで自身のスキルアップに繋がると思うので、将来はライブラリを作る側を目標に頑張って行きます。
- 次回は3月末に更新予定です。