SlideShare a Scribd company logo
1 of 23
By: Mobile Pundits
Overview
 According to the Global Developer Survey ’13 conducted by Telerik, over

5000 developers said that they developed apps using HTML5 in 2012 and
90% of them plan to do so in 2013.
 Only 15% of developers said they would prefer to use a native-only
approach.
What Platform Developers Wants?
Tizen
13%

Blackberry 10

36%

Firefox OS
Chrome OS

47%

Windows 8

66%
0

10

20

30

40

50

60

70
Development Difficulty

Blackberry and iOS are the most difficult platforms to develop for Windows 8
and Windows Phone 8 ranked as the easiest with Android falling in the
middle.
Usage
 Apple’s iOS is the leading mobile OS in 30 countries. Canada-83.7%, United

States at 35.2%.
 Android accounts for more than 50% of the mobile web traffic with South
Korea at 78.3% and United States at 23.3%.
 Blackberry is the leading mobile OS in four countries, Dominican
Republic, 57.1% and United States, 32.0%
 Symbian is the leading mobile OS in more than 100 countries, Nokia’s Symbianbased phones are widely used in developing nations. However, it has almost no
foothold in the US market.
But HTML5 ?
“I think the biggest mistake that we made as a company is
betting too much on HTML5 as opposed to native”
(Mark Zuckerberg, Sept. 2012)
 HTML5 is indeed a great technology and is here to stay
 Promise: write once, run everywhere
 JavaScript engines are getting faster, and you can use JavaScript

on client and server
 But…
But HTML5 ?
 You have to program in JavaScript 
 Write once, deploy everywhere not 100% true
 UI paradigms are different on each platform

 No access to native libraries
Types of Apps Built Using HTML5

The most important modern web technologies right now include forms and
validation, databases and flexible layouts (grids, flexbox, etc.)
But HTML5 ?

iOS

Android

Windows Phone
C# As a Multiplatform Alternative
 Mono makes it possible to run C# code on the most widespread

platforms
 All Windows variants
 Linux
 OSX
 iOS
 Android
By 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:

Architecture Overview
C# As a Multiplatform Alternative
 Plus a few nice additions
 Playstation Mobile (PS VITA)
 The Unity 3d Engine uses C# as a scripting language (and

Unity runs on Wii and WiiU, PS3, XBOX, Flash)
 PS4 will definitely run C# code
 BSD, Solaris, Wii, PS3

 CPU architecture is not an issue:

x86, x64, IA64, PowerPC, SPARC, ARM…
Useful C# Libraries
 TinyIoC / TinyMessenger

 WaveEngine
 MonoGame (XNA)
 EmguCv (open CV)
 NetTopologySuite
 MVVMCross
 SQLite-Net
 ServiceStack
 Log4Net
 Many more

We have loC containers, MVVM, 2D
and 3D game engines, ORM, Image
processing library, Logging, Web
services, GIS tools…
Native UI Layer
Key Promise
 Add a feature to the service layer and the other layers do

not have to change
 Create Tasky with out shared data layer
 Introduce new cloud service that syncs list data across

devices after the fact

 Presto: new cloud sync version
 How hard to deploy through the upgrade to shared data.
Case Study
 Cross Platform Task Management
 Familiar ground
 Evolves from iPhone, to Android, to shared data with

customer requirements.
 Iterations
 Version 1 is iPhone
 Version 1.1 is Android
 Version 2.0 is Shared Tasks

Communication with backend server (i.e. Promise)
 Version 2.1 is WinPhone

Multiplatform Tasky Solution
Advantages In Using C#
 Linq / Lamda, Parallel Linq, Tasks

 Memory management (no pointers, but leaks are still a problem)
 Strongly typed implicit variable declaration
 Extension methods

 Strongly typed
 Generics
 WCF
 Async/await
 ReSharper(This applies only if using Visual Studio)
Tips & Tricks
 Developing for iOS requires a Mac

 Emulators are good but:
 iOS provides an x86 simulator
 Android provides both ARM and x86 emulators

 iOS deployment still requires the usual certificates and some Xcode
 Memory leaks
 Git support in TFS / Xamarin Studio
Conclusion
 It all sounds great, isn’t it?

 Sometimes is not straightforward as it seems
 Relying on semi-closed platform
 Specific platform knowledge is still a must: get ready to learn

some Java and objective-c
 Mobile is not only coding, UI and UX are crucial for a successful

app
Cross-Platform App Development in C#

More Related Content

What's hot

Windowsphone7
Windowsphone7Windowsphone7
Windowsphone7
yuvaraj72
 
Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8
Dave Bost
 
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
Hajan Selmani
 

What's hot (17)

Must know about programming on the pc and typing faster on the keyboard
Must know about programming on the pc and typing faster on the keyboardMust know about programming on the pc and typing faster on the keyboard
Must know about programming on the pc and typing faster on the keyboard
 
