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

Cross Platform Shenanigans, Part 2: Android

Josh Johnson
November 15, 2017

Cross Platform Shenanigans, Part 2: Android

In my new role as a game developer, I've had to approach the world of cross platform development. This talk—part 2 in a series—from TriDroid November 2017 in Durham, NC covers my thoughts on cross platform and some lessons learned.

Josh Johnson

November 15, 2017
Tweet

More Decks by Josh Johnson

Other Decks in Programming

Transcript

  1. CROSS PLATFORM
    SHENANIGANS
    Part II: Android
    http://jnjosh.com
    @jnjosh

    View Slide

  2. Apple Nerd

    View Slide

  3. View Slide

  4. View Slide

  5. So I needed to build a Cross-Platform Game…

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. !

    View Slide

  18. So we did it…

    View Slide

  19. Core
    Renderer
    iOS Android

    View Slide

  20. iOS Android
    Swift! Kotlin!
    C++ 11!
    Core
    Renderer

    View Slide

  21. Objective-C++

    More C++ JNI
    Maybe Java
    iOS Android
    Swift! Kotlin!
    C++ 11!
    Core
    Renderer

    View Slide

  22. Android
    Core
    Renderer

    View Slide

  23. Android
    Core
    Renderer
    Android
    Studio
    CMake

    View Slide

  24. Android
    Core
    Renderer
    Android
    Studio
    CMake
    JNI

    View Slide

  25. Android
    Core
    Renderer
    Android
    Studio
    CMake
    Gradle
    JNI

    View Slide

  26. DEMO

    View Slide

  27. So what did we learn?

    View Slide

  28. Build what you need

    View Slide

  29. Learn and use the idioms of each language; use them.

    View Slide

  30. Define strict protocols for communication

    View Slide

  31. Build things as modular as possible.

    View Slide

  32. Create common conceptual patterns

    View Slide

  33. THANKS!
    http://jnjosh.com
    @jnjosh

    View Slide