NAVITIMEのiOSアプリで使われているライブラリを調査！

## NAVITIME
NAVITIME（ナビタイム）は、ナビタイムジャパン社が提供する、電車や車、徒歩などを使った経路を一度に検索できる総合ナビゲーションサービス。
引用先: https://ja.wikipedia.org/wiki/NAVITIME

## 設定アプリからライブラリのライセンスを確認

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470777/333061b2-5374-2331-1b66-7e111ba01608.png" width="30%"
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470777/ffc994c5-62e1-ce9b-3dd4-28d65abff1de.png" width="30%">


### [AFNetworking](https://github.com/AFNetworking/AFNetworking)
- ネットワーク通信のライブラリ
- Alamofireの次に人気のあるHTTP通信ライブラリ

### AWS

-  [AWSCognito](https://aws.amazon.com/jp/cognito)
    - Amazon Cognito を使用すれば、ウェブアプリケーションおよびモバイルアプリに素早く簡単にユーザーのサインアップ/サインインおよびアクセスコントロールの機能を追加できます。Amazon Cognito は、数百万人のユーザーにスケールし、Facebook、Google、Amazon などのソーシャル ID プロバイダー、および SAML 2.0 によるエンタープライズ ID プロバイダーを使用したサインインをサポートします。
引用先: https://aws.amazon.com/jp/cognito


- [AWSCore](https://github.com/aws-amplify/aws-sdk-ios/tree/master/AWSCore)
    - AWSのCoreライブラリ 
    - 共通的な処理が入っているそうです。


- [AWSKinesis](https://aws.amazon.com/jp/kinesis/)
    - Amazon Kinesis でストリーミングデータをリアルタイムで収集、処理、分析することが簡単になるため、インサイトを適時に取得して新しい情報に迅速に対応できます。Amazon Kinesis は、アプリケーションの要件に最適なツールを柔軟に選択できるだけでなく、あらゆる規模のストリーミングデータをコスト効率良く処理するための主要機能を提供します。Amazon Kinesis をお使いになると、機械学習、分析、その他のアプリケーションに用いる動画、音声、アプリケーションログ、ウェブサイトのクリックストリーム、IoT テレメトリーデータをリアルタイムで取り込めます。Amazon Kinesis はデータを受信するとすぐに処理および分析を行うため、すべてのデータを収集するのを待たずに処理を開始して直ちに応答することが可能です。
引用先：　https://aws.amazon.com/jp/kinesis/

### Firebase

-  [Crashlytics、Fabric](https://firebase.google.com/docs/crashlytics?hl=ja)
    - Firebaseのクラッシュ解析ツールです
    - ほとんどのアプリに入っていることが多いです。

### [FrameAccessor](https://github.com/AlexDenisov/FrameAccessor)
- Frameのめんどくさい処理を省略できるライブラリです。

```swift:before
CGRect newFrame = view.frame;
newFrame.origin.x = 15.;
newFrame.size.width = 167.;
view.frame = newFrame;
```

```swift:after
view.x = 15.;
view.width = 167.;
instead of
```

### [GTMSessionFetcher](https://github.com/google/gtm-session-fetcher)
- HTTP通信の拡張ライブラリです。
- Googleが出しているライブラリですがStarが123と少なめ。


### [HMSegmentedControl](https://github.com/HeshamMegid/HMSegmentedControl)
- UISegmentedControlの拡張ライブラリです。

<img src="https://raw.githubusercontent.com/HeshamMegid/HMSegmentedControl/master/Screenshot.png" width="50%">

### [adjust](https://www.adjust.com/)
リアルタイムに売上、イベント数、セッション数、インストール数、クリック数といった定量データに加え、コホート分析に基づいて、広告がどのような効果を可視化するためのサービスです。

### [LicensePlist](https://github.com/mono0926/LicensePlist)
- 設定アプリでライセンスを一覧化してくれるライブラリです。

<img src="https://github.com/mono0926/LicensePlist/raw/master/Screenshots/list.png" width="30%">
 

### [Quick](https://github.com/Quick/Quick)
- iOSのテスト用フレームワークです。
- XCTestとよく比較されますね。

### [Protobuf](https://github.com/apple/swift-protobuf)
- Swift でプロトコルバッファを使うためのツールです。
- 参考: [Swiftでプロトコルバッファを使う](https://qiita.com/pelican/items/0df8084e0a0f6f183636)

### [Repro](https://docs.repro.io/ja/)
- Reproは従来型の定量分析に加え、各種分析機能からユーザーをターゲティングして、プッシュ通知やメッセージを配信できる機能を提供するアプリとWebサイトの成長支援プラットフォームです。 引用先: https://docs.repro.io/ja/


### [SwiftyBeaver](https://github.com/SwiftyBeaver/SwiftyBeaver)
- カラフルで柔軟な軽量ロギングツール。
- コンソール、ファイル、クラウドプラットフォームのサポートにより、開発とリリースに最適です。
- 参考: [Swiftのログプラットフォーム、SwiftyBeaverのセットアップ方法](https://github.com/SwiftyBeaver/SwiftyBeaver)

<img src="https://cloud.githubusercontent.com/assets/564725/19889302/73b1ee84-a034-11e6-8753-2d060502397c.jpg" width="50%">


### [TinyConstraints](https://github.com/roberthein/TinyConstraints)
- Auto Layoutをめっちゃ書きやすくしたライブラリです。
- 個人的にも普段から使っています。


### [Toast](https://github.com/scalessec/Toast)
- 簡単にトースト通知を表示することができるライブラリです。

<img src="https://github.com/scalessec/Toast/raw/master/toast_screenshots.jpg" width="50%">


### [Arm Treasure Data](https://www.treasuredata.co.jp/)
- [トレジャーデータとは？入門編](https://qiita.com/macotok/items/5a469c31a0366fc2a9b9)


## 最後に 
今回はNAVITIMEをライブラリを調査してみました！！ライブラリの言語をみると`Objective-C`で開発されたものが多いので、NAVITIMEも`Objective-C`で開発されているのではないでしょうか。 
次回は`Swift`で開発されているアプリのライブラリ調査をしてみたいと思います。
ありがとうございました！！