【2017年版】スマホアプリ開発環境の種類一覧と選び方

この記事は約 15 分で読めます。

スマホアプリを開発するにはPC上に開発環境を構築する必要があります。

この開発環境を構築するという作業は結構大変です。

色々と必要なものをインストールしたり、PCの設定を変更したり、途中でハマってググってみたり、結構な労力を伴います。

ノートPCとスマホ

AndroidやiPhoneが出た当初、開発環境の選択肢は少なかったため迷うことはなかったのですが、最近は選択肢が多すぎて何を選べばいいのか分からない方は多いと思います。

基本的に作りたいアプリのジャンルや方向性、個人のスキル、今までの経験など、様々な要因によって開発環境の最適解は異なります。

絶対これだ!というものはありません。

しかし、苦労して開発環境を構築し開発を始めた直後、たまたまググって見たサイトの情報で

今の開発環境より、こっちの方がよくね?

みたいな悲しい出来事は事前に防ぎたいですよね。

そのためにも最近はこんな開発環境があるんだという情報を把握することが大事です。

開発環境の選び方

まずは、スマホアプリについての理解を深めておきましょう。そうすることでベストな開発環境が選択できます。

スマホアプリの分類

スマホアプリとは、名前の通りスマートフォン(smartphone)で利用できるアプリケーションを略した用語です。

スマホで利用できるアプリには以下の3種類があります。

  • WEBアプリ
  • ネイティブアプリ
  • ハイブリッドアプリ

WEBアプリとは、端末にインストールされているインターネットを閲覧するためのブラウザ(ChromeやSafari)を使って利用できるものです。

従って、インストール不要なアプリとも言えます。

Google Map や Gmail 、Google Drive がそれに該当しますが、これらはインストールする専用のアプリもあります。

ここで言うWEBアプリとは、インストールせずにブラウザーだけで利用できるアプリ、かつ、アプリっぽく動くものを指します。

先に例題に出したGmailも、ブラウザーでアクセスしてログインすると左上にメニューボタンがあり、タップすると画面遷移なしに、左側からメニューがウニョっと出てきます。アプリっぽいですよね?

スマホアプリでWEBアプリと言えば、記憶に新しいのはFacebookです。一時期スマホ用にWEBアプリ(HTML5)でFacebookの開発を進めていましたが、WEBアプリでは「起動が遅い、反応が重い」などの不満が多かったことからネイティブアプリに移行しました。

WEBアプリの利用イメージ

上記図の通り、アプリを操作するには毎回サーバーとの通信が必要になります。そのため、レスポンスは悪くなります。また通信速度が貧弱だとイライラすること間違いなしです。地下鉄に乗っていたら利用することもできません。

ですが、アプリをインストールすることなく手軽に利用できる点は魅力的です。用途や目的がマッチしていれば十分選択の余地はあると思います。

ベンダーとしては、スマホ用にわざわざ開発する必要がなくコストがかからないのが最大の利点ですね。(スマホ用に見た目のチューニングは必要な点は忘れずに。特にAndroidはメーカー毎に特殊仕様も沢山盛り込まれているので、機種によって表示が乱れることも多々ある印象です。)

WEBアプリの開発環境は、スマホの開発環境とは基本的に異なるものなので、今回は説明を割愛します。

ネイティブアプリとは、Google Play や App Store からインストールして利用するアプリです。

ハイブリッドアプリもネイティブアプリ同様、Google Play や App Store からインストールして利用するアプリなのですが、その内部構造に違いがあります。

ハイブリッドアプリとは、WebViewというHTMLを表示するコンポーネント(ブログラム内部で利用できるブラウザのようなもの)を利用して、シングルページWebアプリケーション(SPA)のようなUI(ユーザーインターフェース)を提供するアプリです。

そのため、外側はネイティブ、内側はWEBということで『側アプリ』とも呼ばれています。

ネイティブアプリとハイブリッドアプリの利用イメージ

以前の『側アプリ』は操作性が悪いイメージでしたが、最近はネイティブアプリと見分けがつかないレベルにまでパフォーマンスは向上しているように感じます。

開発環境の分類

スマホアプリのOS(オペレーションシステム)には、Android と iOS があります。iOSはiPhoneで使われているOSです。このOSの種類によって基本的に開発環境が異なります。

開発環境は大きく分類して以下の2種類があります。

  • スタンダードな開発環境
  • クロスプラットフォームの開発環境

