iOS版LINEアプリの使っているライブラリを調べた


メッセージアプリのような機能を実現するための参考に、[iOS版LINE](https://itunes.apple.com/jp/app/line/id443904275?mt=8)(バージョン 5.2.0)の使っているライブラリを調べてみました。
要は、ライセンス一覧見ただけなのですが、**7万字の長文テキストで見にくかった** ので少し手間かかりました(　´･‿･｀)

ライセンス一覧はこの`Legal Notices`に記載されていました。


![Untitled.png](https://qiita-image-store.s3.amazonaws.com/0/19398/db6ffa80-dd0c-2d20-eee0-0b7d5798ffe8.png "Untitled.png")




元々リアルタイムな更新処理の実装の選択肢に迷っていて、その参考にと思いましたが、関係無いものが大半です。でも知らないライブラリもちょくちょくあって、けっこう面白かったです。


## [Apache Thrift](http://thrift.apache.org/)

> The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages.

## [johnezang/JSONKit](https://github.com/johnezang/JSONKit)

僕は[SwiftyJSON/SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON)使ってます。

## [pokeb/asi-http-request](https://github.com/pokeb/asi-http-request/)

古めのネットワークライブラリ。

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

Objective-Cで一番良いと思っているネットワーク系ライブラリ。
[pokeb/asi-http-request](https://github.com/pokeb/asi-http-request/)も併用？消し忘れ？

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

定番ロガー。

## [RSA and ECC in JavaScript](http://www-cs-students.stanford.edu/~tjw/jsbn/)

## [scelis/ExampleNavBarBackground](https://github.com/scelis/ExampleNavBarBackground)

サンプルプロジェクトですね。
[Adding a Background Image to UINavigationBar | SebastianCelis.com](http://sebastiancelis.com/2009/12/21/adding-background-image-uinavigationbar/)のソースの模様。
ナビゲーションバーの背景画像指定の実装の参考にしたとかですかね。

## [tatsuhiro-t/spdylay](https://github.com/tatsuhiro-t/spdylay)

> This is an experimental implementation of Google's SPDY protocol in C.

[Google、「SPDY」終了と「HTTP/2」サポートを発表 - ITmedia ニュース](http://www.itmedia.co.jp/news/articles/1502/10/news060.html)

> SPDYは、ネットワーキングプロトコル「HTTP（Hypertext Transfer Protocol）」をサポートし、Webページ表示を高速化する目的で構築されたプロトコル。

## [samsoffes/ssziparchive](https://github.com/samsoffes/ssziparchive)

> Utility class for zipping and unzipping files on iOS and Mac

## [Minizip: Zip and UnZip additionnal library](http://www.winimage.com/zLibDll/minizip.html)

## [jdg/MBProgressHUD](https://github.com/jdg/MBProgressHUD)

僕は[TransitApp/SVProgressHUD](https://github.com/TransitApp/SVProgressHUD)を使っています。

## [ninjinkun/NJKWebViewProgress](https://github.com/ninjinkun/NJKWebViewProgress)

僕は自前実装にしてますが、ライブラリ使っても良さそうですね。

## [remotevision/NSDataWithBlocks](https://github.com/remotevision/NSDataWithBlocks)

`NSData:dataWithContentsOfURL:`を非同期処理にしてくれるみたいです。

## [Front Page · OCMock](http://ocmock.org/)

テストのMockライブラリですね。

## [apache/cordova-ios](https://github.com/apache/cordova-ios)

どこに使っているのだろう。

## [AlanQuatermain/aqtoolkit](https://github.com/AlanQuatermain/aqtoolkit)

寄せ集め系ライブラリ。メンテナンスほぼ止まってますね。

## [AliSoftware/OHAttributedLabel](https://github.com/AliSoftware/OHAttributedLabel/)

僕は[TTTAttributedLabel/TTTAttributedLabel](https://github.com/TTTAttributedLabel/TTTAttributedLabel)を使っています。

## [facebook/facebook-ios-sdk](https://github.com/facebook/facebook-ios-sdk)

## [bitstadium/QuincyKit](https://github.com/bitstadium/QuincyKit)

自前のサーバーにクラッシュレポート送るシステムのようです。
僕は[Crashlytics](https://try.crashlytics.com/)に依存しちゃっています。

## [vvanhee/Google-Local-Search-iOS](https://github.com/vvanhee/Google-Local-Search-iOS/)

Google Local Search APIの非公式SDK。

## [myell0w/MTStatusBarOverlay](https://github.com/myell0w/MTStatusBarOverlay)

良さそうに見えたけど、メンテナンス止まっていたり、画像のリンクが切れてたり(´・︵・｀)

## [wordpress-mobile/NSURL-IDN](https://github.com/wordpress-mobile/NSURL-IDN)

> Support for IDN (punycode) in NSURL

へえ。

> Punycode（ピュニコード）とは、国際化ドメイン名で使われる文字符号化方式で、RFC 3492 で定義されている。

## [steipete/PSTCollectionView](https://github.com/steipete/PSTCollectionView)

> Open Source, 100% API compatible replacement of UICollectionView for iOS4.3+

## [CEWendel/SWTableViewCell](https://github.com/CEWendel/SWTableViewCell)

ちょうどこの実装もしようと思ってて、LINE使っているし最近もメンテナンスされてて★4,399だから、これ使おうかな(　´･‿･｀)思わぬ収穫(　´･‿･｀)

## [HansPinckaers/GrowingTextView](https://github.com/HansPinckaers/GrowingTextView)

僕は自分でAutoLayoutで相当する処理書いちゃってます。

## [jspahrsummers/libextobjc](https://github.com/jspahrsummers/libextobjc)

これも寄せ集め系ライブラリかな。

## [lemonlabs/UINavigationItem-iOS7Spacing](https://github.com/lemonlabs/UINavigationItem-iOS7Spacing)

ナビゲーションバー上のボタンの位置調整。便利そうかも。

## [libyuv - YUV scaling and conversion functionality - Google Project Hosting](https://code.google.com/p/libyuv/)

> libyuv is an open source project that includes YUV scaling and conversion functionality.

## [Opus Codec](http://opus-codec.org/)

> Opus is a totally open, royalty-free, highly versatile audio codec.

## [zlib Home Site](http://www.zlib.net/)

> A Massively Spiffy Yet Delicately Unobtrusive Compression Library

## [libsigcomp - libSigComp: Open Source SigComp API - Google Project Hosting](https://code.google.com/p/libsigcomp/)

> libSigComp project is a complete and compliant SigComp API to speed-up SigComp integration in Open-Source IMS projects. 

メッセージ圧縮系ライブラリかな。

## [webrtc - Web-based real-time communication - Google Project Hosting](https://code.google.com/p/webrtc/)

## [The WebM Project | Welcome to the WebM Project](http://www.webmproject.org/)

> The WebM Project is dedicated to developing a high-quality, open video format for the web that's freely available to everyone.

## [card-io/card.io-iOS-SDK](https://github.com/card-io/card.io-iOS-SDK)

> card.io provides fast, easy credit card scanning in mobile apps

## [StCredZero/SCZ-BasicEncodingRules-iOS](https://github.com/StCredZero/SCZ-BasicEncodingRules-iOS)

> Implementation of Basic Encoding Rules to enable import of RSA keys to iOS KeyChain using exponent & mod

## [nicklockwood/Base64](https://github.com/nicklockwood/Base64)

iOS 7以上だったら不要なやつですね(　´･‿･｀)
> In the iOS 7 and Mac OS 10.9 SDKs, Apple introduced new base64 methods on NSData that make it unnecessary to use a 3rd party base 64 decoding library.

## [Flipboard/FLEX](https://github.com/Flipboard/FLEX)

デバッグ支援系。
僕も導入しているけど、あまり使ってなかったり(　´･‿･｀)

## [xxhash - Extremely fast non-cryptographic hash algorithm - Google Project Hosting](https://code.google.com/p/xxhash/)

> xxHash is an extremely fast non-cryptographic Hash algorithm, working at speeds close to RAM limits.

## [TheLevelUp/ZXingObjC](https://github.com/TheLevelUp/ZXingObjC)

QRコード作るライブラリですね。

> An Objective-C Port of ZXing

- [zxing/zxing](https://github.com/zxing/zxing)

> ZXing ("zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages.

## [0dayZh/JailbrokenDetector](https://github.com/0dayZh/JailbrokenDetector)

Jail Break検知ライブラリ。

# その他

## LINEのOSS

[Facebook](https://github.com/facebook)などのように無いのですかね？？

## 関連記事

とても参考になりました。

- [LINEのプラットフォームを支えるアーキテクチャと組織の作り方 #linedevday | マイナビニュース](http://news.mynavi.jp/articles/2015/04/30/linedevday2/)
- [LINE DEVELOPER DAY_2015 Tokyo「LINE Platform Development Chronicle」レポート #linedevday ｜ Developers.IO](http://dev.classmethod.jp/event/linedevday2015-a4/)