iOSとAndroid、アプリ開発における違いは?同時に開発する方法も紹介

みなさんはスマートフォンというと何を思い浮かべるでしょうか。iPhoneを思い浮かべる人もいれば、Androidを思い浮かべる人もいるでしょう。どちらもスマートフォンではありますが、これらは「OS」が異なり、アプリケーションを開発する際の言語や審査方法などに違いがあります。

この記事では、スマートフォンに入れて使うアプリケーションの開発について、iOSとAndroidでの違いや、双方に対応したアプリケーションを同時に開発する方法を紹介していきます。

【基礎】iOSとAndroidの違い

スマートフォンやパソコンのOSとは、Operation System(オペレーティング・システム)を略した言葉で、アプリやデバイスを操作するための基本のソフトウェアです。アプリケーションはOSごとに開発されるのが一般的であり、あるOSに向けて作ったアプリケーションを他のOSで動かそうとしても動きません。

iOSはApple社が作っているOSで、Apple社の作る機器以外には搭載されていません。

AndroidはGoogle社が作っているOSで、ソニーやシャープ、サムスン、ファーウェイなど様々な会社がAndroidOSを搭載したスマートフォンを作っています。

MMD研究所の「2019年12月 iPhone・Androidシェア調査」によると、日本国内のAndroidのシェアは57.2%、iOSのシェアが42.8%と、Androidが優勢ながらも両者5割前後のシェアを持っています。

参考に世界全体の状況も確認してみましょう。NetApplications.com「Operating System Market Share」にて2019年の12月のデータを見てみると、Androidのシェアは70.0%、iOSのシェアが29.5%、それ以外のOSのシェアが1割ほどと、Androidの勢力がより大きいことがわかります。

アプリ開発の外注をお考えの方へ

アプリ制作を依頼したいけど、どの会社に依頼したら良いかわらない...
わからないことが多くて不安ですよね?

株式会社Pentagonでは、技術力はもちろんデザインに特化した開発をしております。
また、最新技術を採用し、iOSアプリとAndroidを同時に開発することも可能です。

当社と連携することで、大手企業のアプリにも勝る「美しく使いやすくアプリ」を開発することができます。

【お問い合わせ】アプリ開発のご相談はこちらから

iOSとAndroid、アプリ開発における違い

ここでは、アプリ開発においてのiOSとAndroidでの違いを解説します。

開発言語

まず、それぞれのOSのアプリ開発言語について紹介します。

iOS用のアプリを開発する際に使う開発言語

iOSのアプリを開発するために使われるプログラミング言語は、Objective-CとSwiftの2つです。

Objective-Cは、C言語をベースに開発された言語で、現在は主にiOSのアプリを開発する目的で使用されています。

SwiftはApple社が開発した、2014年登場の比較的新しいプログラミング言語です。2020年現在、Objective-CよりもSwiftが使われることが多くなっています。

SwiftにはObjective-Cとの互換性があり、1つのアプリを開発するのにObjective-CとSwift、両方の言語を使うことも可能です。

Android用のアプリを開発する際に使う開発言語

Androidのアプリを開発するために使われるプログラミング言語は、JavaとKotlinの2つです。

Javaは1995年に登場した、2020年現在も世界的にもっとも使われているプログラミング言語です。JavaScriptと混同されがちですが、名前が似ているだけでまったく別のものです。Javaはコンパイラ言語という種類に分類されており、RubyやPHPなどの他のプログラミング言語に比べ、処理速度の速いアプリを開発することができます。

Kotlinは2011年に登場したプログラミング言語です。2017年にAndroidの開発言語として使用されはじめた比較的新しい言語です。Javaよりも簡潔なコードで済むことや、開発においての安全性を担保しやすいことが特徴です。KotlinはJava言語との互換性を持っているため、Javaでコードが書かれている既存のアプリにKotlinのコードを足すことでアプリの内容を改良することが可能です。

開発環境

アプリの開発をする際に必要なツールについて、iOS、Androidそれぞれに分けて説明します。

iOSアプリの開発ツール

iOSアプリを開発するには、Xcodeと呼ばれるツールが必要です。XcodeはApple社の提供する「Mac OS X」向けの統合開発環境であり、誰でも無償でAppStoreからインストールできます。

アプリを作るために必要な作業をすべてサポートするツールで、iOSのスマートフォンアプリの開発以外にも、Mac用のアプリやAppleTV用のアプリ、AppleWatch用のアプリなどApple製品全般のためのアプリを作ることが可能です。

ただし、Macでしかアプリの開発ができないため、Macを準備しておく必要があります。

