メッセージアプリのような機能を実現するための参考に、iOS版LINE(バージョン 5.2.0)の使っているライブラリを調べてみました。
要は、ライセンス一覧見ただけなのですが、7万字の長文テキストで見にくかった ので少し手間かかりました( ´・‿・`)
ライセンス一覧はこのLegal Notices
に記載されていました。
元々リアルタイムな更新処理の実装の選択肢に迷っていて、その参考にと思いましたが、関係無いものが大半です。でも知らないライブラリもちょくちょくあって、けっこう面白かったです。
Apache Thrift
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
僕はSwiftyJSON/SwiftyJSON使ってます。
pokeb/asi-http-request
古めのネットワークライブラリ。
AFNetworking/AFNetworking
Objective-Cで一番良いと思っているネットワーク系ライブラリ。
pokeb/asi-http-requestも併用?消し忘れ?
CocoaLumberjack/CocoaLumberjack
定番ロガー。
RSA and ECC in JavaScript
scelis/ExampleNavBarBackground
サンプルプロジェクトですね。
Adding a Background Image to UINavigationBar | SebastianCelis.comのソースの模様。
ナビゲーションバーの背景画像指定の実装の参考にしたとかですかね。
tatsuhiro-t/spdylay
This is an experimental implementation of Google's SPDY protocol in C.
Google、「SPDY」終了と「HTTP/2」サポートを発表 - ITmedia ニュース
SPDYは、ネットワーキングプロトコル「HTTP(Hypertext Transfer Protocol)」をサポートし、Webページ表示を高速化する目的で構築されたプロトコル。
samsoffes/ssziparchive
Utility class for zipping and unzipping files on iOS and Mac
Minizip: Zip and UnZip additionnal library
jdg/MBProgressHUD
僕はTransitApp/SVProgressHUDを使っています。
ninjinkun/NJKWebViewProgress
僕は自前実装にしてますが、ライブラリ使っても良さそうですね。
remotevision/NSDataWithBlocks
NSData:dataWithContentsOfURL:
を非同期処理にしてくれるみたいです。
Front Page · OCMock
テストのMockライブラリですね。
apache/cordova-ios
どこに使っているのだろう。
AlanQuatermain/aqtoolkit
寄せ集め系ライブラリ。メンテナンスほぼ止まってますね。
AliSoftware/OHAttributedLabel
僕はTTTAttributedLabel/TTTAttributedLabelを使っています。
facebook/facebook-ios-sdk
bitstadium/QuincyKit
自前のサーバーにクラッシュレポート送るシステムのようです。
僕はCrashlyticsに依存しちゃっています。
vvanhee/Google-Local-Search-iOS
Google Local Search APIの非公式SDK。
myell0w/MTStatusBarOverlay
良さそうに見えたけど、メンテナンス止まっていたり、画像のリンクが切れてたり(´・︵・`)
wordpress-mobile/NSURL-IDN
Support for IDN (punycode) in NSURL
へえ。
Punycode(ピュニコード)とは、国際化ドメイン名で使われる文字符号化方式で、RFC 3492 で定義されている。
steipete/PSTCollectionView
Open Source, 100% API compatible replacement of UICollectionView for iOS4.3+
CEWendel/SWTableViewCell
ちょうどこの実装もしようと思ってて、LINE使っているし最近もメンテナンスされてて★4,399だから、これ使おうかな( ´・‿・`)思わぬ収穫( ´・‿・`)
HansPinckaers/GrowingTextView
僕は自分でAutoLayoutで相当する処理書いちゃってます。
jspahrsummers/libextobjc
これも寄せ集め系ライブラリかな。
lemonlabs/UINavigationItem-iOS7Spacing
ナビゲーションバー上のボタンの位置調整。便利そうかも。
libyuv - YUV scaling and conversion functionality - Google Project Hosting
libyuv is an open source project that includes YUV scaling and conversion functionality.
Opus Codec
Opus is a totally open, royalty-free, highly versatile audio codec.
zlib Home Site
A Massively Spiffy Yet Delicately Unobtrusive Compression Library
libsigcomp - libSigComp: Open Source SigComp API - Google Project Hosting
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
The WebM Project | Welcome to the WebM Project
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
card.io provides fast, easy credit card scanning in mobile apps
StCredZero/SCZ-BasicEncodingRules-iOS
Implementation of Basic Encoding Rules to enable import of RSA keys to iOS KeyChain using exponent & mod
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
デバッグ支援系。
僕も導入しているけど、あまり使ってなかったり( ´・‿・`)
xxhash - Extremely fast non-cryptographic hash algorithm - Google Project Hosting
xxHash is an extremely fast non-cryptographic Hash algorithm, working at speeds close to RAM limits.
TheLevelUp/ZXingObjC
QRコード作るライブラリですね。
An Objective-C Port of 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
Jail Break検知ライブラリ。
その他
LINEのOSS
Facebookなどのように無いのですかね??
関連記事
とても参考になりました。