SlideShare una empresa de Scribd logo
1 de 62
Ecosystem Apps
INNOVATIVE CROSS-PLATFORM SOLUTIONS




                        Sergey Seletsky
                        Abiliton™ Senior Software Engineer
Agenda
1.        Why?
2.        What is an ecosystem?
3.        Problems?
4.        WinRT with HTML5 for other...
5.        Cross-platform frameworks
      •      Xamarin
      •      Titanium
      •      Portable apps
      •      AppMobi
6.        Specific integrated API
7.        Apps integration
8.        Apps Stores
9.        Ecosystem architecture
10.       Conclusions
What is an
ecosystem?
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 sign
Registration
1. Enterprise registers with App Hub     3. App Catalog
2. Enterprise downloads app tools
3. Microsoft notifies CA of pending      4. Create Token
    enterprise registration
4. Vets enterprise
5. CA checks that vetting is complete,
    and generates a certificate for
    enterprise
Why ?
Smartphone Market Share
                 Platforms




        Google   Apple   Microsoft   RIM
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
Cross-Platform Devices
• Phones
  – iOS – iPhone, Touch
  – Android
  – Blackberry
  – Windows Phone 7
• Tablets
  – iPad
  – Android
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
Cross-platform frameworks

 1. Xamarin
 2. Titanium
 3. Portable apps
 4. AppMobi
 5. PhoneGap
Xamarin
Asynchronous code before
MyApi.OnSomeMethod += () => {
      InvokeOnMainThread( (result) => {
           textView.Text = result;
  });
}

MyApi.SomeMethodAsync();
async/await


textView.Text = await MyApi.GetUrlAsync(

     “http://softserveinc.com”);
С# vs Objective-C
Objective-C:

// …
       [button addTarget:self
action:@selector(touchHandler:)
       forControlEvents:UIControlEventTouchUpInside];
// …

-(void) touchHandler:(id)sender {
       textView.text = @"some text";
}
С# vs Objective-C

C#:

btn.TouchUpInside += (s, e) => {
     textView.Text = "Clicked!";
};
C# vs Java
Java:

button.setOnClickListener(
     new View.OnClickListener() {
        public void onClick(View v) {
           textView.setText(“Clicked”);
        }
     }
);
C# vs Java

C#:

button.Click += (s, e) {
     textView.Text = “Clicked!”;
};
C# vs {0}
•   Simply
•   Cleaner
•   Develops very quickly
•   From Java sand pours
•   [[[[After Objective-C] world : square] as: very]
    and all: in the colon];
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
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
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
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
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
C# API
• Subscribe to Events
• Setting Properties
• Familiar names

var 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);
Wrappers over native methods

Monotouch:
• It all comes down to P/Invoke method
  objc_msgSend with the appropriate
  parameters
Mono for Android:
• Used JNI (Java Native Interface)
Wrappers over native methods
public virtual bool Enabled
{
           [Export("isEnabled")]
           get
           {
                      // …
                      return
Messaging.bool_objc_msgSend(base.Handle, UIControl.selIsEnabled);
           }
           [Export("setEnabled:")]
           set
           {
                      // …
                      Messaging.void_objc_msgSend_bool(base.Handle,
                  UIControl.selSetEnabled_, value);
         }
}
App Structure

• Virtually same in native app
• AppDelegate, UIWindows, ViewControllers
• To describe UI also uses nib files
Development environment – Visual Studio
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
Use of opportunities of Windows OS


Win32 API
Vista Bridge
Windows Bridge
.NET Framework
  – Windows Presentation Foundation
  – Windows Communication Foundation
  – Windows Workflow Foundation
Windows 8 platform
Installation Store Apps
Transitions between states
                 App are given several   App is not notified
                   seconds to sleep




  User
                                                               Terminated
Launches                                 Low Resources
                                                                  App
  App

                 App is notified with
                     continued




  Splash
  screen                                         App not running
Process isolation
Language projection
IInspectable
                                                       C++ App
   IUnknown




                                      Projection
                                                            C#/VB App
   Object




                                      Projection


                                                   CLR
                                                            HTML App

                                      Projection


                                                   Chakra
                   Windows Metadata
