Romano Roth & Oliver Brack Zühlke. Entscheider Projektleiter Entwicklungsleiter Softwarearchitekten...

Post on 06-Apr-2015

103 views 1 download

transcript

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

Romano Roth & Oliver BrackZühlke

Entscheider Projektleiter Entwicklungsleiter Softwarearchitekten

Der Vortrag setzt keine technische Kenntnisse von Mobile-Entwicklung voraus und geht daher auch nicht auf technische Details ein.

Zielpublikum

1. Wie kann ich meine Entwicklungskosten senken?

2. Wie kann ich kostengünstig für mehrere mobile Plattformen entwickeln?

3. Was kann ich mit meinen bestehenden Mitarbeitern umsetzen?

4. Wie kann ich meine Produkteinführungszeit verkürzen?

5. Wie kann ich bestehende Investitionen schützen?

Fünf Fragen eines Entscheiders

1. Windows Phone 72. iPhone (MonoTouch)3. Android (Mono for Android)4. Empfehlungen

Angereichert mit Live-Coding und Erklärungen

Aus dem Leben eines Entscheiders

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

Rollenspiel – 1. Akt

«Der Product Owner hat eine Idee…»

Kundenverwaltung (Silverlight) Business Layer (.NET) Cloud Service (Azure) mit Datenhaltung Windows Communication Foundation (WCF)

Bestehende Lösung

Service (Azure)Business

Layer (.NET)

Kundenverwaltung

WCF Kundendaten

Der Business Layer

http://ese2012customerservice.cloudapp.net/CustomerService.svc

User Interface Mockup

Windows Phone 7 (1/2)

Service (Azure)

Dem

o

Wiederverwendung des Business Layers

Daten aus Cloud UI mit Visual Studio

2010

Windows Phone 7 (2/2)

Service (Azure)

.NET

UI

Customer BL

Rollenspiel – 2. Akt

«Alle unsere Vertreter haben ein iPhone…»

Web vs. nativ

Vorteile nativ

User Experience: Nutzung plattformspezifischer Controls

Performance Offlinefähigkeit Nutzung aller

Hardware-Features Akzeptanz (und

Sicherheit) durch App-Store

Bezahlmodelle (In-App Purchase)

User Experience (Beispiel)

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 Common Language Runtime von .NET (CLR)

Linux, MacOS X, Solaris, BSD, Wii, PS3 MonoDevelop als Entwicklungsumgebung Binary-kompatibel mit Microsoft .NET Xamarin (Miguel de Icaza)

Was ist Mono?

iOS-Applikationen mit .NET in C#(statt mit Objective-C) entwickeln

Plattform basiert auf◦ Framework: Mono◦ IDE: MonoDevelop (und Visual Studio 2010)

Kosten◦ MonoTouch Professional License (USD 399.-)◦ Apple Developer Program Membership (USD 99.-)◦ Intel-Mac (z. B. Mac Mini, ab USD 599.-)

Was ist MonoTouch?

MonoTouch (1/2)

Service (Azure)

Dem

o

Wiederverwendung des Business Layers

Daten aus Cloud UI mit XCode und

MonoDevelop

MonoTouch (2/2)

Service (Azure)

MonoTouchCustomer

BL

Mono

UI

Rollenspiel – 3. Akt

Ein halbes Jahr später:

«Einige Vertreter haben jetzt ein Android-Phone…»

Android-Applikationen mit .NET in C#(statt mit Java) entwickeln

Plattform basiert auf◦ Framework: Mono◦ IDE: MonoDevelop und Visual Studio 2010

Kosten◦ Mono for Android Professional License (USD 399.-)◦ Google Developer Account (USD 25.-)

Was ist Mono for Android?

Service (Azure)

Dem

o

Mono for Android (1/2)

Wiederverwendung des Business Layers

Daten aus Cloud UI mit Visual Studio

2010

Mono for Android (2/2)

Service (Azure)

MonoAndroidCustomer

BL

Mono

UI

Die Architektur

Service (Azure)

BL BL BL BLBusiness Layer

Kundendaten

UIUI UI UI

Quellcode (wird mit Produkt kompiliert)◦ Verantwortlichkeiten? Wer «pflegt» diesen Teil?◦ Struktur des Repositorys

Assembly-Referenz◦ Business-Logik als eigenständiges Produkt◦ Eigenes Team◦ Release-Zyklen◦ Nicht in allen Fällen möglich

Einbindung Business-Logik

Empf

ehlu

n

g

Teamstrukturen

Plattformspezifisch Mono

Backend

Backend

Objective-C Java

.NET

z. B. .NET.NET

.NET

1. Entwicklungskosten senken2. Mehrere mobile Plattformen3. Bestehende Mitarbeiter4. Produkteinführungszeit verkürzen5. Investitionen schützen

Anfängliche fünf Fragen

Entwicklungskosten senken?

Antworten (1/5)

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

39 %

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 – 4. Akt

Nochmals sechs Monate später:

«Alle Vertreter reissen sich um das neue iPad…»

- Detailansicht von Kundendaten- Hinzufuegen, Editieren, Loeschen von Kunden- Verschluesselte Meldungen verschicken/lesen- Offline-Faehigkeit- Grafische Darstellung der Margen- Verbesserte Abfragemoeglichkeiten- Support fuer WP7, Android Phone und Tablet, iPhone, iPad- Spezielles Login fuer Kunden (Mitgliederbereich)

Neue Anforderungen

Fragen