SlideShare une entreprise Scribd logo
1  sur  39
INTRODUCING XAMARIN 2.0
Pls check our blog at NFLXUG.com
North Florida Xamarin User Group
X-PLATFORM NATIVE APPS IN C#
AND .NET USING XAMARIN TOOLS
(IOS/WP/ANDROID)
MARK J RADACZ, MCTS
DEVELOPER, GLOBAL RAD SOLUTIONS, LLC
WWW.MDUGJAX.COM
WWW.NFLXUG.COM
BLOG: XRADAPP.COM
@MARKRADACZ
LIVE THE LIFE YOU LOVE.. LOVE THE LIFE YOU LIVE…
Who am I?
Mark J Radacz
 #HusbandFatherLife-LongMateGeek
 Enjoying every trip around the Sun
 MCTS, Consultant, Developer
 10 years in .NET + iOS recently
 Ex-Blackberry-Apple-WP “fanboy”
QUESTION:
CAN I WRITE CODE
ONCE
AND
RUN
ON ALL DEVICES?
Write C#
Run on 2.5+ billion devices
With Xamarin, you write your apps entirely in C#, sharing the same
code on iOS, Android, Windows and Mac
AGENDA
 What is Xamarin Studio
 Why choose Xamarin tools
 UX Design
 Code Demo in iOS, WP and Android
WHAT IS XAMARIN
 Write in C# - run on iOS (iPhone, iPodTouch, iPad) and Android
 Built on top of Mono
 Xamarin Studio - Mac OS X APIs
 Xamarin.Android - Android SDK APIs
 .NET Base Class Library (BCL)
 LEGIT!
HOW XAMARIN WORKS
Your shared code never needs to know the difference!
WHY CHOOSE XAMARIN
APPS IN C# FOR IOS, ANDROID
AND WP
 Write apps in C# (run on 2.5 billion devices)
 shorter, more maintainable code
 advanced language features (Language Integrated Query (LINQ), delegates, lambdas, events,
garbage collection and many other)
 Reuse up to 90% of code between platforms
 Native UI, Native Performance
 Modern Language, Powerful Framework
 .NET Libraries and Objective-C libraries
 Rich IDE Support (also edit code in VS)
ANDROID DEVICE FRAGMENTATION
July 2013 11,686 devices
http://opensignal.com/reports/fragmentation-2013/
July 2012 3,997 devices
SCREEN SIZES
http://opensignal.com/blog/2013/07/30/40-developer-tips-for-android-
Android
iOS
POWERFUL XAMARIN DESIGNER
XAMARIN COMPONENT STORE
SHARE CODE BETWEEN PLATFORMS
 App functionality – save development
time
business logic
data access and
network communications
 Xamarin helps to share the same C#
code across iOS, Android, Mac, and
Windows
 GUI Designed separately on Each
platform
MVVMCROSS
SHARING CODE BETWEEN PLATFORMS
 File Linking into each App Project
 File Linking into Separate Projects
 Cloned Project Files
 Microsoft Project Linker
http://bit.ly/12C4pNF
FILE LINKING
FILE LINKING TO SEPARATE PROJECTS
Developing with Xamarin
Xamarin Studio
PC or Mac
Visual Studio Plugin
VS 2012/2013
XAMARIN TEST CLOUD
 Start immediately
 Useful Visual Reports
 Hundreds of non-jailbroken devices
 Test for fragmentation
 Built for Continuous Integration
 Object-based UI testing
 script-free and scriptable
TESTING MOBILE APPS
TEST CLOUD INTERFACE
 Scripting technology for Xamarin Test Cloud
 UI Test Automation for iOS & Android
 Run UI tests on Devices or
Simulators/Emulators
 Supports Behavior Driven Development
(BDD)
 Provides the Automation APIs needed to
interact with UI controls in an app
wait for events to occur (i.e. no network
activity)
make assertions about the visible view
generate screenshots of the app
app-lifecycle APIs (start/stop, uninstall, etc)
UX DESIGN
*UIKitten pic snagged from FrankAKrueger
PLATFORM SPECIFIC
SCHETCHES/WIREFRAMES
UX Wireframes using
Balsamiq, Mockingbird, Visio, etc
PLATFORM SPECIFIC
UX
i.e. W8 - Live Tiles
PLATFORM SPECIFIC UX
i.e. iOS7 – (still) no back button
DEVICE SPECIFIC UX
Phone vs Tablet
FOLLOW PLATFORM SPECIFIC UX
 Apple - Human Interface Guidelines
 Android – Design Guidelines
 Windows Phone – UX Design Guidelines for WP
