Post Windows Mobile:
New Application Development Platforms
Jack Nosek
Lead Software Engineer - Barcoding, Inc.
The “End” of Windows Mobile
• The Last of the Windows CE Family Operating Systems
• Windows Embedded Handheld 6.5
• Windows Compact Embedded 7
• This has been a long time coming
• Application Development tools have not been updated since 2008
• Microsoft has extended support for 5 years
• The real end is in 2020
New OS – Where to Begin?
TheThree Players
iOS
iPod, iPhone, iPad
App StoreVery Restrictive
Unable to side-load apps
Android
Many Manufacturers and
Devices
App Store Flexible
Side-loading very easy
Windows Phone
WE 8.1 HH
Windows 10 Mobile
Enterprise-focused (coming
soon)
App Store Flexible, still
evaluating
Side-loading possible, extra
steps required
What is Native Development?
• Uses the tools released by Platform Creator for
application development
• Integrated Development Environments (IDE)
• Software Development Kits (SDK)
• The advertised way to create applications
• Code compiles to executables that target each specific
platform
• No Cross Platform Executables
Native for iOS
SDK iOS (9)
Language Objective-C, Swift
IDE Xcode
UI Language Cocoa Touch UI
UI Design iOS Human Interface Design
Development Platform Requires OSX to Compile
Native for Android
SDK Android SDK (API 23)
Language Java
IDE Android Studio, Eclipse
UI Language Android XML
UI Design Material Design
Development Platform Windows, Linux, OSX
Native forWindows Phone
SDK .NET Framework (4.6)
Language C# orVB.net
IDE Visual Studio
UI Language XAML
UI Design Modern UI / Universal Apps
Development Platform Windows, Linux/OSX (*)
Problems with Native
• Supporting Multiple Platforms
• No native code will run on all three platforms
• Development requires many developers or highly skilled developer
• Supporting ExistingWindows Mobile Code
• Android & iOS
C# orVB.net will not work. Requires porting and re-writing.
• Windows Phone
.NET Compact Framework is not 100% compatible with .NET Framework
Will require re-writing UI
.NET
.NET CF
Native is perfect for …
• Brand New Projects
• Teams that specialize in the languages utilized by specific
platforms
• Projects that are targeting a specific platform and see no
need to ever switch in the future
Alternatives to Native
• How to support multiple platforms with one code base?
• How to reuse an existing code base?
• How to utilize existing developer skills?
• Only about 10% of our projects are Native
HTML5
• Utilize the same web technologies for creating websites
to create mobile applications
• HTML and CSS for UI Layer
• Javascript for coding
• TheWeb is not dependent on OS, but the Browser
• This gives support for Multiple Platforms, including the Desktop
• Apple introduced this concept with release of 1st iPhone
HTML5 & PhoneGap
• Native App that hosts a browser view of a local web page
• Provides JS to Native Plugins for accessing device features outside the Browser
HTML5 & PhoneGap
HTML5 & PhoneGap
• Open Source Resources
• Any HTML5 and Javascript library can be used
• Plugins for accessing all kinds of device and platform features
• Examples, articles, and assistance found on the internet
• Concept has spawned other HTML5-Native Bridges
• AppCelerator Titanium
• Zebra’s RhoMobile/Enterprise Browser
• Intel XDK
Problems with HTML5
• Performance Issues
• JavaScript is Engine and Device Dependent
• Issues with browser compatibility
• Delayed use of cutting edge features
• Hard to create “Native-Like” UI
• Getting easier with tools and libraries like Bootstrap and Framework7
Problems with HTML5 - UI
Bootstrap
Problems with HTML5 - UI
Framework 7
Problems with HTML5 - UI
• Not a good choice for Apps to be sold in App Stores
• For Internal, Enterprise Users this is usually not an issue
• Facebook tried this and failed
• Wanted to consolidate code base, deploy HTML5 mobile app to iOS and Android
• User backlash caused them to pull back and stick to Native for each platform
PhoneGap is perfect for . . .
• Web Development Teams
• Reuses tools, frameworks, and code that developers are already familiar with
• Existing web projects that need to be mobilized or can be
reused for new projects
• If you need to target multiple platforms with minimal effort
• Especially Desktop Browsers
• Internal, line of business applications
Xamarin
• Toolset, Framework, and Compilers that allow C# code
to run on multiple platforms with Native Performance!
• Windows Phone - .NET as usual
• Android - Translates .NET Bytecode into Java Bytecode. JVM sees no difference.
• iOS – Compiles .NET Bytecode into Native iOS Executable Code
• Allows code re-use from existingWindows Mobile Apps
• Business logic from existing apps and expand code sharing and efficiency
• Visual Studio Integration
Xamarin - UI
• Xamarin.Forms provides Native UI from a single code base
Problems with Xamarin
• Licensing Costs - per platform, per dev, per year
• The more licenses bought together, the greater the price discount
• After the first year, customer service reps can give even more discounts
• Still need knowledge of platform SDKs
• Not all features have been wrapped under their Common Framework
• Complex UIs require knowledge of Native UITools
• Visual Studio integration is buggy
• Xamarin Studio has no issues;“feels” just likeVisual Studio
• Small knowledge base, but licenses pay for great support
Xamarin is perfect for …
• C# DevelopmentTeams
• No need to learn Objective-C or Java
• Porting existingWindows Mobile Applications
• Expanding Code sharing between existing applications
and systems
• Mobile applications that are CPU intensive that need to
run on multiple platforms
Write Once, Run Everywhere?
• Is this the same promise as Java made over 10 years ago?
• As close as app development has ever reached
• May take more time, but code sharing is 100% possible
between multiple platforms
Native / HTML5 / Xamarin
Q & A
Thank you!
#SupplyChainGeek
Jack Nosek
Barcoding, Inc.
jack.nosek@barcoding.com

