Cross-Platform App Development in C#

23
Cross-Platform Mobile App Development Using C# By: Mobile Pundits

description

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.

Transcript of Cross-Platform App Development in C#

Page 1: Cross-Platform App Development in C#

Cross-Platform Mobile App Development Using C#

By: Mobile Pundits

Page 2: Cross-Platform App Development in C#

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.

Page 3: Cross-Platform App Development in C#

What Platform Developers Wants?

Windows 8

Chrome OS

Firefox OS

Blackberry 10

Tizen

0 10 20 30 40 50 60 70

13%

36%

47%

66%

Page 4: Cross-Platform App Development in C#

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.

Page 5: Cross-Platform App Development in C#
Page 6: Cross-Platform App Development in C#

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 Symbian-

based phones are widely used in developing nations. However, it has almost no foothold in the US market.

Page 7: Cross-Platform App Development in C#

“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 ?

Page 8: Cross-Platform App Development in C#

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

But HTML5 ?

Page 9: Cross-Platform App Development in C#

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.)

Page 10: Cross-Platform App Development in C#

But HTML5 ?

iOS Android Windows Phone

Page 11: Cross-Platform App Development in C#

C# As A Multiple Platform Alternative

Page 12: Cross-Platform App Development in C#

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

Page 13: Cross-Platform App Development in C#

Architecture Overview

Page 14: Cross-Platform App Development in C#

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, PS3CPU architecture is not an issue: x86, x64, IA64,

PowerPC, SPARC, ARM…

Page 15: Cross-Platform App Development in C#

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…

Page 16: Cross-Platform App Development in C#

Native UI Layer

Page 17: Cross-Platform App Development in C#

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.

Page 18: Cross-Platform App Development in C#

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

Page 19: Cross-Platform App Development in C#

Multiplatform Tasky Solution

Page 20: Cross-Platform App Development in C#

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)

Page 21: Cross-Platform App Development in C#

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

Page 22: Cross-Platform App Development in C#

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

Page 23: Cross-Platform App Development in C#

Mobile Developme

nt

Contact Us

www.mobilepundits.com

Mobile Pundits