個人的なメモ

Tomohiro Suzuki @hiro128_777 のブログです。Microsoft MVP for Developer Technologies 2017- 本ブログと所属組織の公式見解は関係ございません。

Xamarinを始める前に知っておきたいこと。 Xamarinで何が時短できるのか? ①知識の習得を時短!

JXUGC #13 東京 緊急開催 Xamarin のすべて!でお話した内容ですが、限られた時間でうまくお伝えできたか不安な部分を再度ご説明したいと思います。

セッションのスライドはここです。

Xamarin で iOS, Android のアプリを開発しようとするとき、既に、Objective-C, Swift や Java での開発経験があれば時に問題にはなりませんが、Xamarin を使う動機自体が「モバイル開発自体が初めて!」であったり、「Objective-C, Swift や Java はよくわからないけど、モバイルでの開発をやってみたい!」である方も多くいらっしゃると思います。(実際、私自身が Xamarin を始めた理由がまさにそれでした。)

その場合、ネイティブ開発と比べて Xamarin のどこにアドバンテージがあるのかをご説明したいと思います。

最初に明言しますが、C# の経験がある方であれば、Xamarin を使うことで大幅な時短が可能です。

いくつかの観点から時短ができるのですが、最初に知識の習得における時短ポイントをご説明します。

まず、各プラットフォーム個別、Xamarin Native, Xamarin.Forms で必要となる知識をまとめました。

f:id:hiro128:20160509182356p:plain


1. プラットフォーム個別

当然ながら、各プラットフォームのAPI, 言語, 統合開発環境の知識がすべて必要となります。
すでにどれかのプラットフォームの開発を習得済みであれば、有用な選択です。
ですが、これからモバイルを始めるにはあまりに習得に時間がかかりすぎます。


2. Xamarin Native
開発は Visual Studio で行なえるので、Xcode, Android Studio の習得がほぼ不要になります。
現実には多少必要になる部分がありますが、本格的に調べなくても、ちょっとググればどうにかなる程度で済みます。
この「習得」と「ちょっとググればどうにかなる」との違いは「時短」という観点で考えた場合、とてつもなく大きな差です。

各 API の習得は必要ですが、これも、やりたいことをググれば、Objective-C や Java の情報がすぐヒットします。「え、それでは Objective-C や Java の知識は必要なのでは??」と思われるかもしれませんが、そこが Xamarin のすばらしいところです。Xamarin Native の API はすべて Objective-C や Java に「きれいに合わせてあります」つまり、Objective-C や Java の情報をそのまま文法だけ C# に変換すれば、それがXamarin Native のコードになるのです!つまり、ここも「習得」しなくても「ちょっとググればどうにかなる」のです。


3. Xamarin.Forms

Xamarin.Forms では、Xamarin Native のアドバンテージはすべて享受できます。Xamarin.Forms 自体の習得は必要ですが、UI コードの共用化によって、モックアップの作成程度でしたら、各 API の習得が不要になります。ただし、実戦投入するなら、 Xamarin.Forms がどのようにネイティブ UI をレンダリングしているのかを理解することが必須となるため、Xamarin.Forms 自体の習得に加え、各 API の習得が必要となります。


つまり、知識の習得を最小にしたいなら Xamarin Native ということになります。ですが、ここは後ほど詳しくお話しますが、技術に対する投資価値まで考慮すると、Xamarin.Forms の方がアドバンテージがあります。
どちらを選択するかは、チームが開発効率を重視するのか、技術の自体への投資も考慮するのか、といったところで判断するのがよいのではないかと思います。

今回はここまでです。


次の記事、「Xamarinを始める前に知っておきたいこと。 Xamarinで何が時短できるのか? ②開発工数を時短!」はこちらです。