itcampro@ itcamp13# Premium conference on Microsoft technologies
Mobility today & what’s next.
Application ecosystems.
Petru Jucovschi
Technical Evangelist for Windows & Windows Phone
Microsoft
petruj@microsoft.com
@petrujucovschi
itcampro@ itcamp13# Premium conference on Microsoft technologies
Breakout
SessionHuge thanks to our sponsors!
itcampro@ itcamp13# Premium conference on Microsoft technologies
Breakout
Session
• Define Mobility
• Is it easy / hard to be Mobile?
• Mobility on and with Windows ecosystem
• GO DOs
Agenda
itcampro@ itcamp13# Premium conference on Microsoft technologies
What does mobility mean?
Cross-Platform Tools | VisionMobile.com – here
Developer Economics 2013 | VisionMobile.com – here
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
What is the current market?
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
Findings
itcampro@ itcamp13# Premium conference on Microsoft technologies
1. Developers and publishers mostly
value reach and revenue
opportunities, in that order.
itcampro@ itcamp13# Premium conference on Microsoft technologies
75% of developers use up to three mobile platforms
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
2. For developers interested in
making money, 67% earn less than
$500 per app per month and are
below the app poverty line.
itcampro@ itcamp13# Premium conference on Microsoft technologies
3. Developers using HTML for web
development have access to a much
larger user base comprising desktop
and mobile users and 29% earn more
than $500 per app per month
itcampro@ itcamp13# Premium conference on Microsoft technologies
What about apps development?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Today – native apps
• Windows – C/C++, C#, VB, HTML5/CSS/JS
• Windows Phone – C#, .NET Framework
• Apple iOS – Objective C, Cocoa Touch
• Android – Java, Android SDK/ NDK
• Blackberry – J2ME/ BB Java NDK
itcampro@ itcamp13# Premium conference on Microsoft technologies
What do we expect?
itcampro@ itcamp13# Premium conference on Microsoft technologies
1. The most important selection
criterion for developers is the breadth
of platforms that the tool supports,
cited by nearly 60% of the developers
itcampro@ itcamp13# Premium conference on Microsoft technologies
2. The ability to tap into existing
developer skills is the second most
important reason for tool selection
itcampro@ itcamp13# Premium conference on Microsoft technologies
Technology approaches in cross-
platform tools
• JavaScript frameworks (from traditional Web to Mobile
Web)
• App factories (“create your own app” with drag & drop)
• Web-to-native wrappers (Portable Interpreted Code)
• Runtimes (Cross-Compiled Portable Code)
• Source code translators
itcampro@ itcamp13# Premium conference on Microsoft technologies
From traditional Web to Mobile Web
• UI
– Scalable UI:
CSS3 Media Queries vs Form Factors
https://github.com/PaulKinlan/formfactor
– How much UI will be generated on server side vs. client side?
• Logic
– Async programming:
(.NET: async/await) vs (JavaScript: JS Promises): Promises/A
– Data manipulation (JSON:select)
– Namespaces
– Modules & AMD (RequireJS)
– Object Orientation (Prototype.js & MooTools)
– Other patterns
itcampro@ itcamp13# Premium conference on Microsoft technologies
Technology approaches in cross-
platform tools
• JavaScript frameworks (from traditional Web to Mobile
Web)
• App factories (“create your own app” with drag & drop)
• Web-to-native wrappers (Portable Interpreted Code)
• Runtimes (Cross-Compiled Portable Code)
• Source code translators
itcampro@ itcamp13# Premium conference on Microsoft technologies
Some examples
Vendor (Tool)
Technology
approach
Authoring language
Deployment
format
Satisfaction ratings
Adobe AIR Runtime Actionscript Native, Hybrid 3.7 (low on device access)
Adobe Flex SDK addition to AIR MXML Native, Hybrid 3.7 (low on device access)
Corona Runtime Lua Native 3.8 (low on device access)
Titanium Runtime HTML5, CSS, JavaScript Native 3.8 (low on device access)
PhoneGap
Web-to-native app
wrapper
HTML5, CSS, JavaScript Hybrid
3.7 (low on develop & debug
experience)
Marmalade
Source code
translator
C++ Native
3.9 (low on learning curve & UI
capabilities)
JQuery Mobile Framework HTML5, CSS, JavaScript Web apps 3.9 (low on device access)
Sencha (Touch)
JavaScript
Framework
HTML5. CSS, JavaScript Web apps, Hybrid 3.7 (low on device access)
Xamarin
(Mono
Touch)
Runtime C# .NET Native
3.9 (lowest score is 3.8 for
publishing experience)
itcampro@ itcamp13# Premium conference on Microsoft technologies
Findings
itcampro@ itcamp13# Premium conference on Microsoft technologies
1. About 50% of mobile developers
the HTML-based set of technologies
as a deployment platform or as a
development platform
itcampro@ itcamp13# Premium conference on Microsoft technologies
2. HTML is equally used across
smartphones, tablets and desktop
itcampro@ itcamp13# Premium conference on Microsoft technologies
itcampro@ itcamp13# Premium conference on Microsoft technologies
How to make a decision?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Evaluation criteria | 1
Native Interpreted Cross-compiled
Application installer size   
Installed application size   
Runtime performance   
Mobile bandwidth usage   
Consistency of function and appearance   
Release date synchronization   
Performance   
Battery use   
Reuse of existing assets   
Access to device features   
Development environment price   
itcampro@ itcamp13# Premium conference on Microsoft technologies
Evaluation criteria | 2
itcampro@ itcamp13# Premium conference on Microsoft technologies
Evaluation criteria | 3a
If you are … And you want to … Then use …
CIO wanting to
mobilize enterprise
applications
Re-use existing .NET
applications
Xamarin (MonoTouch), iFactr, Expanz
Consumer brand,
new to app
development
Easily create your
first brand affinity
app
App factories like Spot Specific, Tiggzi, Mobile
Nation HQ
Developer newbie Create 2D games Games Salad, Corona, AppMobi
Publishing
company
Extend your web
content across all
major smartphone
platforms
App factories or web to native wrappers, e.g.,
PhoneGap, Uxebu, Presspad
Small to medium
enterprise
Want to create
enterprise apps
Appcelerator (Titanium), Verivo, Netbiscuits,
DragonRad, Expanz, Xamarin (MonoTouch)
itcampro@ itcamp13# Premium conference on Microsoft technologies
Evaluation criteria | 3b
If you are … And you want to … Then use …
Software
developer
Prototype ideas with
a rapid development
cycle
RunRev LiveCode, Proto.io
Software
developer
Write a 2D game Marmelade, SiO2, EDGELIB, Cocos2D
Seasoned game
developer
Create engaging 3D
games
Unity 3D, Unreal, Marmelade
Designer in a
digital agency
2D games
Gamesalad, Cocos2D, AppMobi, ImpactJS,
LImeJS
Designer in a
digital agency
Rich multimedia
experiences
deployed through an
app store
Corona, Appcelerator
itcampro@ itcamp13# Premium conference on Microsoft technologies
What about Windows?
itcampro@ itcamp13# Premium conference on Microsoft technologies
Form factors
Windows 8
1024x768+
Landscape, Portrait, Snapped, Filled
10 inch screens+
Windows Phone 8
800x480, 1280x720, 1280x768
Portrait, Landscape
<5 inch screen
itcampro@ itcamp13# Premium conference on Microsoft technologies
Native app development
UI
• HTML5 + CSS3 – only for Windows 8 / RT
• XAML (+ Direct 2D/3D)
Logic
• JavaScript – only for Windows 8 / RT
• C/C++, C#, VB
itcampro@ itcamp13# Premium conference on Microsoft technologies
DOs
&
DON’T DOs
itcampro@ itcamp13# Premium conference on Microsoft technologies
• design a native UX for each platform
• design screens based on layouts and their
characteristics on the targeted platform
• for HTML-based solutions, find the right
layer to generalize the UI
• don’t reuse XAML as it is, controls are
different between platforms and different
namespaces
UI / UX
itcampro@ itcamp13# Premium conference on Microsoft technologies
Networking
Sensors
Proximity
Storage
DataSaver Manager
Location
Touch
Online Identity
Keyboard
Launchers & Choosers
In-App Purchase
Threading
Base Types
itcampro@ itcamp13# Premium conference on Microsoft technologies
C# C++
Java
Script
itcampro@ itcamp13# Premium conference on Microsoft technologies
C# C++
Java
Script
It is not possible
itcampro@ itcamp13# Premium conference on Microsoft technologies
• Portable libraries
• Shared source code (links to code files)
• Inheritance
• MVVM pattern
• #if conditional blocks
Code reuse
itcampro@ itcamp13# Premium conference on Microsoft technologies
Storage and Data Models
Feature / Namespace Purpose
Windows Phone 8
Support?
Windows 8
Support?
Windows.Storage Local app file storage Yes Yes
System.IO.IsolatedStorage.Is
olatedStorageFile
Local app file storage
Yes
(use Windows.Storage
where possible)
No
ApplicationData settings
(local and roaming)
Key/value storage No Yes
System.IO.IsolatedStorage.Is
olatedStorageSettings
Key/value storage Yes No
SQL CE Database Yes No
itcampro@ itcamp13# Premium conference on Microsoft technologies
• Application lifecycle
• Tiles & toast notifications
• System services
• Networking differences
• Background processing
• Image/video capture
• Application bar
Platform-specific features
itcampro@ itcamp13# Premium conference on Microsoft technologies
• Computing is in transformation …
• Developers are looking for good cross-
platform tools and native support of
HTML5 on devices
• Also, they are still looking for viable ways of
making real money!
Summary
itcampro@ itcamp13# Premium conference on Microsoft technologies
• Invest in abstraction layers specific to UI/UX
• Learn HTML-based technologies for hybrid apps
• Find ways to reach larger user base and follow
the trends in adoption of mobile platforms
• Target desktops, tablets/convertibles and
smartphones and adopt Windows
• Contact us if you have an idea!
GO DOs
itcampro@ itcamp13# Premium conference on Microsoft technologies
Q & A

