romano roth & oliver brack zühlke. entscheider projektleiter entwicklungsleiter...
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