今年初めてのブログなので、今年の抱負とかを書こうと思ったのですが、昨年の後半はスマートフォン・アプリを作ろうと思っていろいろ検討してきたので、そのメモをしておきます。
Cordova
PhoneGap といった方が有名ですが、HTML+Javascriptの技術を使って、iPhone/Androidのネイティブアプリケーションの開発が可能になります。以前に使ってみたときには、デバッグがしづらいと思っていたのですが、Microsoft から Visual Studio Tools for Apache Cordova が公開されて、開発がすごく楽になっています。Webアプリにプッシュ通知だけをつけたい場合のように、少しだけネイティブの機能を追加したい場合には適していると思います。
Visual Studio Tools for Apache Cordova は、VS の Express ではインストールできません。しかし、昨年の11月に個人や5人以下の企業向けに Visual Studio Community 2013 が公開され無料で利用できるので一度試して見るといいと思います。
Xamarin
Xamarin は、C#やF#といった.NET系の技術を用いてiPhone/Android のアプリ開発を可能にするクロスプラットフォームツールです。Xamarin 自体は、各プラットフォームの API の薄いラッパーで、アプリのUIを作る場合には各プラットフォームのことを知っていないと作れないのでかなり苦労しています。Model の部分は共通で使えるので、アプリ側で多くのロジックが必要な場合には適していると思います。
昨年の5月に公開された Xamarin.Forms は、UI 部分も共通化しようというもので魅力のある製品ですが、実際に使ってみるとまだまだベータ状況という感じがしています。製品として早く成熟して欲しいと思っています。
Swift
iOS のソフトらしいヌルヌル動作するアプリを作りたければ、Apple 純正の Swift を使うのがいいようです。C# を知っていれば Objective-C よりはモダンになっているのでかなり取っつきやすいと思います。Apple が Swift を公開したことに対して、また独自の言語を開発してという非難をする人がいますが、iOS の特徴を生かすための言語が必要というのはやむを得ないことだと思います。
ベストな開発環境を確認するのはその環境を熟知していないと無理なので、結局は自分の能力や作りたいアプリの特徴に応じてだいたいのところで選択するしかないというのが実態のようです。今年は、Webアプリのスマートフォンアプリ版を作りたいと思っていますが、最初は、Xamarin から始めようと思っています。最終的にはどうなるかはわかりませんが、ぜひ公開できるようにしたいと思っています。
Xamarin から始めようと思っているのは、現在は ASP.NET MVC で Web サイトを作っているためです。Cordova を使うためには、Razor が使えなくなって、HTML + CSS + JavaScript だけで画面を作る必要があります。そういう制作方法に変更してもいいとは思うのですが、Xamarin であれば、WebView で Razor も使えるので Web アプリと iOS/Android アプリの共通部分を増やせるのではないかと思っています。