スタンダードな開発環境とは、Androidのアプリだけを開発するためだけの環境、およびiOSのアプリだけを開発するためだけの環境です。

クロスプラットフォームの開発環境とは、Android、iOS、両方のアプリを同時に開発することができる環境です。

この環境で開発したアプリは、選択したフレームワークによってハイブリッドアプリ、またはネイティブアプリが作れます。

基本的にAndroidとiPhone(iOS)の両方でアプリをリリースしたいと考えている場合は、クロスプラットフォームの開発環境の構築をオススメします。

じゃあ、クロスプラットフォームの開発環境でアプリを作るのがいいのね。

ってことになってしまいそうですが、スタンダードな開発環境にも魅力があります。

それはパフォーマンスです。クロスプラットフォームの環境だと、流石に細部のチューニングを行うことは困難です。その点を考慮すればスタンダードな開発環境で作られたアプリには適いません。

ヌルヌル操作できる快適なアプリを開発したいならスタンダードな開発環境構築をおススメします。

開発環境を比較

スタンダードな開発環境でAndroidのアプリ開発しか経験のない私が、独自視点でスタンダード環境とクロスプラットフォーム環境の比較を以下にまとめました。

こちらを参考にあなたに合った開発環境を選んでください。

スタンダード クロスプラットフォーム
開発コスト 苦労する(※1) WEB開発者が有利
メンテナンス 大変(※1)
操作性 快適 まぁまぁ
処理速度 早い 普通
機能の制約 なし あるかもしれない
環境構築 ものによる
イメージ 職人な感じ 今時な感じ

(※1)AndroidとiOSの両方やる場合

これだけで選択できるわけないだろ!

って言われそうなので、それぞれの情報を広く浅く説明します。

開発環境による開発可能なアプリ

まずは全体を把握するために以下4パターンのアプリが、それぞれどの開発環境で作れるのかを図にしてみました。

  • Androidのネイティブアプリ
  • iPhoneのネイティブアプリ
  • Androidのハイブリッドアプリ
  • iPhoneのハイブリッドアプリ

開発環境による開発可能なアプリ

中央に作成可能なアプリを4つ並べてあります。
上段に「スタンダードな開発環境」、下段に「クロスプラットフォームの開発環境」を配置、それらの環境から作成可能なアプリに線を繋げてあります。

この図を参考に必要な情報だけチェックしてみて下さい。

スタンダードな開発環境

スタンダードな開発環境ではネイティブアプリが作れます。やろうと思えばハイブリッドアプリも作れます。まぁ制限がないので、何でも作ろうと思えば作れるのです。

Androidの開発環境

Download the official Android IDE and developer tools to build apps for Android phones, tablets, wearables, TVs, and more.

以前は『Eclipse』での開発がスタンダードでしたが、今は『Android Studio』が主流です。

これからネイティブアプリのAndroid開発を行う場合は、必ず『Android Studio』で開発環境を構築しましょう。

また、ソース管理には『git(ギット)』を利用することをオススメします。利用したことがない場合、学習コストは高くなりますが、Linuxのソース管理にも利用されているソース管理ツールのデファクトスタンダードです。

Androidの開発言語

ネイティブアプリのAndroidを開発する言語は『Android Java』になります。通常のJAVA言語とは若干異なり、Android用にGoogleがカスタマイズしたものになります。

また、パフォーマンスに関しては組み込みアプリの考え方が重要となります。ネット上に沢山の情報がありますので、必要に応じてググってみてください。

Androidの開発OS

Androidのネイティブアプリは以下のOSで開発できます。

  • Windows
  • Mac OS X
  • Linux

iPhone(iOS)の開発環境

『Xcode』を使って開発します。
Xcodeとは、Apple社が提供する「Mac OX X」向けの統合開発環境です。

とりあえずMacを持ってないと開発することはできません。どうしてもスタンダードな環境で iPhone 向けのアプリを開発したいならMac購入を検討してください。私は諦めました。

iPhoneの開発言語

iOSでネイティブアプリを開発する言語は『Objective-C』というC言語をベースにオブジェクト指向機能を持たせた上位互換言語でした。

今は『Swift』という2014年にAppleが開発した言語がありますので、これから始める方は、必ず『Swift』を使うようにしてください。その方が幸せになれます。

iPhoneの開発OS

iPhoneのネイティブアプリは以下のOSで開発できます。

  • Mac OS X

Macでしか開発できないというのが厳しいですね。マイナビニュースの『Windows 7/10/XPが増加 – 12月OSシェア』の情報によると、2016年12月の時点でMacを利用しているのは全体の6%程度です。これだけ見ても敷居が高いのが理解できると思います。

