$30 off During Our Annual Pro Sale. View Details »

def tdd_ios( hint: RubyMotion )

def tdd_ios( hint: RubyMotion )

Lightening talk about RubyMotion, iOS and testing. Presented at March RoRo Sydney meet.

Jon Rowe

March 12, 2013
Tweet

More Decks by Jon Rowe

Other Decks in Programming

Transcript

  1. def tdd_ios(
    hint: RubyMotion)
    @JONROWE

    View Slide

  2. ObjectiveC

    View Slide

  3. ObjectiveC
    TDD IS HARD!

    View Slide

  4. ObjectiveC
    TDD IS HARD!
    (or just not popular)

    View Slide

  5. PhoneGap?

    View Slide

  6. PhoneGap?
    JS

    View Slide

  7. PhoneGap?
    JS
    TDD’able

    View Slide

  8. PhoneGap?
    JS
    TDD’able
    Sucks...

    View Slide

  9. RubyMotion?

    View Slide

  10. RubyMotion?
    Ruby

    View Slide

  11. RubyMotion?
    Ruby
    Compiles

    View Slide

  12. RubyMotion?
    Ruby
    Compiles
    Access to all the APIs

    View Slide

  13. Has testing built in

    View Slide

  14. Bacon

    View Slide

  15. Bacon
    MacBacon

    View Slide

  16. Bacon
    MacBacon
    Runs In Simulator

    View Slide

  17. View Slide

  18. Unit Testing

    View Slide

  19. Unit Testing
    Integration Testing

    View Slide

  20. Unit Testing
    Integration Testing
    Acceptance Testing
    (limited)

    View Slide

  21. Use Rubyisms

    View Slide

  22. Use Rubyisms
    Stub web requests

    View Slide

  23. Use Rubyisms
    Stub web requests
    Simulate device
    events

    View Slide

  24. Felt Like Rails

    View Slide

  25. Solution?

    View Slide

  26. Pure Ruby Library

    View Slide

  27. Pure Ruby Library
    RSpec / MiniTest

    View Slide

  28. Pure Ruby Library
    RSpec / MiniTest
    Ruby 2.0.0

    View Slide

  29. Caveats:

    View Slide

  30. Caveats:
    Libs don’t always
    behave the same.

    View Slide

  31. Caveats:
    Libs don’t always
    behave the same.
    (JSON)

    View Slide

  32. Caveats:

    View Slide

  33. Caveats:
    no require

    View Slide

  34. Caveats:
    no require
    no metaprogramming

    View Slide

  35. Caveats:
    no require
    no metaprogramming
    alloc / init vs initialize

    View Slide

  36. end

    View Slide