iOSの開発言語、環境には複数の選択肢があります。以前から複数の選択肢があったのですが、最近はクロスプラットフォーム開発の一般化などの影響もあり、以前よりも選択肢の幅が広がっています。
開発の選択肢が増えるのは良いことですが、一方で選択肢が複数あることにより迷ってしまうという声もあるでしょう。もしくは、目的に対して誤った選択を取ってしまうかもしれません。
実際ゲームアプリを何も知らずにXcodeで開発しようとしてしまったという話を耳にすることもあります。そこで、iOSの開発言語、開発環境の種類や、どのような選択をすべきかなどについて解説します。
iOSの開発言語の選び方
iOSの開発言語の選び方の正解は、言語から選ばないことです。言語から選ばず何から選ぶかですが、それは後述する開発環境です。先に開発環境を選択し、その開発環境にあったプログラミング言語で記述するイメージです。
プログラミング言語から選ぶ考え方も決して間違いではないのですが、順序としては開発環境から考えた方がスムーズです。なぜなら先にプログラミング言語を決めると後から選択した開発環境に合わない可能性があるからです。
逆に開発環境から決めれば、それに合わせてプログラミング言語は自動的に決まります。
iOSの開発環境の選び方
iOSの開発環境の選び方として、対象OS、対象アプリ、開発経験の有無などが重要になります。まず対象OSがiOSのみであれば、他のOSを意識する必要がありません。そのため、クロスプラットフォーム開発などを意識しなくて良いことになります。
クロスプラットフォーム開発とは、複数のOSに対応するアプリケーション開発です。iOSとAndroidに対応するための開発として選択されるケースがあります。ただし複数OSを対象にする場合でも、クロスプラットフォーム開発が必ずしもベストというわけではありません。
むしろクロスプラットフォーム開発ではなく、個別のOSに対応して開発を進めた方が良いケースも多いでしょう。理由としては、各OSに対応する形で開発を進めた方が情報が多く、バグも少ないからです。
アプリ開発に慣れていない場合、クロスプラットフォーム開発は選択しない方が無難でしょう。次に対象アプリがゲームかどうかも重要です。ゲームアプリの場合は例外的にクロスプラットフォーム開発が推奨されます。
クロスプラットフォームにすることが目的なのではなく、クロスプラットフォーム環境であるUnityはXcodeよりもゲームアプリ開発に適しています。Unityはゲーム開発に使えるツール、UI操作が充実しているからです。
iOSの開発言語
次に、iOSの開発言語には具体的にどのようなものがあるのか解説していきます。
Swift
iOS開発の定番言語と言えばSwiftです。かつてiOSの定番言語と言えばObjective-Cだったのですが、そこからSwiftにトレンドが移行していきました。現状はObjective-CよりもSwiftが選ばれるケースが圧倒的に多いでしょう。
Swiftを使用際の環境はXcodeです。Xcodeというツール上で、Swiftというプログラミング言語を使ってコードを書いていきます。ゲームアプリ以外のiOSアプリを開発するなら、ほぼSwiftを使用すると考えて間違いありません。
ゲームアプリに関してはUnityを使用するので、プログラミング言語はUnityで使われるC#になります。
Objective-C
Objective-CはかつてiOS開発で主流だったプログラミング言語です。現状まったく使われていないわけではありませんが、新規開発ならObjective-CよりもSwiftが使われます。Objective-Cを使用するシチュエーションがあるとすれば、既存のiOSアプリの改修などでしょう。
リリースされてから期間が長いiOSアプリであれば、Objective-Cがベースになっている可能性も高いです。またObjective-Cで作られたiOSアプリをSwiftに書き変える案件などもあります。
個人のアプリ開発でこれからObjective-Cを使用することはないかと思いますが、Objective-Cが使われるプロジェクトなどはまだ存在するということです。
C#
C#はUnityで使われるプログラミング言語です。つまりiOSのゲームアプリ開発で使われるということです。Unityはクロスプラットフォームになっているので、iOSのアプリと同時にAndroidのアプリもリリースされるケースが多いです。
スマホアプリのクロスプラットフォーム開発は難易度が高いので基本的にはあまりおすすめではありませんが、Unityでのゲームアプリ開発は例外です。ゲームアプリに関してはXcodeにSwiftという組み合わせで開発すると難易度が急増するので、Unityから始めることをおすすめします。
言い換えれば、iOSのゲームアプリに特化して開発したい場合はSwiftは不要と言っても過言ではありません。SwiftではなくC#を習得するのが圧倒的におすすめです。
HTML,CSS,JavaScript
HTML,CSS,JavaScriptはWebアプリ開発で主に使用する言語です。iOSのアプリ開発ではあまり使われないのですが、Webアプリをメインにする場合は話が別です。イメージとしては、Webアプリをメインにして、一緒にiOSのアプリとしてもリリースする形です。
その場合はHTML,CSS,JavaScriptでアプリ開発を進めることになるでしょう。ただしこれらの言語はWebページの表面を実装するものなので、内部の処理には別の言語を使用することになります。少なくともHTML,CSS,JavaScriptはiOSアプリ単体で開発する場合にはあまり使用しません。
Ruby
RubyもWeb開発で頻繁に使われる言語で、主にサーバーサイド、つまり内部の処理の実装に使われます。WebアプリがメインでサブでiOSアプリをリリースするような場合には使用されますが、iOSのアプリがメインの場合はあまり使われないでしょう。
Python
PythonはWeb開発やAI開発で使われるプログラミング言語です。iOSアプリにもAIを活用したものがあり、そういった場合にPythonが使われるケースがあります。またはPythonで開発したWebシステムなどをiOS用にもリリースする場合にはPythonが使われます。
一般的なiOS開発では、Pythonもあまり使われることのないプログラミング言語です。
Dart
Googleが2018年12月にFlutterというモバイルアプリ用のフレームワークをリリースしました。このフレームワークはiOSとAndroidの両方に対応しています。このFlutterで使われているのがDartです。
Dart自体はあまり知名度が高くない言語で、Flutterもまだ情報が少ないです。そのため、特にアプリ開発の初心者であまり手を出さない方が無難です。まずは情報の多いXcodeかUnityを選択するのが良いでしょう。
ただしある程度アプリ開発に慣れてきたらFlutterを使ってみるのもありで、また時間が経てばFlutterの情報が増えて使いやすくなる可能性があります。
iOSの開発環境
次にiOSの開発環境について解説します。上でご紹介したプログラミング言語の話と連動しています。なぜなら、開発環境を選ぶと自動的にプログラミング言語も決まってくるからです。
Xcode
XcodeはiOSアプリ開発の定番中の定番の開発環境です。iOSアプリの大部分はXcodeが使われていると言っても過言ではなく、iOSアプリ開発の初心者は特に真っ先に選択すべき開発環境でしょう。
Xcodeを使うにはMacのパソコンが必要になりますが、他の開発環境を使ってもビルドやリリースの段階でMacのパソコンは必要になります。そのためどうせなら最初からMacのパソコンで開発することをおすすめします。
ただし例外的にXcodeを使わない方が良いケースもあります。それはゲームアプリの開発です。上でもご説明しましたが、ゲームアプリの開発であればiOSでもAndroidでもUnityを使用するのがおすすめです。
Visual Studio
Visual StudioはMicrosoft社によって開発された総合開発環境です。つまり主にWindows用の開発環境なのですが、AndroidだけでなくiOSのアプリ開発にも対応しています。
Visual Studioを使えばWindows環境のみでiOSアプリを開発できるように思えますが、ビルドやリリースではMacのパソコンが必要です。つまりVisual StudioでiOSアプリを開発しても、最終的にはMacのパソコンを用意することになるのです。
そしてiOSアプリの開発ならXcodeの方がツールとして使いやすいので、Visual StudioよりもXcodeをおすすめします。Visual Studioがおすすめのシチュエーションがあるとすれば、WebアプリやAndroidがメインの場合でしょう。
サブとしてiOSアプリを開発するなら良いですが、iOSアプリがメインの場合はXcodeの方が良いです。
React Native
React NativeはFacebookが開発したフレームワークです。iOSにもAndroidにも対応しています。クロスプラットフォーム開発ツールの一つなのですが、基本的にはクロスプラットフォーム開発に手を出すのはあまりおすすめではありません。
情報が少ないことと、結局それぞれのOSごとにコードを書く必要がある部分が出てくる、バグが生じやすい、といった理由があるからです。アプリ開発に慣れていればクロスプラットフォーム開発も良いですが、最初からチャレンジするのは推奨されません。
AndroidとiOS両方のアプリを開発したい場合も、まずは別々に開発することをおすすめします。
Unity
Unityはゲーム開発用のクロスプラットフォーム環境で、言語はC#が使われます。ゲームアプリを開発するなら、OSに関わらずUnity一択と言えるでしょう。iOSのゲームアプリ開発で誤ってSwiftから始めてしまったという情報をたまに目にしますが、Unityから始めるのが正解です。
もちろん絶対にUnityでなければならないというわけではないのですが、UI操作だけで実装できる部分がかなり多いです。Xcodeではそのようなことはできないので、圧倒的にハードルが上がります。
特別な理由がなければなるべくUIで実装していって、足りない部分をプログラミングするやり方がもっとも効率的です。そのためゲームアプリ開発ならUnity一択と言えるのです。
まとめ
iOSの開発言語、開発環境の種類や選び方について解説します。細かいものまで上げると今回紹介した以上にたくさんあるのですが、実際のところ取るべき選択肢はそれほど多くないでしょう。
初心者のうちは特にゲームアプリ以外でクロスプラットフォームは選択しないとなると、必然的にXcodeにSwiftという選択になってきます。ゲームアプリの場合は特別な理由がない限りUnity一択なので、迷うことはないはずです。
アプリ開発に慣れてきたら自由に環境や言語を選択すれば良いので、最初はなるべく王道の環境、言語を選択するのがおすすめです。理由としては使いやすいからこそ多くの人に選ばれていて、またその結果情報も多くなっています。
プログラミングをしていると100%エラーやバグに遭遇し、その都度情報を調べて解決していく必要があります。多くの人が使っているということはそれだけ情報も多くなるので、王道に乗っていくことをおすすめしています。
監修者
-
エンジニア経験0の状態から1年間独学で勉強して独立
さまざまなiOSアプリの開発に携わる
2021年6月にiOS専門のオンラインプログラミングスクール「iOSアカデミア」を開校。iOSエンジニアを目指す人のサポートにも力を入れています