クロスプラットフォーム開発環境(ネイティブアプリ)

ネイティブアプリの開発は、それぞれのOS(プラットフォーム)用に別々のソフトを開発するイメージがありますが、両方同時に開発できる開発環境も存在します。

Unity(ユニティー)

Unity は、スマートフォンや PC、Webブラウザ、コンシューマ機上でハイクオリティーなゲームを実現する開発プラットフォームです。

ゲームを開発するなら、この『Unity』一択です。

Unityとは、ゲーム開発プラットフォームで、スマートフォン向けゲーム開発のデファクトスタンダードです。3Dでグリグリ動くゲームは大体このUnityを使って開発されています。

2Dのゲームも作れますから、ゲームなら全てお任せという感じですね。

Unityについては@itの「ゲーム開発初心者のためのUnity入門」最新記事一覧から必要な基礎知識は、大体キャッチアップできそうです。

任天堂の「スーパーマリオラン」や、スクエニの「ドラゴンクエストVIII」も『Unity』で作られています。そんな話を聞いたら、何のゲームでも作れそうな気がしますね。

Xamarin(ザマリン)

Build & design a mobile app using Xamarin’s cross-platform development software which simplifies mobile application creation. Download a free trial today.

Xamarinとは、Microsoftが開発した .NET技術 でAndroid、iOSのアプリが開発できる環境です。

Microsoftが提供するものなのでVisual Studioで開発を行います。ただし、クロスプラットフォームで共通にできるのは「コア」部分だけのようです。

上記の公式HPは日本語が一切ないため、理解するのが大変です。QiitaのXamarin(ザマリン) とはなんぞやに詳しい情報がありますので、私と同様に英語が苦手でしたら、こちらをご覧いただくのがよろしいかと存じます。

Titanium Mobile

Titanium Mobileとは、米国 Appcelerator 社が提供する JavaScript で iOS / Android のネイティブアプリを開発することができるEclipse ベースの統合開発環境です。

gihyo.jpで連載しているTitanium Mobileで作る! iPhone/Androidアプリに詳しい情報があります。実際に作ってみようという方には参考になります。

Adobe AIR for Mobile

アドビ・システムズ社が提供する開発ツールです。「Adobe AIR」を端末にインストールすることで動作するようになるアプリが作れます。

Flex、Flash、ActionScript、HTML、JavaScriptを使って開発できるようですが、私はFlex、Flash、ActionScriptに触れたことがないため、未知の領域です。

ざっとググって情報を見る限り、Flashで何か作れる方には良さそうな感じです。

クロスプラットフォーム開発環境(ハイブリッドアプリ)

現状、ハイブリッドアプリを開発するために様々なクロスプラットフォームの開発環境が提供されており、コア部分は『Cordova』を利用しているケースが多いです。

それぞれ開発手法が異なり、メリット、デメリットもありますので、これらを把握し最適な開発環境を選びましょう。

Monaca(モナカ)

Monacaは、Cordovaを内包したHTML5ハイブリッドアプリ開発プラットフォームです。HTML5でマルチプラットフォーム対応のモバイルアプリ開発が行えます。

Monacaとは、アシアル株式会社が提供する統合開発環境です。一番特徴的なのがクラウド上に開発環境があるため、環境構築の作業が不要なところです。ブラウザで開発、ビルドが行えます。

また、Onsen UIというフロントエンド開発用のツールも用意されています。こちらはAngularJS をベースとしたHTML5ハイブリッドアプリ用のUIフレームワークで、アプリのようなUIをWEB開発のスキルで実装することができます。高速に動作するUI基盤として開発されました。

私はスキル的にデザイン周りが苦手なので、このようなUIフレームワークにはとても魅力を感じます。

PhoneGap(フォンギャップ)

Easily create apps using the web technologies you know and love: HTML, CSS, and JavaScript.

PhoneGapとは、Adobeが提供するオープンソースのモバイルアプリ開発フレームワークです。Cordovaという下層のフレームワークの上にAdobeのサービスと連携するレイヤーとして被さっている感じです。

このPhoneGapとCordovaの関係が複雑で、元々Nitobiという会社がPhoneGapを開発していて、そのNitobiをAdobeが買収し、それと同時にPhoneGapのソースコードをApache Foundationに寄付してCordovaが誕生。その後にAdobeがCordovaのラッパーとしてPhoneGapをリリース。正直、買収して寄付する意図が全く分かりません。

