SlideShare a Scribd company logo
1 of 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
Inaugural Meetup
• Introductions
• Focus on Mobile, .Net, Xamarin
• Planned format
• Group Details
• http://xamarin.meetup.com/
• http://www.meetup.com/SydneyMobileDotNetDevelopers/

• Current sponsors…
Leaders in Finance Technology

(also pretty good at supplying venue and pizza!!)
• 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.
Nokia & Microsoft
• Vaughn Knight, Nokia Australia
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
Android Fragmentation

July 2012 – 3,997 distinct devices

July 2013 – 11,868 distinct devices

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

Source: http://opensignal.com/reports/fragmentation-2013/
OS Versions Out There (iOS & Android)

Source: http://opensignal.com/reports/fragmentation-2013/
Screen Sizes (iOS and Android)

iOS – Distinct Screen Sizes

Android – Distinct Screen Sizes

Source: http://opensignal.com/reports/fragmentation-2013/
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…
Cross Platform AND Native
Xamarin
Write 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.

Compilation
Xamarin.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.
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…
(shamelessly pinched from James Montemagno’s presentation at the Seattle Mobile .Net
Developers meetup)
Code Sharing Approaches
• Portable Class Library (PCL)
• Quick demo
MVVM Pattern
Views

Platform
specific

UI – how to display information

Data Binding

View Models
What information to display
Flow of interaction
Reference

Models
Data entities

Portable
MvvmCross
• Best illustrated with a demo
Questions / Discussion / Pizza
Contact Details / References
Group
http://www.meetup.com/SydneyMobileDot
NetDevelopers/

Xamarin

Further Contacts
Vaughan Knight – Nokia
@vaughanknight
vaughan.knight@nokia.com

www.xamarin.com

MvvmCross

Dave Glover – Microsoft
dglover@microsoft.com

Slodge.blogspot.co.uk

Mvvm Background
http://blogs.msdn.com/b/kashiffl/archive/2
010/11/14/mvvm-technicaldescription.aspx

Andrew Coates – Microsoft
andrew.coates@Microsoft.com
Alec Tucker
atucker@whiteclarkegroup.com
@alecdtucker

UX Design Guidelines
Apple
https://developer.apple.com/library
/ios/documentation/userexperience
/conceptual/mobilehig/

Android
https://developer.android.com/desi
gn/index.html

Windows Phone
http://dev.windowsphone.com/enus/design/principles

More Related Content

What's hot

The front end toolkit
The front end toolkitThe front end toolkit
The front end toolkit
samuel-holt
 
Telerik AppBuilder 101
Telerik AppBuilder 101Telerik AppBuilder 101
Telerik AppBuilder 101
Sam Basu
 

What's hot (20)

Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overview
 
How to become iPhone developer
How to become iPhone developerHow to become iPhone developer
How to become iPhone developer
 
ios basics
ios basicsios basics
ios basics
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Framework
 
Build Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilderBuild Your First iPhone or Android App with Telerik AppBuilder
Build Your First iPhone or Android App with Telerik AppBuilder
 
Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnuke
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Beginning iOS Development with Swift
Beginning iOS Development with SwiftBeginning iOS Development with Swift
Beginning iOS Development with Swift
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
The front end toolkit
The front end toolkitThe front end toolkit
The front end toolkit
 
Telerik AppBuilder 101
Telerik AppBuilder 101Telerik AppBuilder 101
Telerik AppBuilder 101
 
VOIP Sarhang Sorani
VOIP Sarhang SoraniVOIP Sarhang Sorani
VOIP Sarhang Sorani
 
Mobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIsMobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIs
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Hybrid mobile and Ionic
Hybrid mobile and IonicHybrid mobile and Ionic
Hybrid mobile and Ionic
 

Viewers also liked