IInspectable
                Collections
   IUnknown                                            C++ App

                                       STL-style
               IVector<T>              Projection

               IVectorView<T>
   Array
               IObservableVector<T>                          C#/VB App
                                      IEnumerable




                                                    CLR
                                        (T) style
                                       Projection
IInspectable
   IUnknown
                                                                 HTML App
               IMap<T>




                                                    Chakra
                                      JavaScript
                                      Projection
 Associative
               IMapView<T>
  Collection
               IObservableMap<T>
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
Threading




Windows
             Windows               Windows
   UI
              Object                Object
 Object




  App Code         App Code                  App Code
Architecture WinRT
                 Metro App
                                                        Language Support
                                                         (CLR, WinJS, CRT)

             Language projection


                UI      Pickers    Controls   Media         Web Host
                                                        (HTML, CSS, JavaScri
              XAML     Storage     Network      …               pt)
 Windows
Metadata &
Namespace                                     DirectX
                Windows Runtime Core                      Runtime Broker
                                              Win32


                         Windows Core
Runtime app
Your App



                                            Direct API calls

 Process.exe   WinRT APIs




                                                                    Core OS
                              Brokered API calls
                                                        Broker

  App Container + Signed
     & Validated code




                                                     AppXManifest
Brokered Objects
     RuntimeBroker.exe                         App




                                  Projection
                          Proxy
  Windows
Runtime Object
Windows Runtime APIs
                                                             User Interface

              HTML5/CSS                         XAML                 DirectX                   Controls             Data Binding


                       SVG                      Tiles                    Input                Accessibility               Printing


                             Devices                                                          Communications & Data

Geolocation            Portable          Sensors            NFC                   Contracts            Local & Cloud Storage                Web




                               Media                                                               Notifications      Streams



                                                                                  Memory
  Playback             Capture            PlayTo        Visual Effects                                 XML           Networking             SMS
                                                                                 Management




                                                             Fundamentals

Application Services         Threading/Timers       Memory Management            Authentication            Cryptography              Globalization
Sensors
                                        Accelerometer



                                         Gyroscope



                                          Compass
Agitation   Turn          Overturning


                                           Slope



                                            Light



In dark     Indoors       Outdoors       Orientation
Areas of integration

On Windows OS   Together      With cloud
Live tiles      Contracts :   Synchronization
Notifications                 app settings
                • Search
Contracts
                • Share       Live SDK
Settings
Print
…
Pop-up notifications
                     Toast Notifications
Show messages from apps and services outside the UI apps


Attract attention


Is disconnected


Allow the user to go directly to the section of the app


Initiated locally or from cloud
Windows Push Notification Service
                                                          Windows 8             Cloud Service

Serves pop-up notifications and update live tiles
external services
                                                             Metro
Tile updated and notifications are working even when         Style         2
not running app                                              App


Takes control of communications devices                          1                   3

                                                                                Windows Push
                                                                                 Notification
Scaled without you                                          Notification
                                                                                   Service
                                                              Client       3
                                                             Platform


Free


                                                    1.   Request for URL notification channel
                                                    2.   Service registration
                                                    3.   Notifications
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
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       Processing
Asynchronous processing
                                target             DataPackage



                            App start-goal       Completion Report

DataPackage in source
        app
Unprecedented coverage
Income distribution

               70%
               new
               applications




               80%
               once you do
               $25,000
Best economy

 To generate $ 1 million profit
            Price: $4.99


     ~250,000 sales
0.05% users Windows from
 500+              Windows 7
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
Conclusions
Thank you!

Más contenido relacionado

La actualidad más candente

Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internalsTokyo Azure Meetup
 
Global Azure Bootcamp: Azure service fabric
Global Azure Bootcamp: Azure service fabric Global Azure Bootcamp: Azure service fabric
Global Azure Bootcamp: Azure service fabric Luis Valencia
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Richard Banks
 
Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabricAbhishek Sur
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Tomasz Kopacz
 
Microservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time OrganizationMicroservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time OrganizationKevin Webber
 
