モバイルアプリを開発するには、開発環境となるソフトウェアやツールを利用する必要があります。開発環境はAndroid向けアプリとiOS向けアプリでそれぞれ異なり、開発したいアプリに合った開発環境を整えることが大切です。本記事では、アプリ開発環境の種類やおすすめのツールをご紹介します。
アプリの開発環境の種類
アプリを開発するためには、プログラミング言語の習得に加え、開発環境の整備が不可欠です。アプリ開発の環境は、Android向けとiOS向けの2種類に分かれています。それぞれの開発環境に関する詳しい解説は後述しますので、ここではAndroidとiOSの開発環境の違いを簡単にご説明します。
AndroidとiOSの開発環境の違い
Android向けアプリは開発OSを選ばないのが特徴で、WindowsはもちろんMacOSやLinuxでも開発可能です。「Android Studio」という純正の開発環境が用意されており、開発言語にはプログラム言語の中でも習得難易度が高いとされているJavaを使用します。
一方、iPhoneやMac BookなどApple製品向けのアプリを開発するには、iOSおよびMacOS純正の開発環境「Xcode」を使用するのが一般的です。以前はMacでしか開発できませんでしたが、現在は「Xamarin」というツールを使うことで、Windowsでも開発できるようになりました。開発言語はJavaScriptやC#、Objective-Cなど複数ありますが、もっとも適しているのは、やはりApple製品向けのアプリ開発専用に作られたSwiftでしょう。Swiftで開発したアプリは、すべてのコードが公開されており、誰でも自由に編集可能です。
スマホアプリの種類
スマホで利用できるアプリには、「Webアプリ」「ネイティブアプリ」「ハイブリッドアプリ」の3種類があります。それぞれの特徴を押さえ、目的に沿ったアプリを開発しましょう。
Webアプリ
デバイスにダウンロードすることなく、ChromeやSafariといったWebブラウザ経由で利用するアプリです。アプリへアクセスするにはネットワーク環境が必須となり、安定的に利用できるかどうかは接続環境に左右されます。どのOSでも利用できますが、カメラやマイク、プッシュ通知など端末の機能の利用はできません。
ネイティブアプリ
私たちが普段、App StoreやGoogle Playなどのアプリストアから自分の端末にダウンロードし、利用しているアプリのことです。ネット環境を必要とせず、開発環境によって利用できるOSが決まっているのが特徴です。Webアプリと異なり、端末機能をアプリ上でも利用できるほか、動作速度が速い点もメリットといえます。なお本記事では、このネイティブアプリの開発環境について解説していきます。
ハイブリッドアプリ
ハイブリッドアプリとは、Webアプリとネイティブアプリのメリットを組み合わせたアプリのことです。企業が提供している公式アプリのほとんどは、このハイブリッドアプリを採用しています。
Webアプリをベースに作られていますが、ネイティブアプリのように端末の機能を利用できるのが特徴です。一方で、ネイティブアプリでは対応OSが決まっているのに対し、ハイブリッドアプリはAndroid/iOSの両方で使えるため、別々に開発する必要がありません。ただし、ネイティブアプリほどの動作速度を出すのは難しいというデメリットもあります。
Androidアプリの開発環境
Androidは、言わずと知れたGoogle社が開発しているスマホ向けのOSです。世界的な市場シェアはiOSを遥かに上回り、グルーバル規模での利用が見込めることから、開発価値の大きいアプリといえます。Androidのアプリ開発環境としては、純正の「Android Studio」のほか、「Unity」「Xamarin」「React Native」が利用されています。
Androidアプリの開発環境①Android Studio
言語:Java/Kotlin
開発元:Google
Android Studioの特徴は、さまざまなOSで開発環境を構築できることです。さらに強力なコード編集機能がついており、自動補完や置換、検索など、コードを早く書くための機能が備わっているため、簡単なアプリならほぼコードを書かなくても完成します。
テスト用のツールやフレームワークが用意されているのでテストも行いやすく、不具合を解消しながら開発を進められます。Androidスマホ以外に、AndroidタブレットやAndroid TV、カーナビのAndroid Autoなどのアプリ開発も可能です。なお、料金は無料です。
Androidアプリの開発環境②Unity
言語:C#/JavaScript/Boo
開発元:Unity Technologies
Unity Technologies社が提供するゲーム開発ツールで、2D・3D問わずゲーム開発に強く、「ポケモンGO」「ドラクエ8」「白猫」などの有名ゲームがこのUnityで開発されています。Windows/Mac/Linux/Android/iOSとマルチプラットフォームに対応したゲームが作れるうえ、作ったゲームの販売もできます。また、コードを書かずにキャラクターを動かすことも可能です。
個人向けプラン(無料)とチーム向けプラン(有料)があり、無料プランでもゲーム開発に必要な機能が一通り揃っていますが、機能を拡張するには費用が発生します。有料プランの場合、最安で月額4,840円(税込)〜での提供です。
Androidアプリの開発環境③Xamarin
言語:C#
開発元:Microsoft
旧Xamarin社が開発したアプリ開発環境です。現在はMicrosoft社に買収されており、同社の開発環境「Visual Studio」の一部機能として提供されているため、Visual Studioを使い慣れている人には使いやすいでしょう。Windows上でMacOSやiOS、Androidといった異なるOS向けのアプリが開発できるほか、「Xamarin.Forms」というオープンソースのフレームワークを活用すれば、AndroidとiOSで共通のUIを作成できます。
プログラミング言語はC#が主流ですが、各OSに用意されているJavaやObjective-Cなどで開発されたライブラリを呼び出すことも可能です。Visual Studioユーザーであれば無料で利用できるのも特徴です。
Androidアプリの開発環境④React Native
言語:JavaScript
開発元:Facebook
Facebook社が提供するアプリ開発環境で、「Instagram」「Skype」「UberEats」などの開発実績があります。Unityと同様のクロスプラットフォームで、AndroidかiOSかを問わずにアプリ開発が行えます。「ホットリロード機能」といってコードを保存するたびに自動でリロードしてくれる機能があり、UIを構築しやすいのも特徴です。
デメリットとしてはエラー箇所が少しわかりにくいほか、日本語のサイトがないので、トラブル発生時の対応に苦慮するかもしれません。
iOSアプリの開発環境
iOSアプリの開発環境といえば、純正の「Xcode」が主流ですが、ほかにも「Xamarin」「React Native」「Flutter」の3種類が利用されています。世界的な市場シェアはAndroidのほうが優勢ですが、日本ではiOSのほうが人気は高く、国内向けアプリの開発価値が高いといえるでしょう。
iOSアプリの開発環境①Xcode
言語:Swift/Objective-C/Java/C#
開発元:Apple
Apple社が公式にリリースしている信頼性の高い開発環境です。MacやiPhone、iPadなどApple製のアプリ開発に特化しているのが特徴です。動作確認やバグの検証、開発に使用する画像や音声の管理など、アプリ開発に必要な機能がセットになっており、App Storeから無料でインストールできます。
「Interface Builder」というGUIツールを使えば、マウス操作のみでテキストやボタンなどの要素を簡単に作成できます。なお、利用にはMacの用意が必要です。
iOSアプリの開発環境②Xamarin
言語:Swift/Objective-C
開発元:Microsoft
従来ではWindowsでiOSアプリを開発する場合、MacOS環境が不可欠でしたが、Visual Studio用のツール「Xamarin Live Player」を使えば、MacOSがなくともiOSアプリを開発できます。開発のほか導入・テスト・デバッグが行えるほか、Windowsで編集したプログラムを、パソコンにつないでいるiPhoneやiPadなどで確認することも可能です。
iOSアプリの開発環境③React Native
言語:JavaScript
開発元:Facebook
Androidアプリの開発環境でもご紹介したReact Nativeですが、クロスプラットフォーム開発が可能なため、iOSアプリの開発にも利用されています。大部分のコードをiOSとAndroidで共有できるほか、JavaScriptを習得していれば学習コストがかからないので、効率的に開発できるでしょう。
iOSアプリの開発環境④Flutter
言語:Dart
開発元:Google
Flutterは、Google社が無料提供しているアプリ用の開発環境で、Android/iOSに両対応したアプリを1つのコードで開発できるのが特徴です。2021年からはWebアプリやWindows/MacOS/Linuxにも対応しています。独自の作画エンジンでUIを構築するため、OSの違いに関係なく、共通のUIデザインを簡単に開発できるのもメリットです。
開発言語は2011年にJavaScriptの代替言語としてリリースされたDartという言語で、JavaScriptを使える方であれば理解しやすいでしょう。
クロスプラットフォームでのアプリの開発環境
以下では、クロスプラットフォームでのアプリ開発環境についてご紹介します。
クロスプラットフォームとは
「クロスプラットフォーム」とはAndroidやiOS、Mac、Windowsといった異なるOS上で動作するアプリを、1つのソースコードで実現するプログラムのことです。
アプリは基本的に動作させる環境を想定して開発するため、ある環境を想定して作ったアプリをほかの環境で動作させることはできません。しかし、最近ではスマホアプリもAndroid/iOSの両方に対応していることが多く、クロスプラットフォームでの開発が一般化しつつあります。
クロスプラットフォーム開発は、OSごとに別々のアプリを開発するのと比べて、開発コストや保守管理コストを削減できる点から人気を集めています。
クロスプラットフォームに対応したアプリ開発環境
クロスプラットフォームに対応した主なアプリ開発環境としては、アシアル株式会社が提供する「Monaca」が挙げられます。
Monacaは、初心者でも簡単にモバイルアプリを開発できるよう設計されたアプリ開発サービスです。開発言語にはWeb標準言語のHTML5/CSS/JavaScriptを採用し、JavaScript製のゲームエンジンが動作するためゲーム開発も可能です。
料金プランには非商用目的でのみ利用できる無料プランのほか、「Pro」「Business」「Enterprise」の3プランが用意され、いずれも14日間の無料トライアル期間が設けられています。それぞれ料金は以下の通りです(すべて税抜)。
- Pro:ユーザーあたり2,000円/月
- Business:ユーザーあたり5,000円/月+基本料金2,000円/月
- Enterprise:ユーザーあたり10,000円/月+基本料金50,000円/月
Azureの開発環境
「Microsoft Azure」はMicrosoft社が提供するクラウドサービスで、以下のようにさまざまな開発環境が備わっています。
OS環境
「Azure VM」は、本来はデバイスに組み込まれているOSをクラウド上に設定し、利用できるサービスです。1つのハードウェアから別のOSを用いて、クラウド上に構築された仮想マシンを操作できます。
ネットワーク環境
Azure VMを利用するには、「Azure Virtual Network(Vnet)」の設定が必要です。VnetはAzure内に仮想ネットワークを構築できるサービスで、オンプレミス環境から高いセキュリティ製を維持したままアクセスできます。
データベース環境
Azureのデータベース「Azure SQL Database」は、PaaSとして提供されているため、保守と管理をAzureに任せられます。Microsoft社が提供するデータベース「SQL Server」と互換性があり、SQL Serverからのデータ移行が可能です。
ストレージ環境
「Azure Storage」は、高い可用性と耐久性を備えながら、格納したいデータによってサービスを選択できる柔軟性も併せ持っています。ストレージの管理や保守はAzureが行うため、運用の負担を軽減できるでしょう。
まとめ
アプリの開発環境はAndroidとiOSとで異なりますが、クロスプラットフォーム開発に対応した開発環境を利用すれば、1つのソースコードでAndroid/iOSのアプリを同時に開発することが可能です。Microsoft Azureでもさまざまな開発環境を用意しているため、この機会にぜひ導入を検討してみてください。