CODE DEMO(S)
PHONEWORD
SUMMARY
 What is Xamarin Studio
 Why choose Xamarin tools
 UX Design
 Code Demo in iOS, WP and Android
Q&A
REFERENCES
 UX Design for Devs
 Tapworthy by Josh Clark
http://www.youtube.com/watch?v=QU5Il9qVfbM
 Universal Principles of Desing by William Lidwell et. al.
 BillyHollis.com (watch: The Whole Brain Developer )
 Videos http://www.youtube.com/user/XamarinHQ
 Sample GitHub Repositories
 https://github.com/xamarin/mobile-samples (x-platform)
 https://github.com/xamarin/monotouch-samples
 https://github.com/xamarin/monodroid-samples
https://github.com/xamarin/Seminars
 Xamarin.com/University
TEST CLOUD REFERENCES
 http://xamarin.com/test-cloud
 http://docs.xamarin.com/
 https://github.com/calabash-ios
 https://github.com/calabash-ios/wiki
 https://github.com/calabash/field-service-example
 https://github.com/calabash/x-platform-example
REFERENCES
 Xamarin DevCenter - http://docs.xamarin.com/guides/cross-platform/
free/$299/$999/$1899 per year per platform
(starter/Indie/Business/Enterprise)
 UX
Apple - Human Interface Guidelines
Android – Design Guidelines
Windows Phone – UX Design Guidelines for WP
 DevCenter Memberships
Apple – http://developer.apple.com ($99/year)
Android – http://developer.android.com ($25)
Win Store – http://dev.windowsphone.com ($19/99 year)
 XUG & My Info
www.NFLXUG.com
blog: www.iRadApp.com
radacz.mcp@gmail.com @MarkRadacz

Contenu connexe

Tendances

Xamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsXamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsWilliam S. Rodriguez
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Sorey García
 
Mobile app development - course intro
Mobile app development - course introMobile app development - course intro
Mobile app development - course introIvano Malavolta
 
Journey into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case studyJourney into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case studyLukasz Jarmulowicz
 
After HTML5 Mobilism 2011
After HTML5 Mobilism 2011After HTML5 Mobilism 2011
After HTML5 Mobilism 2011Brian LeRoux
 
Advanced operating system_ja_2_
Advanced operating system_ja_2_Advanced operating system_ja_2_
Advanced operating system_ja_2_saitonorio
 
Advanced operating system_ja_2
Advanced operating system_ja_2Advanced operating system_ja_2
Advanced operating system_ja_2saitonorio
 
Developing cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaDeveloping cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaMahmoud Tolba
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapQuang Minh Dao
 
Learn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsLearn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsEng Teong Cheah
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschimpgco
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발영욱 김
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Developmentshikishiji
 
How Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile DevelopmentHow Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile DevelopmentMentorMate
 
Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGapDotitude
 
もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。keiko kudo
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapNur Hidayat
 

Tendances (20)

Xamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.FormsXamarin Traditional Approach & Xamarin.Forms
Xamarin Traditional Approach & Xamarin.Forms
 
Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8Conociendo el ecosistema de Windows Phone 8 y Windows 8
Conociendo el ecosistema de Windows Phone 8 y Windows 8
 
Mobile app development - course intro
Mobile app development - course introMobile app development - course intro
Mobile app development - course intro
 
Phone gap
Phone gapPhone gap
Phone gap
 
Journey into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case studyJourney into cross mobile apps development - Xamarin Forms case study
Journey into cross mobile apps development - Xamarin Forms case study
 
After HTML5 Mobilism 2011
After HTML5 Mobilism 2011After HTML5 Mobilism 2011
After HTML5 Mobilism 2011
 
Advanced operating system_ja_2_
Advanced operating system_ja_2_Advanced operating system_ja_2_
Advanced operating system_ja_2_
 
Advanced operating system_ja_2
Advanced operating system_ja_2Advanced operating system_ja_2
Advanced operating system_ja_2
 
Developing cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache CordovaDeveloping cross platforms mobile applications using the Apache Cordova
Developing cross platforms mobile applications using the Apache Cordova
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Mobile Widgets Development
Mobile Widgets DevelopmentMobile Widgets Development
Mobile Widgets Development
 
Talk (2)
Talk (2)Talk (2)
Talk (2)
 
Learn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.FormsLearn .NET Core - UWP & Xamarin.Forms
Learn .NET Core - UWP & Xamarin.Forms
 