Tokyo Azure Meetup #4 - Build 2016 Overview
Tokyo Azure Meetup #4 -  Build 2016 OverviewTokyo Azure Meetup #4 -  Build 2016 Overview
Tokyo Azure Meetup #4 - Build 2016 OverviewTokyo Azure Meetup
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native ArchitectureWSO2
 
Tokyo Azure Meetup #6 - Azure Monthly Update - June
Tokyo Azure Meetup #6 - Azure Monthly Update - JuneTokyo Azure Meetup #6 - Azure Monthly Update - June
Tokyo Azure Meetup #6 - Azure Monthly Update - JuneTokyo Azure Meetup
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureAbdelghani Azri
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsTomasz Kopacz
 
micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)smancke
 

La actualidad más candente (20)

Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
Tokyo azure meetup #12 service fabric internals
Tokyo azure meetup #12   service fabric internalsTokyo azure meetup #12   service fabric internals
Tokyo azure meetup #12 service fabric internals
 
Global Azure Bootcamp: Azure service fabric
Global Azure Bootcamp: Azure service fabric Global Azure Bootcamp: Azure service fabric
Global Azure Bootcamp: Azure service fabric
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016
 
Azure servicefabric
Azure servicefabricAzure servicefabric
Azure servicefabric
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
Microservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time OrganizationMicroservices: Architecture for the Real-time Organization
Microservices: Architecture for the Real-time Organization
 
Tokyo Azure Meetup #4 - Build 2016 Overview
Tokyo Azure Meetup #4 -  Build 2016 OverviewTokyo Azure Meetup #4 -  Build 2016 Overview
Tokyo Azure Meetup #4 - Build 2016 Overview
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture[WSO2Con EU 2017] Container-native Architecture
[WSO2Con EU 2017] Container-native Architecture
 
Micro services
Micro servicesMicro services
Micro services
 
Tokyo Azure Meetup #6 - Azure Monthly Update - June
Tokyo Azure Meetup #6 - Azure Monthly Update - JuneTokyo Azure Meetup #6 - Azure Monthly Update - June
Tokyo Azure Meetup #6 - Azure Monthly Update - June
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
 
micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)micro services architecture (FrosCon2014)
micro services architecture (FrosCon2014)
 

Similar a Eco system apps

Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchJonas Follesø
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone appsJose Luis Latorre Millas
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer DayPatric Boscolo
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Jason Conger
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development Naresh Kumar
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Notpwlodek
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET DevelopersMichael Collins
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouchmobiweave
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumit Kataria
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 
Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Shoukry Kattan
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot netEkam Baram
 
Introduccion Xamarin Open Closed
Introduccion Xamarin Open ClosedIntroduccion Xamarin Open Closed
Introduccion Xamarin Open ClosedIvan Martinez
 
Shape12 6
Shape12 6Shape12 6
Shape12 6pslulli
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 

Similar a Eco system apps (20)

Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone apps
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer Day
 
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
Building your Own Mobile Enterprise Application: It’s Not as Hard as You Migh...
 
Xamarin - Beyond the Basics
Xamarin - Beyond the BasicsXamarin - Beyond the Basics
Xamarin - Beyond the Basics
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Not
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET Developers
 
Mono for android
Mono for androidMono for android
Mono for android
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Introduction to MonoTouch
Introduction to MonoTouchIntroduction to MonoTouch
Introduction to MonoTouch
 
SumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststemSumitK's mobile app dev using drupal as base ststem
SumitK's mobile app dev using drupal as base ststem
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 
Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...Introduction to building multi platform mobile applications with javascript u...
Introduction to building multi platform mobile applications with javascript u...
 
Windows 8 developer preview
Windows 8 developer previewWindows 8 developer preview
Windows 8 developer preview
 
Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Introduccion Xamarin Open Closed
Introduccion Xamarin Open ClosedIntroduccion Xamarin Open Closed
Introduccion Xamarin Open Closed
 
Shape12 6
Shape12 6Shape12 6
Shape12 6
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 

Más de Sergey Seletsky

Intellias CQRS Framework
Intellias CQRS FrameworkIntellias CQRS Framework
Intellias CQRS FrameworkSergey Seletsky
 
Cqrs and event sourcing in azure
Cqrs and event sourcing in azureCqrs and event sourcing in azure
Cqrs and event sourcing in azureSergey Seletsky
 
