Top Banner
© 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015
54

Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

Sep 02, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

1

Agile Entwicklung für iOS und AndroidIlja Mutschnik und Simon Hartmann

XPDays Germany 2015

Page 2: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

2

Agile DevelopmentObjective-C

Swift

Testing

Continuous Integration

Scrum

Clean Code

AppCode

Xcode

Nutzer Feedback

Code Metriken

TDD

Java

Android Studio

Continuous Deployment

Page 3: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

3

Agenda

1.Der App-Markt 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 4: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

4

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 5: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

5

App-Markt: Kein Ende des Wachstums

Page 6: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

6

Also: Hauptsache Geschwindigkeit? Nein!

Stellenausschreibung eines großen App-Hersteller:

Skills & Requirements […]

Testing - Honestly, our code coverage is a little lacking. We'd love your help to change this.[…]

Page 7: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

7

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 8: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

8

Der Scrum Flow

SPRINT

2-4 weeks24 hours

Product Backlog

Sprint Backlog

Product Increment

Page 9: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

• Kurze Zyklen • App muss nicht gleich gesamten Umfang haben

(Unterscheidung: public / in-house) • wenige bis keine überflüssigen Funktionen durch

schnelles Feedback • Kommunikation im Team und mit dem Kunden • Wer ist Kunde? Wie können wir mit „ihm“ sprechen? • Keine ausgelagerte Entwicklung

• Continuous Deployment mit hoher Automatisation nutzen

9

Die wichtigsten Aspekte

Page 10: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

• Sehr schnelllebiger Markt

• Technologien • Geräte • Nutzerverhalten • Design

• hoher Anspruch an Qualität und Design • App Store / Google Play als einziger Verkaufskanal (v.a.

iOS)

10

Was sind die Besonderheiten der mobilen Entwicklung?

Page 11: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

11

Ok, und wie machen wir es richtig?

QualitätCode MetrikenRefactoring

Clean Code

Design Patterns…

kurze Entwicklungszyklenenger Kundenkontakt

Scrum

fast feedback iterative Planung

Cont. Integration & Deployment

richtige Frameworks und Tools

Extreme Programming

Tests

Page 12: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

12

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 13: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

13

User Experience: Developer und Designer

Agile iOS Stewart Gleadow @stewgleadow

Page 14: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

14

User Experience: Developer und Designer

Agile iOS Stewart Gleadow @stewgleadow

Page 15: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

15

Der Anfang: Von der Idee zum Design

Mockup Implementierung…schleife Design 1.0

Page 16: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

16

Es geht besser…

Mockup Design-Prototyp Implementierung

Page 17: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

17

Es geht besser…

+Sketch

Schnelles UI DesignLive Preview auf realem Device

Klick-Dummy aus Sketch

Page 18: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

18

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 19: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

19

Kundeneinbeziehung

Wie erhalten wir Kundenfeedback?

Direktes FeedbackPersönlicher Kontakt mit PO

Tester „live“ beobachtenFeedbackoption in der App

Store Reviews

Indirektes FeedbackBeta-VerteilungCrashreports

Mobile Analytics

Page 20: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

20

Feedback Frameworks: Wunschkriterien

• Crashreports• Beta-Verteilung• Analytics (je nach Projekt)• Unterstützung von iOS und Android• Kostengünstig

Page 21: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

21

Kundeneinbeziehung

https://www.crashlytics.com/ www.google.com/analytics/mobile/

Page 22: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

22

Crashlytics

Desktop Integration

Beta Verteilung User Statistics + Event tracking

Page 23: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

23

Crashlytics: Crashreports

Page 24: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

24

Google Analytics: Genauere Benutzerdaten

Page 25: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

25

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 26: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

26

Continuous Integration iOS

Xcode Server Jenkins

Einrichtung ++ o

Wartung + o

Anpassung - ++

Automatisches Deployment

++ ++

Git Branches/Tags +/- +/+

Feedback ++ (Xcode Integration)

++

Page 27: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

27

Xcode: Bot Einstellungen

Page 28: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

28

Continuous Delivery iOS: Fastlane

Page 29: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

29

Continuous Delivery iOS: Fastlane platform :ios do before_all do ensure_git_status_clean end

lane :beta do sigh

ipa( configuration: "Beta", scheme: "Wikipedia Beta", )

deliver end

lane :store do snapshot sigh

ipa( configuration: "Wikipedia", scheme: "Wikipedia", ) deliver end

end

Page 30: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

30

Continuous Integration: Android

Vorteile:1. Viele Plugins2. Kostenlos3. Große Community

Jenkins

Page 31: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

31

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 32: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

32

Wie messen wir Softwarequalität?

Page 33: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

33

andrena objects: Messung der Qualität mit SQI

Aus den Indikatormetriken wird der Softwarequalitätsindex (SQI) berechnet

https://www.andrena.de/code-assessment

Page 34: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

34

Wichtige Metriken und Tests

Static Analysis

Zyklische Abhängigkeit

UI Tests Code CoverageUnit Tests

Zyklomatische Komplexität Code Duplications

Methodenlänge

Page 35: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

35

Objective C: Jenkins + Toolset

Static Analysis

Zyklische Abhängigkeit

UI Tests Code CoverageUnit Tests

xcodebuild, ocunit2junit

OCLint, Clang, hfcca, objc_dep, Graphviz + Eigenentwicklung

gcovrUIAutomation, Appium, …

Page 36: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

36

Swift: Lokal und auf Xcode Server

