プログラミングを始めるきっかけは人により様々です。ただし最近では「スマートフォンアプリを開発したい」という想いから、プログラミングを始める人が多いように感じます。では、今までプログラミングに触れたことが無かった人が、アプリ開発ができるようになるためには、何から始めればよいのか?本稿では、アプリ開発に必要なプログラミングの選び方についてご紹介します。
iOSとAndroidの違い
スマートフォンのオペレーティングシステム(以下OS)として主流なものが「iOS」と「Android」です。iOSはAppleが開発しているスマートフォン向けのOSであり、AndroidはGoogleが開発しているスマートフォン向けOSです。日本ではiPhoneが圧倒的に多いので、iOS向けのスマートフォンアプリを開発したいという方が多いかもしれません。
各OSには開発環境に大きな違いがあります。まずiOSはApple製品ということも、アプリ開発にはMac(Appleが製造販売するパソコンシリーズ)が必要になります。WindowsはもちろんLinuxといった、Mac以外のコンピューターでiOS向けのスマートフォンアプリは開発できません。
iOS向けのスマートフォンアプリを開発するには「Xcode」というツールが必要であり、このツールはMacにしかインストールできない仕様になっているのです。ちなみにXcodeはAppStoreから無料でダウンロードできます。
一方、Android向けのスマートフォンアプリを開発するにあたり、OSは関係ないのでWindowsでもLinuxでも、Macでもアプリ開発が行えます。必要なのは「AndroidStudio」というツールであり、XcodeのAndroid版というわけです。ただし、AndroidStudioを正常に動作させるためには、メモリが最低3GB~8GB、Androidエミュレーター用に1GB、ストレージが最低2GB~4GB、ディスプレイは1,280×800という環境が推奨されています。なので、厳密に言えばどんなコンピューターでもAndroid向けスマートフォンアプリが開発できるわけではなく、これらの要件をクリアしている必要があります。
プログラミング言語の分類
アプリ開発にプログラミングが必要なことはもはや説明もないでしょう。では、そのプログラミングを行うためには何が必要なのか?答えは「プログラミング言語」です。正確にはプログラミングを行うための開発環境も必要になりますが、アプリ開発初心者がまず知るべきなのはプログラミング言語の分類です。
プログラミング言語はコンピューターに指示を出すための言葉であり、プログラミング言語を記述することで、スマートフォンアプリを作ることができます。このプログラミング言語は大まかに「スクリプト言語」と「コンパイラ言語」に分類されます。
スクリプト言語
記述したソースコードをその場で機械語に翻訳し、プログラムをすぐに実行できるプログラミング言語を指します。
コンパイラ言語
記述したソースコードを、事前に時間をかけてコンパイル(機械語に翻訳)する必要があり、スクリプト言語よりも動作が早くなるプログラミング言語です。
どちらのプログラミング言語も一長一短ありますが、アプリ開発初心者がプログラミングを学ぶのであれば、記述したソースコードがその場で実行され、その結果が確認できるスクリプト言語から学習することをおすすめします。
プログラミング言語の種類
それでは、アプリ開発にあたって数あるプログラミング言語を紹介していきたいと思います。それぞれの特徴と、対応表も併せて紹介しますので、好きなプログラミング言語から学習していきましょう。
Java(ジャバ)
米国のサン・マイクロソフト(現Oracleに買収)という企業によって開発されたプログラミング言語であり、非常に汎用性が高いことからアプリのみならずTV、家電、銀行システム、宇宙開発など幅広い分野で使用されています。コンパイラ言語なので学習難易度は高いでしょう。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
〇 |
× |
× |
〇 |
× |
JavaScript(ジャバスクリプト)
Javaとはまったく違ったプログラミング言語であり、マウスに乗せたボタンの色が変わったり、ポップアップが出現したりと、主にWebサイトやWebサービスに動きを持たせるためのスクリプト言語です。Web開発者にとっては欠かせないプログラミング言語となっています。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
△ |
〇 |
〇 |
× |
× |
Swift(スウィフト)
2014年にAppleが開発したプログラミング言語であり、iOS向けスマートフォンアプリの開発や、Mac向けのアプリなどを開発するためのものです。従来は「Objective-C」というプログラミング言語を使用していましたが、よりシンプルな開発が可能になっています。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
〇 |
× |
× |
× |
× |
Ptyhon(パイソン)
現在最も人気のあるプログラミング言語であり、ソースコードが非常にシンプルで文量も少なく、誰が書いても同じソースコードになるため読みやすいという特徴があります。YouTubeやEvernoteといった大手Webサービスにも使われています。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
× |
〇 |
× |
× |
〇 |
Ruby(ルビー)
まつもとひろゆき氏という日本人が開発したプログラミング言語です。世界中で使用され、プログラミング教育にもよく使われています。2004年に開発されたアプリ開発のフレームワークである「Ruby on Rails」があれば、Webアプリ等を簡単に開発できます。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
〇 |
〇 |
× |
× |
× |
Scala(スカラ)
「オブジェクト指向言語」と「関数型言語」から成る比較的新しいプログラミング言語であり、Javaがベースになっているので、Javaでできることはほとんど可能です。コンパイル言語なので学習難易度は高めです。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
〇 |
〇 |
× |
〇 |
× |
PHP(ピーエイチピー)
Webアプリケーション開発において長年現役を貫いているプログラミング言語です。ほぼすべてのWebアプリケーションが開発可能であり、WordPress等もPHPで作られています。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
× |
〇 |
〇 |
× |
× |
R(アール)
統計分析に特化したプログラミング言語であり、スマートフォンアプリやWebサービス等の開発はできません。ただし、統計データの分析および解析においては使い勝手が非常に良く、統計分析においてはPythonよりも有利です。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
× |
× |
× |
× |
× |
※統計データの分析および解析が可能
C#(シーシャープ)
プログラミング言語の祖でもありC言語をベースに、Microsoftが開発したものです。VR開発では主流のプログラミング言語であり、Javaと類似している部分も多いため、C#とJavaの学習は同時に進められることが多いでしょう。
アプリ開発 |
Webサービス |
Webサイト |
業務システム |
AI |
〇 |
〇 |
× |
〇 |
× |
アプリ開発に最適なプラットフォームを選ぼう!
いかがでしょうか?同じアプリ開発が行えるプログラミング言語でも、種類によって特徴は違います。開発したいスマートフォンアプリから自分に合ったプログラミング言語を考え、どんどん学習していきましょう!
ちなみに、アプリ開発のプラットフォームとしてAzure Kubernetes Service を使用することで、コンテナー化されたワークロードのデプロイ、スケーリング、管理を自動化することができます。
アプリ開発もAzure Kubernetes Serviceで効率化し、素早い開発環境を整えて、スマートフォンアプリをいち早く製品化しましょう!