スマホプロジェクトを読み解く -中編-

Posted by rhoboro on 2016-07-16

前回に引き続き、今回もスマホアプリのプロジェクトの見方を紹介していきます。
前編は環境面に関しての言及が多かったですが、中編からはソースコードの中を見ていこうと思います。
前後編にしようと思っていましたが、思いの外長くなってしまったため、前中後編の三部作になってしまいました。すいません(笑)

全体の流れ

まずは、おさらいとして、前回書いた全体の流れを書いておきます。

  1. 開発環境の確認
  2. 使っているライブラリ群の確認
  3. データの保持方法
  4. 通信周り
  5. 基底クラス
  6. 画面(Activity, Fragment, ViewController)一覧
  7. ビュー周り

前編では、開発環境の確認と使っているライブラリ群の確認の詳細を説明しました。 中編では、まずデータの保持方法から見ていきます。

データの保持方法

データの持ち方っていろいろありますよね。
メモリ上のみだったり、DBだったり、ファイルに書き出していたり...etc
AndroidだとSharedPreferences、iOSだとNSUserDefaultsもよく使われます。
データの持ち方、つまり、どのデータがローカルで永続化されて、どのデータが外部から取得されているかを意識することでアプリケーション全体の理解がはかどります。

例えば、ローカルには極力データを保持せず、画面遷移のたびに最新データを取得するものもあれば、起動時に必要なデータを一気に取得しているアプリもあると思います。 ここを押さえておくと、次の通信周りでどこを見るべきかの判断がしやすくなりますし、そのプロジェクト(サービス)自体のポリシーへの理解も深まるのではないでしょうか。

通信周り

データの持ち方を見たら、次は通信周りを見ます。(私の場合)

データの持ち方を調べたときに、「アプリケーション全体としてどういうタイミングで通信を行っているか」がざっくりと意識できていると思います。 ここでは、実際にどういったクラスが通信を行っているか、通信先はどこか、エラー処理はどの程度行っているかなどを見ていきます。

  • どういったクラスが通信を行っているか
    • ほとんどのアプリケーションが通信を行うクライアントクラスを用意していると思います。つまり、このクラスを理解すると通信周りの挙動がほぼ理解できたも同然です。
    • またこのクライアントクラス名で検索をすることで通信している箇所の特定もより簡単になります。
  • 通信先はどこか、ヘッダーに何を載せているか
    • ざっくりと重要そうなリクエストの詳細を調べます。
    • 特にユーザー認証情報の管理(ID/PASSやセッション)をどのようにしているかは重要だと思います。
    • その他、常に送っているデータがないかも確認しておきましょう。
  • エラー処理はどの程度行っているか
    • 共通のポリシーがあり、その通りに共通エラー処理があればそれを見ましょう。
    • しかし、実際は共通化できていないことが多いと思います。
      そんな中でも、プロジェクト(サービス)としてのポリシーとそれにどれだけ沿った実装がされているかは確認しておいたほうがいいでしょう。

まとめ

中編では、データ周りと通信周りの見るべきポイントを説明しました。
ここを早めに理解しておくと、アプリケーション全体のアーキテクチャへの理解を深めるスピードが格段に上がりますね。
どんなときでもそうですが、やはり初めて触れるものは全体の概要をいかに早く押さえられるかが、効率を上げるコツだと私は思います。

次回はいよいよ最後!
画面、ビュー周りを見ていこうと思います。お楽しみに!

tags: programming