Go Serverless with Azure
Go Serverless with AzureGo Serverless with Azure
Go Serverless with AzureSergey Seletsky
 
Asp.net mvc 5 course module 1 overview
Asp.net mvc 5 course   module 1 overviewAsp.net mvc 5 course   module 1 overview
Asp.net mvc 5 course module 1 overviewSergey Seletsky
 
Mobile development with visual studio
Mobile development with visual studioMobile development with visual studio
Mobile development with visual studioSergey Seletsky
 
Make your project up to date
Make your project up to dateMake your project up to date
Make your project up to dateSergey Seletsky
 

Más de Sergey Seletsky (11)

CICD Azure DevOps
CICD Azure DevOpsCICD Azure DevOps
CICD Azure DevOps
 
Intellias CQRS Framework
Intellias CQRS FrameworkIntellias CQRS Framework
Intellias CQRS Framework
 
Cqrs and event sourcing in azure
Cqrs and event sourcing in azureCqrs and event sourcing in azure
Cqrs and event sourcing in azure
 
CQRS and Event Sourcing
CQRS and Event SourcingCQRS and Event Sourcing
CQRS and Event Sourcing
 
Go Serverless with Azure
Go Serverless with AzureGo Serverless with Azure
Go Serverless with Azure
 
IoT Smart Home
IoT Smart HomeIoT Smart Home
IoT Smart Home
 
WiFi anywhere
WiFi anywhereWiFi anywhere
WiFi anywhere
 
Asp.net mvc 5 course module 1 overview
Asp.net mvc 5 course   module 1 overviewAsp.net mvc 5 course   module 1 overview
Asp.net mvc 5 course module 1 overview
 
Mobile development with visual studio
Mobile development with visual studioMobile development with visual studio
Mobile development with visual studio
 
Make your project up to date
Make your project up to dateMake your project up to date
Make your project up to date
 
Scrum and Kanban
Scrum and KanbanScrum and Kanban
Scrum and Kanban
 

