20
Sydney Mobile .Net Developers Cross Platform Native App Development iOS, Android, Windows Phone, Windows 8 Alec Tucker Head of Mobile Product Development, APAC White Clarke Group

SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Embed Size (px)

DESCRIPTION

Sydney Mobile .Net Developers Meetup - Feb 2014

Citation preview

Page 1: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Sydney Mobile .Net Developers

Cross Platform Native App DevelopmentiOS, Android, Windows Phone, Windows 8

Alec TuckerHead of Mobile Product Development, APAC

White Clarke Group

Page 2: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Inaugural Meetup

• Introductions• Focus on Mobile, .Net, Xamarin• Planned format• Group Details• http://xamarin.meetup.com/ • http://www.meetup.com/SydneyMobileDotNetDevelopers/

• Current sponsors…

Page 3: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Leaders in Finance Technology

(also pretty good at supplying venue and pizza!!)

Page 4: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

• Sign up at xamarin.com/university• Learn to build native iOS, Android, and Windows

apps with C# in just 30 days.• Live online, interactive classes with live coding.• Labs with full source code solutions.• Nearly 600 pages of curriculum documentation.• Access to Xamarin Certified Developer exam.• First March session is filling up fast.

Page 5: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

• Vaughn Knight, Nokia Australia

Nokia & Microsoft

Page 6: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

The Plan

• Approaches to Cross Platform Mobile Dev• WORA / WOOE

• Cross Platform AND Native• Code Sharing Approaches• File Linking• Portable Class Libraries

• MVVM Pattern Suitability• Using MVVM in iOS and Android Apps

Page 7: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Android Fragmentation

July 2012 – 3,997 distinct devices July 2013 – 11,868 distinct devices

Source: http://opensignal.com/reports/fragmentation-2013/

Page 8: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Android Fragmentation

Source: http://opensignal.com/reports/fragmentation-2013/

Page 9: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

OS Versions Out There (iOS & Android)

Source: http://opensignal.com/reports/fragmentation-2013/

Page 10: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Screen Sizes (iOS and Android)

Android – Distinct Screen SizesiOS – Distinct Screen Sizes

Source: http://opensignal.com/reports/fragmentation-2013/

Page 11: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Approaches

• App dev – multiple platforms• Mobile Web Hybrid Native• Historically native has been overlooked as it’s assumed to mean

developing separately for each platform• Cross platform AND native…

Page 12: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Cross Platform AND Native

XamarinWrite one shared C# codebase, and separate platform-specific user interfaces also in C#. The result is native apps that share business logic, data access, networking code and more.

CompilationXamarin.iOS does ahead-of-time compilation to produce ARM binaries for Apple’s App Store.Xamarin.Android uses just-in-time compilation.In both cases the app is native. Not cross compiled. Not interpreted. Native.

Page 13: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Code Sharing Approaches

• File linking• Quick demo

• Pros• Shared code can be put within precompiler directives to control which

bits are compiled for which platforms• Can be used to implement platform specific code / features

• Cons• Can seem like a good idea, but you can quickly come unstuck and end

up with unmaintainable code…

Page 14: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

(shamelessly pinched from James Montemagno’s presentation at the Seattle Mobile .Net Developers meetup)

Page 15: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Code Sharing Approaches

• Portable Class Library (PCL)• Quick demo

Page 16: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

MVVM Pattern

ViewsUI – how to display information

View ModelsWhat information to displayFlow of interaction

ModelsData entities

Platformspecific

Portable

Data Binding

Reference

Page 17: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

MvvmCross

• Best illustrated with a demo

Page 18: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross
Page 19: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Questions / Discussion / Pizza

Page 20: SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross

Contact Details / References

Group

http://www.meetup.com/SydneyMobileDotNetDevelopers/

Xamarin

www.xamarin.com

MvvmCross

Slodge.blogspot.co.uk

Mvvm Background

http://blogs.msdn.com/b/kashiffl/archive/2010/11/14/mvvm-technical-description.aspx

UX Design Guidelines

Applehttps://developer.apple.com/library/ios/documentation/userexperience/conceptual/mobilehig/

Androidhttps://developer.android.com/design/index.html

Windows Phonehttp://dev.windowsphone.com/en-us/design/principles

Further Contacts

Vaughan Knight – Nokia @vaughanknight [email protected]

Dave Glover – Microsoft [email protected]

Andrew Coates – Microsoft [email protected]

Alec Tucker [email protected] @alecdtucker