Androidアプリの開発ツール

Androidアプリの開発をするには、Android Studioと呼ばれるツールが必要です。

Android StudioはGoogle社が提供するAndroidプラットフォームのための統合開発環境で、Androidのスマートフォンアプリの開発以外にも、Androidタブレット、AndroidTV、Android Auto(カーナビ)などのアプリの開発をすることができます。

Windows、MacOS、Linuxのいずれかの環境があれば、Android Studioを使ったアプリ開発が可能です。

開発費用

アプリの開発費用は、以下のように計算されます。

「開発費用=人件費+固定費用」

アプリ開発において、人件費は「人月(にんげつ)」という作業量を表す単位を用いるのが一般的です。これは、ある作業を1人で行った場合にかかる月数、もしくはその作業を1ヶ月で終わらせるために必要な人数を表しています。たとえば、4人月の作業を2人で行う場合にかかる月数は2ヶ月と見積もります。

1人のエンジニアが1ヶ月働く際にかかるコストを「人月単価」と呼びます。アプリ開発に携わる技術者として、システムエンジニアやプログラマーなどの職業がありますが、役割分担の違いにより人月単価は変化します。一般的な人月単価の目安は、以下の通りです。

初級(初歩レベル)システムエンジニア1人月60~100万円
中級(中堅レベル)システムエンジニア1人月80~120万円
上級(管理職レベル)システムエンジニア1人月100~160万円
下請け企業やフリーランスのプログラマー1人月40~60万円
大手企業のプログラマー1人月50~100万円

例として、4人月の作業を人月単価100万円のシステムエンジニアと、人月単価50万円のプログラマーの2人で作業する場合の人件費は、以下のように考えます。

人件費  =(1人目の人月単価+2人目の人月単価)×かかる月数

     =(100万円+50万円)×2ヶ月

     = 300万円

アプリ開発における固定費用とは、ドメインやSSL証明書の取得費用、アプリの運用に使うサーバー維持のための費用、OSのアップデートなどによるメンテナンス費用、不具合があった場合の対応のための費用などです。これらは開発の時だけでなく、アプリの運用をしていく限りかかり続ける費用となります。

基本的にアプリの開発費用は、固定費用よりも人件費の方が高くなります。そのため、アプリの開発を外部の専門業者に委託する場合は、製作会社によって見積もりの差が大きくなります。

たとえば、大手の製作会社にアプリの開発を依頼する場合は見積もりが高くなる傾向があります。一方、比較的新しく、小規模な製作会社にアプリの開発を依頼する場合には、大手よりは見積もりが低くなることが多いです。

アプリの開発において、大手の製作会社ならば優れたアプリを開発してくれるとは断言できません。また、製作会社によっても得意不得意がある場合もあるため、しっかり見積もりをしてもらい、イメージしているアプリが実現可能かしっかり精査したうえで頼むことが重要です。

公開方法

アプリの開発が完了したら、iOSはApp Store、AndroidはGoogle Playという名称の各OSの公式ストアにアプリを掲載しましょう。

AndroidはGoogle Playに掲載しなくてもアプリを配布することが可能ですが、より多くの人に届けるためにもGoogle Playに掲載することをおすすめします。iOSはApp Storeを経由しないとそもそもアプリの配布ができません。

なお、iOS、Androidどちらにおいても、公式ストアにアプリの掲載をしてもらうには審査を受ける必要があります。

審査

iOSの公式ストアであるApp Storeは、専門家によって人力でアプリの審査が行われています。元々、審査のためのやり取りに数週間から1ヶ月かかっていましたが、最近は徐々にかかる期間は短縮されています。とはいえ、最低でも1週間程度は見込んでおくと良いでしょう

Androidの公式ストアであるGoogle Playは、自動の審査システムがアプリの審査を行います。以前は公開前の審査はなく、ストアに登録するとそのまま購入が可能になっていましたが、最近はある程度公開前の事前チェックがされるようになりました。

以下に、アプリの審査が不合格になる場合の基準(リジェクトポリシー)を掲載します。

例:App Store、Google Play両方に共通するリジェクトポリシー

  • 一般的なアプリの利用方法でクラッシュしてしまうなど、きちんと動作しない場合
  • リンク切れが起きていたり、表示されるはずの画像がなかったりなど、コンテンツが中途半端なままの場合
  • アダルト要素がある場合
  • 反社会的な表現がある場合
  • アプリの説明文が不十分な場合

