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.

Introduction Xamarin forms mac

3,464 views

Published on

Introduction Xamarin forms mac

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Introduction Xamarin forms mac

  1. 1. Introduction to Xamarin.Forms for MacOS
 - あるいは UWP から Mac App への布石 - 蜜葉 優
  2. 2. • H.N. :蜜葉 優 [@mitsuba yu] • silkyfeel ,LLC CEO • 最近は UWP, WPF, Unity • Microsoft MVP for Windows Development • UX Designer / Interaction Developer / Photographer • Keynoteの表紙はいつも自分で撮影 • http://c-mitsuba.hatenablog.com profile
  3. 3. • H.N. :蜜葉 優 [@mitsuba yu] • フリーデザイナー • 最近は UWP, WPF, Unity • Microsoft MVP for Windows Development • UX Designer / Interaction Developer / Photographer • Keynoteの表紙はいつも自分で撮影 • http://c-mitsuba.hatenablog.com profile
  4. 4. • Xamarin Form for MacOSX ? • サンプルプロジェクト動かしてみた • 1からプロジェクトを作る方法 • よりMacAppらしくするには • まとめ agenda
  5. 5. 2014年以来 やってなかった Xamarin
  6. 6. 日頃はMacユーザー・開発はWindowsユーザー
 Windowsでちょこちょこ作ってるMY便利ツール Macでも同じものが作りたくてやってみた
  7. 7. MacOSX App ちょっとやったことある is not チョットデキル 今日のお持ち帰り
  8. 8. Xamarin.Forms 8
  9. 9. • いろんなプラットフォームをXAML+C#で開発できる • Formsの全てがGitHubに公開されている • https://github.com/xamarin/Xamarin.Forms • VS for MacにXamarinの環境を作ったのと違って
 アクセスできないformsの機能にもアクセスできる Xamarin.Forms
  10. 10. Xamarin.Forms for MacOSX 10
  11. 11. • 実は一昨年からGitHubのブランチにあったらしい • 現在はmaster ブランチに統合されている • VS for Macで開発できる <- Windowsはだめ • XAMLで開発できる!!<- Storyboard 駆逐!!?
 これだけでまぢXamarinはいいぞって言える(?) for MacOSX
  12. 12. for MacOSX 普通にxamarin環境作っても作れない
  13. 13. で、とりあえずサンプル
  14. 14. • VS for Macいれる • GitHubからformsのmasterをDL • 落としたXamarin.Forms.sln を開く • .net coreだったりSDKだったりを要求され るので、インストール まずはサンプル
  15. 15. _人人人人人人人人人人人人人人人人_ > Tizen関連のプロジェクトを殺す <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄ まずはサンプル
  16. 16. • Xamarin.Forms.ControlGallery.MacOS
 プロジェクトを選択してビルド対象にする まずはサンプル
  17. 17. • Gitのパッケージを復元する まずはサンプル
  18. 18. • ビルド(めっちゃ時間かかる(15分ぐらい  まずはサンプル
  19. 19. • うごいた まずはサンプル
  20. 20. で、どうやって自分の
 プロジェクトつくるん?
  21. 21. で、やってみた。
  22. 22. • 空白フォームから作成 おれおれプロジェクト
  23. 23. • Mac用の
 プロジェクト追加 おれおれプロジェクト
  24. 24. • Cocoa おれおれプロジェクト
  25. 25. • app.macOS おれおれプロジェクト
  26. 26. • いらない おれおれプロジェクト
  27. 27. • いらない おれおれプロジェクト
  28. 28. • masterでビルドしたdllを参照追加 おれおれプロジェクト
  29. 29. • プロジェクトも参照追加 おれおれプロジェクト
  30. 30. • Forms用に コードをぺた • https://qiita.com/askyq/items/ 954c4fc379aab5f80a92 おれおれプロジェクト
  31. 31. • 赤線は右クリックでusing追加 おれおれプロジェクト
  32. 32. • さっきのデリゲートを登録 おれおれプロジェクト
  33. 33. おれおれプロジェクトできた
  34. 34. DEMO
  35. 35. おまけ
  36. 36. • みんなだいすきReactiveProperty MVVM Challenge
  37. 37. • Could not install package 'System.ComponentModel.Annotations 4.1.0'. • You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. MVVM Challenge
  38. 38. MVVM Challenge
  39. 39. • .Net Standardにすれば最新のRPが使えるらしい。 • 今回はPCLのままにして、2.9で。 MVVM Challenge
  40. 40. • VMつくる。 • 手書きusing MVVM Challenge
  41. 41. • XAML MVVM Challenge
  42. 42. おさらい
  43. 43. プロジェクト構成 AppApp.mac 共通プロジェクト個別Platform 呼び出し • 実際に出力される.app • プラットフォーム依存機能実装 • アプリの外側の実装
 (ウィンドウの動きとか) • 共通部分の実装 • 実際に利用するアプリの内部 • 依存機能は共通プロジェクトに インタフェースを実装して呼出
 (DependencyService)
  44. 44. from UWP
  45. 45. http://silkyfeel.jp/tanzanite
  46. 46. Forms.Macに実装してみる
  47. 47. 共通PにInterfaceを実装
  48. 48. 依存Pに実実装とDSを設定 *DependencyService
  49. 49. 共通PからDSを呼び出し
  50. 50. XAML (今回はVM実装なし)
  51. 51. ListViewの仮想化
  52. 52. ListViewの仮想化
  53. 53. よりMacAppらしく
  54. 54. AppDelegateでWindowStyle
  55. 55. Dockで出し入れする
  56. 56. • 林檎の右のメニュー • こいつを実装すると
 ショートカットが
 使えるようになる MainMenuの実装
  57. 57. MainMenuの追加
  58. 58. • メインインタフェースにMainMenu記述 依存PのInfo.plist
  59. 59. • ショートカットが使えるようになった 依存PのInfo.plist
  60. 60. 依存PのInfo.plist
  61. 61. • VSforMacでMainMenu.xlbをダブルクリック • 上がってきたXcodeで編集 MainMenu.xlbを編集
  62. 62. • 怖がらずにいらないものは、デザイナでクリック選択してDel • About NewApp-もダブルクリックで名前変更 MainMenu.xlbを編集
  63. 63. • ちなみにMainMenuのプロパティがありはするけど、
 new Menu()して代入しても、アプリには反映されな い(Cocoaでもそうなので、仕方がない • ここはXcodeを使うしかない
 Xcode/Storyboardからの完全な脱却はできなかった
 MainMenu.xlbを編集
  64. 64. 時間があればDEMO
  65. 65. できあがったものがこちら
  66. 66. まとめ
  67. 67. 茨の道では
  68. 68. いや、意外といけるんじゃね?
  69. 69. • サンプルプロジェクトは割りとさくっと動いた • XAML方言に対する慣れは必要 • Animation(XAMLのStoryboard)はどうしたらいいんや、、、 • プラットフォーム固有の実装はDependencyServiceを使って。 • Xamarin Previewer なにそれ?
 (iOS/Androidのみ) • Visual Studio for Mac は イケてない • R#erが恋しい -> そこでRiderですよ まとめ(Forms)
  70. 70. • おれおれプロジェクトを作るのに、めっちゃハマった(1.5日) • ただ、SwiftもStoryboardも勉強せずに、Macで動作する
 プラットフォームができた!(強気 • 一応、iOS/Android/UWPとかと共有できるはず。 • 今回は勉強用に共通Pと依存Pと分けたけど、クロスプラット フォームを捨てるなら1プロジェクトで完結できそう? • 勘所がつかめれば小さいアプリぐらいなら作れる気がしてきた まとめ (Forms.Mac)

×