Xamarin.Forms

f9ef2f8c anonymous 2018-04-10 00:17
半年やった上での難しいところの感想。慣れた今では良いプロダクトだと思うけど、始めは辛いと思うので書く。

## クロスプラットフォームの難しさ

クロスプラットフォーム開発は難しい。対応するプラットフォームの文化をよくわかってる人がいれば良いんだけど、わかってないメンバーしかいないとどういうデザインにすればいいかわからないから提案もしづらくて、モバイルアプリとして自然な設計に持っていくのが難しい。プロジェクトに携わるひとできれば全員がガイドラインを読むべきだし設計の根拠にしたほうが良い。

## Visual Studio の不安定さ

これは 2018-04-09 時点でも続いてる問題で、ビルドがうまくいかないことが当たり前のようにあるから、ソースコードがおかしいんじゃないのっていう疑念を新加入メンバーは抱くことになって要らないバグ探しに時間がかかってしまう。そういう問題があるってことを開発メンバー全員が理解しておかないといけない。慣れるとあー、また Visual Studio がおかしくなってんなってわかるんだけど、はじめはわからないので慣れた人が FAQ を作っていったほうが良い。

## パフォーマンス

Xamarin.Forms は普通のネイティブ開発と違って間にラッパーとなるビューやレイアウトエンジンを持っているため、気をつけないとパフォーマンスの劣化を引き起こしがち。特に重くなりがちなパターンは先人がある程度リスト化しているためそれを見れば良いんだけど、実際どういう構成だとどれくらい劣化するのかという具体的な例が公開されていないため、はじめて触った人は同じポイントにハマりやすいと思う。ちゃんと理解すればネイティブとほぼ変わらないパフォーマンスが出せるんだろうけど、ある程度経験を積まないとそれは無理だろうというのが現実。アプリのサイズがでかい問題はリンカーをうまく使えれば解決できるはず (僕は解決できてない)。

## 情報の少なさ

当たり前ではあるけどネイティブに比べて情報が少ないので、ハマったときに同じ問題に出くわした人とその解決策を見つけることが難しい。Xamarin.Forms に起因するバグなのか、ネイティブの問題なのかを切り分ける能力が必要になってくる。それと日本語の情報が出てくることを期待するのはやめておいたほうがいい。
95c60c25 anonymous 2018-04-17 23:18
一番のメリットは、ネイティブの経験がある人であればそれをほぼそのまま利用できる点。
Xamarin 自体はネイティブの API を C# で人海戦術的にラッピングしただけなので、Task とかイベントとかの若干の C# 的な書き方に直す必要があるとはいえ知らないでも推測できるレベル。
ただし、Xamarin.Forms は Xamarin を使った UI 部分のフレームワークなので、ここは Xamarin.Forms の知識が必要になってくる。ネイティブに比べれば全然情報無いのでソースコード読む覚悟がいる。Xamarin は良いけど Xamarin.Forms は難しい。
c5598c27 anonymous 2018-04-18 23:43
あと経験ない人からするとネイティブの開発ってマルチスレッドの難しさが大きいな
C# のタスクの挙動をちゃんと理解できてないってのもあるし

Top of this page. |

limit: 1536KB

(Xamarin.Forms/3/0.0MB)

Powered by shinGETsu.