16
Advantages and Opportunities of Cross-Platform Development

Advantages and Opportunities of Cross-Platform Development

Embed Size (px)

Citation preview

Page 1: Advantages and Opportunities of Cross-Platform Development

Advantages and Opportunities of Cross-Platform Development

Page 2: 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

Page 3: Advantages and Opportunities of Cross-Platform Development

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…

Page 4: Advantages and Opportunities of Cross-Platform Development

“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

Page 5: Advantages and Opportunities of Cross-Platform Development

Code Sharing aka Portable Class Library

OS 1

Abstraction Layer Technology / SDK

Line of Business / Software Application

OS 2 OS 3

Page 6: Advantages and Opportunities of Cross-Platform Development

Game Development

Unity

Unreal Engine

Phaser

Meteor

Usually SDKs are provided

Microsoft Xbox, Nintendo Wii, Sony PlayStation

App Store, Play Store, Windows Store

Page 7: Advantages and Opportunities of Cross-Platform Development

Xamarin & Xamarin.Forms

C# as common programming language

Target Platforms:Windows

iOS

Android

macOS

Linux?

Page 8: Advantages and Opportunities of Cross-Platform Development

.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

Page 9: Advantages and Opportunities of Cross-Platform Development

Code Hosting

Web Browser Desktop HostMobile Host

Line of BusinessSoftware App

Line of BusinessSoftware App

Line of BusinessSoftware App

Page 10: Advantages and Opportunities of Cross-Platform Development

Web Stack

Angular

Aurelia

React

Vue.js

etc…

Mostly Single-Page Applications (SPA)

HTML5, JavaScript / TypeScript, CSS 2/3

Page 11: Advantages and Opportunities of Cross-Platform Development

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

Page 12: Advantages and Opportunities of Cross-Platform Development

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

Page 13: Advantages and Opportunities of Cross-Platform Development

Unfortunately…

… there is a small issue!

So far it was about Client development only

Page 14: Advantages and Opportunities of Cross-Platform Development

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

Page 15: Advantages and Opportunities of Cross-Platform Development

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)

Page 16: Advantages and Opportunities of Cross-Platform Development

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

Stay in touch: @JKirstaetter – [email protected]

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