LoginSignup
13
10

More than 5 years have passed since last update.

iOSアプリエンジニアによるiOS/Androidプロジェクト構成比較

Last updated at Posted at 2017-06-12

最近、iOS・Androidの継続的デリバリーのお仕事やったりしてるんですが、Androidわからなさすぎてつらいので、
iOSプロジェクトとの違い含めて一旦まとめてみました。
(どちらもSampleCompanyのSampleAppという形になっています)

iOSプロジェクトの構成

基本的なファイル

設定ファイル

  • SampleApp.xcodeproj
  • SampleApp/Info.plist

ソースコード

  • SampleApp/
  • SampleApp/AppDelegate.swift
  • SampleApp/ViewController.swift
  • SampleApp/Main.storyboard
  • SampleAppTests/

解説

SampleApp.xcodeprojはプロジェクトに関する全ての設定を定義したファイル。
Info.plistはアプリに関する設定(アプリ名やアプリのバージョン、カメラや位置情報にアクセスできるか等)を定義したファイル。
SampleAppはアプリケーションコードを格納するためのディレクトリ。
AppDelegate.swiftはiOSアプリのエントリーポイントとなるファイル。iOSアプリ全体のライフサイクル管理等も担当している。
ViewController.swiftはMVCにおけるVCの役割を果たすファイル。
Main.storyboardはアプリのUIや画面間の遷移を定義するためのファイル。
SampleAppTestsはテストターゲットに関連したファイル(テストコード等)を格納するためのディレクトリ。

CocoaPodsを利用する場合に追加

  • Podfile
  • Podfile.lock
  • Pods/
  • SampleApp.xcworkspace

解説

CocoaPodsはRubyで記述されたCocoa用の依存関係管理システム。
Podfileに使いたいライブラリを記述し、pod installを実行することで
インストールされたバージョンを記述したPodfile.lock
実際のライブラリのソースコードを含むPodsディレクトリ、
アプリのプロジェクトとPodsプロジェクトを管理するためのxcworkspaceファイルが生成される。

Carthageを利用する場合に追加

  • Cartfile
  • Cartfile.resolved
  • Carthage/

解説

CarthageはSwiftで記述されたCocoa用の依存関係管理システム。
Cartfileに使いたいライブラリを記述し、carthage bootstrapを実行することで
インストールされたバージョンを記述したCartfile.resolved
ソースコードやビルドされたframeworkを含むCarthageディレクトリが生成される。

Androidプロジェクトの構成

基本的なファイル

設定ファイル

  • app/src/main/AndroidManifest.xml

ソースコード

  • app/
  • app/src/main/java/samplecompany/sampleapp/MainActivity.java
  • app/src/main/res/layout/activity_main.xml

解説

AndroidManifest.xmlはアプリに関する設定(アプリ名やアプリのバージョン、パーミッション等)を定義したファイル。iOSプロジェクトにおけるInfo.plistに対応するファイルっぽい。
app内にはAndroidアプリに関するファイルが格納される。
app/build.gradlePodfileCartfileのように、ライブラリを管理するためのファイル。
MainActivity.javaはAndroidアプリのエントリーポイントとなるファイル。
activity_main.xmlはレイアウトを定義するためのファイル。iOSプロジェクトにおける.Storyboardに対応するファイルっぽい。

自動生成されるもの

  • build/

解説

ビルド結果として生成されるファイルがこの中に格納される。

gradle

  • app/build.gradle
  • build.gradle
  • gradle.properties
  • gradle/
  • gradlew
  • gradlew.bat
  • settings.gradle

Gradleは、Ant、Mavenに次ぐAndroid向けのビルドシステム。
app/build.gradleにはアプリモジュールに対する設定を、
build.gradleには、アプリモジュール含め全てのモジュールに対して適用する設定を記述する。
pluginの設定や、ライブラリの依存関係は、app/build.gradleに記述する。
gradle.propertiesには、Gradleデーモンの最大ヒープサイズなどのgradle自体の設定を記述する。
gradlewはLinux/macOS向け、gradlew.batはWindows向けのgradleのラッパーコマンド。
settings.gradleにはアプリのビルドで含める必要のあるモジュールを記述する。

まとめ

iOSアプリをメインに開発しているので、gradle周りの設定がまだ難しいですが、
ざっくりとした対応は把握できたと思います。

参考

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10