Romano Roth & Oliver Brack Zühlke Engineering AG.

Post on 06-Apr-2015

121 views 5 download

Transcript of Romano Roth & Oliver Brack Zühlke Engineering AG.

iOS, Android, WP7...Alle nativ auf einen Streich!

Romano Roth & Oliver BrackZühlke Engineering AG

2010 2011 2012 2013 2014 2015 20160

200

400

600

800

1000

1200

1400

1600

PCs Mobilgeräte

Kein Erfolg ohne Mobilität!

IDC/Nielsen 2012

12/11 - 02/12

Android iOSandere

Fünf Fragen eines Entscheiders

Entwicklungskosten senken Mehrere mobile Plattformen (nativ) Bestehende Mitarbeiter Produkteinführungszeit verkürzen Investitionen schützen

Entscheider• Projektleiter• Product Owner• Entwicklungsleiter• Softwarearchitekten

Keine Erfahrung in Mobile-Entwicklung Wenig technische Details Rollenspiel

Zielpublikum

Oliver Brack Senior Software Engineer Zühlke seit 2007 Projektleitung Cliententwicklung Product Owner (PO) im

Rollenspiel

Romano Roth Lead Software Architect Zühlke seit 2002 Client Architekturen (WPF) Entwickler (Dev) im

Rollenspiel

Über uns

romano.roth@zuehlke.com

oliver.brack@zuehlke.com

Rollenspiel – 1. Akt

Kürzlich nach den X.DAYS:

«Eine mobile App fürs Windows Phone muss her!»

.NET-Entwicklungsabteilung (C#)

Kundenverwaltung (RIA: Silverlight) Cloud Service (Azure) mit Datenhaltung

Ausgangslage

Service (Azure)Business

Layer (.NET)

Kundenverwaltung

WCF Kundendaten

Der Business Layer

User Interface Mockup

Windows Phone 7 (1/2)

Demo

Wiederverwendung des Business Layers

Daten aus Cloud UI mit Visual Studio

2010

Windows Phone 7 (2/2)

Service (Azure)

.NET

UI

Customer BL

User Interface

Framework

Business Layer

Rollenspiel – 2. Akt

Nach der Verkaufssitzung:

«Alle unsere Vertreter haben ein iPhone…»

Web, hybrid oder nativ?

Kriterium Web hybrid nativ

User Experience

Performance

Offlinefähigkeit

Hardware

Bezahlmodelle

Multi-Plattform

Abstrahierung

Deployment

nativ

Beispiel nativ vs. Web Web

Interaktions-elemente

Deployment, Updates

Offlinefähigkeit (Ticket kaufen)

Hardware (Schütteln für Ticket)80 % 20 % Onlinezeit

Stefano Malle (Microsoft), 2012

Gedanken des Entwicklers• Wiederverwendung von Code (Business Layer)• Neue Konzepte und Sprachen (Objective-C)

lernen?• Zeitdruck

Von Microsoft zu Apple

Visual Studio 2010.NET mit C#

MonoDevelopMono mit C#

Open-source-Implementation der .NET CLR Linux, MacOS X, Solaris, BSD, Wii, PS3 MonoDevelop als Entwicklungsumgebung Binary-kompatibel mit Microsoft .NET

Was ist Mono?

MonoTouch

Sprache C# (statt Objective-C)

Framework Mono

IDE MonoDevelop,(Visual Studio 2010)

UI Designer Xcode

Hersteller Xamarin

Hardware Intel-Mac

Preise MonoTouch: USD 399.-Apple Dev: USD 99.-

Was ist MonoTouch?

MonoTouch (1/2)

Demo

Wiederverwendung des Business Layers

Daten aus Cloud UI mit Xcode und

MonoDevelop

MonoTouch (2/2)

Service (Azure)

MonoTouchCustomer

BL

Mono

UI

User Interface

Framework

Business Layer

Rollenspiel – 3. Akt

Ein halbes Jahr später:

«Einige Vertreter haben jetzt ein Android-Phone…»

Was ist Mono for Android?

MonoTouch Mono for Android

Sprache C# (statt Objective-C) C# (statt Java)

Framework Mono Mono

IDE MonoDevelop,(Visual Studio 2010)

MonoDevelop,Visual Studio 2010

UI Designer Xcode DroidDraw, Eclipse

Hersteller Xamarin Xamarin

Hardware Intel-Mac Windows PC/Intel-Mac

Preise MonoTouch: USD 399.-Apple Dev: USD 99.-

Mono Android: USD 399.-Google Dev: USD 25.-

Mono for Android (1/2)

Demo

Wiederverwendung des Business Layers

Daten aus Cloud UI mit Visual Studio

2010

Mono for Android (2/2)

Service (Azure)

MonoAndroidCustomer

BL

Mono

UI

User Interface

Framework

Business Layer

Die Architektur

Service (Azure)

BL BL BL BLBusiness Layer

Kundendaten

UIUI UI UI

UI weiterhin nativ pro Plattform:• XAML (WP7)• Xcode (iOS)• AXML (Android)

Deployment pro Plattform (App Stores) iOS-Entwicklung trotzdem nur mit Intel-Mac Neue API-Features erst mit Mono-Release Abhängigkeit von Xamarin (Hersteller) «Lediglich» Silverlight-4-Stack

Nachteile von Mono

Kompetenzen

Plattformspezifisch Mono

Backend

Backend

Objective-C Java

.NET

z.B. .NET.NET

.NET

Kompetenzen

Plattformspezifisch Mono

Objective-C- Xcode

z.B. .NET

.NET (C#)- XAML- Xcode- AXML

.NET- XAML

Java- AXML

Entwicklungskosten senken Mehrere mobile Plattformen (nativ) Bestehende Mitarbeiter Produkteinführungszeit verkürzen Investitionen schützen

Anfängliche fünf Fragen

Aufwand (Schätzung)

Entwicklungskosten senken?

Antworten (1/5)

Programmlogik wiederverwenden, z. B.- Authentifizierung, Autorisierung- Persistierung (online/offline)- Hardwarezugriff (iOS/Android)- «Rechenkern»- Xing-App: WP7 iOS

39 %66 %

Codezeilen

Mehrere mobile Plattformen?

Antworten (2/5)

Mit MonoTouch und Mono for Android weiterhin in .NET mit C# (wie WP7) entwickeln

- Quellcode hybrid, App nativ- Synergien nutzen- Bekannte Konzepte und Tools

Bestehende Mitarbeiter?

Antworten (3/5)

Alle nativen Projekte für WP7, iPhone und Android. Praktisch ohne Umlernen!

- Fachkräfte sind Mangelware!- Risikominimierung für Firma- Job-Enrichment für Entwickler

Produkteinführungszeit verkürzen?

Antworten (4/5)

Pro Plattform lediglich noch UI entwickeln - Parallelisierung der Entwicklung- Möglichkeit zum Outsourcing (nur UI) BL ist/enthält Kernkompetenz- UI-Designtools nutzen

Investitionen schützen?

Antworten (5/5)

Weiterhin auf .NET mit C# setzen- n Technologieäste pflegen, kostet Geld- Ausbildung ist teuer- Spezialisten sind begehrt (Abwerbung)- Wiederverwendung von bestehendem Code/Tools

Rollenspiel – Schlussakt

Mitte März 2012:

«The new iPad...»

Fragen