Post Windows Mobile: New Application Development Platforms

  • 1.
    Post Windows Mobile: NewApplication Development Platforms Jack Nosek Lead Software Engineer - Barcoding, Inc.
  • 2.
    The “End” ofWindows Mobile • The Last of the Windows CE Family Operating Systems • Windows Embedded Handheld 6.5 • Windows Compact Embedded 7 • This has been a long time coming • Application Development tools have not been updated since 2008 • Microsoft has extended support for 5 years • The real end is in 2020
  • 3.
    New OS –Where to Begin? TheThree Players iOS iPod, iPhone, iPad App StoreVery Restrictive Unable to side-load apps Android Many Manufacturers and Devices App Store Flexible Side-loading very easy Windows Phone WE 8.1 HH Windows 10 Mobile Enterprise-focused (coming soon) App Store Flexible, still evaluating Side-loading possible, extra steps required
  • 4.
    What is NativeDevelopment? • Uses the tools released by Platform Creator for application development • Integrated Development Environments (IDE) • Software Development Kits (SDK) • The advertised way to create applications • Code compiles to executables that target each specific platform • No Cross Platform Executables
  • 5.
    Native for iOS SDKiOS (9) Language Objective-C, Swift IDE Xcode UI Language Cocoa Touch UI UI Design iOS Human Interface Design Development Platform Requires OSX to Compile
  • 6.
    Native for Android SDKAndroid SDK (API 23) Language Java IDE Android Studio, Eclipse UI Language Android XML UI Design Material Design Development Platform Windows, Linux, OSX
  • 7.
    Native forWindows Phone SDK.NET Framework (4.6) Language C# orVB.net IDE Visual Studio UI Language XAML UI Design Modern UI / Universal Apps Development Platform Windows, Linux/OSX (*)
  • 8.
    Problems with Native •Supporting Multiple Platforms • No native code will run on all three platforms • Development requires many developers or highly skilled developer • Supporting ExistingWindows Mobile Code • Android & iOS C# orVB.net will not work. Requires porting and re-writing. • Windows Phone .NET Compact Framework is not 100% compatible with .NET Framework Will require re-writing UI .NET .NET CF
  • 9.
    Native is perfectfor … • Brand New Projects • Teams that specialize in the languages utilized by specific platforms • Projects that are targeting a specific platform and see no need to ever switch in the future
  • 10.
    Alternatives to Native •How to support multiple platforms with one code base? • How to reuse an existing code base? • How to utilize existing developer skills? • Only about 10% of our projects are Native
  • 11.
    HTML5 • Utilize thesame web technologies for creating websites to create mobile applications • HTML and CSS for UI Layer • Javascript for coding • TheWeb is not dependent on OS, but the Browser • This gives support for Multiple Platforms, including the Desktop • Apple introduced this concept with release of 1st iPhone
  • 12.
    HTML5 & PhoneGap •Native App that hosts a browser view of a local web page • Provides JS to Native Plugins for accessing device features outside the Browser
  • 13.
  • 14.
    HTML5 & PhoneGap •Open Source Resources • Any HTML5 and Javascript library can be used • Plugins for accessing all kinds of device and platform features • Examples, articles, and assistance found on the internet • Concept has spawned other HTML5-Native Bridges • AppCelerator Titanium • Zebra’s RhoMobile/Enterprise Browser • Intel XDK
  • 15.
    Problems with HTML5 •Performance Issues • JavaScript is Engine and Device Dependent • Issues with browser compatibility • Delayed use of cutting edge features • Hard to create “Native-Like” UI • Getting easier with tools and libraries like Bootstrap and Framework7
  • 16.
    Problems with HTML5- UI Bootstrap
  • 17.
    Problems with HTML5- UI Framework 7
  • 18.
    Problems with HTML5- UI • Not a good choice for Apps to be sold in App Stores • For Internal, Enterprise Users this is usually not an issue • Facebook tried this and failed • Wanted to consolidate code base, deploy HTML5 mobile app to iOS and Android • User backlash caused them to pull back and stick to Native for each platform
  • 19.
    PhoneGap is perfectfor . . . • Web Development Teams • Reuses tools, frameworks, and code that developers are already familiar with • Existing web projects that need to be mobilized or can be reused for new projects • If you need to target multiple platforms with minimal effort • Especially Desktop Browsers • Internal, line of business applications
  • 20.
    Xamarin • Toolset, Framework,and Compilers that allow C# code to run on multiple platforms with Native Performance! • Windows Phone - .NET as usual • Android - Translates .NET Bytecode into Java Bytecode. JVM sees no difference. • iOS – Compiles .NET Bytecode into Native iOS Executable Code • Allows code re-use from existingWindows Mobile Apps • Business logic from existing apps and expand code sharing and efficiency • Visual Studio Integration
  • 21.
    Xamarin - UI •Xamarin.Forms provides Native UI from a single code base
  • 22.
    Problems with Xamarin •Licensing Costs - per platform, per dev, per year • The more licenses bought together, the greater the price discount • After the first year, customer service reps can give even more discounts • Still need knowledge of platform SDKs • Not all features have been wrapped under their Common Framework • Complex UIs require knowledge of Native UITools • Visual Studio integration is buggy • Xamarin Studio has no issues;“feels” just likeVisual Studio • Small knowledge base, but licenses pay for great support
  • 23.
    Xamarin is perfectfor … • C# DevelopmentTeams • No need to learn Objective-C or Java • Porting existingWindows Mobile Applications • Expanding Code sharing between existing applications and systems • Mobile applications that are CPU intensive that need to run on multiple platforms
  • 24.
    Write Once, RunEverywhere? • Is this the same promise as Java made over 10 years ago? • As close as app development has ever reached • May take more time, but code sharing is 100% possible between multiple platforms
  • 25.
    Native / HTML5/ Xamarin Q & A
  • 26.