大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

iOS/Androidアプリ開発環境続き

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2018/02/13
最終更新日:2018/02/13
カテゴリー:技術情報
タグ:

津路です。2回目の投稿です。
前回で残してしまった、Macでの開発環境と、クロスプラットフォームでの開発環境を述べていきます。

  1. XCode
    • 長所
      • メモリ使用量が、Windows環境のIDEよりも少なく、軽い方
        IDE 200MB, Qiita.com 200MB, Lldp-rpc-server 340MB, Simulator service 80MB
      • Objective-C/Swiftどちらでも開発できる。XMLは書いてくれる。
      • パフォーマンス、エディタ機能、デバッグ機能の充実
      • ディスク使用量:5.3GB
    • 短所
      • エミュレータ起動時間: 6分ほど
      • 日本語なし。パッチ、プラグイン不可。
  2. Visual Studio 2017 Windows版
    前回の記事で取り上げた表の中で、Android/iOS/WindowsPhoneの列は、クロスプラットフォーム開発環境のことで、一つのIDEのソリューションの中で、それぞれをターゲットにしたプロジェクトを作成できるという優れものです。
    その目的で、MicrosoftはXamarin Studioを取り込んだとのことです。

    • 使用量
      • メモリ:IDE:243MB, エミュレータ:1GB
      • ディスク:VS2017 4GB
        Android 11.4GB
        Xamarin 187MB
        System image 1.3GB, User image 2GB
    • 長所
      • Xamarin Studioを取り込み、C#のみでクロスプラットフォームアプリを開発できます。
      • Xamarin.Formsにて、Android/iOS/Windows Phone対象のアプリのGUIを同時に作成できます。
      • ネイティブAPIにアクセスできます。カバー率100%
      • .NET Frameworkとの高い互換性があります。
      • これだけ高機能なのに、メモリ使用量はAndroid Studioより少ないです。
      • ソースコードも、共有部分を増やせば労力が省けます。
      • テストや配布、メンテナンス、リリースなどに他のツールがいらない。
    • 短所
      • 起動時間:最初は時間がかかるが、日数が経過するとIDEは数秒です。が、シミュレーターは毎回時間がかかります。
      • Macとの接続:6分、iOSデバッグ開始11分。iOSの場合は、Storyboardを表示するだけでMacとの接続を確立しなければなりません。
      • オープンソースライブラリは、サポートされているものしか使えないらしい
      • ソースコード共有可能率は高くて90%程度なので、OSや端末特有に対応するには、従来のJava, Objective-C/Swiftなども必要
      • 凝ったゲームなどアニメーションなどには不向き
      • 結果としてできるapkが従来の2倍のサイズ(Hello Worldが16MB)
      • パフォーマンスの点で、ネイティブ環境には劣る
  3. Visual Studio for Mac
    Xamarin Studioの上にVisual Studio機能をかぶせたもの
    こちらもクロスプラットフォーム対象開発環境です。

    • 長所
      • Windows版より簡易なGUIで、Android, iOS双方のプロジェクトを作成できる。
      • エディタ機能、デバッグ機能も遜色ないようです。
      • Windows版とのプロジェクト互換性あり。
    • 短所
      • XCode9以上が必要
  4. 比較した結果
    さて、どれを選ぶかですが、アプリの目的と内容、用途などによって、選択することになるのではないかと考えます。

    • 凝ったゲームを作ったり、外部デバイスを接続があったりする場合は、ネイティブ環境のほうが優れていると思います。
    • インターネット通信はあるものの、それほど見た目にこだわらないアプリであれば、大方はVisual Studio+XCodeで済んでしまうでしょう。ただし、端末特有の対応などには、更に従来の言語での対応が必要になりそうです。
    • オープンソースライブラリなど資産を活用するには、ネイティブ環境からの呼び出しのほうが簡易でしょう。
    上に戻る