楽に複数OSに対応したアプリを作りたい
究極の楽といえば「誰かに丸投げ」or「宝くじ当てる」の二つである事は明白であるが、これを言った所で叶える人脈も運も無い、素敵な物は欲しいけどあんまり売って無いから好きな歌を歌う、という訳にも行かないのが現状である。皆様如何お過ごしだろうか。
アプリも作らずに調査をしていたここ数週間だった。具体的には、一つのプログラミング言語で複数OSに対応したアプリを作る為に何が必要かを調査していた。そこで今回はその調査の結果を報告したいと思う。
複数のOSに対応するために必要な事
異なるOS上で同じ物を動かすプログラムの事を「クロスプラットフォーム」と言うらしい。このクロスプラットフォームを実現する為には何を使えば良いのかを挙げていく。
・Unity
2D/3Dゲームエンジンである。iOS、Android、パソコンOSのアプリを書き出す事が出来る。Unityアプリという物があり、個人であれば無料で利用する事が出来る。言語はC#を利用する。
・Xamarin
Microsoftに買収された企業が開発した.NET環境である。iOS、Android、UNIX系のパソコンOSのアプリを書き出す事が出来る。Macでは「Xamarin Studio」を、Windowsでは「VisualStudio」というアプリを利用する。こちらも条件があるが、個人であれば無料で利用する事が出来る。こちらも言語はC#を利用する。
・Multi-OS Engine(MOE)
Intelが考えたクロスプラットフォームのライブラリである。iOS、Androidといったモバイル系OSのアプリを書き出す事が出来る。AndroidStudioにプラグインをインストールして利用する。言語はJAVAまたはKotlinを利用する。
・Scade(まだベータ版)
彗星のごとく表れた(と自分では思っている)開発環境である。iOS、Androidといったモバイル系OSのアプリを書き出す事が出来る。Scadeというアプリをインストールして利用する。言語は何とSwiftを利用する。
クロスプラットフォームを実現する為には4つの方法を取る事が出来る事が分かった。
じゃあ実際に何を使うの?
ではどれを採用するのか?ここで自分のスキルを整理してみようと思う。
C言語:やった事ある 最初に触った言語
Swift:やったことあるしアプリも出した
JAVA:やった事あるけどコードを見ると殺意が沸く 苦手
Kotlin:本を読んだ程度 Swiftに近いと言うのは知ってる
C#:Unityやった時に本当にちょっとだけ触った
そして前項で挙げたクロスプラットフォームを表に整理してみるとこうなる。
Multi-OS Engineは使うにはちょっとリスクがデカイ気がする。ScadeはSwiftを使えるのは利点だが、ベータ版である事と日本語資料が全く無いのがちょっと厳しい。残るはUnityかXamarinの二つなる。ゲームはUnity、その他のアプリはXamarinとするのが良いと思う。日本語資料も沢山ある。しかし、C#をほとんど扱った事が無い事が足枷になるのは間違いないだろう。うーん・・・。
決めた!!
ゲームUnity、ツールアプリXamarinで作成、C#は本を見ながら勉強すれば良いという結論にした!!というのも理由がある。こんな資料が発売されたからである。
↑本の画像が何故か出ません。すみません。↑
Xamarinエキスパート養成読本 (Software Design plus)
- 作者: 養成読本編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2017/03/25
- メディア: 大型本
- この商品を含むブログを見る
養成講座の方は発売日に手に入らなかったので詳細は見ていないが、日本語資料として本があるのは非常に有り難いし、家の最寄り駅の本屋にピンポイントで置いてあったのは運命だと感じたので、C#も使える様にすれば、モバイルOSだけでなく、パソコン用のOS対応にも活きると思ったのだ。try!Swiftに参加したのだから、Scadeを取ると思った貴方、残念!実は長い長いインストールと設定作業を乗り越えて使ってみたのだが、何故か一部強制終了になってシミュレータが動かなかったりするので、安定化するまではちと怖いなと感じたのだ。でも期待はしているので是非とも成功して欲しいと思っているのは本当である。
長々と書いたが、同じく楽をしてマルチプラットフォーム対応したという方の参考になれば幸いである。販路広げてみんなで売れようぜ!!