例:App Storeのリジェクトポリシー

  • UIがAppleのデザインガイドラインに合っていない場合
  • アプリ内で再生される動画や掲示板に投稿された文章が不適切な場合
  • アプリの名称が他のアプリに類似している場合

例:Google Playのリジェクトポリシー

  • アプリの名称に「Android」「Google」が使われている場合
  • コンテンツの内容が盗作や盗用したものである場合

公開にかかるコスト

iOSの場合、アプリの審査を申請するためにはApple社へのデベロッパー登録が必要です。デベロッパー登録には毎年$99(日本円で約10,000円:2020年8月現在)かかります。

Androidの場合も、Google社へのデベロッパー登録が必要です。Androidのデベロッパー登録はiOSとは違い、初回登録時に$25(日本円で約2,500円:2020年8月現在)支払うのみで、年会費は必要ありません。

「クロスプラットフォーム開発ツール」とは?

従来、アプリなどに代表されるソフトウェアは、動作環境を想定したうえで、想定した動作環境に合わせた開発をしていくのが一般的でした。しかし、従来の開発方法の場合、iOS用に作ったアプリをAndroidで使うことはできないため、アプリを開発する場合にまずiOS向けを作るか、Android向けを作るかを考える必要がありました。

iOSとAndroid、両方の動作環境で使えるアプリを作りたい場合、どちらの動作環境でも同じように使えるプログラムを作っていくことが望まれます。この、1つのプログラムで複数の動作環境に対応できるプログラムのことを、クロスプラットフォームと呼びます。

クロスプラットフォーム開発のメリット

近年はアプリケーションを動作する環境が多様化しています。多様化した動作環境ひとつひとつに合わせたアプリを作ろうとすると、膨大な手間と時間、人件費がかかります。

また、アプリの運営は配信開始がゴールではありません。OSのバージョンアップなどに応じてアプリの更新をしていかなければならないため、アプリの配信はあくまで途中地点、もっと言えばスタート地点と言っても過言ではありません。

そこで、従来は動作環境ごとに個別に作っていたアプリを、クロスプラットフォームで作ることにより、アプリの開発や配信後の保守、更新など運営する際の負担を減らすことができます。

クロスプラットフォーム開発の種類

クロスプラットフォーム開発には3つの種類があります。それぞれの特徴をご紹介します。

ネイティブ型

クロスプラットフォームの中で、ソフトウェアをOS上で操作していくものをネイティブ型と呼びます。カメラ機能やGPS機能など、すべてのOSの機能を活用できるのが特徴です。

なお、ネイティブ型のクロスプラットフォームを開発する場合、複数の動作環境で動作するクラスライブラリやランタイムを装備している必要があります。

ネイティブ型のクロスプラットフォームの開発ツールでよく使われているのは、Microsoft社が提供するXamarinやFacebook社のReact Nativeです。

独自レンダラ型

クロスプラットフォームの中で、独自のレンダリングエンジンを使って描画していくシステムを持つものを、独自レンダラ型と呼びます。

レンダリングエンジンとは、プログラミング言語を解釈しその通りに描画するシステムです。独自レンダラ型はそれぞれ独自のレンダリングエンジンを使うため、OSの違いに関わらず、どのOSでも同じように使うことができます。

独自レンダラ型のクロスプラットフォームの開発ツールでよく使われているのは、Unity Technologies社のUnityやGoogle社のFlutterです。

ハイブリッド型

クロスプラットフォームの中で、WebViewというソフトウェアを利用しているものをハイブリッド型と呼びます。WebViewとは、WebページをSafariやChromeなどのブラウザと同等に表示するという機能で、スマートフォンのアプリに組み込まれているものです。Web上の機能をHTMLやCSS、JavaScriptなどを使って設計できるため、ネイティブ型と違い比較的クロスプラットフォームのソフトウェアの開発として作りやすくなっています。

しかし、Web経由のソフトウェアのため、処理速度が遅いという難点があり、ネイティブ型ほどの高度な機能も実現できません。

ハイブリッド型のクロスプラットフォームの開発ツールでよく使われているのは、オープンソースであるCordovaです。

まとめ

この記事では、iOSとAndroidのアプリ開発において、アプリ開発に使う言語や開発環境の違い、費用、審査などについてご紹介しました。昨今は動作環境が多様化していることや工数が削減できることから、開発にクロスプラットフォームが用いられるケースが増えています。

当社Pentagonでも、React NativeとFlutterでの開発実績がございますので、クロスプラットフォーム開発のご相談があれば、お問い合わせください。

\アプリ・Webサイト制作のご相談はこちら/ お問い合わせ