質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

5回答

31489閲覧

Xamarin のデメリットを教えて下さい

ice_arr

総合スコア14

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

4グッド

2クリップ

投稿2016/08/11 14:43

編集2016/08/11 14:46

Xamarin を使っている方がいらっしゃいましたら、不便だなと思う点や、この機能は不完全だと思う点を教えていただけないでしょうか?
また、アプリ開発未経験者が Xamarin を使うのは適しているのかどうかについてもお聞きしたいです。

LLman, kotto0430, nakasho_dev, amay077👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

個人的な考えを述べます。
アプリ開発未経験者が Xamarin を使うのは適していないと考えます。

理由は以下のとおりです。

Xamarin は Androidアプリ、iOSアプリ を開発できる人が、コードを共通化して効率を上げるためのツールである

Xamarin は基本的に、 Android API, iOS の API を C# から呼び出せるようにしたものなので、両者について知らないとアプリ開発はできません。
画面までも同一コードで開発できるとされる Xamarin.Forms についても、同一コードで開発できる範囲はとても狭いので、それを超える要件に対応するには、Android や iOS の知識が必要になります。

まとめると Windows と Visual Studio で Android と iOS アプリの開発を始める場合、以下の知識が必要になります。

  • Java
  • Android SDK
  • iOS SDK
  • Mac
  • Xcode
  • C#
  • .NET Framework
  • Mono (.NET Framework のオープンソース実装)
  • Visual Studio
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.Forms

これだけの知識をゼロから並行して身に付けていくのは、否定はしませんが効率は悪いと思います。
まずは Java での Androidアプリ開発や、Swift での iOSアプリ開発を経験されて、慣れてから Xamarin の使用を検討することをお薦めします。

また Xamarin でアプリ開発する際のトラブルシューティングの方法について書きました。

トラブルシュートにも手間がかかるわけですが、このデメリットがメリットを上回ると判断されるなら、Xamarin は使わない方がよいでしょう。

投稿2016/08/12 02:16

編集2017/07/26 02:45
amay077

総合スコア1075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。私は Xamarin で C# とモバイル開発の勉強を始めました。全くの素人でしたので(現在も。ですが。)、習得には人の何倍も時間がかかりますが、楽しいです。

iOS/Android 両方の開発をやりたい場合、次の選択肢があると思います。

  • HTML5/JS で作成できる Cordova を使う
  • Swift、Android Java を覚える
  • Xamarin を使う

並び順は習得までの時間です。JavaScript で記述できる Cordova は敷居は低いですが、呼び出せる iOS/Android の API に制限があるため、やりたい事が実現できない可能性があります。そのため、とりあえず簡単なアプリを作りたいという場合は良いかもしれませんが、個人的にはお勧めしません。

Xamarin は皆さん仰るように、様々な知識が必要で、かつ、ツールの成熟度も低いため、敷居が高く、学習コストも高いです。ただし、iOS/Android 両対応のアプリを作るならどちらにしても Swift/Android Java は覚えなくてはいけません。 であれば、それに C# の勉強を加え、Xamarin でやった方が、書きやすい C# で記述でき、API をすべて使え、iOS/Android 両対応のアプリを一気にリリース出来るわけです。やる気があるなら Xamarin の沼に足を踏み入れて、私たちと一緒にズブズブとはまってみるのも楽しいと思いますよ。

興味があれば Japan Xamarin User Group にも遊びに来てください(^^)

投稿2016/08/15 01:01

ytabuchi

総合スコア335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

デメリットについて

学習コストがデメリットです。
また、最初からそうだったので、自分ではデメリットとは感じてはいないのですが、
ドキュメントのほとんどが英語というところが、デメリットになると思います。
読める読めない以前にたどり着けるかというところが重要かも。

アプリ開発未経験者が Xamarin を使うのは適しているかについて

アプリ開発未経験者が Xamarin を使うのは適していないという
amay077さんの考えとほぼ同じなのですが、

アプリ開発未経験者が

  • モバイルアプリ開発が未経験だけど、C#を使って、クロスプラットフォームのデスクトップアプリケーションを作成したことがある
  • その資産を使って、モバイルに移植する

