Slide 1

Slide 1 text

Kotlin or Swift - why not both? Bas Broek & Laura Orán

Slide 2

Slide 2 text

2 Meeting point func makeIncrementer() -> ((Int) -> Int) { func addOne(number: Int) -> Int { 1 + number } return addOne } let increment = makeIncrementer() increment(7) fun makeIncrementer(): (Int) -> Int { val addOne = fun(number: Int): Int { return 1 + number } return addOne } val increment = makeIncrementer() increment(7) Similar syntax Kotlin Swift

Slide 3

Slide 3 text

3 Same architectures Meeting point Presenter Model View ViewModel Model View

Slide 4

Slide 4 text

4 Common tools Meeting point

Slide 5

Slide 5 text

5 1. XING Android app: 70% of the code 2. XING iOS app: 50% of the code Kotlin & Swift our current status

Slide 6

Slide 6 text

6 iOS 33 developers Our teams Android 32 developers ... and more than 15 feature teams

Slide 7

Slide 7 text

7 • Emails • Push notifications • Badges • Notification Center Notifications Team

Slide 8

Slide 8 text

8 • Platform-focused "core" teams • Includes user experience design, product owners, tester • Coordinate and help the wider iOS "Community" • App-wide improvements and architecture • High-level overview of the product Platform teams

Slide 9

Slide 9 text

9 • Tooling • Continuous Integration • Release Management • Main coordination with Platform teams Mobile Releases Team

Slide 10

Slide 10 text

10 Reality at XING

Slide 11

Slide 11 text

11 Architecture

Slide 12

Slide 12 text

12 Communication is hard

Slide 13

Slide 13 text

13 Knowledge Sharing

Slide 14

Slide 14 text

14 Access Token Alignment - Unified experience across platforms - ... both technical and for the user - Faster improvements going forward - Exchange between platforms

Slide 15

Slide 15 text

15 XING Design System • Cross-platform - iOS, Android and Web • Shared design language • Accessibility 15

Slide 16

Slide 16 text

16 Mobile First..?

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

17 Conclusion

Slide 19

Slide 19 text

17 Conclusion

Slide 20

Slide 20 text

17 Conclusion - It's not just about the language

Slide 21

Slide 21 text

17 Conclusion - It's not just about the language - Communication is important

Slide 22

Slide 22 text

17 Conclusion - It's not just about the language - Communication is important - Figure out how to work together

Slide 23

Slide 23 text

17 Conclusion - It's not just about the language - Communication is important - Figure out how to work together - Keep improving the technical landscape

Slide 24

Slide 24 text

17 Conclusion - It's not just about the language - Communication is important - Figure out how to work together - Keep improving the technical landscape - Consider shared patterns to ease knowledge sharing

Slide 25

Slide 25 text

17 Conclusion - It's not just about the language - Communication is important - Figure out how to work together - Keep improving the technical landscape - Consider shared patterns to ease knowledge sharing - Learn from each other's challenges & solutions

Slide 26

Slide 26 text

Thanks! We are hiring! @sastresa @basthomas

Slide 27

Slide 27 text

2 3 19 Native devs? 1

Slide 28

Slide 28 text

2 3 19 Native devs? 1