Windowsphone7
Windowsphone7Windowsphone7
Windowsphone7
 
Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8Developing for Windows Phone 8 and Windows 8
Developing for Windows Phone 8 and Windows 8
 
An Introduction to Universal Windows Apps
An Introduction to Universal Windows AppsAn Introduction to Universal Windows Apps
An Introduction to Universal Windows Apps
 
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
 
Windows Phone
Windows PhoneWindows Phone
Windows Phone
 
Build Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is RevolutionaryBuild Conference Highlights: How Windows 8 Metro is Revolutionary
Build Conference Highlights: How Windows 8 Metro is Revolutionary
 
Flutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutionsFlutter 2.2 version | skywave info solutions
Flutter 2.2 version | skywave info solutions
 
Why does .net maui deserve your attention if you’re planning to use xamarin
Why does .net maui deserve your attention if you’re planning to use xamarin  Why does .net maui deserve your attention if you’re planning to use xamarin
Why does .net maui deserve your attention if you’re planning to use xamarin
 
Android interview questions
Android interview questionsAndroid interview questions
Android interview questions
 
Which technology is best for mobile app development
Which technology is best for mobile app developmentWhich technology is best for mobile app development
Which technology is best for mobile app development
 
Top reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app developmentTop reasons why to choose xamarin for mobile app development
Top reasons why to choose xamarin for mobile app development
 
Android operating system
Android operating systemAndroid operating system
Android operating system
 
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
 
Android 1
Android  1Android  1
Android 1
 
Basics of android
Basics of androidBasics of android
Basics of android
 
Interview questions for an Android Developer
Interview questions for an Android DeveloperInterview questions for an Android Developer
Interview questions for an Android Developer
 

Similar to Cross-Platform App Development in C#

android architecture
android architectureandroid architecture
android architecture
Aashita Gupta
 
Mobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th editionMobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th edition
Marco Tabor
 

Similar to Cross-Platform App Development in C# (20)

android architecture
android architectureandroid architecture
android architecture
 
Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6Mobile Developers Guide To The Galaxy Vol.6
Mobile Developers Guide To The Galaxy Vol.6
 
Mobile app
Mobile appMobile app
Mobile app
 
Developers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th editionDevelopers Guide To The Galaxy 8th edition
Developers Guide To The Galaxy 8th edition
 
Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7Mobile Developer's Guide To The Galaxy Vol.7
Mobile Developer's Guide To The Galaxy Vol.7
 
Mobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th editionMobile Developer's Guide To The Galaxy, 5th edition
Mobile Developer's Guide To The Galaxy, 5th edition
 
Android | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application developmentAndroid | Xamarin | Mobile Application development
Android | Xamarin | Mobile Application development
 
Windows 7 mobile
Windows 7 mobileWindows 7 mobile
Windows 7 mobile
 
Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10Mobile Developer's Guide To The Galaxy No.10
Mobile Developer's Guide To The Galaxy No.10
 
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
 
Aandroid
AandroidAandroid
Aandroid
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Power Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating systemPower Point Presentaton on Android Operating system
Power Point Presentaton on Android Operating system
 
AndroidOverview
AndroidOverviewAndroidOverview
AndroidOverview
 
Whither Smartphone Development
Whither Smartphone DevelopmentWhither Smartphone Development
Whither Smartphone Development
 
Whither Smartphone Development
Whither Smartphone DevelopmentWhither Smartphone Development
Whither Smartphone Development
 
Whither Smartphone Development
Whither Smartphone DevelopmentWhither Smartphone Development
Whither Smartphone Development
 
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
Apps vs. Sites vs. Content - a vendor-agnostic view on building stuff for the...
 
Android overview 123
Android overview 123Android overview 123
Android overview 123
 
Android overview
Android overviewAndroid overview
Android overview
 

More from MobilePundits

More from MobilePundits (9)

The Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and MonitoringThe Essentials of Mobile App Testing and Monitoring
The Essentials of Mobile App Testing and Monitoring
 
How to build PhoneGap App for Windows Phone?
How to build PhoneGap App for Windows Phone?How to build PhoneGap App for Windows Phone?
How to build PhoneGap App for Windows Phone?
 
How to make your app successful with mobile app testing?
How to make your app successful with mobile app testing?How to make your app successful with mobile app testing?
How to make your app successful with mobile app testing?
 
How Social Media Helps in Mobile App Success?
How Social Media Helps in Mobile App Success?How Social Media Helps in Mobile App Success?
How Social Media Helps in Mobile App Success?
 
How Mobile App Plays Major Role in Business Success?
How Mobile App Plays Major Role in Business Success?How Mobile App Plays Major Role in Business Success?
How Mobile App Plays Major Role in Business Success?
 
Mobile Development With Android
Mobile Development With AndroidMobile Development With Android
Mobile Development With Android
 
