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 ハンズオン 2018/11

203 views

Published on

Xamarin Android ハンズオン テキスト 2018/11版

Published in: Software
  • Be the first to comment

  • Be the first to like this

Xamarin.Android ハンズオン 2018/11

  1. 1. / 28 Xamarin.Android ハンズオン 1 XAMARIN ANDROID ハンズオン 2018年11月03日 石崎 充良
  2. 2. / 28 自己紹介 イメージ情報システム株式会社 技術広報 スーパーエンジニア 石崎 充良 ( @mishi_cs ) Japan Xamarin Users Group ( JXUG ) Microsoft MVP for Development Technologies 言語: C# XAML 活動: ・C# もくもく会 (connpass) ※主に秋葉原 2
  3. 3. / 28 [1ページでわかる] Xamarinの概要 3
  4. 4. / 28 Xamarin とは ・クロスプラットフォーム ・ネイティブアプリ ・(Android ・iOS・UWP) のAPI カバー率 100 % ・C# / .NET / Visual Studio ( / F# ) ・クロスプラットフォームでコードを共通化する 4
  5. 5. / 28 注意点 5
  6. 6. / 28 Mac は必要 ・iOS 向けのビルドは Mac 上で行わなければならない これはどのクロスプラットフォームアプリ開発でも同様 iOS アプリのビルドは Mac 上で行わなければならない決まり ・Xamarin Live Player はビルドしていない Mac 不要でアプリのデバッグができるが、アプリのビルドはしていない 浅い動作しかしないため、デバッグとしても UI 定義の確認程度 6
  7. 7. / 28 [再放送] Xamarinの概要 7
  8. 8. / 28 Xamarin とは ・Android / iOS の API を C# から使えるようにしたもの ・C# (.NET) のライブラリを使えるようにしたもの 8 ロジックのみ共通化 UIはネイティブで個別に作りこむ Shared C# App Logic (.NET Standard) iOS C# UI Android C# UI Windows C# UI
  9. 9. / 28 Xamarin の2つの開発方法 9 Xamarin Native Xamarin Forms ロジックのみ共通化 UIはネイティブで個別に作りこむ ロジックとUIを共通化 UIは各プラットフォームの 同じ役割のUIが自動マッピング Shared C# App Logic (.NET Standard) iOS C# UI Android C# UI Windows C# UI Shared C# App Logic (.NET Standard) Shared C# UI Code (Xamarin.Forms)
  10. 10. / 28 ネイティブの UI 10
  11. 11. / 28 UI の開発手法 11 Xamarin.Native Xamarin.Forms 概要 ネイティブの技術を使用 UI 共通化ライブラリ 定義 Android では axml iOS では storyboard など xaml というシンプルな XML 制約 制限のない UI 各プラットフォームの最大公約数の機能 のみ 特徴 UI が共通化できない UI にこだわらないアプリなら UI まで共 通化可能 使いどころ コンシューマー向けアプリやデザ インを重視する場合に ビジネス向けアプリや機能重視のツール 系アプリなどに Formsで細 かくUIを定 義したい Custom Renderer で独自にネイティブの コントロール/プロパティと結合するコン トロールを作成可能
  12. 12. / 28 C# ・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい ・言語の進化も歩みを止めていない ・Apple の swift や、Android の kotlin と比べると古さはある ・サーバーサイドからクライアントアプリまで、何でも作れる F# ・.NET 界の関数型言語担当。関数型が好きな方にお勧め ・ユーザーが少ないのか少なくとも日本ではあまり情報がない 12
  13. 13. / 28 C# ・C 言語の流れをくむオブジェクト指向言語で比較的素直で覚えやすい ・言語の進化も歩みを止めていない 13
  14. 14. / 28 コード共有化 14
  15. 15. / 28 Xamarin とは ・Android / iOS の API を C# から使えるようにしたもの ・C# (.NET) のライブラリを使えるようにしたもの 15 ロジックのみ共通化 UIはネイティブで個別に作りこむ Shared C# App Logic (.NET Standard) iOS C# UI Android C# UI Windows C# UI
  16. 16. / 28 コード共有 16 共有コード Android 用コード iOS 用コード 参照して使用 Android の API C# の API
  17. 17. / 28 実行 17
  18. 18. / 28 注意点(重要) 18
  19. 19. / 28 Mac は必要 ・iOS 向けのビルドは Mac 上で行わなければならない これはどのクロスプラットフォームアプリ開発でも同様 iOS アプリのビルドは Mac 上で行わなければならない決まり ・Xamarin Live Player はビルドしていない Mac 不要でアプリのデバッグができると言う技術もあるが、アプリのビルドはしていない 浅い動作しかしないため、デバッグとしても UI 定義の確認程度 19
  20. 20. / 28 ネイティブの知識も学ぶと良い ・アプリストアのルールを守る アプリストアによっては UI のデザイン等にもガイドラインがある ガイドラインを守らない場合、リジェクトされる場合がある ・API の詳細やサンプル、その他情報はネイティブのものを読む API のカバー率は 100% ですが、その詳細や使い方はネイティブの情報が詳しい iOS や Android のアップデートによる変更や追加もネイティブの情報が詳しい ※ネイティブの情報でブログ等を書いているエンジニアと、Xamarin だけを書いているエンジニ アの数を考えると必然 逆に「薄いラッパー」ゆえに、ネイティブの情報を活用しやすいことがメリット 20
  21. 21. / 28 今回は Android のみ ・クロスプラットフォームという要素は無視 今回のハンズオンは Android のアプリを Xamarin に置き換えます Android の API はAndroid でしか使えません 今回のコードは iOS では動作しません(ビルドもできません) ・クロスプラットフォームに向けて Xamarin は .NET のクラスライブラリを使えます ネイティブの API やライブラリを使用する部分を .NET のライブラリに置き換えるとコードを共 有できるようになります iOS・Android の各 API をラップし、共通の手続きで利用できるようにしたライブラリも作られ ています。ネイティブの API をこれらのライブラリに置き換えるとコードを共有できるようにな ります 21
  22. 22. / 28 ハンズオンで学べる こと 22
  23. 23. / 28 ハンズオンで学べる事 ・ネイティブの API 知識が生かせること ・Android アプリのコードを Xamarin で動作するようにする勘所 ・Xamarin によるアプリ開発の経験 ・既存の Android アプリを Xamarin に書き換えるヒント 宿題としてチャレンジして欲しい事 ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン 23
  24. 24. / 28 ハンズオン 24
  25. 25. / 28 移植するアプリ 25
  26. 26. / 28 ハンズオンテキスト https://github.com/m-ishizaki/XamarinAndroidHandsOn01 26
  27. 27. / 28 続けてチャレンジして欲しい事 27
  28. 28. / 28 クロスプラットフォームに向けて ・.NET や Xamarin 用のライブラリへの書き換え ・iOS 版ハンズオン ・Xamarin.Forms のハンズオン (クロスプラットフォーム開発) JXUG への参加 ・Japan Xamarin User Group (https://jxug.connpass.com/) 28
  29. 29. / 28 おつかれさまでした 29

×