かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

Xamarinはいいぞ!

Xamarin(AndroidアプリをC#で書ける仕組み)に興味があり、Japan Xamarin User Group様主催のJXUGC #21 JXUG 福岡支部 発足記念勉強会 に参加させて頂きました。

運用中のAndroidアプリおよびAndroid開発手法について、いくつか改善したい部分があったのがXamarinを触ろうと思ったきっかけ。
主に以下の理由。

  • 現在、非同期制御で使用しているAsyncTaskが、とっくに非推奨となっている。
  • Android 6.0あたりからは挙動が怪しい部分が出始めたんで、代替のAsyncTaskLoaderに置き換えが必要と感じ始めた。
  • が、互換性は全くなく、単純な置き換えができない。
  • AsyncTaskLoaderの使い方が何かややこしくてテンション上がらない。(仮に覚えたとしても、次の次くらいには別の非同期制御の仕組みが提供されるのでは?という思いもあり。)
  • AsyncTaskは、アプリの根幹に組み込まれ、この仕組みを変えるぐらいなら、言語の選定から見直していいレベルだった。
  • C#には、async/await という非同期処理をシンプルに書ける仕組みがある事を知り、Androidで使えないかな?と思った。
  • Android側をC#で書ければ、サーバも同じ言語で書ける。(現在はサーバ側は VB.NET
  • 個人でサクッと小さいAndroidアプリを作りたかったが、Javaはその用途に不向きだと感じていた。


ハンズオンにて、まさに使いたかった async/awaitの部分が出てきて大歓喜
その他、ライフサイクルを意識しない作り方もできたりと、Androidアプリ開発のしきいをだいぶ下げてくれている。

感想としては、Xamarin凄い!
悩んでいた事象を解決できる可能性が十分あり、個人的には大収穫。

しかし、凝ったデザインにするのは難しいようで、その点は要考慮。
見た目がさほど重要視されない業務アプリなんかは、最有力候補に挙げてもいいのでは?というのが個人的な感想。 ちなみに今回使ったのはXamarin.Formsの方でした。

というわけで、

Xamarinはいいぞ!