Cross-Platform App Development in C#


Published on

Mobile Pundits is a full service provider company that provides strategic, design, development, enterprise, testing and outsourcing services to our clients. Our specialty in product to build awesome apps for mobile and web platforms. The Mobile Pundits team work, where entrepreneurs and start-ups come to grow and be surrounded by like-minded people who are building amazing technology products.

With mobile application development turning mainstream, developers are progressively looking at cross-platform mobile application development tools to develop apps using C# to help reduce cost of development and improve time-to-market. Cross-platform mobile application development tools attempt to deliver these benefits by providing a neutral way of writing applications using their own particular language/dialect/tools that is then translated into the multiple forms required for deployment to each mobile platform. These slides learn how to build cross-platform mobile applications using technologies like HTML5, C#, PhoneGap, Adobe Flash Builder, Appcelerator Titanium and Applause.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Cross-Platform App Development in C#

  1. 1. By: Mobile Pundits
  2. 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. 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. 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. 5. 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.
  6. 6. 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…
  7. 7. 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
  8. 8. 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.)
  9. 9. But HTML5 ? iOS Android Windows Phone
  10. 10. 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
  11. 11. 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
  12. 12. 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…
  13. 13. 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…
  14. 14. Native UI Layer
  15. 15. 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.
  16. 16. 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 
  17. 17. Multiplatform Tasky Solution
  18. 18. 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)
  19. 19. 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
  20. 20. 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