わさビーフンのメモブログ

日々思ったこと、気になったことを書くブログ

MENU

スマホでゲームをするならどっち?iPhone vs Android(ITエンジニア視点)

本ページはプロモーションが含まれています

youtubeなどでスマホゲーム実況をしている人を見ていると、ほとんどの人がAndroidではなくiPhoneを使用されています。

単純に持っているスマホiPhoneだということもあるのでしょうが、実際に性能や特徴的な面で、iPhoneAndroidどちらの方がゲームをするのに向いているのか解説いたします。

結論から言うとiPhoneiPad)に軍配が上がる

いきなり答えを出しちゃっていますが、ハッキリいってiPhoneiPad)の方がゲームをやるのには向いています!

 

まずiPhoneは、Appleが専門で作成しています。ハード(本体)、OSも全てAppleが行っているため、iPhoneに特化した調整が行われています。

iPhoneアプリ(ゲーム)側は、iPhoneでさえ動けばいい、iPhonenに特化したモノを作成すればいいということになります。

※その分お金も掛かるので、Apple側からもサポートしてくれたりもする。

 

対してAndroidは、OSはGoogleが提供していますが、その先は各会社(Googleサムスンソニーなどなど…)が作成しています。

各会社によってハード(本体)が異なり、それに合わせてOSの調整もしなければいけません。

Androidアプリ(ゲーム)側も、各会社が作ったAndroidで動くように調整をしなければいけないので、Androidアプリ開発側も時間も労力も掛かりますし、ひとつのスマホに特化したモノが作れないのです。

※OSは無料で提供するけど、ある程度から先は自己責任で~、という感じなのがAndroidのスタンスです。

 

以上の背景から、専門的・特化できるiPhoneアプリの方が、実際にゲームはサクサク動いてくれます。

では次は実際にアプリ(ゲーム)が動く仕組みから見てみましょう。

アプリ(ゲーム)が動く仕組みから既に差が付いている

ここでは専門的な話にもなってくるのですが、そもそもiPhoneAndroidではアプリ(ゲーム)が動く仕組みの時点で差が付いていることについて解説します。

※しっかり厳密に解説すると前提知識が色々必要になるので、ザックリ説明させていただきます(汗)

 

まずiPhone側なのですが、アプリが動く時は「ネイティブコード」という状態になって動きます。

ネイティブコードとは、「機械語」とも呼ばれるのですが、コンピューターが理解できるコードのことを言います。

(映画「マトリックス」などで「0」「1」が沢山並んでいるモノをイメージしてください(笑))

プログラマーが書くプログラミング言語 ⇒ コンピューターに理解されやすいネイティブコード

となって実行されるので、動きが非常に速くなります。

 

対してAndroid側なのですが、アプリが動く時は「JavaVirtualMachin」(JVM)の上で動きます。

JVMとは、Androidアプリを作るためのJavaプログラムを、ネイティブコードに変換するためのソフトになります。

Androidは様々な会社が独自にスマホを作るということもあり、その違いを吸収するためにも、一度JVMを介してネイティブコードにしております。

(そもそものプログラミング言語の仕組みから違うのですが、一旦置いておいて…)

なので、Andoridアプリが動くときは、

プログラマーが書くプログラミング言語 ⇒ JVM ⇒ コンピューターに理解されやすいネイティブコード

の順になっているので、iPhoneアプリと比べるとAndroidアプリは、どうしても手間が1段階増えてしまっているのです

 

以上のことから、アプリを開発する側から言わせてもらうと、どうしても仕組みの時点でiPhoneの方が速い、と言わざるを得ないのです。

開発側から見ても大変なAndroid

これは実際にアプリを開発している私の経験からなのですが、Androidは様々なスマホに対応しなければいけないので、どうしても手間が増えてしまいます。

アーキテクチャやネイティブ関連のことで、同じエンジニアの方々は「あ~…」と声が出るかもしれません。

iPhoneはアプリを開発する時から、Appleの方で面倒なことはある程度引き受けてくれるので、iPhoneアプリ開発からAndroidアプリ開発に入った人は、「え、コレできないの?」とか、「コレもアプリ側で解決しなきゃいけないの?」というのが出てきているかもしれません。

 

今はクロスプラットフォーム開発環境があるので悩みも減る場面も出てきますが、速度が求められるアプリではクロスプラットフォームは採用されにくいかと思うので、相変わらずAndroidアプリ開発は大変です。

総評

以上のことから、結局ゲームをするとなるとiPhoneの方が優れている、ということになります。

最近のAndroidでもゲーミングスマホが出てきており、高性能CPUやメモリを多く搭載していますが、エンジニア視点からすると

「パソコンの中でパソコン動かして、その中でアプリ動かしているのがAndroid

という風に見えています。

もちろんAndroidの方がJVMのおかげで臨機応変に動かせる、ということもあったりします。

もしスマホでゲームをすることが多い方は、悩んでいるのであれば、とりあえずiPhoneを買うことをオススメします。

(値段が高いのは置いといて・・・(笑))

ブログランキング・にほんブログ村へにほんブログ村