26
Post Windows Mobile: New Application Development Platforms Jack Nosek Lead Software Engineer - Barcoding, Inc.

Post Windows Mobile: New Application Development Platforms

Embed Size (px)

Citation preview

Page 1: Post Windows Mobile: New Application Development Platforms

Post Windows Mobile:

New Application Development Platforms

Jack Nosek

Lead Software Engineer - Barcoding, Inc.

Page 2: Post Windows Mobile: New Application Development Platforms

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

Page 3: Post Windows Mobile: New Application Development Platforms

New OS – Where to Begin?The Three Players

iOS

iPod, iPhone, iPad

App Store Very 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

Page 4: Post Windows Mobile: New Application Development Platforms

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

Page 5: Post Windows Mobile: New Application Development Platforms

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

Page 6: Post Windows Mobile: New Application Development Platforms

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

Page 7: Post Windows Mobile: New Application Development Platforms

Native for Windows Phone

SDK .NET Framework (4.6)

Language C# or VB.net

IDE Visual Studio

UI Language XAML

UI Design Modern UI / Universal Apps

Development Platform Windows, Linux/OSX (*)

Page 8: Post Windows Mobile: New Application Development Platforms

Problems with Native

• Supporting Multiple Platforms• No native code will run on all three platforms

• Development requires many developers or highly skilled developer

• Supporting Existing Windows Mobile Code• Android & iOS

C# or VB.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

Page 9: Post Windows Mobile: New Application Development Platforms

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

Page 10: Post Windows Mobile: New Application Development Platforms

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

Page 11: Post Windows Mobile: New Application Development Platforms

HTML5

• Utilize the same web technologies for creating websites

to create mobile applications

• HTML and CSS for UI Layer

• Javascript for coding

• The Web 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

Page 12: Post Windows Mobile: New Application Development Platforms

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

Page 13: Post Windows Mobile: New Application Development Platforms

HTML5 & PhoneGap

Page 14: Post Windows Mobile: New Application Development Platforms

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

Page 15: Post Windows Mobile: New Application Development Platforms

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

Page 16: Post Windows Mobile: New Application Development Platforms

Problems with HTML5 - UI

Bootstrap

Page 17: Post Windows Mobile: New Application Development Platforms

Problems with HTML5 - UIFramework 7

Page 18: Post Windows Mobile: New Application Development Platforms

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

Page 19: Post Windows Mobile: New Application Development Platforms

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

Page 20: Post Windows Mobile: New Application Development Platforms

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 existing Windows Mobile Apps• Business logic from existing apps and expand code sharing and efficiency

• Visual Studio Integration

Page 21: Post Windows Mobile: New Application Development Platforms

Xamarin - UI

• Xamarin.Forms provides Native UI from a single code base

Page 22: Post Windows Mobile: New Application Development Platforms

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 UI Tools

• Visual Studio integration is buggy• Xamarin Studio has no issues; “feels” just like Visual Studio

• Small knowledge base, but licenses pay for great support

Page 23: Post Windows Mobile: New Application Development Platforms

Xamarin is perfect for …

• C# Development Teams• No need to learn Objective-C or Java

• Porting existing Windows Mobile Applications

• Expanding Code sharing between existing applications

and systems

• Mobile applications that are CPU intensive that need to

run on multiple platforms

Page 24: Post Windows Mobile: New Application Development 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

Page 25: Post Windows Mobile: New Application Development Platforms

Native / HTML5 / Xamarin

Q & A

Page 26: Post Windows Mobile: New Application Development Platforms

Thank you!

#SupplyChainGeek

Jack Nosek

Barcoding, Inc.

[email protected]