iOSアプリの開発にはMacのパソコンが必要不可欠という声もあれば、Windowsでも開発は可能という声もあります。実際のところどうなのでしょうか。またiOSをWindowsで開発する話でよく名前が出てくるのがXamarinです。
そこで、iOSアプリをWindowsで開発することは可能なのか、Xamarinとはどのようなものか、などについて解説します。
WindowsでiOSのアプリ開発は可能?
結論として、WindowsでiOSのアプリ開発をすることは可能です。しかし、推奨はしません。厳密に言えばWindowsのOS上で開発するのではなく、仮想環境にMacOSの環境を作り、そこで開発するような形になります。
このような設定を行うのは難しく、できたとしても開発途中で不具合が発生する可能性も高いです。そのため、初心者は特にWindowsでiOSアプリを開発することは推奨されません。
WindowsでXcodeを使うことはできる?
WindowsではiOSのアプリを開発できないということでしたが、なぜできないのか疑問に思っている方も多いでしょう。その理由は、WindowsではXcodeを使うことができないからです。
iOSのアプリ開発と言えばXcodeを使用するのが一般的で、ゲームアプリ以外はほぼXcodeの環境で開発されていると言っても過言ではありません。このXcodeがWindowsに対応していないので、Xcodeが対応しているMacのパソコンを使用するしかないということです。
しかし、それならXcode以外のツールを使えばWindowsでもiOSのアプリを開発できるのではないか、という疑問が出てくるかもしれません。具体的には、Xamarinが挙げられるでしょう。
Xamarinとは
Xamarinとは、クロスプラットフォーム開発ができるツールです。クロスプラットフォーム開発とは、複数のOSに対応する開発のことです。たとえば一つのゲームアプリを作ったら、それがiOS、Android、Windows、など幅広いOSに対応します。
もちろんOSごとに個別に実装しなければならない部分もありますが、共通のコードで済む部分も多いです。またXamarinはWindowsでもMacでも使えるツールで、この点もXcodeとは異なります。
ではXamarinを使えたWindowsだけで開発ができ、さらに複数のOSに対応するアプリを作れるのではないかと思われる方が多いでしょう。
XamarinならMacなしでもiOSアプリを作れる?
Xamarinはクロスプラットフォームに対応していてさらにWindowsでも開発ができるため、これを使えたMacなしでもiOSアプリを作れるのではないかと思われるでしょう。結論としては、Xamarinを使えばWindowsのみでiOSアプリを途中までは作れます。
なぜ途中までなのかというと、WindowsのパソコンではiOSアプリのコンパイルを含めたビルドができないからです。ざっくりと言えば、書いたコードをコンピューターが処理できる状態にできないということです。
プログラミングで書かれたプログラムはあくまでも人間が理解しやすい形に作られたもので、これをコンピューターが理解するためには2進数に変換する必要があります。2進数とは、0と1の組み合わせです。
コンピューターは画面上で書かれたプログラムを最終的に2進数に変換して処理しているのです。2進数に変換できないということは、プログラムを書いてもコンピューターは動かないということです。
Xamarinを使えばMacなしでiOSアプリのコードを書くことはできますが、実際に動く形にはできません。それなら最初からMacのパソコンでコードを書いた方が効率的でしょう。
ちなみにUnityでゲームアプリを作る場合も同じで、iOSアプリとして動く状態にするためにはMacのパソコンが必須です。Android用のアプリはWindowsでもMacでも開発できますが、iOSアプリはどのような形であれば最終的にMacのパソコンが必要になります。
Xamarinでの開発はおすすめできる?
Xamarinで開発した場合にもMacが必要ではあるものの、クロスプラットフォーム開発自体は便利です。ではXamarinでの開発がおすすめかというと、アプリ開発初心者には特におすすめはできません。
なぜなら、Xamarinを含めたクロスプラットフォームのツールに関する情報は少なく、また不具合が生じる可能性も高いからです。現状はiOSとAndroid両方のアプリが必要な場合、別々の環境で実装するのが一般的でしょう。
iOSは環境がXcode、プログラミング言語がSwift、Androidは環境がAndroid Studio、プログラミング言語がKotlinです。環境も言語も異なるので手間はかかりますが、設計は類似します。
別々のアプリを2つ開発するよりは労力が少ないため、デメリットを考慮するとこのような選択になります。ただし例外もあって、それはゲームアプリです。ゲームアプリの場合そもそも自力ですべて実装するのは困難で、ツールの力をフル活用してアプリ開発を行うのが一般的になります。
具体的にはUnityというツールを活用します。Unityはたとえばオブジェクトの配置や簡単な動きの設定ならUI操作だけで作りこめるので、ゲームアプリ開発では王道のツールです。
そしてUnityはクロスプラットフォームに対応しています。iOSとAndroidの両方に対応するゲームアプリを開発できるので、その点でも利便性が高いツールと言えます。Unityはクロスプラットフォームに対応しているから使用するというよりは、たとえばiOS、Androidのゲームアプリを単体で開発する場合にも利便性の高いツールです。
開発の利便性の高いツールを使ったらついでにクロスプラットフォームにも対応しているということなので、ゲーム以外のアプリをクロスプラットフォームで開発するのとは意味合いがまったく異なります。
ゲームアプリならUnityでクロスプラットフォーム開発するのが効率的ですが、ゲーム以外のアプリはiOS、Androidそれぞれの環境で開発するのがおすすめです。
iOSのアプリ開発にはMac!
iOSのアプリ開発は途中まではWindowsでもできるということでしたが、最初からMacを使用し、Xcodeの環境で開発するのがおすすめです。Xamarinなどクロスプラットフォームでの開発は、Xcodeに慣れた後にした方が良いでしょう。
情報も少なく難易度が高いです。ゲームアプリの場合はXcodeではなくUnityで開発するのがおすすめですが、この場合もiOSのアプリを開発するならMacを使用した方が良いです。
ビルドの段階でMacのパソコンが必要になり、コードとビルドの端末を分けるのはあまり得策ではありません。Unityを使ってAndroidのゲームアプリのみを開発するならWindowsでも問題ありませんが、iOSのゲームアプリ単体、もしくはiOSとAndroidに対応したクロスプラットフォーム環境で開発するならMacのパソコンを用意することをおすすめします。
まとめ
WindowsでiOSアプリを作れるのは途中までで、最終的にはMacのパソコンが必要です。今回ご紹介しなかった方法でできなくはないのですが、高度な方法になります。少なくとも既存の開発ツールを使用するだけではMacは必要になるので、ゲームアプリでもその他のアプリでもMacのパソコンを用意するしかないでしょう。
またゲームアプリ以外ではクロスプラットフォーム開発はあまり推奨されておらず、Xcodeで開発することをおすすめします。ゲームアプリに関しては逆にXcodeよりもUnityによる開発がおすすめです。
Unityはクロスプラットフォームですがこれは結果論で、Unityの機能の充実性がおすすめされるポイントになります。ゲームアプリとそれ以外ではおすすめの開発環境や流れがまったく異なるので、別物とお考え下さい。
iOSエンジニアになりたい方に向けて
iOSアカデミアでは、学習計画の立案から、基礎学習、応用学習、そしてポートフォリオの完成まで、メンターと一緒に最短12週間で完成させることができます。
オンラインスクールであることで高いコストパフォーマンスを実現しつつ、チャットやビデオ通話での指導で安心して学習を進められます。
プログラミング学習は暗中模索状態になってしまうことが多く、ここで挫折をしてしまいがち。その都度メンターに相談し、解決することで独学に較べて圧倒的なスピードで進むことができます。
iOSエンジニアは、これからの将来性の高さや市場価値などを考えると「今から目指すのがベストなタイミング」であると言えます。
ぜひiOSアカデミアで学び、iOSエンジニアへの転職を実現させてください!
監修者
-
エンジニア経験0の状態から1年間独学で勉強して独立
さまざまなiOSアプリの開発に携わる
2021年6月にiOS専門のオンラインプログラミングスクール「iOSアカデミア」を開校。iOSエンジニアを目指す人のサポートにも力を入れています