Jack Nosek, Barcoding’s lead software engineer, reveals what application tools and platforms companies will employ with the next generation of mobile devices. During this session, Nosek compares HTML5, Xamarin, and Native development for iOS, Android, and Windows Phone/Embedded 8.1.
TeamStation AI System Report LATAM IT Salaries 2024
Post Windows Mobile: New Application Development Platforms
1. Post Windows Mobile:
New Application Development Platforms
Jack Nosek
Lead Software Engineer - Barcoding, Inc.
2. 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
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 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
5. 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
6. 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
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 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
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 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
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
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
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 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
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 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
24. 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