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.

OthloEvent #9 Xamarinハンズオン

453 views

Published on

2017/1/15に行われた「OthloEvent #9 [学生限定Xamarinハンズオン]」でのXamarinハンズオンの資料です
https://othlotech.connpass.com/event/45888/

Published in: Technology
  • Be the first to comment

OthloEvent #9 Xamarinハンズオン

  1. 1. Xamarinハンズオン 2017/1/15 ラルフ(@r_ralph_h)
  2. 2. 題材 ・こんなものを作ってみます Xamarin Dev Days(世界的に⾏われた Xamarinのイベント)の登壇者リスト を表⽰できるアプリ
  3. 3. 目標 ・Xamarin.Formsによるコード共有の体験 ・Bindingを使⽤したMVVMパターンの体験
  4. 4. 進め方 基本は https://github.com/chomado/xamarin-dev-doc を使⽤しながら進めます。 難しい部分はスライドにて補⾜説明を⼊れます
  5. 5. MVVMについて MVVM(Model-View-ViewModel) ソフトウェアアーキテクチャパターンの⼀つ
  6. 6. ソフトウェアアーキテクチャパターン? ・ソフトの⽣産性や保守性を上げるための考え⽅ ・役割分担をすることでデータや処理の流れをわかり やすくする
  7. 7. Model ・主にデータと⼿続きを表す ・データ:登壇者の名前・URL・タイトル など ・⼿続き:登壇まで何時間か計算する処理 など ・Modelは⾃⾝のデータがどのような形で描画される か知らない
  8. 8. View ・ユーザーへの表⽰とユーザーからの⼊⼒を担う ・XFでは、Xamlを使⽤してViewを作れる ・MVVMにおいて、Viewは複雑なことはしない ・後述のViewModelの持つ情報をただ表⽰するだけ
  9. 9. ViewModel ・ViewとModelの架け橋 ・Viewに描画する状態の保持 ・Viewからの⼊⼒を変換し、Modelに渡す ・BindingによってViewModelが変更された時に⾃動 的にViewへ反映される
  10. 10. Binding(ViewBinding) ・V-VM間を結ぶ技術 ・⼀⽅が変わった場合に対応する他⽅も変化する aa ViewModel → View string hoge = "aa"; hoge = "bb"; bb ① ② ③ aa View → ViewModel string hoge = "aa"; hoge => "bb" bb ① ② ③
  11. 11. PropertyChanged ・ViewModelの状態が変化する(プロパティによって フィールドが書き換えられる)時に OnPropertyChangedを呼ぶ ・XFのBindingでは、この時に変化したプロパティに 対応するViewを変更する
  12. 12. バッキングフィールド ・フィールド:データを保存する変数 ・プロパティ:フィールドの値を読み書きする⼿段 ・フィールドへの読み書きのイベントを取得したい! ・Getter/Setterを実装すればできる→カッコ悪い ・プロパティで取得する
  13. 13. バッキングフィールド private int hoge; // 直接いじられると困るのでprivateに // こいつがバッキングフィールド public int Hoge { get { return hoge; } set { hoge = value; // ここでイベント取れる! } }
  14. 14. バッキングフィールド ・Modelで書いた以下の書き⽅を⾃動実装プロパティ と呼ぶ public int Hoge { get; set; } ・これによりフィールドとプロパティがよしなに⽣成 される

×