Advantages and Opportunities of Cross-Platform Development

Preview:

Citation preview

Advantages and Opportunities of Cross-Platform Development

नमस्ते – I’m “JoKi”

Jochen Kirstätter4x Microsoft MVPFounder of an IT community in MauritiusGet Blogged by JoKi – http://jochen.kirstaetter.name

Family guy, geek, entrepreneur, software craftsman: Visual FoxPro, C#, SQL Server, MySQL/MariaDB,

Linux consultant, Conference speaker

Brief Agenda

Current situation: Isolated platformsDesktop

Mobile

Web Browser

Gaming Console

Internet of Things

Ideal situation: One platform

Let’s do a reality check what’s possible now…

“Silo”-Approach

Different programming languages: C#, Objective-C, Swift, Java, C++, etc.

Individual teams and increased time overhead

Repetition Violation of DRY principle

iOSWindows macOS LinuxAndroid

Code Sharing aka Portable Class Library

OS 1

Abstraction Layer Technology / SDK

Line of Business / Software Application

OS 2 OS 3

Game Development

Unity

Unreal Engine

Phaser

Meteor

Usually SDKs are provided

Microsoft Xbox, Nintendo Wii, Sony PlayStation

App Store, Play Store, Windows Store

Xamarin & Xamarin.Forms

C# as common programming language

Target Platforms:Windows

iOS

Android

macOS

Linux?

.NET Core

.NET rewritten from scratch; New not just an upgrade

Target Platforms:Windows

macOS

Linux

UI: Eto.Forms, Xwt

Still young development platform, parts missing

Huge potential, Open Source (GitHub), Linux Foundation

Code Hosting

Web Browser Desktop HostMobile Host

Line of BusinessSoftware App

Line of BusinessSoftware App

Line of BusinessSoftware App

Web Stack

Angular

Aurelia

React

Vue.js

etc…

Mostly Single-Page Applications (SPA)

HTML5, JavaScript / TypeScript, CSS 2/3

Apache Cordova

Hosting Shell for mobile platforms: Android, iOS

Application Layer to provide generic access to native APIs

Hardware access via plugins/extensionsCamera

Gyroscope

Accelerometer

Location

Local Storage (File system)

Peripherals

Electron

Hosting Shell for desktop platforms: Windows, macOS, Linux

Chrome v8 Engine and Web view

Single-Page Application (SPA)

Commercial Store Publication possible

Samples: Atom, GitKraken, Nylas N1, Slack, Visual Studio Code, etc…

Check out: http://electron.atom.io

Unfortunately…

… there is a small issue!

So far it was about Client development only

Server-Side of Cross-Platform

Choose One Technology: .NET Core, node.js, Java, Python, Ruby, etc…

Design REST APIsJSON is first choice

XML is still strong

Furthermore:Security Token Service (STS) for Authentication & Authorisation

ODATA for data shaping and data separation

Resumé

Do we have a winner?

No ;-)

Do we have a recommendation?

It depends ;-)

Multiple solutions available

Advice: Build a Client MVP / prototype (max. 24 hours each)

बहुत बहुत धन्यवाद

Stay in touch: @JKirstaetter – jochen@kirstaetter.name

C# Corner, LinkedIn, Facebook, Google+, GitHub, Blog, etc…

Recommended