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 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 Slide

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

    View Slide

  4. 4
    Common tools
    Meeting point

    View 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 Slide

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

    View Slide

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

    View 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 Slide

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

    View Slide

  10. 10
    Reality at XING

    View Slide

  11. 11
    Architecture

    View Slide

  12. 12
    Communication is hard

    View Slide

  13. 13
    Knowledge Sharing

    View Slide

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

    View Slide

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

    View Slide

  16. 16
    Mobile First..?

    View Slide

  17. 17

    View Slide

  18. 17
    Conclusion

    View Slide

  19. 17
    Conclusion

    View Slide

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

    View Slide

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

    View Slide

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

    View 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

    View 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

    View Slide

  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

    View Slide

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

    View Slide

  27. 2 3
    19
    Native devs? 1

    View Slide

  28. 2 3
    19
    Native devs? 1

    View Slide