Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xamarin ハンズオン Android の部

250 views

Published on

Xamarin ハンズオン Android の部

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Xamarin ハンズオン Android の部

  1. 1. / 17 JXUG Xamarin.iOS & Xamarin.Android ハンズオン! Xamarin.Android の部 1 JXUG XAMARIN.IOS & XAMARIN.ANDROIDハンズオン! 2018年02月10日 石崎 充良
  2. 2. / 17 自己紹介 石崎 充良 ( @mishi_cs ) Microsoft MVP for Visual Studio and Development Technologie 言語: C# XAML 活動: JXUG (もくもく会) (connpass) 城東.NET Users Group (connpass) C# もくもく会 (connpass) 2
  3. 3. / 17 Xamarin とは 3
  4. 4. / 17 Xamarin とは ・クロスプラットフォームアプリ開発 ・ネイティブ (iOS・Android) のAPI カバー率 100 % ・C# でアプリを開発できる ・Visual Studio でアプリを開発できる ・UI はネイティブの技術で定義する (Android なら axml など) ・UI も共通化するライブラリがある あまり売りではない売り ・Mac や Windows アプリも作れる ・F# でアプリを開発できる 4
  5. 5. / 17 C# ・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい ・言語の進化も歩みを止めていない ・Apple の swift や、Android の kotlin と比べると古さはある ・サーバーサイドからクライアントアプリまで、何でも作れる F# ・.NET 界の関数型言語担当。関数型が好きな方にお勧め ・ユーザーが少ないのか少なくとも日本ではあまり情報がない 5
  6. 6. / 17 Visual Studio ・マイクロソフトが誇る IDE ・機能的には充実しており人気が高い ・ビジネスで使う場合は有償 ・Windows 版と Mac 版は別の製品。UI や機能も違いがある ・Community 版や試用でぜひ一度お試しください あまり売りにならない売り ・日本語 UI が選択可能のため(企業によっては)導入の敷居が低い 6
  7. 7. / 17 UI の定義 Xamarin.Native - ネイティブの技術を使用 ・Android では axml、iOS では storyboard など ・クロスプラットフォームゆえの制限のない UI ・UI が共通化できない → コンシューマー向けアプリやデザインを重視する場合に Xamarin.Forms – UI 共通化ライブラリ ・xaml というシンプルな XML ・各プラットフォームの最大公約数な機能のみという制約 ・UI にこだわらないアプリなら UI まで共通化可能 →ビジネス向けアプリや機能重視のツール系アプリなどに 7
  8. 8. / 17 注意点(重要) 8
  9. 9. / 17 Mac は必要 ・iOS 向けのビルドは Mac 上で行わなければならない これはどのクロスプラットフォームアプリ開発でも同様 iOS アプリのビルドは Mac 上で行わなければならない決まり ・Xamarin Live Player はビルドしていない Mac 不要でアプリのデバッグができると言う技術もあるが、アプリのビルドはしていない 浅い動作しかしないため、デバッグとしても UI 定義の確認程度 9
  10. 10. / 17 ネイティブの知識も学ぶと良い ・アプリストアのルールを守る アプリストアによっては UI のデザイン等にもガイドラインがある ガイドラインを守らない場合、リジェクトされる場合がある ・API の詳細やサンプル、その他情報はネイティブのものを読む API のカバー率は 100% ですが、その詳細や使い方はネイティブの情報が詳しい iOS や Android のアップデートによる変更や追加もネイティブの情報が詳しい ※ネイティブの情報でブログ等を書いているエンジニアと、Xamarin だけを書いているエンジニ アの数を考えると必然 逆に「薄いラッパー」ゆえに、ネイティブの情報を活用しやすいことがメリット 10
  11. 11. / 17 今回は Android のみ ・クロスプラットフォームという要素は無視 今回のハンズオンは Android のアプリを Xamarin に置き換えます Android の API はAndroid でしか使えません 今回のコードは iOS では動作しません(ビルドもできません) ・クロスプラットフォームに向けて Xamarin は .NET のクラスライブラリを使えます ネイティブの API やライブラリを使用する部分を .NET のライブラリに置き換えるとコードを共 有できるようになります iOS・Android の各 API をラップし、共通の手続きで利用できるようにしたライブラリも作られ ています。ネイティブの API をこれらのライブラリに置き換えるとコードを共有できるようにな ります 11
  12. 12. / 17 ハンズオンで学べる こと 12
  13. 13. / 17 ハンズオンで学べる事 ・ネイティブの API 知識が生かせること ・Android アプリのコードを Xamarin で動作するようにする勘所 ・Xamarin によるアプリ開発の経験 ・既存の Android アプリを Xamarin に書き換えるヒント 宿題としてチャレンジして欲しい事 ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン 13
  14. 14. / 17 ハンズオン 14
  15. 15. / 17 移植するアプリ 15
  16. 16. / 17 ハンズオンテキスト https://github.com/m-ishizaki/XamarinAndroidHandsOn01 16
  17. 17. / 17 続けてチャレンジして欲しい事 17
  18. 18. / 17 クロスプラットフォームに向けて ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン ・Xamarin.Forms のハンズオン (クロスプラットフォーム開発) JXUG への参加 ・Japan Xamarin User Group (https://jxug.connpass.com/) 18
  19. 19. / 17 おつかれさまでした 19

×