Your SlideShare is downloading. ×
Eco system apps
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Eco system apps


Published on

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Ecosystem AppsINNOVATIVE CROSS-PLATFORM SOLUTIONS Sergey Seletsky Abiliton™ Senior Software Engineer
  • 2. Agenda1. Why?2. What is an ecosystem?3. Problems?4. WinRT with HTML5 for other...5. Cross-platform frameworks • Xamarin • Titanium • Portable apps • AppMobi6. Specific integrated API7. Apps integration8. Apps Stores9. Ecosystem architecture10. Conclusions
  • 3. What is anecosystem?
  • 4. Enterprise App Ecosystem App Hub IT organization Windows Phone 1. Registration 1. Device Enrollment 2. Signing Tools 2. Get apps 3. Cert and Enterprise ID 1. Develop App 2. Package and signRegistration1. Enterprise registers with App Hub 3. App Catalog2. Enterprise downloads app tools3. Microsoft notifies CA of pending 4. Create Token enterprise registration4. Vets enterprise5. CA checks that vetting is complete, and generates a certificate for enterprise
  • 5. Why ?
  • 6. Smartphone Market Share Platforms Google Apple Microsoft RIM
  • 7. Native Wrappers• Phonegap• Titanium• appMobi• Create native apps using HTML5• Provide API’s (Hooks to get out of the sandbox)• Work across platforms (mostly)• Can be submitted to app stores
  • 8. Cross-Platform Devices• Phones – iOS – iPhone, Touch – Android – Blackberry – Windows Phone 7• Tablets – iPad – Android
  • 9. Mobile Capabilities That Influence Apps• GeoLocation • Bluetooth• PIM Contacts • Calendar• Camera • Push• Barcode • Screen Rotation• Date/Time Picker • Native Maps• Native Menus • Alert• Tab Bar • Audio File Playback• Navigation Bar • Ringtones• Signature Capture • NFC
  • 10. Cross-platform frameworks 1. Xamarin 2. Titanium 3. Portable apps 4. AppMobi 5. PhoneGap
  • 11. Xamarin
  • 12. Asynchronous code beforeMyApi.OnSomeMethod += () => { InvokeOnMainThread( (result) => { textView.Text = result; });}MyApi.SomeMethodAsync();
  • 13. async/awaittextView.Text = await MyApi.GetUrlAsync( “”);
  • 14. С# vs Objective-CObjective-C:// … [button addTarget:selfaction:@selector(touchHandler:) forControlEvents:UIControlEventTouchUpInside];// …-(void) touchHandler:(id)sender { textView.text = @"some text";}
  • 15. С# vs Objective-CC#:btn.TouchUpInside += (s, e) => { textView.Text = "Clicked!";};
  • 16. C# vs JavaJava:button.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { textView.setText(“Clicked”); } });
  • 17. C# vs JavaC#:button.Click += (s, e) { textView.Text = “Clicked!”;};
  • 18. C# vs {0}• Simply• Cleaner• Develops very quickly• From Java sand pours• [[[[After Objective-C] world : square] as: very] and all: in the colon];
  • 19. What is Monotouch• Mono framework with AOT compilation for ARM processors and Bindings to Native API• Code is written in C #• UI is native tongue, through C # wrapper• Development environment Visual Studio
  • 20. Compilation process• Compile your code, libraries, BCL, wrappers over native methods in IL• You can use any language IL• Converted into machine code using AOT compilation• Added to app code with Mono Runtime and everything else
  • 21. AOT vs JIT• Usually in. Net and Mono native code generated at run - Just In Time compilation• In iOS you can not compile code on JIT, only static linking• But we already know the architecture (ARM) so you can compile the code in advance - Ahead Of Time compilation
  • 22. Restrictions AOT• No Emit, but remains Reflection• Some specific designs will not work, because compiled on JIT• Generic Virtual Methods – P/Invokes in Generic Types – Some LINQ expressions
  • 23. Linking• At time of compilation of IL BCL undertakes only code that is actually used• Similarly, you can cut out unused code in their libraries• Need to reduce the size of app
  • 24. C# API• Subscribe to Events• Setting Properties• Familiar namesvar btn = new UIButton(new RectangleF(0, 0, 200, 80));btn.Enabled = true;btn.SetTitleColor(UIColor.FromRGB(255, 255, 0), UIControlState.Selected);btn.TouchUpInside += delegate { // your code};window.Add(btn);
  • 25. Wrappers over native methodsMonotouch:• It all comes down to P/Invoke method objc_msgSend with the appropriate parametersMono for Android:• Used JNI (Java Native Interface)
  • 26. Wrappers over native methodspublic virtual bool Enabled{ [Export("isEnabled")] get { // … returnMessaging.bool_objc_msgSend(base.Handle, UIControl.selIsEnabled); } [Export("setEnabled:")] set { // … Messaging.void_objc_msgSend_bool(base.Handle, UIControl.selSetEnabled_, value); }}
  • 27. App Structure• Virtually same in native app• AppDelegate, UIWindows, ViewControllers• To describe UI also uses nib files
  • 28. Development environment – Visual Studio
  • 29. Cross-platform• Sharing in 30-60 percent of the code• Combining basic mobile functionality• There are various MVVM frameworks Xamarin Titanium PhomeGap Shared Specific Shared Specific Shared Specific
  • 30. Use of opportunities of Windows OSWin32 APIVista BridgeWindows Bridge.NET Framework – Windows Presentation Foundation – Windows Communication Foundation – Windows Workflow Foundation
  • 31. Windows 8 platform
  • 32. Installation Store Apps
  • 33. Transitions between states App are given several App is not notified seconds to sleep User TerminatedLaunches Low Resources App App App is notified with continued Splash screen App not running
  • 34. Process isolation
  • 35. Language projectionIInspectable C++ App IUnknown Projection C#/VB App Object Projection CLR HTML App Projection Chakra Windows Metadata
  • 36. IInspectable Collections IUnknown C++ App STL-style IVector<T> Projection IVectorView<T> Array IObservableVector<T> C#/VB App IEnumerable CLR (T) style ProjectionIInspectable IUnknown HTML App IMap<T> Chakra JavaScript Projection Associative IMapView<T> Collection IObservableMap<T>
  • 37. Asynchrony in Windows 8• All that is more than 50 milliseconds – asynchronously• Windows Runtime: IAsyncOperation<T>• JavaScript: Promises• C++: Parallel Patterns Library• VB/C#: async /await
  • 38. ThreadingWindows Windows Windows UI Object Object Object App Code App Code App Code
  • 39. Architecture WinRT Metro App Language Support (CLR, WinJS, CRT) Language projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScri XAML Storage Network … pt) WindowsMetadata &Namespace DirectX Windows Runtime Core Runtime Broker Win32 Windows Core
  • 40. Runtime appYour App Direct API calls Process.exe WinRT APIs Core OS Brokered API calls Broker App Container + Signed & Validated code AppXManifest
  • 41. Brokered Objects RuntimeBroker.exe App Projection Proxy WindowsRuntime Object
  • 42. Windows Runtime APIs User Interface HTML5/CSS XAML DirectX Controls Data Binding SVG Tiles Input Accessibility Printing Devices Communications & DataGeolocation Portable Sensors NFC Contracts Local & Cloud Storage Web Media Notifications Streams Memory Playback Capture PlayTo Visual Effects XML Networking SMS Management FundamentalsApplication Services Threading/Timers Memory Management Authentication Cryptography Globalization
  • 43. Sensors Accelerometer Gyroscope CompassAgitation Turn Overturning Slope LightIn dark Indoors Outdoors Orientation
  • 44. Areas of integrationOn Windows OS Together With cloudLive tiles Contracts : SynchronizationNotifications app settings • SearchContracts • Share Live SDKSettingsPrint…
  • 45. Pop-up notifications Toast NotificationsShow messages from apps and services outside the UI appsAttract attentionIs disconnectedAllow the user to go directly to the section of the appInitiated locally or from cloud
  • 46. Windows Push Notification Service Windows 8 Cloud ServiceServes pop-up notifications and update live tilesexternal services MetroTile updated and notifications are working even when Style 2not running app AppTakes control of communications devices 1 3 Windows Push NotificationScaled without you Notification Service Client 3 PlatformFree 1. Request for URL notification channel 2. Service registration 3. Notifications
  • 47. Contracts - part of a large family• App to App Picking contract• Contact Picker• File activation• Play To contract• Print task settings• Protocol activation• Search contract• Settings contract• Share contract
  • 48. How does this work Source app Share Broker Target apps Registration User selected DataTransfer Manager “Share”Activation DataPackage Filter apps or links Activated User has selected a ProcessingAsynchronous processing target DataPackage App start-goal Completion ReportDataPackage in source app
  • 49. Unprecedented coverage
  • 50. Income distribution 70% new applications 80% once you do $25,000
  • 51. Best economy To generate $ 1 million profit Price: $4.99 ~250,000 sales0.05% users Windows from 500+ Windows 7
  • 52. Azure Service Bus • Unified set of messaging capabilities Consistent management and observation capabilities • Service Bus Relay • Rich options for interconnecting apps across network boundaries • Service Bus Brokered Messaging • Queuing, publish/subscribe • Easily build hybrid apps • Available as PaaS & on-premise server
  • 53. Conclusions
  • 54. Thank you!