Último

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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...Miguel Araújo
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Eco system apps

  • 1. Ecosystem Apps INNOVATIVE CROSS-PLATFORM SOLUTIONS Sergey Seletsky Abiliton™ Senior Software Engineer
  • 2. Agenda 1. Why? 2. What is an ecosystem? 3. Problems? 4. WinRT with HTML5 for other... 5. Cross-platform frameworks • Xamarin • Titanium • Portable apps • AppMobi 6. Specific integrated API 7. Apps integration 8. Apps Stores 9. Ecosystem architecture 10. Conclusions
  • 4.
  • 5. 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 sign Registration 1. Enterprise registers with App Hub 3. App Catalog 2. Enterprise downloads app tools 3. Microsoft notifies CA of pending 4. Create Token enterprise registration 4. Vets enterprise 5. CA checks that vetting is complete, and generates a certificate for enterprise
  • 7. Smartphone Market Share Platforms Google Apple Microsoft RIM
  • 8. 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
  • 9. Cross-Platform Devices • Phones – iOS – iPhone, Touch – Android – Blackberry – Windows Phone 7 • Tablets – iPad – Android
  • 10. 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
  • 11.
  • 12. Cross-platform frameworks 1. Xamarin 2. Titanium 3. Portable apps 4. AppMobi 5. PhoneGap
  • 14. Asynchronous code before MyApi.OnSomeMethod += () => { InvokeOnMainThread( (result) => { textView.Text = result; }); } MyApi.SomeMethodAsync();
  • 15. async/await textView.Text = await MyApi.GetUrlAsync( “http://softserveinc.com”);
  • 16. С# vs Objective-C Objective-C: // … [button addTarget:self action:@selector(touchHandler:) forControlEvents:UIControlEventTouchUpInside]; // … -(void) touchHandler:(id)sender { textView.text = @"some text"; }
  • 17. С# vs Objective-C C#: btn.TouchUpInside += (s, e) => { textView.Text = "Clicked!"; };
  • 18. C# vs Java Java: button.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { textView.setText(“Clicked”); } } );
  • 19. C# vs Java C#: button.Click += (s, e) { textView.Text = “Clicked!”; };
  • 20. C# vs {0} • Simply • Cleaner • Develops very quickly • From Java sand pours • [[[[After Objective-C] world : square] as: very] and all: in the colon];
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. C# API • Subscribe to Events • Setting Properties • Familiar names var 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);
  • 27. Wrappers over native methods Monotouch: • It all comes down to P/Invoke method objc_msgSend with the appropriate parameters Mono for Android: • Used JNI (Java Native Interface)
  • 28. Wrappers over native methods public virtual bool Enabled { [Export("isEnabled")] get { // … return Messaging.bool_objc_msgSend(base.Handle, UIControl.selIsEnabled); } [Export("setEnabled:")] set { // … Messaging.void_objc_msgSend_bool(base.Handle, UIControl.selSetEnabled_, value); } }
  • 29. App Structure • Virtually same in native app • AppDelegate, UIWindows, ViewControllers • To describe UI also uses nib files
  • 31. 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
  • 32.
  • 33. Use of opportunities of Windows OS Win32 API Vista Bridge Windows Bridge .NET Framework – Windows Presentation Foundation – Windows Communication Foundation – Windows Workflow Foundation
  • 36. Transitions between states App are given several App is not notified seconds to sleep User Terminated Launches Low Resources App App App is notified with continued Splash screen App not running
  • 38. Language projection IInspectable C++ App IUnknown Projection C#/VB App Object Projection CLR HTML App Projection Chakra Windows Metadata
  • 39. IInspectable Collections IUnknown C++ App STL-style IVector<T> Projection IVectorView<T> Array IObservableVector<T> C#/VB App IEnumerable CLR (T) style Projection IInspectable IUnknown HTML App IMap<T> Chakra JavaScript Projection Associative IMapView<T> Collection IObservableMap<T>
  • 40. 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
  • 41. Threading Windows Windows Windows UI Object Object Object App Code App Code App Code
  • 42. Architecture WinRT Metro App Language Support (CLR, WinJS, CRT) Language projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScri XAML Storage Network … pt) Windows Metadata & Namespace DirectX Windows Runtime Core Runtime Broker Win32 Windows Core
  • 43. Runtime app Your App Direct API calls Process.exe WinRT APIs Core OS Brokered API calls Broker App Container + Signed & Validated code AppXManifest
  • 44. Brokered Objects RuntimeBroker.exe App Projection Proxy Windows Runtime Object
  • 45. Windows Runtime APIs User Interface HTML5/CSS XAML DirectX Controls Data Binding SVG Tiles Input Accessibility Printing Devices Communications & Data Geolocation Portable Sensors NFC Contracts Local & Cloud Storage Web Media Notifications Streams Memory Playback Capture PlayTo Visual Effects XML Networking SMS Management Fundamentals Application Services Threading/Timers Memory Management Authentication Cryptography Globalization
  • 46. Sensors Accelerometer Gyroscope Compass Agitation Turn Overturning Slope Light In dark Indoors Outdoors Orientation
  • 47.
  • 48. Areas of integration On Windows OS Together With cloud Live tiles Contracts : Synchronization Notifications app settings • Search Contracts • Share Live SDK Settings Print …
  • 49. Pop-up notifications Toast Notifications Show messages from apps and services outside the UI apps Attract attention Is disconnected Allow the user to go directly to the section of the app Initiated locally or from cloud
  • 50. Windows Push Notification Service Windows 8 Cloud Service Serves pop-up notifications and update live tiles external services Metro Tile updated and notifications are working even when Style 2 not running app App Takes control of communications devices 1 3 Windows Push Notification Scaled without you Notification Service Client 3 Platform Free 1. Request for URL notification channel 2. Service registration 3. Notifications
  • 51. 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
  • 52. 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 Processing Asynchronous processing target DataPackage App start-goal Completion Report DataPackage in source app
  • 53.
  • 55. Income distribution 70% new applications 80% once you do $25,000
  • 56. Best economy To generate $ 1 million profit Price: $4.99 ~250,000 sales 0.05% users Windows from 500+ Windows 7
  • 57.
  • 58.
  • 59.
  • 60. 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