HTML5- The Boosting Era of Web Development
HTML5- The Boosting Era of Web DevelopmentHTML5- The Boosting Era of Web Development
HTML5- The Boosting Era of Web Development
 
Android & iOS Marketplace in Development Era
Android & iOS Marketplace in Development EraAndroid & iOS Marketplace in Development Era
Android & iOS Marketplace in Development Era
 
Smartphone- Revolutionary Application Development in Australia
Smartphone- Revolutionary Application Development in AustraliaSmartphone- Revolutionary Application Development in Australia
Smartphone- Revolutionary Application Development in Australia
 

Recently uploaded

Recently uploaded (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
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
 
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
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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...
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

Cross-Platform App Development in C#

  • 2. Overview  According to the Global Developer Survey ’13 conducted by Telerik, over 5000 developers said that they developed apps using HTML5 in 2012 and 90% of them plan to do so in 2013.  Only 15% of developers said they would prefer to use a native-only approach.
  • 3. What Platform Developers Wants? Tizen 13% Blackberry 10 36% Firefox OS Chrome OS 47% Windows 8 66% 0 10 20 30 40 50 60 70
  • 4. Development Difficulty Blackberry and iOS are the most difficult platforms to develop for Windows 8 and Windows Phone 8 ranked as the easiest with Android falling in the middle.
  • 5.
  • 6. Usage  Apple’s iOS is the leading mobile OS in 30 countries. Canada-83.7%, United States at 35.2%.  Android accounts for more than 50% of the mobile web traffic with South Korea at 78.3% and United States at 23.3%.  Blackberry is the leading mobile OS in four countries, Dominican Republic, 57.1% and United States, 32.0%  Symbian is the leading mobile OS in more than 100 countries, Nokia’s Symbianbased phones are widely used in developing nations. However, it has almost no foothold in the US market.
  • 7. But HTML5 ? “I think the biggest mistake that we made as a company is betting too much on HTML5 as opposed to native” (Mark Zuckerberg, Sept. 2012)  HTML5 is indeed a great technology and is here to stay  Promise: write once, run everywhere  JavaScript engines are getting faster, and you can use JavaScript on client and server  But…
  • 8. But HTML5 ?  You have to program in JavaScript   Write once, deploy everywhere not 100% true  UI paradigms are different on each platform  No access to native libraries
  • 9. Types of Apps Built Using HTML5 The most important modern web technologies right now include forms and validation, databases and flexible layouts (grids, flexbox, etc.)
  • 11.
  • 12. C# As a Multiplatform Alternative  Mono makes it possible to run C# code on the most widespread platforms  All Windows variants  Linux  OSX  iOS  Android
  • 13. By 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: Architecture Overview
  • 14. C# As a Multiplatform Alternative  Plus a few nice additions  Playstation Mobile (PS VITA)  The Unity 3d Engine uses C# as a scripting language (and Unity runs on Wii and WiiU, PS3, XBOX, Flash)  PS4 will definitely run C# code  BSD, Solaris, Wii, PS3  CPU architecture is not an issue: x86, x64, IA64, PowerPC, SPARC, ARM…
  • 15. Useful C# Libraries  TinyIoC / TinyMessenger  WaveEngine  MonoGame (XNA)  EmguCv (open CV)  NetTopologySuite  MVVMCross  SQLite-Net  ServiceStack  Log4Net  Many more We have loC containers, MVVM, 2D and 3D game engines, ORM, Image processing library, Logging, Web services, GIS tools…
  • 17. Key Promise  Add a feature to the service layer and the other layers do not have to change  Create Tasky with out shared data layer  Introduce new cloud service that syncs list data across devices after the fact  Presto: new cloud sync version  How hard to deploy through the upgrade to shared data.
  • 18. Case Study  Cross Platform Task Management  Familiar ground  Evolves from iPhone, to Android, to shared data with customer requirements.  Iterations  Version 1 is iPhone  Version 1.1 is Android  Version 2.0 is Shared Tasks Communication with backend server (i.e. Promise)  Version 2.1 is WinPhone 
  • 20. Advantages In Using C#  Linq / Lamda, Parallel Linq, Tasks  Memory management (no pointers, but leaks are still a problem)  Strongly typed implicit variable declaration  Extension methods  Strongly typed  Generics  WCF  Async/await  ReSharper(This applies only if using Visual Studio)
  • 21. Tips & Tricks  Developing for iOS requires a Mac  Emulators are good but:  iOS provides an x86 simulator  Android provides both ARM and x86 emulators  iOS deployment still requires the usual certificates and some Xcode  Memory leaks  Git support in TFS / Xamarin Studio
  • 22. Conclusion  It all sounds great, isn’t it?  Sometimes is not straightforward as it seems  Relying on semi-closed platform  Specific platform knowledge is still a must: get ready to learn some Java and objective-c  Mobile is not only coding, UI and UX are crucial for a successful app