ITCamp 2013 - Petru Jucovschi - Application ecosystems

  • 1.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Mobility today & what’s next. Application ecosystems. Petru Jucovschi Technical Evangelist for Windows & Windows Phone Microsoft petruj@microsoft.com @petrujucovschi
  • 2.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Breakout SessionHuge thanks to our sponsors!
  • 3.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Breakout Session • Define Mobility • Is it easy / hard to be Mobile? • Mobility on and with Windows ecosystem • GO DOs Agenda
  • 4.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies What does mobility mean? Cross-Platform Tools | VisionMobile.com – here Developer Economics 2013 | VisionMobile.com – here
  • 5.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies
  • 6.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies What is the current market?
  • 7.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies
  • 8.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Findings
  • 9.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 1. Developers and publishers mostly value reach and revenue opportunities, in that order.
  • 10.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 75% of developers use up to three mobile platforms
  • 11.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies
  • 12.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies
  • 13.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 2. For developers interested in making money, 67% earn less than $500 per app per month and are below the app poverty line.
  • 14.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 3. Developers using HTML for web development have access to a much larger user base comprising desktop and mobile users and 29% earn more than $500 per app per month
  • 15.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies What about apps development?
  • 16.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Today – native apps • Windows – C/C++, C#, VB, HTML5/CSS/JS • Windows Phone – C#, .NET Framework • Apple iOS – Objective C, Cocoa Touch • Android – Java, Android SDK/ NDK • Blackberry – J2ME/ BB Java NDK
  • 17.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies What do we expect?
  • 18.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 1. The most important selection criterion for developers is the breadth of platforms that the tool supports, cited by nearly 60% of the developers
  • 19.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 2. The ability to tap into existing developer skills is the second most important reason for tool selection
  • 20.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Technology approaches in cross- platform tools • JavaScript frameworks (from traditional Web to Mobile Web) • App factories (“create your own app” with drag & drop) • Web-to-native wrappers (Portable Interpreted Code) • Runtimes (Cross-Compiled Portable Code) • Source code translators
  • 21.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies From traditional Web to Mobile Web • UI – Scalable UI: CSS3 Media Queries vs Form Factors https://github.com/PaulKinlan/formfactor – How much UI will be generated on server side vs. client side? • Logic – Async programming: (.NET: async/await) vs (JavaScript: JS Promises): Promises/A – Data manipulation (JSON:select) – Namespaces – Modules & AMD (RequireJS) – Object Orientation (Prototype.js & MooTools) – Other patterns
  • 22.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Technology approaches in cross- platform tools • JavaScript frameworks (from traditional Web to Mobile Web) • App factories (“create your own app” with drag & drop) • Web-to-native wrappers (Portable Interpreted Code) • Runtimes (Cross-Compiled Portable Code) • Source code translators
  • 23.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Some examples Vendor (Tool) Technology approach Authoring language Deployment format Satisfaction ratings Adobe AIR Runtime Actionscript Native, Hybrid 3.7 (low on device access) Adobe Flex SDK addition to AIR MXML Native, Hybrid 3.7 (low on device access) Corona Runtime Lua Native 3.8 (low on device access) Titanium Runtime HTML5, CSS, JavaScript Native 3.8 (low on device access) PhoneGap Web-to-native app wrapper HTML5, CSS, JavaScript Hybrid 3.7 (low on develop & debug experience) Marmalade Source code translator C++ Native 3.9 (low on learning curve & UI capabilities) JQuery Mobile Framework HTML5, CSS, JavaScript Web apps 3.9 (low on device access) Sencha (Touch) JavaScript Framework HTML5. CSS, JavaScript Web apps, Hybrid 3.7 (low on device access) Xamarin (Mono Touch) Runtime C# .NET Native 3.9 (lowest score is 3.8 for publishing experience)
  • 24.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Findings
  • 25.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 1. About 50% of mobile developers the HTML-based set of technologies as a deployment platform or as a development platform
  • 26.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies 2. HTML is equally used across smartphones, tablets and desktop
  • 27.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies
  • 28.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies How to make a decision?
  • 29.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Evaluation criteria | 1 Native Interpreted Cross-compiled Application installer size    Installed application size    Runtime performance    Mobile bandwidth usage    Consistency of function and appearance    Release date synchronization    Performance    Battery use    Reuse of existing assets    Access to device features    Development environment price   
  • 30.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Evaluation criteria | 2
  • 31.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Evaluation criteria | 3a If you are … And you want to … Then use … CIO wanting to mobilize enterprise applications Re-use existing .NET applications Xamarin (MonoTouch), iFactr, Expanz Consumer brand, new to app development Easily create your first brand affinity app App factories like Spot Specific, Tiggzi, Mobile Nation HQ Developer newbie Create 2D games Games Salad, Corona, AppMobi Publishing company Extend your web content across all major smartphone platforms App factories or web to native wrappers, e.g., PhoneGap, Uxebu, Presspad Small to medium enterprise Want to create enterprise apps Appcelerator (Titanium), Verivo, Netbiscuits, DragonRad, Expanz, Xamarin (MonoTouch)
  • 32.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Evaluation criteria | 3b If you are … And you want to … Then use … Software developer Prototype ideas with a rapid development cycle RunRev LiveCode, Proto.io Software developer Write a 2D game Marmelade, SiO2, EDGELIB, Cocos2D Seasoned game developer Create engaging 3D games Unity 3D, Unreal, Marmelade Designer in a digital agency 2D games Gamesalad, Cocos2D, AppMobi, ImpactJS, LImeJS Designer in a digital agency Rich multimedia experiences deployed through an app store Corona, Appcelerator
  • 33.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies What about Windows?
  • 34.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Form factors Windows 8 1024x768+ Landscape, Portrait, Snapped, Filled 10 inch screens+ Windows Phone 8 800x480, 1280x720, 1280x768 Portrait, Landscape <5 inch screen
  • 35.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Native app development UI • HTML5 + CSS3 – only for Windows 8 / RT • XAML (+ Direct 2D/3D) Logic • JavaScript – only for Windows 8 / RT • C/C++, C#, VB
  • 36.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies DOs & DON’T DOs
  • 37.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies • design a native UX for each platform • design screens based on layouts and their characteristics on the targeted platform • for HTML-based solutions, find the right layer to generalize the UI • don’t reuse XAML as it is, controls are different between platforms and different namespaces UI / UX
  • 38.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Networking Sensors Proximity Storage DataSaver Manager Location Touch Online Identity Keyboard Launchers & Choosers In-App Purchase Threading Base Types
  • 39.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies C# C++ Java Script
  • 40.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies C# C++ Java Script It is not possible
  • 41.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies • Portable libraries • Shared source code (links to code files) • Inheritance • MVVM pattern • #if conditional blocks Code reuse
  • 42.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Storage and Data Models Feature / Namespace Purpose Windows Phone 8 Support? Windows 8 Support? Windows.Storage Local app file storage Yes Yes System.IO.IsolatedStorage.Is olatedStorageFile Local app file storage Yes (use Windows.Storage where possible) No ApplicationData settings (local and roaming) Key/value storage No Yes System.IO.IsolatedStorage.Is olatedStorageSettings Key/value storage Yes No SQL CE Database Yes No
  • 43.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies • Application lifecycle • Tiles & toast notifications • System services • Networking differences • Background processing • Image/video capture • Application bar Platform-specific features
  • 44.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies • Computing is in transformation … • Developers are looking for good cross- platform tools and native support of HTML5 on devices • Also, they are still looking for viable ways of making real money! Summary
  • 45.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies • Invest in abstraction layers specific to UI/UX • Learn HTML-based technologies for hybrid apps • Find ways to reach larger user base and follow the trends in adoption of mobile platforms • Target desktops, tablets/convertibles and smartphones and adopt Windows • Contact us if you have an idea! GO DOs
  • 46.
    itcampro@ itcamp13# Premiumconference on Microsoft technologies Q & A