こんにちは!
テンダ仙台支店のサトウ スグルです。
お気に入りの仙台のカレー屋さんは錦町公園近くの「さふらん」!
今回は、Xamarin(ザマリン)を利用したアプリ開発について書きたいと思います。
Xamarinで開発するとどうなるのか、メリットやデメリット…などの話です。
Xamarinってどんなもの?
簡単に言ってしまうと「C#を使ってアプリ開発ができるツール」です。
よくある感じですが、優れた特徴があります。
Xamarinのここがすごい!
- iOS、Android、WindowsアプリをC#だけで開発できる
- 単一の言語で開発するのでコードの共通が可能
- 開発環境が無償提供
iOSならObjective-CやSwift、AndroidならJavaといった具合にそれぞれの環境ごとに開発を行う必要がありますが、XamarinはC#のみで開発を行う事が可能です。
そのため、UI部分などは高い割合で共通化が可能となります。
無償提供される点ですが、これはXamarinの生みの親であるXamarin社がMicrosoft社に買収されたことに起因します。
Windows向けとしてVisual Studioに同梱される形、Mac向けとしてはXamarin Studioが無料公開される形で無償化が実現しました。
詳しい経緯などは既にまとめられているので、調べてみるのも面白いです。
無償利用(Visual Studio Communityの利用)については、条件があるので気を付けてください。
Visual Studio Community を使える企業や団体は以下の規定に従います。
- – 研修環境、学術的研究、OSI が認定するオープン ソース ソフトウェア ライセンスに準拠したオープン ソースの開発者プロジェクトに利用する場合、企業体は何人でも Visual Studio Community を利用可能
- – PC 台数 250 台未満かつ年商 1 億円未満の企業や団体は、これに当該する組織のアプリケーション開発においては Visual Studio Community を 5 名まで利用可能
実際に開発に使うとどうなるの?
様々なプラットフォームに対して共通化ができるため、より効率的に開発を進めることができます。
決して少なくない工数を削減することが可能です。
メリット
開発スピードが上がるため、従来より短期間で納品を行うことが可能です。
これによってサービスの機会損失リスクを減らすことが期待できます。
また、工数が削減されるため、開発費用も抑えることもできます。
共通化に関しては、Microsoftのコンテンツには75%~ほぼ100%でのコード再利用を可能にしたという記載もあります。
Xamarin はネイティブの iOS、Android、および Windows のアプリを一般的な C#/.NET コード ベースから構築するためのモバイル アプリ開発プラットフォームであり、プラットフォーム間で 75% ~ほぼ 100% のコードの再利用を達成しています。
社内感覚としては60%程度の共通化実現がリアルなところでしょうか。
デメリット
共通化されていない部分も多く、各プラットフォームで独自に処理を書く必要があります。
その割合が多い場合は、必ずしもXamarinが最適とは限りません。
また、導入後の学習は少なからず必要です。
現状でも日本語の解説書籍は多くなく、まだ敷居は高いと言えます。
弊社の開発チームでは、実際の案件で使用したこともあり習熟が進んでいます。
弊社実績
当初、Android・iOS個別での開発を想定していましたが、検討の末Xamarinを採用。
コードの共通化が可能となり開発コスト削減につながりました。
まとめ
Xamarinという選択肢を持つということで得られるメリットは、デメリットより大きいのではないでしょうか。
特にコストが抑えられるということは、予算の問題で諦めていたアプリ化したいサービスが、実現するかもしれないという可能性があります。