色々歴史がありますが、結局 PhoneGap と Cordova は大体同じものと認識しておけば問題ありません。

Telerik Platform

Design, develop, test, deploy, manage and analyze cross-platform, web, native and hybrid mobile applications with the Telerik Platform. Available for iOS, Andro...

Telerik Platform とは、Monacaと同様にWEB上のサービスでアプリが開発できます。ググった感じ、日本語の情報が少なく、まだ浸透していないようです。しかし、公式サイトを見ると多彩なテンプレートが用意されており、いい感じにベースソースを作ってくれそうな感じです。

「AppBuilder」という専用のWEB開発画面が用意されていますが、WEB上でソースを弄るのが嫌いな方のために、「Visual Studio」を使って開発することも可能です。

一つ言えることは、私と同じ英語が苦手な方には敷居が高そうです(笑

必要な情報を得ることが容易かどうか?

開発環境を選ぶ際には、この点についても充分に留意してください。この見極めに失敗すると開発コストが想像以上に加速します。熟練の技術者が枯れた技術を好む傾向にあるのは、この部分が大きいです。

Cordova(コルドバ)とは

Cordovaとは、オープンソースで提供されるハイブリッドアプリを開発するためのフレームワークです。

Cordovaのアプリビルドイメージ

上記図の通り、WEB技術(HTML5、CSS、Javascript)を用いて開発するSPA(シングルページアプリケーション)からアプリをビルドすることが可能なため、SPAを開発するための以下ツールやフレームワークが利用可能です。

  • jQuery
  • Knockout
  • Angular
  • Riot
  • Vue
  • React

基本的に作業は「Node.js」をインストールしたPC上でコマンドラインを使って行います。

Node.jsとは、サーバーサイドのJavaScriptです。JavaScriptは本来クライアント側のブラウザで動作するものですが、Node.jsを利用することでサーバー上でJavaScriptが実行できる感じです。

通常、Cordovaでアプリをビルドするときには、Android や iOS の SDK も PC にインストールする必要があるのですが、Adobeのクラウドビルドサービス「PhoneGap Build」を利用することで、SDK のインストールなしでビルドできます。

Macが無くてもiOSがビルドできるなんて魅力的ですね。

まとめ

如何でしたでしょうか。

以下に要点をまとめておきます。

  • スマホアプリには、WEBアプリ、ネイティブアプリ、ハイブリッドアプリがある。
  • 開発環境にはAndroidのみ、iOSのみ、両方一緒に作れるものがある。
  • ヌルヌル快適なアプリが作りたいならネイティブアプリが良い
  • MacがないとiPhoneのアプリは作れなかったが今は作る方法がある
  • 最近のハイブリッドアプリは侮れない

開発環境の選択肢が多すぎですね。

これら全てを試した方がいたら本当尊敬します。

開発環境が選べない方へ

人は情報がありすぎると迷って選択できません。それはしょうがないことなのです。

だから私が決めて差し上げます。素直に従って、アプリをリリースしてください。

  • ゲーム開発なら Unity がオススメ
  • 開発環境の構築がめんどくさいなら Monaca がオススメ
  • Visual Studioが好きなら Xamarin がオススメ
  • WEB開発にも興味があるなら Cordova を使ったハイブリッドアプリがオススメ
  • 上記に該当しない方はスタンダードなネイティブアプリ開発を行う

ちなみに私は『Visual Studio 2017 Community をインストールして Cordova + Ionic2 を使ったハイブリッドアプリを開発』します。

開発環境を選んだ方へ

開発環境の選択が済んだら、次はアプリを開発してリリースしてみましょう。

また、折角リリースするのなら、マネタイズも考えて収益化を行いましょう。

そのための戦略をこちらで紹介しています。

アプリで稼ぐ戦略を評判のレストランから学ぶ
アプリを適当に開発してリリースしたところで大したお金は稼げません。 だからといって、検討に検討を重ねた結果、開発したアプリでお金を稼げ...

以上、『【2017年版】スマホアプリ開発環境の種類一覧と選び方』の解説でした。

The following two tabs change content below.
Shira
IT系の会社員。1978年生まれ。個人開発でAndroidのアプリをリリース、総ダウンロード数は70万くらい。36歳で初めての転職、未経験のweb業界で日々悪戦苦闘してます。
スポンサーリンク
広告
広告

当記事がお役に立ちましたらシェアして頂けると嬉しいです。

フォローする