Your SlideShare is downloading. ×
Helping the Lions Roar
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Helping the Lions Roar


Published on

Presentation at MvvmCross London by Sequence Agency

Presentation at MvvmCross London by Sequence Agency

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. © Sequence the Lions Roarwith Microsoft Win8 & WP8February 2013Jon
  • 2. IntroFor the next 17mins- ish we want to discuss the mobile market today and how the mobileuser is changing. We will also touch upon the opportunity that Windows 8 & WindowsPhone 8 brings to this key channel and your brands. However our main focus will be toshowcase the upcoming release of the Official application for the British & Irish lets begin…. First up
  • 3. 05 The Application
  • 4. The briefCreate a multi-platform application that works on desktop,tablet and mobile.Excite fans with a slick application experience andexclusivecontent centered around this year’s tour.Integrate with 3rd party APIs to provide real timeinformation.
  • 5. TV goes social
  • 6. Second screen
  • 7. SolutionArchitecture
  • 8. SolutionArchitecture
  • 9. SolutionArchitecture• App content & structurecontrolled via CMS• Apps fully functional offline• Cache pre-populated withcontent/images fromAzurewhen building apps
  • 10. Lions app core
  • 11. Lions app core
  • 12. Lions app core• Uses the IoC built in to Mvx to implement a SOA(Service OrientatedArchitecture) approach• Allows for components to be swapped in / out easily– Fake data source– Different caching strategies– Unit Testing / Mocking
  • 13. Customizing MvvmCross• Overriding Mvx components to do non “out-of-the-box” stuff• Adding custom cross-platform services
  • 14. Customizing MvvmCross – Overriding Components
  • 15. Customizing MvvmCross – Overriding Components• App.cs (our MvxApplication in our PCL)• This approach gets really messy really quickly…//Inject our own image caching into MvxCirrious.MvvmCross.Plugins.File.PluginLoader.Instance.EnsureLoaded();var imageFileCache = new LionsImageCacheService(………);this.RegisterServiceInstance<IMvxFileDownloadCache>(imageFileCache);
  • 16. Customizing MvvmCross – Overriding Components• Plugin Managerpublic class DroidPluginManager : MvxFileBasedPluginManager{public DroidPluginManager(): base("Droid"){}protected override Cirrious.MvvmCross.Interfaces.Plugins.IMvxPlugin LoadPlugin(Type toLoad){if (toLoad == typeof (Cirrious.MvvmCross.Plugins.DownloadCache.PluginLoader)) {return new LionsCachePlugin();}return base.LoadPlugin(toLoad);}public class LionsImagePlugin : IMvxPlugin{public void Load(){//Do exactly what the Mvx plugin does, except load our custom service instead}}}
  • 17. Customizing MvvmCross – Cross-platform services• Providing images from the app package – a platformspecific task• In the core:var packageProv = this.GetService<IPackagedImageProvider>();var fileName = packageProv.GetPackagedImageFileName(httpSource);if (!String.IsNullOrEmpty(fileName)){packageProv.CopyPackagedImage(fileName, (succeeded) =>{…});}
  • 18. Customizing MvvmCross – Cross-platform services• In Windows 8 Setup:protected override void InitializeFirstChance(){this.RegisterServiceInstance<IPackagedImageProvider>(new Win8PackagedImageProvider());base.InitializeFirstChance();}
  • 19. Customizing MvvmCross – Manual Navigation• Using some Mvx services to navigate when we’re notin a view modelvar myParams = new { nodeId }.ToSimplePropertyDictionary();var req = new MvxShowViewModelRequest(viewModelType, myParams, true, MvxRequestedBy.Bookmark);this.GetService<IMvxViewDispatcherProvider>().Dispatcher.RequestNavigate(req);
  • 20. Challenges
  • 21. Multi-platform challenges• Cross training• Design / UX consistency• Content• ViewModel design• PCLs• MvvmCross
  • 22. Windows Phone• Emulator requires specific hardware• Android emulator animosity• Supporting WP7 and WP8
  • 23. Windows 8• ObservableCollections
  • 24. iOS challenges• Interface Builder• PCL support• Slow store publishing
  • 25. Android• Fragmentation• Windows Phone emulator animosity• Slow/unreliable emulator• Memory leaks (InPurgeable)
  • 26. Android (continued)• Xamarin.Android– Slow debug cycle– Crashes & hangs– Debugging PCLs– Layout IntelliSense– No layout validation on PC– VS unhelpful error reporting for layouts/resources
  • 27. Kindle• It’s just Android!
  • 28. Thank you.Owen Davies/ Paul Thomas+44 (0) 7976 095 519 / +44 (0) 7970 283 / House, Fitzalan Road, Cardiff, CF24 0ELClerkenwell Workshops, 27-31 Clerkenwell Close, London, EC1R© Sequence 2012