悩みに悩んだ結果、選ばれたのは。
そろそろ本格的にアプリを作ることを考えます。
UIなんかは個別で作るとして、塗り絵部分は共通で作りたいので、クロスプラットフォームのフレームワークを調査してみました。
調べれば調べるほどたくさん出てきて、迷ってしまいますね。
3Dゲームを作るなら迷わずUnityなんですが、今回は2Dな上にお絵かきツール。有力候補はCordovaかXamarin。今旬のXamarinを使ってみたい気もしますが、なんとなく先行き不明な感じが。。。
いつまでも、ダラダラ悩んでいても仕方ないので、そろそろ決めます!
ズバリ!「Xamarin」でいきます!!
あー。。。決断までにかなり悩みました。決め手はこちらの記事。
このブログを書き始めた最初の頃は、HTML5つまりCordovaで行く気満々だったのですが、他のツールを調べていくうちに、Xamarin、今、アツいんじゃね?ってなりまして。
でも、実際のところどうなん?って悩んでたんですが、せっかく無料で使えるようになったんだし、これを期にやってみない手はないかと。
Cordova使う気満々で、JavaScriptで塗り絵のwebアプリとか作ってみたのに、結局使わないという。まあ、どの言語で書いてもロジック的には大差ないので、全く無駄ではないと思いたい。
iOS、Andoridだけでなくwebアプリも一緒に開発するならCordovaもありかも。
開発ツールあれこれ比較してみました。
スマホアプリを作るといえば、iOSならswift,Androidならjavaという風に、あらかじめプログラミング言語が決まってきます。(iOSにはobjective-C,AndoridoにはKotlinとかもあります)
そのまま、その言語で作り始めても良いのですが、今回みたいに共通な処理をさせたい場合、それぞれ別々に作ってしまうと倍の時間がかかる上に、仕様の統一が難しくなってしまいます。
そこで、塗り絵部分を共通化させるという手法をとります。俗にクロスプラットフォーム開発と言うヤツですね。最近ではハイブリッドアプリと言って、webアプリをネイティブで動かすというのもあります。
クロスプラットフォーム開発には色々な手段がありますが、メジャーなところだとこんな感じです。ほぼ主観でしかありません。こういうのは好みの問題なので、私の好みの話だと思ってください。
- Unity
- 言語:JavaScript もしくは C#
- ゲームを作るなら最強だと思う。特に3Dに関しては、難しい物理演算なんかも、簡単に制御できてしまう。3Dゲームを作るなら考慮に入れるべきツール。
- 逆に2Dの場合、メリットは少なめかと。デメリットもないとは思いますが。
- 制限はあるけど、だいたいは無料で使えます。アセットストアも魅力的。
- Cocos2d-x
- 言語:C++ , JavaScript もしくは Lua
- 名前の通り2Dゲームを作るためのツール。超メジャーなツールなんだけど、私は使ったことないです。
- 以前はゲーム作るならコレしかない!くらいの勢いでしたが、最近はどうなんでしょう?
- オープンソースなので、無料で使えます。
- adobe AIR
- 言語:ActionScript
- いわゆるFlashです。昔からFlashアニメーションとかやっている人ならとっつきやすいのでは。
- 2Dゲームとか作れると思います。
- 無料で使えるAdobe AIR SDKやFlashDevelopで開発できます。
- Flashといえば、Adobe製品のFlash Builderですが、多分有料。CriativeCloudの人は使えますが、使ったことないな。。。
- cordova
- 言語:HTML5とJavaScriptとCSS
- HTML5でハイブリッドなアプリを作るのに有名なツール。これを使うとカメラとかのスマホの機能を使えるようになります。
- マイクロソフトのVisual Studio Codeがプラグイン対応ししているので、そちらで開発することも可能。開発環境ではMonacaが有名。
- webプログラマがアプリを作るには一番親しみやすいかも。
- Xamarin
- 言語:C#
- 今年(2016年)にマイクロソフトに買収され、ライセンスが無料になった事により、注目度アップ!さらにVisual Studioに付属される事になりました。.Net開発者には一番とっつきやすいかも。
- Xamarinで開発したライブラリはネイティブで使えないらしい。残念。
他にもDelphiとかCoronaとかCaedeとか、挙げだすとキリがないですが、語れるほどの情報を持っていないので割愛。
ツールとひとくくりに書きましたが、リストに挙げているのはフレームワークと言われるものです。フレームワークと開発環境がセットになっていたりしますが、cordovaやXamarinのように複数の開発環境で使用できるフレームワークもあります。
自分でも書いてて、ごっちゃになってる気がしたので。
開発環境、IDE(統合開発環境)ていうのは、プログラムを開発するための道具を一つにまとめたものだと思ってください。プログラムを記述するためのエディタ、コンパイルするための環境、デバッグやシミュレーションするためのツールなどがセットになっています。開発環境がない場合は、自分でエディタやコンパイラを用意する必要があり、とても大変です。
フレームワークというのは、説明が難しいのですが、プログラミングのための土台だと考えています。開発するために必要なライブラリなんかをまとめたものというか。うーん、やっぱり説明は難しいですね。ある目的のためによく使う関数なんかをあらかじめ用意しておきました的なイメージなんですが、違いますかね。今回の場合だと、iOS/Androidアプリを開発するためのアレコレを用意してくれているもの、という感じです。
そんなこんなで、悩みに悩んだ結果、Xamarinに挑戦してみることになりました。
コメント