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

Kotlin or Swift, why not both?

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)

Bas Broek

November 14, 2019
Tweet

More Decks by Bas Broek

Other Decks in Programming

Transcript

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

    View full-size slide

  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

    View full-size slide

  3. 3
    Same architectures
    Meeting point
    Presenter
    Model View
    ViewModel
    Model View

    View full-size slide

  4. 4
    Common tools
    Meeting point

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  10. 10
    Reality at XING

    View full-size slide

  11. 11
    Architecture

    View full-size slide

  12. 12
    Communication is hard

    View full-size slide

  13. 13
    Knowledge Sharing

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 16
    Mobile First..?

    View full-size slide

  17. 17
    Conclusion

    View full-size slide

  18. 17
    Conclusion

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  23. 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

    View full-size slide

  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
    - Learn from each other's challenges & solutions

    View full-size slide

  25. Thanks!
    We are hiring!
    @sastresa
    @basthomas

    View full-size slide

  26. 2 3
    19
    Native devs? 1

    View full-size slide

  27. 2 3
    19
    Native devs? 1

    View full-size slide