私とXamarinと。
2017/12/2 JXUG
Sho Takizawa - @ Takkiii0204
Introduction
滝澤 翔 - @Takkiii0204
映像ポストプロダクション
主にWPF/UWP Xamarin.Mac
Xamarin 2年目
ポスプロについて
企画 編集 納品撮影
業務範囲
画つなぎ
色補正
合成...
放送
上映
配信...
Introduction
本日の目標
- Xamarinのメリット・デメリットを知ってもらう
Xamarinのメリット
共通言語で各PFに展開
- .NETであらゆるプラットフォームのアプリケーションを作成可能
- 最大限にソースコードを再利用することが可能
- Xamarinを使い分ける必要がない
- Visual Studio とXamarinで各PFのアプリケーションを構築
ネイティブに近いパフォーマンス
- パフォーマンスはネイティブと同じ(体感)
- 常に改善されている
- テストツールを用いることで、パフォーマンスの問題を特定できる
簡単なアプリ/プロトタイプとしてのX.Forms
- 各PFの固有の機能を削除して、簡単なアプリ/プロト版を作成することが可能
- カスタムUI < コードを共有に最適
- 各PF毎の設計がいらない
Xamarin.Macを使ったMacアプリ開発
- .NETを使用してMacのネイティブアプリを開発することが可能
- Cocoaを.NETの仕組みを使ってラップしている
- XcodeとVisual Studio for Macを使って開発を行う
- Cocoaをシームレスに使える
Demo
- Essential Xamarin
- https://developer.apple.com/macos/human-interface-guidelines/overview/themes/
- https://github.com/xamarin/mac-samples
Xamarinのデメリット
X.FormsでこだわりのUIを展開
- X.FormでUIも共通化できるが、こだわるとNaitiveとの差がなくなってしまう
- 少量のコードで実現することができなくなる
- ロジックは共有し、UIは各PF毎に作成 => Xamarin.Naitive
ネイティブの知識が必要
- X.iOS/Android/Macを使用する場合、各PF固有のコードを書く必要が出てくる
- iOS/MacならObj-C/Swift AndroidならJavaの知識が必要
- NaitiveのコードからC#への移植作業が出てくる
Retina環境で画像を出力しようとすると画像サイズが倍になってしまう
まとめ
- C#という共通言語で各PFに展開
- 簡単なアプリケーションとプロトタイ
プとしてのX.Forms
- Xamarin.Macを使ったMac用アプリケー
ションの作成
メリット デメリット
- X.FomrsでこだわりのUIを展開
- ネイティブの基礎知識が必要
ご静聴ありがとうございました

私とXamarinと。

Editor's Notes

  • #7 Xamarinは.Netフレームワークで補完されたC#を使用して、あらゆるモバイルプラットフォーム用のアプリケーションを作成します。したがって、エンジニアリングサイクルを高速化するソースコードの最大96%を再利用することができます。 Xamarinでは、開発環境をWindows/Mac切り替える必要はありますが、 クロスプラットフォーム開発ツールは、追加コストなしでIDEの組み込み部分として提供されます。
  • #8 パフォーマンスは、Android用Java、ネイティブiOSアプリ開発用のObjective-CまたはSwiftに匹敵します。さらに、ネイティブ開発の標準と完全に一致するように、Xamarinのパフォーマンスは絶えず改善されています。 Xamarinプラットフォームは、アプリケーションのパフォーマンスをテストして追跡するための完全なソリューションを提供します。そのXamarin Test CloudをXamarin Test Recorderツールと組み合わせることで、自動化されたUIテストを実行し、リリース前にパフォーマンスの問題を特定することができます。
  • #9 Xamarinは、開発者が2つの方法でアプリを開発することを提案しています。最初の方法は、Xamarin.iOS, Xamarin.Android, Xamarin.Macを使用するXamarin.Naitiveです。これは主なアプローチと考えられています。 Xamarin.Formsを使用すると、プラットフォーム固有の機能を少なくしてプロトタイプを作成したり、アプリケーションを作成したりすることができます。そのため、Xamarin.Formsは、カスタムUIよりもコード共有が重要なアプリケーションに最適です。プラットフォームごとに個別に設計することなく、単一のインタフェースを作成して、プラットフォーム間で共有することができます。ユーザーインターフェイスの一部がXamarin.Formsで作成され、その他はネイティブUIツールキットを使用して設計されたアプリケーションを構築することもできます。 したがって、このソリューションは、単純なUIを備えたアプリケーションや、UIがまったく気にしないプロトタイプに最適です。
  • #10 Xamarin.Macは、C#と.NETを使用して完全にネイティブのMacアプリケーションを開発することを可能にします。これは、Objective-CでXcodeを使用して開発するために使用されるのと同じライブラリと統合されています。 Xamarin.MOSとXamarin.Androidを組み合わせたXamarin.Macを使用することで、開発者はAndroid、iOS、Mac OSでネイティブコードを最大90%共有することができます。さらに、Xamarin.MacはXcodeと統合されているため、開発者はXcodeのInterface Builderを使用してアプリケーションのユーザーインターフェイスを作成できます。
  • #15 Xamarin.iOSとXamarin.Androidを使用して、ネイティブのルックアンドフィールを備えたモバイルアプリを構築する場合、プラットフォーム固有のコード層を記述する必要があります。したがって、少なくともネイティブ技術(Android用Java / Kotlin、iOS用Objective-C / Swift)の基本知識が必要です。