Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin or Swift, why not both?

79fe3c13c618a61329298bdd6a86ec42?s=47 Bas Broek
November 14, 2019

Kotlin or Swift, why not both?

On Kotlin, Swift, and how we work together across and within teams at XING.

Given at a Google Developer Group meetup in Valencia with Laura Oran (twitter.com/sastresa)

79fe3c13c618a61329298bdd6a86ec42?s=128

Bas Broek

November 14, 2019
Tweet

Transcript

  1. Kotlin or Swift - why not both? Bas Broek &

    Laura Orán
  2. 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
  3. 3 Same architectures Meeting point Presenter Model View ViewModel Model

    View
  4. 4 Common tools Meeting point

  5. 5 1. XING Android app: 70% of the code 2.

    XING iOS app: 50% of the code Kotlin & Swift our current status
  6. 6 iOS 33 developers Our teams Android 32 developers ...

    and more than 15 feature teams
  7. 7 • Emails • Push notifications • Badges • Notification

    Center Notifications Team
  8. 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
  9. 9 • Tooling • Continuous Integration • Release Management •

    Main coordination with Platform teams Mobile Releases Team
  10. 10 Reality at XING

  11. 11 Architecture

  12. 12 Communication is hard

  13. 13 Knowledge Sharing

  14. 14 Access Token Alignment - Unified experience across platforms -

    ... both technical and for the user - Faster improvements going forward - Exchange between platforms
  15. 15 XING Design System • Cross-platform - iOS, Android and

    Web • Shared design language • Accessibility 15
  16. 16 Mobile First..?

  17. 17

  18. 17 Conclusion

  19. 17 Conclusion

  20. 17 Conclusion - It's not just about the language

  21. 17 Conclusion - It's not just about the language -

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

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

    Communication is important - Figure out how to work together - Keep improving the technical landscape
  24. 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
  25. 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
  26. Thanks! We are hiring! @sastresa @basthomas

  27. 2 3 19 Native devs? 1

  28. 2 3 19 Native devs? 1