Интеграция Google Mobile Analytics с MVVMCross

Новый SDK Google Analytics представляет новый подкласс UIViewController, от которого вы должны наследоваться: GAITrackedViewController.

Подробнее здесь: https://developers.google.com/analytics/devguides/collection/ios/v2/screens

Это явно конфликтует с MvxBindingTouchViewController, так как вы можете наследовать только от одного класса в C#.

Каков рекомендуемый способ заставить это работать?


person Ruben Vermeersch    schedule 25.01.2013    source источник


Ответы (1)


MvxTouchViewController от MvvmCross особенный...

MvxBindingTouchViewController MvvmCross еще более особенный...

Но они особенны только тем, что наследуются от стандартных UIViewController (UIVIewController, UITableViewController, UITabBarController и т. д.), а затем добавляют функциональность для:

  • Конструкция ViewModel и свойство ViewModel на уровне Cirrious.MvvmCross
  • построение и хранение привязок на уровне Cirrious.MvvmCross.Binding

Взгляните на некоторые примеры:

В них вы, надеюсь, можете увидеть, что это включает в себя изрядное количество вырезания и вставки кода, хотя мы пытаемся свести его к минимуму, используя методы расширения. (Если бы в C# было множественное наследование или примеси, нам не нужно было бы это делать — я бы хотел иметь примеси... но никогда не хочу множественного наследования!)

Итак.... если вы хотите добавить свой собственный MvxXXXXXBindingViewController, то:

  1. взять свой базовый XXXXX класс,
  2. наследовать от него и добавить «вещи», чтобы сделать MvxXXXXViewController,
  3. затем возьмите свой MvxXXXXXViewController и снова наследуйте его, чтобы сделать свой MvxBindingXXXXXViewController
  4. публиковать в своем блоге и в новом репозитории GitHub, чтобы все остальные могли использовать вашу тяжелую работу
  5. Работа выполнена

Расширенные примечания:

  • Если вы хотите увидеть то же самое в Droid, см. Вставьте представление Monogame в активность монодроида MvvmCross

  • TabBarController тоже интересен — у него есть дополнительные методы.

  • В какой-то момент «скоро» (первая половина этого года) мы создадим VeeThree, и это переключит MvxViewController на не универсальный формат — это потому, что MonoTouch теперь рекомендует не использовать Generics в базовых классах iOS — Рольф говорит, что это безопасно в большинстве случаев. время, но когда это вызывает ошибки, они называются «гейзенбагами».

  • Также в текущих классах (ViewDidUnload) есть мертвый старый код iOS — этот код тоже будет отбракован в VeeThree.

person Stuart    schedule 25.01.2013