[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
OpenStack Korea Community
 
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
OpenStack Korea Community
 
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
OpenStack Korea Community
 

Viewers also liked (20)

머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
머신 러닝 입문 #1-머신러닝 소개와 kNN 소개
 
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
[OpenStack Days Korea 2016] Track3 - VDI on OpenStack with LeoStream Connecti...
 
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
[OpenStack Days Korea 2016] Track3 - OpenStack on 64-bit ARM with X-Gene
 
[OpenStack Days Korea 2016] Track3 - Powered by OpenStack, Power to do more w...
[OpenStack Days Korea 2016] Track3 - Powered by OpenStack, Power to do more w...[OpenStack Days Korea 2016] Track3 - Powered by OpenStack, Power to do more w...
[OpenStack Days Korea 2016] Track3 - Powered by OpenStack, Power to do more w...
 
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
[OpenStack Days Korea 2016] Track3 - 방송제작용 UHD 스트로지 구성 및 테스트
 
[OpenStack Days Korea 2016] Track4 - Deep Drive: k8s with Docker
[OpenStack Days Korea 2016] Track4 - Deep Drive: k8s with Docker[OpenStack Days Korea 2016] Track4 - Deep Drive: k8s with Docker
[OpenStack Days Korea 2016] Track4 - Deep Drive: k8s with Docker
 
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
[OpenStack Days Korea 2016] Track1 - Mellanox CloudX - Acceleration for Cloud...
 
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
[OpenStack Days Korea 2016] Track3 - 오픈스택 환경에서 공유 파일 시스템 구현하기: 마닐라(Manila) 프로젝트
 
[OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes
[OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes[OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes
[OpenStack Days Korea 2016] Track4 - OpenStack with Kubernetes
 
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
[OpenStack Days 2016] Track4 - OpenNSL으로 브로드콜 기반 네트,워크 스위치 제어하기
 
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
[OpenStack Days Korea 2016] Track4 - 해외 사례로 보는 OpenStack Billing System
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 
[OpenStack Days Korea 2016] Track3 - 머신러닝과 오픈스택
[OpenStack Days Korea 2016] Track3 - 머신러닝과 오픈스택[OpenStack Days Korea 2016] Track3 - 머신러닝과 오픈스택
[OpenStack Days Korea 2016] Track3 - 머신러닝과 오픈스택
 
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
[OpenStack Days Korea 2016] Track2 - 가상화 네트워크와 클라우드간 협업
 
[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람
[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람
[OpenStack Days Korea 2016] Track2 - 데이터센터에 부는 오픈 소스 하드웨어 바람
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
 
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
[OpenStack Days Korea 2016] Track4 - 오픈스택을 공부합시다 - 커뮤니티 스터디 분과 소개
 
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
[OpenStack Days Korea 2016] Track1 - All flash CEPH 구성 및 최적화
 
[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술
[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술
[OpenStack Days Korea 2016] Track2 - OpenStack 기반 소프트웨어 정의 스토리지 기술
 
[OpenStack Days Korea 2016] Track1 - Red Hat enterprise Linux OpenStack Platform
[OpenStack Days Korea 2016] Track1 - Red Hat enterprise Linux OpenStack Platform[OpenStack Days Korea 2016] Track1 - Red Hat enterprise Linux OpenStack Platform
[OpenStack Days Korea 2016] Track1 - Red Hat enterprise Linux OpenStack Platform
 

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

Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with Xamarin
Brandon Cornett
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Nick Landry
 

Similar to SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and MvvmCross (20)

Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Cross platform development with c# and xamarin
Cross platform development with c# and xamarinCross platform development with c# and xamarin
Cross platform development with c# and xamarin
 
Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Building Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with XamarinBuilding Cross Platform Mobile Apps with Xamarin
Building Cross Platform Mobile Apps with Xamarin
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
Cross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and XamarinCross-Platform Mobile Development using Visual Studio and Xamarin
Cross-Platform Mobile Development using Visual Studio and Xamarin
 
Highlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conferenceHighlights from the Xamarin Evolve 2016 conference
Highlights from the Xamarin Evolve 2016 conference
 
Introduction to xamarin
Introduction to xamarin  Introduction to xamarin
Introduction to xamarin
 
Mobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-TechnicalMobile App Landscape for the Non-Technical
Mobile App Landscape for the Non-Technical
 
Field enablement roadshow - Real World Solutions - John Pelak
Field enablement roadshow - Real World Solutions - John PelakField enablement roadshow - Real World Solutions - John Pelak
Field enablement roadshow - Real World Solutions - John Pelak
 
Lecture 08 Xamarin
Lecture 08 XamarinLecture 08 Xamarin
Lecture 08 Xamarin
 
Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016
 
Xamarin introduction
Xamarin introductionXamarin introduction
Xamarin introduction
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Xamarin介紹
Xamarin介紹Xamarin介紹
Xamarin介紹
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 

More from Alec Tucker

More from Alec Tucker (18)

Monkey fest australia 2020
Monkey fest australia 2020Monkey fest australia 2020
Monkey fest australia 2020
 
Enterprise Mobile Security and OWASP Compliance
Enterprise Mobile Security and OWASP ComplianceEnterprise Mobile Security and OWASP Compliance
Enterprise Mobile Security and OWASP Compliance
 
Addressing the OWASP Mobile Security Threats using Xamarin
Addressing the OWASP Mobile Security Threats using XamarinAddressing the OWASP Mobile Security Threats using Xamarin
Addressing the OWASP Mobile Security Threats using Xamarin
 
Sydney Mobile .Net (Xamarin) Developers Group March 2016
Sydney Mobile .Net (Xamarin) Developers Group March 2016Sydney Mobile .Net (Xamarin) Developers Group March 2016
Sydney Mobile .Net (Xamarin) Developers Group March 2016
 
SydMobNet March 2016: Matthew Robbins - Android M Security Policies
SydMobNet March 2016: Matthew Robbins - Android M Security PoliciesSydMobNet March 2016: Matthew Robbins - Android M Security Policies
SydMobNet March 2016: Matthew Robbins - Android M Security Policies
 
Sydney Mobile .Net (Xamarin) Developers Group January 2016
Sydney Mobile .Net (Xamarin) Developers Group January 2016Sydney Mobile .Net (Xamarin) Developers Group January 2016
Sydney Mobile .Net (Xamarin) Developers Group January 2016
 
Xamarin.android memory management gotchas
Xamarin.android memory management gotchasXamarin.android memory management gotchas
Xamarin.android memory management gotchas
 
Sydney Mobile .Net Developers Group February 2015
Sydney Mobile .Net Developers Group February 2015Sydney Mobile .Net Developers Group February 2015
Sydney Mobile .Net Developers Group February 2015
 
Sydney Mobile .Net Developers Group January 2015
Sydney Mobile .Net Developers Group January 2015Sydney Mobile .Net Developers Group January 2015
Sydney Mobile .Net Developers Group January 2015
 
Sydney Mobile .Net Developers Group December 2014
Sydney Mobile .Net Developers Group December 2014Sydney Mobile .Net Developers Group December 2014
Sydney Mobile .Net Developers Group December 2014
 
#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recap#SydMobNet Nov 2014: Evolve 2014 recap
#SydMobNet Nov 2014: Evolve 2014 recap
 
Sydney Mobile .Net Developers Group November 2014
Sydney Mobile .Net Developers Group November 2014Sydney Mobile .Net Developers Group November 2014
Sydney Mobile .Net Developers Group November 2014
 
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
SydMobNet September 2014: ReactiveUI, Genymotion, Xamarin.UITest and Xamarin ...
 
SydMobNet August 2014: What's New in iOS8 & Xamarin plus .Net MVC and Xamarin...
SydMobNet August 2014: What's New in iOS8 & Xamarin plus .Net MVC and Xamarin...SydMobNet August 2014: What's New in iOS8 & Xamarin plus .Net MVC and Xamarin...
SydMobNet August 2014: What's New in iOS8 & Xamarin plus .Net MVC and Xamarin...
 
SydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin FormsSydMobNet July 2014: Xamarin 3 & Xamarin Forms
SydMobNet July 2014: Xamarin 3 & Xamarin Forms
 
SydMobNet May 2014 - Lewis Benge on Wearable Tech
SydMobNet May 2014 - Lewis Benge on Wearable TechSydMobNet May 2014 - Lewis Benge on Wearable Tech
SydMobNet May 2014 - Lewis Benge on Wearable Tech
 
SydMobNet April 2014 - Nick Randolph's Build 2014 Update
SydMobNet April 2014 - Nick Randolph's Build 2014 UpdateSydMobNet April 2014 - Nick Randolph's Build 2014 Update
SydMobNet April 2014 - Nick Randolph's Build 2014 Update
 
Internet of Things, Mobility & .Net Micro Framework SydMobNet March 2014
Internet of Things, Mobility & .Net Micro Framework SydMobNet March 2014Internet of Things, Mobility & .Net Micro Framework SydMobNet March 2014
Internet of Things, Mobility & .Net Micro Framework SydMobNet March 2014
 

Recently uploaded

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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

  • 1. 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
  • 2. Inaugural Meetup • Introductions • Focus on Mobile, .Net, Xamarin • Planned format • Group Details • http://xamarin.meetup.com/ • http://www.meetup.com/SydneyMobileDotNetDevelopers/ • Current sponsors…
  • 3. Leaders in Finance Technology (also pretty good at supplying venue and pizza!!)
  • 4. • 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.
  • 5. Nokia & Microsoft • Vaughn Knight, Nokia Australia
  • 6. 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
  • 7. Android Fragmentation July 2012 – 3,997 distinct devices July 2013 – 11,868 distinct devices Source: http://opensignal.com/reports/fragmentation-2013/
  • 9. OS Versions Out There (iOS & Android) Source: http://opensignal.com/reports/fragmentation-2013/
  • 10. Screen Sizes (iOS and Android) iOS – Distinct Screen Sizes Android – Distinct Screen Sizes Source: http://opensignal.com/reports/fragmentation-2013/
  • 11. 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…
  • 12. Cross Platform AND Native Xamarin Write 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. Compilation Xamarin.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.
  • 13. 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…
  • 14. (shamelessly pinched from James Montemagno’s presentation at the Seattle Mobile .Net Developers meetup)
  • 15. Code Sharing Approaches • Portable Class Library (PCL) • Quick demo
  • 16. MVVM Pattern Views Platform specific UI – how to display information Data Binding View Models What information to display Flow of interaction Reference Models Data entities Portable
  • 18.
  • 20. Contact Details / References Group http://www.meetup.com/SydneyMobileDot NetDevelopers/ Xamarin Further Contacts Vaughan Knight – Nokia @vaughanknight vaughan.knight@nokia.com www.xamarin.com MvvmCross Dave Glover – Microsoft dglover@microsoft.com Slodge.blogspot.co.uk Mvvm Background http://blogs.msdn.com/b/kashiffl/archive/2 010/11/14/mvvm-technicaldescription.aspx Andrew Coates – Microsoft andrew.coates@Microsoft.com Alec Tucker atucker@whiteclarkegroup.com @alecdtucker UX Design Guidelines Apple https://developer.apple.com/library /ios/documentation/userexperience /conceptual/mobilehig/ Android https://developer.android.com/desi gn/index.html Windows Phone http://dev.windowsphone.com/enus/design/principles

Editor's Notes

  1. https://components.xamarin.com/view/googleglasshttp://xamarin.com/test-cloud
  2. Although this looks good in theory, and does have it’s uses, it is open to being overused.Heavy use of precompiler directives can quickly lead to unmaintainable code.