SonarQube: ca. 90 Metriken (alle oben) - 5000 EUR Lizenz - (online demo) Tailor: Static Analyzer (26 Regeln) SwiftLint: „A tool to enforce Swift style and conventions.“

Static Analysis

Zyklische Abhängigkeit

UI Tests Code CoverageUnit Tests

Zykl. Komplexität Duplications Methodenlänge

Xcode Xcode Xcode

Page 37: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

37

Android

Static Analysis

Zyklische Abhängigkeit

UI Tests Code CoverageUnit Tests

Zykl. Komplexität Duplications Methodenlänge

Robolectric, JUnit Espresso, Spoon JaCoCo

Android Lint Android Studio

Page 38: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

38

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 39: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

39

Mobile: Wichtige Aspekte beim Testen

• Unterschiedliche Geräte • Test: Mix aus Simulator und echten Geräten • Viele Variablen beim Nutzer

• Netzwerk-Verfügbarkeit • Displaygrößen • OS-Versionen • Hardware-Rechte(!)

Page 40: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

40

Teststrategien: Die klassische Testpyramide

Page 41: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

41

Teststrategie: Die mobile Testpyramide

Unit Tests

Beta Tester

autom. UI Tests

Integrations-/Akzeptanztestsz.B. Schnittstellen

Klassen, Methoden

Page 42: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

• Swift 2: @testable • Test-Framework empfehlenswert für

• bessere Lesbarkeit • bessere Strukturierung der Tests • aussagekräftigere Fehlermeldungen

42

Unit Test (iOS)

- XCTAssertTrue(contains(sillyMonkeys, kiki), "Expected sillyMonkeys to contain 'Kiki'")

+ expect(sillyMonkeys).to(contain(kiki))// Nimble

Page 43: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

43

Unit-Tests (iOS): Quick (BDD)

import Quick import Nimble

class TableOfContentsSpec: QuickSpec { override func spec() { describe("the 'Documentation' directory") { it("has everything you need to get started") { let sections = Directory("Documentation").sections expect(sections).to(contain("Installing Quick")) }

context("if it doesn't have what you're looking for") { it("needs to be updated") { let you = You(awesome: true) expect{you.submittedAnIssue}.toEventually(beTruthy()) } } } } }

Page 44: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

44

Unit-Tests (iOS): Code Coverage Xcode Integration

Page 45: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

45

Unit Test (android): RobolectricProblem: Ausführung der Unit-Tests auf einem Gerät bzw. Emulator dauert sehr lange

Lösung: Robolectric -> Tests laufen auf JVM -> Implementierungen für android.jar-Classen

@RunWith(RobolectricGradleTestRunner.class) public class SomeActivityTest {

private SomeActivity activity;

@Before public void before() { activity = Robolectric.buildActivity(SomeActivity.class).create().get(); } @Test public void buttonClickShouldStartNewActivity() { … Intent intent = Robolectric.shadowOf(activity).peekNextStartedActivity(); … assertEquals(OtherActivity.class.getCanonicalName(), intent.getComponent().getClassName()); } }

Page 46: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

46

Unit Test (android): Mockito und Hamcrest Matchers

@RunWith(RobolectricGradleTestRunner.class) public class SomeActivityTest {

@Mock private DbManager dbManager;

@Before public void before() { MockitoAnnotations.initMocks(this); } @Test public void buttonClickShouldStartNewActivity() { when(dbManager.getEntryForId(„42“)).thenReturn(„Max Mustermann“)

//do something with dbManager mock

assertThat(dbManager.getEntryForId(„42“), is(equalTo(„Max Mustermann“))); verify(dbManager).getEntryForId(Matchers.eq(42)); ;}

Page 47: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

47

UI Test (android): Espresso

Automatische Synchronisation mit UI

Einfache API •auswählen: onView(Matcher<View>) •ausführen: perform(ViewAction) •prüfen: check(ViewAssertion)

Beispiel:

onView(withId(R.id.button)) .perform(click()); onView(withId(R.id.textView)) .check(matches(withText(„abc“)));

Page 48: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

48

Agile Entwicklung für iOS und Android

1.Der App-Markt oder „There’s an app for that!" 1. „There’s an app for that!" 2. Agil für Mobil: Ein Überblick

2.Der Prozess: Wie nutzen wir ihn am besten? 1. UI/UX, Developer, Designer … und der Flow 2. Frühes Testen und die Kundeneinbeziehung 3. Kurze Zyklen: Continuous Integration und Deployment

3.Das Produkt: Wie kommt die Qualität in den Code? 1. Code Metriken 2. Tests und die Teststrategie 3. Refactoring

Page 49: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

49

iOS: Die Entwicklungssprache

Objective-C

Page 50: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

50

iOS: Die Entwicklungsumgebung

Page 51: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

51

AppCode (JetBrains)

+ -Sehr gutes Refactoring (ObjC) kein kompletter Workflow

UI anpassbar noch: Kein Refactoring von Swift Code

Plugins

auto imports

Quickfixes

„Code inspections“

Page 52: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

52

IDE: Die Lösung (… hoffentlich bald wieder)

Xcode

Konfiguration Interface Builder

CoreData UI Debugging

UI Tests

+

AppCode

Development Refactoring Debugging

Page 53: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

53

Android: Die Entwicklungsumgebung

Page 54: Agile Entwicklung für iOS und Android - xpdays.de · © 2015 andrena objects ag 1 Agile Entwicklung für iOS und Android Ilja Mutschnik und Simon Hartmann XPDays Germany 2015

© 2015 andrena objects ag

54

Danke für die Aufmerksamkeit

Fragen