色んなiOSアプリが使っているオープンソースライブラリを調べた
こちらの記事を参考に2019年版を書いてみました。
AppleStoreでランキング上位の物や、よく名前を聞くアプリを集めました。
アプリが使用しているOSSライブラリについてはアプリ内の設定にある「著作権情報」, 「サードパーティー」, 「クレジット」などから確認することができます。
良いアプリがあったら追記するので是非教えてください!
この記事は2019年4月に調査を行なったものです。
Amazon Prime Video
映画やドラマなどの動画コンテンツを検索, 視聴できるアプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| MBProgressHUD | ローディング中などに出すHUD | ロード中 |
| SDWebImage | 画像取得/キャッシュ | サムネイル取得 |
| SVPullToRefresh | TableViewなどを引き下げて更新するときのクルクル | 引き下げて更新 |
| iCarousel | 横スクロールのコンテンツ表示 | ホーム上部のスライドショー, コンテンツ一覧の横スクロール |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| PLCrashReporter | クラッシュログ送信 | |
| QuincyKit | クラッシュログ送信 | |
| Aspects | AOP(アスペクト指向プログラミング)的な書き方ができる | おそらくログ出力 |
| CocoaLumberjack | ログ出力 |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| RegexKitLite | 正規表現を使いやすくする |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| AFNetworking | API通信 | |
| ASIHTTPRequest | API通信 | |
| CocoaHTTPServer | アプリをサーバーにする | |
| Reachability | ネットワーク接続状態を取得できる | |
| ZipArchive | Zip, unzip | 動画のダウンロード? |
| MoPub | 広告SDK | |
| JRSwizzle | Swizzling(ライブラリのメソッドやクラスを上書きする手法)をするやつ、らしい | |
| SAMKeychain | キーチェーン(パスワード保存) | |
| Fishhook | Mach-O(macOSのバイナリ)フォーマットのデータを簡単に扱える | |
| Expat | XMLパーサー | |
| RaptureXML | XMLパーサー | |
| TouchJSON | JSONパーサー | |
| SBJson | JSONパーサー |
写真投稿SNS
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| Appirater | アプリのレビューをお願いするメッセージを表示する | |
| FLAnimatedImage | gif再生 | |
| LXReorderableCollectionViewFlowLayout | 並び替えできるCollectionView | 並び替え機能なんてInstaにあったっけ...? |
| MBProgressHUD | ローディング中などに出すHUD | ロード中 |
| EmojiLib | 絵文字がいっぱい入ったもの |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| OHHTTPStubs | API通信のスタブ, テスト用? | |
| CocoaLumberjack | ログ出力 | |
| Google Breakpad | クラッシュレポート | |
| google-glog | スタックトレース表示 | |
| Flickr-OAuth-iOS | Flickr(画像投稿コミュニティ)アカウント連携 |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| AFNetworking | API通信 | |
| Apache Thrift | 多言語間フレームワーク | |
| Apple Reachability | ネットワーク接続状態を取得できるサンプルソースコード | |
| SocketRocket | webソケット通信 | |
| Boost | なんか色々できるすごいC++ライブラリ | |
| cocoawithlove-Base64 | base64パーサー | |
| ios5-cookbook | Objective-cのアプリサンプル | |
| jsmn | JSONパーサー | |
| JSONKit | JSONパーサー | |
| MyOpenALSupport | 3DオーディオAPI | |
| NSNotifications and Background Threads | 通知系のバックグラウンド処理改善 | |
| NSString+XMLEntitites | MWFeedParser(XMLパーサー)クラスの1つ | |
| oauthconsumer | OAuth認証 | |
| protobuf | Googleオリジナルのシリアライズのフォーマット | |
| QSUtilities | HTTPクライアント, base64パーサー, 色々 | |
| scifihifi-iphone | キーチェーン | deprecatedでBCCKeychainが推奨されてます |
| UICKeyChainStore | キーチェーン | KeychainAccessの祖先 |
Slack
ビジネスチャットアプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| Aardvark | ユーザーがバグレポートを簡単に送れるようにする | メニュー>設定>フィードバックを送信 |
| DZNEmptyDataSet | collectionViewなどが空だった時に代わりに画像などを出す | メニュー>アクティビティ |
| DZNSegmentedControl | UISegmentedControlみたいな画面切り替え | メニュー>マイファイル |
| DZNPhotoPickerController | 画像提供サービスから写真を検索する | |
| FLAnimatedImage | gif再生 | |
| OLImageView | gif再生 | FLAnimatedImageの祖先 |
| Pop | アニメーション拡張 | |
| JTSImageViewController | 画像ビューワー | 画像ビューワー 閉じる時に画像が飛んでいくやつ |
| JVFloatLabeledTextField | フローティングラベル付きのUITextField | |
| SDWebImage | 画像取得/キャッシュ | |
| Shimmer | 文字アニメーション | チャット読み込み時のプレイスホルダー? |
| SlackTextViewController | 旧SlackアプリUIをそのままライブラリ化したもの | Githubはarchivedされてました |
| Sundown | マークダウンプロセッサ | Slack内チャットで「*あ*」が太文字になるとかの機能 |
| SVWebViewController | 戻る,リロード, 共有などの一通りの機能がついたWebView | Slack内WebView |
| TTTAttributedLabel | UILabelにリンクをつけたりできる | |
| YLProgressBar | プログレスバー |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| PSPDFThreadSafeMutableDictionary | Objective-C用, スレッドセーフなMutableDictionaryのスニペット | |
| ObjectiveRecord | Objective-C, データ/Model操作 | Githubはarchivedされてました |
| ObjectiveSugar | Objective-Cが綺麗に書ける | Githubはarchivedされてました |
| SwiftlyLRU | キャッシュ管理 | |
| OMGHTTPURLRQ | NSMutableURLRequest生成 | |
| KVOController | KVOを描きやすくする |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| OHHTTPStubs | API通信のスタブ, テスト用? | |
| KIF | UIテスト | |
| FBSnapshotTestCase | UIの描画テスト | |
| FLEX | UIのデバッグ | |
| Crashlytics, Fabric | クラッシュログ解析サービス | |
| Mixpanel | ユーザートラッキング | |
| AppFlyer | 広告SDK | |
| GBVersionTracking | 過去にユーザがどのversionをインストールしたかをトラックできる | |
| Google Sign-In iOS SDK | グーグルアカウントでログインできるようにする |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| AFNetworking | API通信 | |
| SocketRocket | webソケット通信 | |
| Carthage | ライブラリ管理ツール | |
| ODIN | ユーザの端末を識別するidとなる文字列を生成する | |
| onepassword-app-extension | 1PasswordのSDK | |
| Reachability | ネットワーク接続状態を取得できる | |
| UICKeyChainStore | キーチェーン | KeychainAccessの祖先 |
AbemaTV
インターネットテレビ配信アプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| SwipeMenuViewController | スワイプで画面切り替え | 「テレビ」のスワイプでチャンネルを切り替えられるやつ |
| Cheetah | アニメーション | 「テレビ」のスワイプでチャンネルを切り替えるときにテレビ画面が収縮するやつ? |
| GridView | 番組表みたいなグリッド表示 | 番組表 |
| SpringIndicator | ロード中のクルクル | ロード中 |
| AttributedLabel | 早い, 高性能, 簡単に使えるUILabel | |
| Kingfisher | 画像取得/キャッシュ | |
| CircleProgressButton | プログレスバーみたいにゲージが溜まっていくボタン | |
| NavigationNotice | 上からピョコッと出てくるアラート |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Sourcery | テンプレートからSwiftコードを生成する | |
| SwiftGen | 画像, メッセージなどのリソースの型付コードを生成してくれるコマンドラインツール | |
| SwiftLint | SwiftのLinter | 強制アンラップとか怒ってくれる |
| SwiftyUserDefaults | UserDefaultsを使いやすく | |
| Device | iOSのデバイスと画面サイズを簡単に取得できる | |
| Cartography | コードでAutoLayoutをしやすく |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Growthbeat | Growthbeat(push通知、ユーザーアナリティクスサービス)のSDK | abemaのgithubに本家をForkしたやつがあった |
| SwiftCheck | プロパティベースの半自動テスト | |
| Quick | BDD(ビヘイビア駆動開発)テスト | |
| KIF | UIテスト | |
| OHHTTPStubs | API通信のスタブ, テスト用? | |
| Nocilla | API通信のテスト | |
| Nimble | テスト | 書きやすそう |
| FBSDKCoreKit | FaceBookのSDKのログイン, ユーザー周り | |
| FBSDKLoginKit | FaceBookのSDKのログイン周り | |
| FBSDKShareKit | FaceBookのSDKの共有周り |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| APIKit | API通信 | |
| AFNetworking | API通信 | |
| GoogleToolboxForMac | XMLパーサーとかテストとか色々入ったやつ | |
| protobuf | Googleオリジナルのシリアライズのフォーマット | |
| swift-protobuf | protobufのSwift版 | |
| abema-swift-protobuf | swift-protobufのFork | |
| Result | Result<V, E>タイプのResult | |
| RxSwift | SwiftのRx | |
| NSObject-Rx | RxExtension | |
| RxDataSources | TableView/CollectionViewDataSourceのRx版 | |
| FileCheck | 出力文字列が期待と一致するか調べるテスト | |
| SQLite | アプリ内データベース | |
| CryptoSwift | テキスト暗号化 | |
| Reachability | ネットワーク接続状態を取得できる | |
| Bolts-ObjC | 非同期処理用オブジェクト | |
| SwiftDate | 日付処理周りをしやすく | |
| KeychainAccess | キーチェーン | |
| realm-cocoa | アプリ内データベース | SQLiteとかよりナウい |
Spotify
音楽配信アプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| chromium | クロームの祖先, OSS | |
| FXBlurView | Blurをかける | Deprecated |
| lottie-ios | いい感じのアニメーション集 | ロード中 |
| SDWebImage | 画像取得/キャッシュ | |
| WebViewJavascriptBridge | webviewのjsをSwiftで操作 |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| KVOController | KVOを描きやすくする |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Benchmark | google作ベンチマークテスト | |
| Adjust iOS SDK | Adjust(ユーザーの行動分析サービス)のSDK | |
| FBSDK | FaceBookのSDK | |
| MobileMediaKitClient, Core | AlexaのSDK? | githubから消えてるんやが |
| Smartling Internationalization Framework | SMARTLING(言語翻訳サービス) |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| onepassword-app-extension | 1PasswordのSDK | |
| Expat | XMLパーサー | |
| SPAsync | 非同期処理オブジェクト, Async | |
| Boost | なんか色々できるすごいC++ライブラリ | |
| brotli | google作データ圧縮ライブラリ | Cのライブラリ |
| kissfft | FFTライブラリ | Cのライブラリ |
| leveldb | データベース | Cのライブラリ |
| libwebsockets | webSocket | Cのライブラリ |
| mbedtls | SSL通信 | Cのライブラリ |
| zlib | zip, unzip | Cのライブラリ |
| websocketpp | webSocket | C++のライブラリ |
| libvorbis | オーディオフォーマット | |
| libogg | vorbisを格納するコンテナ | |
| MPMessagePack | JSONライクのフォーマット | |
| protobuf | Googleオリジナルのシリアライズのフォーマット | |
| snappy | google作高速圧縮ライブラリ | |
| spotify-unicode | ??? |
ZOZOTOWN
アパレルオンラインショッピングサイトのアプリ版
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| MARKRangeSlider | 範囲指定スライダー | 「探す」タブ上部の価格範囲指定スライダー |
| TTTAttributedLabel | UILabelにリンクをつけたりできる | |
| SDWebImage | 画像取得/キャッシュ | |
| DTCoreText | 高速NSAttributedString->HTML描画View | プライバシーポリシー, ライセンス画面など |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| SnapKit | コードでAutoLayoutをしやすく | |
| Masonry | コードでAutoLayoutをしやすく | SnapKitの祖先 |
| SwiftyAttributes | NSAttributedStringを書きやすく |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Adjust iOS SDK | Adjust(ユーザーの行動分析サービス)のSDK | |
| FBSDKCoreKit | FaceBookのSDKのログイン, ユーザー周り |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Bolts-ObjC | 非同期処理用オブジェクト | |
| Alamofire | API通信 |
SmartNews
ニュース記事閲覧アプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| PocketSVG | SVG->Swiftパーサー | |
| WKYTPlayerView | Youtubeプレーヤー |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| Adjust iOS SDK | Adjust(ユーザーの行動分析サービス)のSDK |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| GCDWebServer | iOSをサーバーにする | |
| GRMustache | Mustache(テンプレートエンジン)のObjective-C版 | |
| TMCache | 非同期2段キャッシュ | もうメンテされてない |
| NSAttributedString-DDHTML | NSAttributedString->HTMLパーサー |
タウンワーク
バイト紹介サービスアプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| Kingfisher | 画像取得/キャッシュ | |
| lottie-ios | いい感じのアニメーション集 | ロード中 |
| MBProgressHUD | ローディング中などに出すHUD | ロード中 |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| R.swift | 画像, メッセージ文などのリソースを型的に使用できる | AndroidのRクラスみたいな |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| GTMStackTrace | スタックトレース | |
| Fabric | クラッシュログ解析サービス | |
| FBSDKCoreKit | FaceBookのSDKのログイン, ユーザー周り | |
| FBSDKLoginKit | FaceBookのSDKのログイン周り | |
| FirebaseABTESTING | テスト | |
| FirebaseANALYTICS | クラッシュレポート解析サービス | |
| FirebaseCORE | ログイン | |
| FirebaseINSTANCEID | uidみたいなやつ生成 | |
| FirebaseREMOTECONFIG | APIでアプリのUIパターンを変更できるやつ | 強制アップデートとか |
| AdMob | 広告SDK | |
| JB4ASDK | push通知, マーケティングサービス | |
| OHHTTPStubs | API通信のスタブ, テスト用? | |
| PLCrashReporter | クラッシュレポート送信 | |
| TwitterCore | ツイッターSDKログイン周り | |
| TwitterKit | ツイッターSDKAPI周り | |
| AppFlyer | 広告SDK |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| AFNetworking | API通信 | |
| AFNetworkActivityLogger | AFNetworkingのログ出力 | |
| Alamofire | API通信 | |
| AlamofireNetworkActivityIndicator | Alamofireのログ出力 | |
| Reachability.swift | Reachablityのサンプル | |
| SocketRocket | webソケット通信 | |
| Bolts-ObjC | 非同期処理用オブジェクト | |
| PromiseKit | Promise | |
| FMDB | アプリ内データベース | |
| GoogleUtilities | いろいろ | |
| GTMHTTPFetcher | API通信 | |
| JSONModel | JSONパーサー | |
| ObjectMapper | JSONパーサー | |
| SBJson | JSONパーサー | |
| nanopb | protobufを描きやすく | Cのライブラリ |
| protobuf | Googleオリジナルのシリアライズのフォーマット |
pixiv
イラストコミュニケーションサービスのアプリ版
nativeでなくUnityベース
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| DTCoreText | 高速NSAttributedString->HTML描画View | プライバシーポリシー, ライセンス画面など |
| Kingfisher | 画像取得/キャッシュ | |
| MBProgressHUD | ローディング中などに出すHUD | ロード中 |
| RandomColorSwift | ランダムで良い感じの色を出力 | 「イラスト」「おすすめ」とかの色? |
| Toast-Swift | トーストっぽい通知, HUD | チュートリアル(?) |
| Twemoji | Twitterの絵文字 |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| JLRoutes | Webアプリのrouterみたいに画面遷移させる | |
| SnapKit | コードでAutoLayoutをしやすく | |
| SwiftLint | SwiftのLinter | 強制アンラップとか怒ってくれる |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| AdStir-Ads-SDK | 広告SDK | |
| Crashlytics, Fabric | クラッシュログ解析サービス | |
| FirebaseABTESTING | テスト | |
| FirebaseANALYTICS | クラッシュレポート解析サービス | |
| FirebaseCORE | ログイン | |
| FirebaseDatabase | クラウドデータベース | |
| FirebaseINSTANCEID | uidみたいなやつ生成 | |
| FirebaseMessaging | push通知 | |
| FirebaseREMOTECONFIG | APIでアプリのUIパターンを変更できるやつ | 強制アップデートとか |
| AdMob | 広告SDK | |
| Google Analytics | ユーザー解析 | |
| GoogleAppMeasurement | クラッシュレポート解析サービス | FirebaseAnalyticsの祖先 Deprecated |
| GoogleIDFASupport | GoogleAnalyticsの拡張 | |
| KeychainAccess | キーチェーン | |
| SwiftyBeaver | ログ出力 | |
| AdGeneration | 広告 |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| DTFoundation | UI, API, データベースなどUtil系の色々 | |
| Decodable | JSONパーサー | |
| GoogleUtilities | API, UserdefaultsなどUtil系色々 | |
| protobuf | Googleオリジナルのシリアライズのフォーマット | |
| Reachability.swift | Reachablityのサンプル | |
| realm-cocoa | アプリ内データベース | SQLiteとかよりナウい |
| Starscream | Webソケット通信 | |
| leveldb | データベース | Cのライブラリ |
| nanopb | protobufを描きやすく | Cのライブラリ |
Zaim
家計簿アプリ
UI, View
| ライブラリ名 | 概要 | 備考, 使用場所 |
|---|---|---|
| Kingfisher | 画像取得/キャッシュ |
Misc
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| IBLocalizable | StoryboardでLabelなどの文字のNSLocalizedStringを設定できる | |
| PureLayout | コードでAutoLayoutを簡単に |
Test, Analytics, Service
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| SwiftyStoreKit | 課金 | |
| OADTracer | DTraceイベント発行 |
Infra, Util, Other
| ライブラリ名 | 概要 | 備考 |
|---|---|---|
| APIKit | API通信 | |
| OAuthSwift | OAuth認証 | |
| Reachability.swift | Reachablityのサンプル | |
| jsDeffered | 非同期処理 | Deprecated |
| Async | 非同期処理 | |
| Result | Result<V, E>タイプのResult | |
| Himotoki | JSONパーサー | パース用の演算子を定義していて面白い |
| KeychainAccess | キーチェーン | |
| SQLite | アプリ内データベース | |
| onepassword-app-extension | 1PasswordのSDK | |
| ReactiveSwift | Rx | |
| ReactiveCocoa | UIのRxextension | |
| Rex | Rxextension | Deprecated |