最初にこの記事で伝えたいことを述べると、
「Xamarin.Formsアプリ(Android)は実機での起動の遅さがやや気になるレベルっていうデメリットがあるよ!」
ということです。
※2018/02/23の最新版の時点の話
前置き
趣味でアプリを開発しているのですが、最近クロスプラットフォームというのに興味を惹かれています。
スマホアプリ開発してる人はわかると思うんですが、1つのプラットフォームでこれいいな!ってアプリができても、 Android ⇄ iPhone の移植がめんどくさいんですよね。
しかしクロスプラットフォーム開発ならその手間が省けるのではと思い立ったわけです。
調べてみると、現在のクロスプラットフォーム開発での主流の1つにVisual Studioを用いたXamarin.Formsってのにたどり着きました。
メリットとしてはもちろんクロスプラットフォーム開発ができる。
デメリットはJavaやSwiftなどと比べて参考になるサイトが少ないことらしい。
参考にできるサイトが少ないとはいえ、メリットが大きすぎるので実際に動かしてみました!
参考にしたサイト様↓
XamarinでHello World
簡単にエミュレータで起動するとこまで行けるのはいいですね。
エミュレータでの起動の様子
Androidエミュレータでの起動の様子
iPhoneエミュレータでの起動の様子
エミュレータだとAndroidは1.5秒、iPhoneは4秒くらいでした。
Androidは問題なし、しかしiPhoneが少し気になりますね。
問題はここからです。
その後Androidの実機の方でも動作を確認してみました。
実機での起動の様子
Android実機での起動の様子
エミュレータだと起動も早かったAndroidが、なんと実機だと6秒もかかりました。なお、iPhoneの方はテストできていません。
さすがに時間かかりすぎだということで調べてみたところ、これに関する記事はなかったのでこの記事を書くに至りました。
また、Xamarinが使われていると言われていた某国営放送のアプリをインストールしてみた結果、これも同じくらい起動に時間がかかっていました。このアプリでは起動してすぐに静止画を出すという対策でごまかしていました。
結局、自分はこの起動の遅さが看過できなかったため、Xamarin.Formsの導入は見送りました。
今回の話とは直接は関係ないですが,
今後の話としては、AndroidはJavaで書いていたのを公式サポート言語Kotlinで書くようにしてみようと思います。KotlinはiPhoneアプリ開発でよく使われるSwiftと似た言語とのことで、Swift→Kotlinにコードを変換する仕組みもあるようです。Kotlinの話についても今後触れて行きたいと思います。
まとめ
- Xamarin.FormsはAndroidの実機上だと遅かった
- KotlinがSwiftと似てて良さげ
- AndroidはKotlin,iPhoneはSwiftで書くと少し手を加えれば共通化できる部分がありそう
以上、同じ境遇にあるアプリ開発者さんの助けになればいいなと思います。
今回はXamarin.Formsはまだその時じゃないかなということで見送りましたが、今後の発展に期待したいですね。