Mobile next 2013 petru jucovschi
Mobile next 2013   petru jucovschiMobile next 2013   petru jucovschi
Mobile next 2013 petru jucovschi
 
20141216 멜팅팟 부산 세션 ii - cross platform 개발
20141216 멜팅팟 부산   세션 ii - cross platform 개발20141216 멜팅팟 부산   세션 ii - cross platform 개발
20141216 멜팅팟 부산 세션 ii - cross platform 개발
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
How Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile DevelopmentHow Xamarin Is Revolutionizing Mobile Development
How Xamarin Is Revolutionizing Mobile Development
 
Hybrid App Development with PhoneGap
Hybrid App Development with PhoneGapHybrid App Development with PhoneGap
Hybrid App Development with PhoneGap
 
もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。もし青森の女子WebデザイナーがAndroidと出会ったら。
もし青森の女子WebデザイナーがAndroidと出会ったら。
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGap
 

En vedette

11 things i wish i had learned final presentation
11 things i wish i had learned final presentation11 things i wish i had learned final presentation
11 things i wish i had learned final presentationbehnbrian
 
List of prior actions version of 26 june 20 00
List of prior actions   version of 26 june 20 00List of prior actions   version of 26 june 20 00
List of prior actions version of 26 june 20 00Emmanuel de La Houssaye
 
บทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจบทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจNattipong Siangyen
 
บทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจบทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจNattipong Siangyen
 
Needle roller bearings parameter from Chik bearing
Needle roller bearings parameter from Chik bearingNeedle roller bearings parameter from Chik bearing
Needle roller bearings parameter from Chik bearingCHIK BEARING
 
Marketing benchmarks-from-7000-businesses
Marketing benchmarks-from-7000-businessesMarketing benchmarks-from-7000-businesses
Marketing benchmarks-from-7000-businessesJacques Bouchard
 
Containers em Escala com Kubernetes e OpenShift 3
Containers em Escala com Kubernetes e OpenShift 3Containers em Escala com Kubernetes e OpenShift 3
Containers em Escala com Kubernetes e OpenShift 3Fabiano Franz
 
Honours Thesis for Susanne Jorde Lunde
Honours Thesis for Susanne Jorde Lunde Honours Thesis for Susanne Jorde Lunde
Honours Thesis for Susanne Jorde Lunde Susanne Jorde Lunde
 
Insersion type Radar Level Transmitter ELGWR 40
Insersion type Radar Level Transmitter ELGWR 40Insersion type Radar Level Transmitter ELGWR 40
Insersion type Radar Level Transmitter ELGWR 40NK Instruments Pvt. Ltd.
 
Spa salon beauty machine lasy laser catalog starry liu
Spa salon beauty machine lasy laser catalog starry liuSpa salon beauty machine lasy laser catalog starry liu
Spa salon beauty machine lasy laser catalog starry liuStarry Liu
 

En vedette (14)

11 things i wish i had learned final presentation
11 things i wish i had learned final presentation11 things i wish i had learned final presentation
11 things i wish i had learned final presentation
 
05999528
0599952805999528
05999528
 
List of prior actions version of 26 june 20 00
List of prior actions   version of 26 june 20 00List of prior actions   version of 26 june 20 00
List of prior actions version of 26 june 20 00
 
General presentation incafust
General presentation incafustGeneral presentation incafust
General presentation incafust
 
Isle marie yoga week
Isle marie yoga weekIsle marie yoga week
Isle marie yoga week
 
บทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจบทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจ
 
บทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจบทที่ 1 ทำความรู้จักเว็บเพจ
บทที่ 1 ทำความรู้จักเว็บเพจ
 
Needle roller bearings parameter from Chik bearing
Needle roller bearings parameter from Chik bearingNeedle roller bearings parameter from Chik bearing
Needle roller bearings parameter from Chik bearing
 
Marketing benchmarks-from-7000-businesses
Marketing benchmarks-from-7000-businessesMarketing benchmarks-from-7000-businesses
Marketing benchmarks-from-7000-businesses
 
Containers em Escala com Kubernetes e OpenShift 3
Containers em Escala com Kubernetes e OpenShift 3Containers em Escala com Kubernetes e OpenShift 3
Containers em Escala com Kubernetes e OpenShift 3
 
Honours Thesis for Susanne Jorde Lunde
Honours Thesis for Susanne Jorde Lunde Honours Thesis for Susanne Jorde Lunde
Honours Thesis for Susanne Jorde Lunde
 
