Willem          Marcel
Developing             Meints          de Vries
                        Developer      Technology Manager
iPhone, Android and    Developer,
                        Info Support
                       Info Support    Info Support

Windows Phone 7
applications with C#   Roy
                       Cornelissen
                       IT Architect,
                          Architect
                       Info Support
Myths      ALM




Patterns   Proof
Windows Phone
iOS
Android
C / C++
Different CPU
architectures




                C# / Silverlight 3+
Demo
WP7
                                                                        Xamarin       Silverlight
                                                                         MonoTouch                      Xamarin
                                                                                                       Mono for Android



                                                           Appcelerator
                                   Adobe AIR                Titanium
                 WP7               ActionScript         JavaScript > Native
              Silverlight
  XCode
                  C#
Objective-C
                                Rhodes                                Service2Media               C#
                              Ruby + HTML                                   Lua
                 Android
                  SDK
                  Java
                                                               Sybase                 App Logic
                                                              Unwired
                                 Antenna                    “4GL” code gen
                                   Rapid                                                             Shared
                                  Scripting                                                         language
                                 Language                     PhoneGap
                                                             HTML5 / CSS / JS


               Vendor tools                   “Magic Box”                               Hybrid
Yes there is overhead


But it’s no problem

Make the app feel fast
iOS                            Android:                      Windows Phone:
      MonoTouch.CoreLocation       Android.Hardware.Sensor       Microsoft.Devices.Sensors.Gyroscope
      MonoTouch.CoreMotion         Android.Location              Microsoft.Devices.Sensors.Accelerometer
      MonoTouch.AVFoundation       Android.Bluetooth             Microsoft.Devices.Sensors.Compass
      MonoTouch.AddressBook        Android.Nfc                   Microsoft.Devices.Sensors.Motion
      MonoTouch.EventKit           …                             …
      …
Per App
      Android              Reusable
       16%                   20%
                                            Specific
WP7                                          35%
12%




  iOS
  18%                          Shared app                        Shared
                                  logic                           65%
                                  20%
                Windows8
                  14%
Roy           Willem   Marcel
Cornelissen   Meints   de Vries
View


             Controller
             ViewModel
                                                           Model
     GPS

Motion sensors                  Bridge
                       Shared  Platform specific
   Storage

     Etc.                         Shared?

                 Services
S                    S                   S
           F                    F                      F
UIViewController      XAML View             Activity


public void OnSuccess(object data)
{    public void OnFailed(Exception e)
                                                                  Model
               Shared Controller
   //{Do something with data
   // Notify user
        // Do something with error                 PropertyChanged(“Events”);
}    }          GetActualEvents
               (Action<object> OnSuccess,
                Action<Exception> OnFail)




                     Web Services
Demo
Willem            Marcel
Meints            de Vries
@wmeints          @marcelv




Roy
Cornelissen
@roycornelissen

Developing i phone, android and windows phone 7 applications with c#

  • 2.
    Willem Marcel Developing Meints de Vries Developer Technology Manager iPhone, Android and Developer, Info Support Info Support Info Support Windows Phone 7 applications with C# Roy Cornelissen IT Architect, Architect Info Support
  • 3.
    Myths ALM Patterns Proof
  • 4.
  • 7.
    C / C++ DifferentCPU architectures C# / Silverlight 3+
  • 9.
  • 10.
    WP7 Xamarin Silverlight MonoTouch Xamarin Mono for Android Appcelerator Adobe AIR Titanium WP7 ActionScript JavaScript > Native Silverlight XCode C# Objective-C Rhodes Service2Media C# Ruby + HTML Lua Android SDK Java Sybase App Logic Unwired Antenna “4GL” code gen Rapid Shared Scripting language Language PhoneGap HTML5 / CSS / JS Vendor tools “Magic Box” Hybrid
  • 14.
    Yes there isoverhead But it’s no problem Make the app feel fast
  • 17.
    iOS Android: Windows Phone: MonoTouch.CoreLocation Android.Hardware.Sensor Microsoft.Devices.Sensors.Gyroscope MonoTouch.CoreMotion Android.Location Microsoft.Devices.Sensors.Accelerometer MonoTouch.AVFoundation Android.Bluetooth Microsoft.Devices.Sensors.Compass MonoTouch.AddressBook Android.Nfc Microsoft.Devices.Sensors.Motion MonoTouch.EventKit … … …
  • 19.
    Per App Android Reusable 16% 20% Specific WP7 35% 12% iOS 18% Shared app Shared logic 65% 20% Windows8 14%
  • 21.
    Roy Willem Marcel Cornelissen Meints de Vries
  • 27.
    View Controller ViewModel Model GPS Motion sensors Bridge Shared  Platform specific Storage Etc. Shared? Services
  • 29.
    S S S F F F UIViewController XAML View Activity public void OnSuccess(object data) { public void OnFailed(Exception e) Model Shared Controller //{Do something with data // Notify user // Do something with error PropertyChanged(“Events”); } } GetActualEvents (Action<object> OnSuccess, Action<Exception> OnFail) Web Services
  • 32.
  • 34.
    Willem Marcel Meints de Vries @wmeints @marcelv Roy Cornelissen @roycornelissen