という場合において、

アプリ開発未経験者が Xamarin を使うのは適していると思っています。
Xamarinのメリットがデメリットを超える場合だと思います。

投稿2016/08/12 12:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私も今まで全くモバイル開発をした事が無く、数ヶ月前にVisualStudio2015でXamarinを始めたばかりです。
XamarinなのかXamarin.Formsなのかわからないため、Xamarin.Formsを想定して回答します。

困る事は、情報が少ない事です。
書籍は全然出版されてなさそうですし、ネットを見てもまだまだ情報が少ない気がします。

続いて、環境構築や設定方法が難しいと感じました。
また、ちょっとした事ですぐにエラーが出るし、エラー内容も英語な上わかりにくいです。

クロスプラットフォーム開発のためか、画面デザインはビジュアル的に作れないため、確認は実行しないとわからないです。もしかしたら確認方法があるのかも知れません。
ただ、今までデスクトップアプリを作っていた者としては、最初大変でした。
ただし、画面デザインをプラットフォーム別に設計することもでき、そちらではビジュアル的に設計できるみたいです。
私は今のところそこまでプラットフォームに特化した物を作ろうとしてなく、極力同じコードでを目指しているので、Xamarin.Formsで作っています。

逆に良いと感じた事はやはり慣れ親しんだC#で書けることです。
今現在、VisualStudioでしかもXamarin自体無償の様なので、その点もプラスポイントですね。
プラットフォームに関する事はデスクトップアプリとは変わってきますが、基本構文などは変わらないため、ある程度のところまでは楽でした。

作るアプリのターゲットがIOS、Androidでありjavaやswiftが得意でなく、C#が得意であれば、個人的にはおすすめできる物だと思います。

投稿2016/08/11 16:05

randr

総合スコア202

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自分的にはほかの方も上げられますが、
・Xamarinはバージョン更新も多く環境構築などで多少手間取ることがある。改善されてるとはいえバグもある。
・開発情報、特に日本語のもの、が少ない。
・ネイティブで開発するよりも一段階レイヤーが増えるためその学習コストが必要
などがデメリットとして挙げられるのではと思います。

その代わりのメリットとしてはすでにご存じとは思いますが、C#などの.NET言語で多くのロジックやUIを共通に作れることですので、そのメリットとデメリットを考慮して選択されるのかと思います。
すでにC#などに慣れてるのであればだいぶメリットが多くなるのではとも思います。

個人的な経験ですが、自分はそれまでiOSもAndroidもまともに開発したことがないまま、Xamarin.iOSでアプリを作り(そちらは諸事情でペンディングになっていますが)、いまXamarin.Formsで開発しています。

iOSの知識はXamarin.iOSでの開発を通じてUIKitなども調べたためある程度ありますが、Androidについてはほとんど知りません。いまだにFragmentが何なのかもよくわかっていません。
Javaは20年ほど前に触ったことはありますが、今回は全く触ってないし見てもいません。
MacやXCodeなどもXamarin.iOSの開発時によくわからないながら調べつつなんとなく使えるようになりました。が今でもProfileとかややこしくて苦手ですが。

Xamarin.Formsを使った場合、ものによってはiOSとAndroidの知識をほぼ持たないままアプリを作ることも可能です。
もちろん製品として作る場合にはアイコンの設定方法から始め色々なところで各々のプラットフォームではどうやるかということを調べる必要があります。
が、その際に必要になる知識はXamarinを使わない開発で必要になる知識とだいぶ重なるところはあると思います。
従ってどのみち必要なところは覚えないといけないのだし、それだったら色々なところが共通化できるXamarinで開発を始めることもありなのではないかと思います。

ただしその場合はネイティブで開発するよりも調べることが多くなると思いますから、困ったときに調べて何とかできる能力がより必要になる気はします。それも英語で。
それが問題なければ以前よりもXamarinの環境も安定してきていますし、十分選択肢の一つになると思います。

投稿2016/09/19 16:20

omanuke

総合スコア109

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問