Insersion type Radar Level Transmitter ELGWR 40
Insersion type Radar Level Transmitter ELGWR 40Insersion type Radar Level Transmitter ELGWR 40
Insersion type Radar Level Transmitter ELGWR 40
 
Spa salon beauty machine lasy laser catalog starry liu
Spa salon beauty machine lasy laser catalog starry liuSpa salon beauty machine lasy laser catalog starry liu
Spa salon beauty machine lasy laser catalog starry liu
 
Flanged end Pressure Switches MZ Series
Flanged end Pressure Switches MZ SeriesFlanged end Pressure Switches MZ Series
Flanged end Pressure Switches MZ Series
 

Similaire à X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)

Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformLiddle Fang
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile TechnologiesTalentica Software
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do ThatNathan Smith
 
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfTK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfLam Chun
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools reviewUday Kothari
 
Mobile Dev For Web Devs
Mobile Dev For Web DevsMobile Dev For Web Devs
Mobile Dev For Web DevsJustin James
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Craig Dunn
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarinJerel Hass
 
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...RedFabriQ
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Marco Tabor
 
Apps development for mobile devices
Apps development for mobile devicesApps development for mobile devices
Apps development for mobile devicesrdresler
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET Journal
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development CompanyThe NineHertz
 
End to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih XamarinEnd to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih XamarinJames Montemagno
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedAhsanul Karim
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.Petru Jucovschi
 
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)Ed Snider
 

Similaire à X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android) (20)

Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Cross Platform Mobile Technologies
Cross Platform Mobile TechnologiesCross Platform Mobile Technologies
Cross Platform Mobile Technologies
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdfTK2323 Lecture 1 - Introduction to Mobile Application.pdf
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
Cross platform mobile app development tools review
Cross platform mobile app development tools reviewCross platform mobile app development tools review
Cross platform mobile app development tools review
 
Mobile Dev For Web Devs
Mobile Dev For Web DevsMobile Dev For Web Devs
Mobile Dev For Web Devs
 
Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
Designing mobile applications with xamarin
Designing mobile applications with xamarinDesigning mobile applications with xamarin
Designing mobile applications with xamarin
 
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...
20140207 xamarin-red fabriq-microsoft-techdays-nativemobileappdevelopmentwith...
 
Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9Mobile Developer's Guide To The Galaxy No. 9
Mobile Developer's Guide To The Galaxy No. 9
 
Apps development for mobile devices
Apps development for mobile devicesApps development for mobile devices
Apps development for mobile devices
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific Application
 
Cross-platform App Development Company
Cross-platform App Development CompanyCross-platform App Development Company
Cross-platform App Development Company
 
End to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih XamarinEnd to-end native iOS, Android and Windows apps wtih Xamarin
End to-end native iOS, Android and Windows apps wtih Xamarin
 
Tcdnug xamarin
Tcdnug xamarinTcdnug xamarin
Tcdnug xamarin
 
Day 1 Android: Before Getting Started
Day 1 Android: Before Getting StartedDay 1 Android: Before Getting Started
Day 1 Android: Before Getting Started
 
Mobility today & what's next. Application ecosystems.
Mobility today & what's next.Application ecosystems.Mobility today & what's next.Application ecosystems.
Mobility today & what's next. Application ecosystems.
 
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)
Xamarin.Forms (Northern VA Mobile C# Developers Group 8/13/14)
 

Dernier

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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 WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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 organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
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 2024Rafal Los
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Dernier (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

X-Platform native apps in C# and .NET using Xamarin tools (iOS/WP/Android)

  • 1. INTRODUCING XAMARIN 2.0 Pls check our blog at NFLXUG.com North Florida Xamarin User Group
  • 2. X-PLATFORM NATIVE APPS IN C# AND .NET USING XAMARIN TOOLS (IOS/WP/ANDROID) MARK J RADACZ, MCTS DEVELOPER, GLOBAL RAD SOLUTIONS, LLC WWW.MDUGJAX.COM WWW.NFLXUG.COM BLOG: XRADAPP.COM @MARKRADACZ
  • 3. LIVE THE LIFE YOU LOVE.. LOVE THE LIFE YOU LIVE…
  • 4. Who am I? Mark J Radacz  #HusbandFatherLife-LongMateGeek  Enjoying every trip around the Sun  MCTS, Consultant, Developer  10 years in .NET + iOS recently  Ex-Blackberry-Apple-WP “fanboy”
  • 5. QUESTION: CAN I WRITE CODE ONCE AND RUN ON ALL DEVICES?
  • 6. Write C# Run on 2.5+ billion devices With Xamarin, you write your apps entirely in C#, sharing the same code on iOS, Android, Windows and Mac
  • 7. AGENDA  What is Xamarin Studio  Why choose Xamarin tools  UX Design  Code Demo in iOS, WP and Android
  • 8. WHAT IS XAMARIN  Write in C# - run on iOS (iPhone, iPodTouch, iPad) and Android  Built on top of Mono  Xamarin Studio - Mac OS X APIs  Xamarin.Android - Android SDK APIs  .NET Base Class Library (BCL)  LEGIT!
  • 9. HOW XAMARIN WORKS Your shared code never needs to know the difference!
  • 11. APPS IN C# FOR IOS, ANDROID AND WP  Write apps in C# (run on 2.5 billion devices)  shorter, more maintainable code  advanced language features (Language Integrated Query (LINQ), delegates, lambdas, events, garbage collection and many other)  Reuse up to 90% of code between platforms  Native UI, Native Performance  Modern Language, Powerful Framework  .NET Libraries and Objective-C libraries  Rich IDE Support (also edit code in VS)
  • 12. ANDROID DEVICE FRAGMENTATION July 2013 11,686 devices http://opensignal.com/reports/fragmentation-2013/ July 2012 3,997 devices
  • 16. SHARE CODE BETWEEN PLATFORMS  App functionality – save development time business logic data access and network communications  Xamarin helps to share the same C# code across iOS, Android, Mac, and Windows  GUI Designed separately on Each platform
  • 18. SHARING CODE BETWEEN PLATFORMS  File Linking into each App Project  File Linking into Separate Projects  Cloned Project Files  Microsoft Project Linker http://bit.ly/12C4pNF
  • 20. FILE LINKING TO SEPARATE PROJECTS
  • 21. Developing with Xamarin Xamarin Studio PC or Mac Visual Studio Plugin VS 2012/2013
  • 22. XAMARIN TEST CLOUD  Start immediately  Useful Visual Reports  Hundreds of non-jailbroken devices  Test for fragmentation  Built for Continuous Integration  Object-based UI testing  script-free and scriptable
  • 25.  Scripting technology for Xamarin Test Cloud  UI Test Automation for iOS & Android  Run UI tests on Devices or Simulators/Emulators  Supports Behavior Driven Development (BDD)  Provides the Automation APIs needed to interact with UI controls in an app wait for events to occur (i.e. no network activity) make assertions about the visible view generate screenshots of the app app-lifecycle APIs (start/stop, uninstall, etc)
  • 27. *UIKitten pic snagged from FrankAKrueger
  • 28. PLATFORM SPECIFIC SCHETCHES/WIREFRAMES UX Wireframes using Balsamiq, Mockingbird, Visio, etc
  • 30. PLATFORM SPECIFIC UX i.e. iOS7 – (still) no back button
  • 32. FOLLOW PLATFORM SPECIFIC UX  Apple - Human Interface Guidelines  Android – Design Guidelines  Windows Phone – UX Design Guidelines for WP
  • 35. SUMMARY  What is Xamarin Studio  Why choose Xamarin tools  UX Design  Code Demo in iOS, WP and Android
  • 36. Q&A
  • 37. REFERENCES  UX Design for Devs  Tapworthy by Josh Clark http://www.youtube.com/watch?v=QU5Il9qVfbM  Universal Principles of Desing by William Lidwell et. al.  BillyHollis.com (watch: The Whole Brain Developer )  Videos http://www.youtube.com/user/XamarinHQ  Sample GitHub Repositories  https://github.com/xamarin/mobile-samples (x-platform)  https://github.com/xamarin/monotouch-samples  https://github.com/xamarin/monodroid-samples https://github.com/xamarin/Seminars  Xamarin.com/University
  • 38. TEST CLOUD REFERENCES  http://xamarin.com/test-cloud  http://docs.xamarin.com/  https://github.com/calabash-ios  https://github.com/calabash-ios/wiki  https://github.com/calabash/field-service-example  https://github.com/calabash/x-platform-example
  • 39. REFERENCES  Xamarin DevCenter - http://docs.xamarin.com/guides/cross-platform/ free/$299/$999/$1899 per year per platform (starter/Indie/Business/Enterprise)  UX Apple - Human Interface Guidelines Android – Design Guidelines Windows Phone – UX Design Guidelines for WP  DevCenter Memberships Apple – http://developer.apple.com ($99/year) Android – http://developer.android.com ($25) Win Store – http://dev.windowsphone.com ($19/99 year)  XUG & My Info www.NFLXUG.com blog: www.iRadApp.com radacz.mcp@gmail.com @MarkRadacz

Notes de l'éditeur

  1. WP over iPhone and AndroidCall quality. I actually use my phone as a phoneSimplicity. Samsung Focus S, Nokia 900 and Nokia 800 were flawless out of the box. No junk software. Speaking of science experiments, I also tried a Android on Samsung Galaxy, Captivate, HTC MyTouchsoftware that cannot be deleted and restarts itself? Simplicity again. Everything after set up has been painless as well. Adding apps, setting up email accounts, etc. I thought the iPhone was good. WP set up was actually smoother and took WAY less time. Same for Wi-Fi, etc.Speed. The 900 4Gdidn’t seem to lag the way the iPhone did at times. Live Tiles. It’s a minor thing but the Metro tiles are pretty cool.
  2. Use any native APIXamarin's binding technology exposes all of the APIs available in iOS and Android to your applications as regular C# class libraries. This means your Xamarin application can do anything a platform, or device, offers, with native user interface and excellent performance.
  3. Native compilationXamarin's compiler is smart - so smart that it can produce exactly the right output for each platform. Xamarin.iOS does full Ahead-of-Time (AOT) compilation to produce an ARM binary suitable for Apple's App StoreXamarin.Android takes advantage of Just In Time compilation right on the Android device. Your shared code never needs to know the difference!
  4. Leverage the full .NET runtimeXamarin contains a fully functional implementation of the .NET runtime, called Mono, which is bundled with your app so that your code executes with all of the power of C# and .NET, including memory management, reflection, and the .NET base class libraries. Create fully native apps with device-specific experiences that today’s mobile users demand. Xamarin delivers high performance compiled code with full access to all the native APIs that make each device platform unique.With Xamarin, you can write your mobile apps entirely in C#. Not only can you write succinct, strongly typed and garbage-collected code, you can utilize Language Integrated Query (LINQ), Delegates and Events, and easily import existing libraries written in C#, C/C++, Java, and Objective-C.Xamarin allows you to share all the non-UI code across iOS, Android, Mac and Windows apps, significantly reducing the barrier to building and maintaining multi-platform apps. Save time building apps in this heterogeneous computing world by sharing up to 90% of your code.Xamarin gives you great tools to design, develop, debug and deploy apps. Point and click to create user interfaces, explore native iOS and Android APIs as you type with code autocompletion, debug apps running on emulator or device, and distribute apps to app stores or internally. Use Visual Studio or use our own cross-platform IDE, MonoDevelop.It is possible to edit code in Visual Studio have access to ReSharper and other tools, than move it over to MonoDevelop
  5. Samsung have a 47.5% share of the Android market.Samsung are, with Sony-Ericsson in second with a 6.5% market share - less than 1/6th of Samsung's. Some of the brand names shown as different in the graphic are part of the same company, i.e. Moto and Motorola are the same and HTC is shown as split up into its different regional variants. But even when unified under one umbrella name Motorola only ends up with a 4.2% share and HTC even less at 3.9%. Fragmentation is both a strength and weakness of the Android ecosystem. When comparisons are made between Android and iOS the issue of different API levels, and the vastly different devices running them, is often emphasised. In this report we examine the extent of Android fragmentation and analyse its impact on both users and developers.The Problem:Android devices come in all shapes and sizes, with vastly different performance levels and screen sizes. Furthermore, there are many different versions of Android that are concurrently active at any one time, adding another level of fragmentation. What this means is that developing apps that work across the whole range of Android devices can be extremely challenging and time-consuming. The Advantage:Despite the problems, fragmentation also has a great number of benefits – for both developers and users. The availability of cheap Android phones (rarely running the most recent version) means that they have a much greater global reach than iOS, so app developers have a wider audience to build for. It may be tricky to do, but the potential reward definitely makes it worthwhile. For consumers, extreme fragmentation means that they can get exactly the phone they want – big or small, cheap or expensive, with any number of different feature combinations.
  6. The iOS designer is Xamarin Studio’s alternative to Xcode’s Interface Builder that provides an integrated experience for working with Storyboards. It is similar to the Xamarin.Android designer, and facilitates building Views using drag-and-drop functionality and property fields.
  7. Share code between platformsArchitect your app so that the UI is cleanly separated from the rest of the code. Deliver a device-specific, native user experience by writing code that calls the native APIs, while sharing business logic, data access, and network communications code.
  8. File Linking into each App Project – Use the ‘file linking’ feature of Visual Studio & Xamarin Studio to include the same file in each platform’s application. File Linking into Separate Projects – Use the ‘file linking’ feature of Visual Studio & Xamarin Studio to include the same file in multiple library projects (one for each platform). Cloned Project Files – Rather than linking, directly include the same files in multiple projects (one for each platform). Microsoft Project Linker – A tool that only runs on Windows, which keeps multiple project files synchronized as source files are added to each.---------------Portable Class Libraries are the simplest way to share code across multiple platforms, however they have some disadvantages including the custom configuration currently required to install PCL support.File linking or cloned project files are simpler to create but require constant manual intervention to keep them synchronized.The code sharing strategy you choose will be driven by the platforms you are targeting. Choose a method that works best for your project.
  9. File Linking - The simplest approach to sharing code files is to place them in a separate directory (ie. outside of your various mobile application projects) and use file-linking to include them1.1. ExampleA cross platform application that supports iOS, Android and Windows Phone would require an application project for each platform. The shared code lives in a separate filesystem directory from all the projects, and all the shared source code files are linked in to each application’s project.An example solution would contain the following folders and projects (project names have been chosen for expressiveness, your projects do not have to follow these naming guidelines):Core – Filesystem directory containing the shared code. Optionally create a “csproj” file to manage the source, but this project file will not be referenced by any other part of the solution. AppAndroid – Xamarin.Android application that contains linked-files for all the source code in the Core directory. AppiOS – Xamarin.iOS application that contains linked-files for all the source code in the Core directory. AppWP7 – Windows Phone application that contains linked-files for all the source code in the Core directory. In this way the three application projects are effectively sharing the same source code (the C# files in Core.Android). Any edits to the shared code will be shared across all three projects – however, file additions or deletions must be done manually. Add files in the filesystem (or use a separate library project to contain them) and then update all the application projects’ linked files to keep them in sync.1.2. BenefitsAllows you to share code across multiple projects.Shared code can be branched based on the platform using compiler directives (eg. using #if __ANDROID__, Application projects can include platform-specific references that the shared code can utilize (such as using Community.CsharpSqlite.WP7 in the Tasky and MWC samples). 1.3. DisadvantagesIn Visual Studio there is no simple way to add an entire filesystem ‘tree’ to a project, so files must be individually added. The directory hierarchy must also be manually created. If you add, delete or move a file in one project you must remember to perform the same action in all the other project files. Refactoring will only work within one platform type.Empty subdirectories must also exist before you can ‘link’ files contained within a subdirectory. If you forget to choose Add As Link (in Visual Studio), it will copy the file into your target project instead of linking. If you don’t notice this has occurred you could accidentally edit both the original file and the copy, getting them out-of-sync. 1.4. RemarksWorks for all platforms but requires careful, manual management of file links.
  10. 2. File linking to separate projects2.1. ExampleA cross platform application that supports iOS, Android and Windows Phone would require three shared-code project files and three application projects. Because the Android project can be loaded in both Xamarin Studio and Visual Studio it makes sense to use it as the ‘source’ project.An example solution would contain the following folders and projects (project names have been chosen for expressiveness, your projects do not have to follow these naming guidelines):Core.Android.Source – Xamarin.Android Library Project that contains the shared source files. Core.iOS.Linked – Xamarin.iOS Library Project that links to all the files in Core.Android. This project contains the same directory structure as Core.Android but NO physical C# files, they are all linked. Core.WP7.Linked – Windows Phone Library Project that links to al the files in Core.Android. This project contains the same directory structure as Core.Android but NO physical C# files, they are all linked. AppAndroid – Xamarin.Android application that references Core.Android. AppiOS – Xamarin.iOS application that references Core.iOS. AppWP7 – Windows Phone application that references Core.WP7. In this way the three application projects are effectively sharing the same source code (the C# files in Core.Android). Any changes to the shared code should be done in the Core.Android project – file additions or deletions must then be manually re-done in the other two Core projects with linked files to keep them in sync.2.2. BenefitsAllows you to share code across multiple projects.Platform-specific projects can each have different compiler directives defined, so you can branch code based on the platform (eg. using #if __ANDROID__, as discussed in the [Building Cross Platform Applications] document). Platform-specific projects can include platform-specific references (such as using Community.CsharpSqlite.WP7 in the Tasky and MWC samples). The code using these references can be managed with compiler directives. 2.3. DisadvantagesIn Visual Studio there is no simple way to add an entire filesystem ‘tree’ to a project, so files must be individually added. The directory hierarchy must also be manually created. If you add, delete or move a file in one project you must remember to perform the same action in all the other project files. Refactoring will only work within one platform type.The project file must live in a separate directory to enable files to be linked. Empty subdirectories must also exist before you can ‘link’ files contained within a subdirectory. If you forget to choose Add As Link (in Visual Studio), it will copy the file into your target project instead of linking. If you don’t notice this has occurred you could accidentally edit both the original file and the copy, getting them out-of-sync. 2.4. RemarksWorks for all platforms but requires careful, manual management of file links.
  11. Xamarin StudioIDE for developing cross-platform apps with C#. Available for Mac and Windows.Xamarin for Visual StudioVisual Studio add-ins so that you can develop your Android, iOS and Windows apps all in a single solution.Xamarin.AndroidAndroid phone and tablet apps in C#, using Xamarin Studio or Visual Studio.Create Android app layouts from directly within Visual Studio and Xamarin Studio with drag and drop simplicity.Xamarin.iOSiPhone and iPad apps in C#, using Xamarin Studio or Visual Studio.Xamarin.MacNative Mac apps in C#. Expand your app reach to 66 million Macs and reach new users through the Mac App Store.Xamarin.MobileLibrary that increases code-sharing by exposing a single set of APIs for accessing common mobile device functionality across device platforms.
  12. Find bugs before your users do.Start immediatelyQuick and easy to get started with the Xamarin App Explorer.Beautiful reportsMore than detailed technical feedback: visual reporting and performance monitoring.Hundreds of devicesBe confident that your apps function correctly and looks great on actual physical devices.Test for fragmentationTest automatically on hundreds of combinations of operating systems, screens, and resolutions.Continuous IntegrationUse command line tool to run your tests or execute automated acceptance tests as part of your continuous integration process or ALM.Object-based UI testingTest your entire app, from the UI down, using object-level user interface testing.
  13. Lowest-Common-Denominator User InterfacesOne of Xamarin’s strengths is the ability to build a native UI on each platform. Avoid re-using the user-interface design across iOS, Android and Windows Phone without tweaking it for each platform. For example: don’t build a ‘Back’ button into your Android or Windows Phone applicationsdon’t build a custom tabbed-control for iOS where the tabs sit across the top of the screen. Use the metaphors that the users on each platform are familiar with.
  14. MWCPhonewordEmployee DirectoryField Service on iOS
  15. Here is a summary of the key points for creating Xamarin cross-platform apps:Use C# - Write your apps in C#. Existing code written in C# can be ported to iOS and Android using Xamarin very easily, and obviously used on Windows Phone. Utilize the MVC design pattern - Develop your application’s User Interface using the Model/View/Controller pattern. Architect your application using a Model/View/Controller approach or a Model/View/ViewModel approach where there is a clear separation between the “Model” and the rest. Determine which parts of your application will be using native user interface elements of each platform (iOS, Android, Windows Phone and Windows 8/RT) and use this as a guideline to split your application into two components: “Core” and “User-Interface”. Build native UIs - Each OS-specific application provides a different user-interface layer (implemented in C# with the assistance of native UI design tools): On iOS use the MonoTouch.UIKit APIs to create native-looking applications, optionally utilizing Apple’s Interface Builder. On Android, use Android.Views to create native-looking applications, taking advantage of Xamarin’s UI designer On Windows Phone you will be using the XAML/Silverlight presentation layer, using Visual Studio or Blend’s UI designer On Windows 8, use the Metro APIs to create a native user experience.The amount of code re-use will depend largely on how much code is kept in the shared core and how much code is user-interface specific. The core code is anything that does not interact directly with the user, but instead provides services for parts of the application that will collect and display this information.To increase the amount of code re-use, you can adopt cross-platform components that provide common services across all these systems such as:SQLite-NET for local SQL storage, Xamarin.Mobile for accessing device-specific capabilities including the camera, contacts and geolocation, Using framework features for networking, web services, IO and more.Some of these components are implemented in the Tasky Pro and MWC 2012 case studies.Separate Reusable Code into a Core LibraryBy following the principle of separation of responsibility by layering your application architecture and then moving core functionality that is platform agnostic into a reusable core library, you can maximize code sharing across platforms, as the figure below illustrates: