Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Life Beyond Rails
Building Cross Platform Applications
DEMO
@parasquid
Chief Problem Solver
at Mindvalley
Why not Ruby on the
browser and on mobile?
Dead end product
So what if voyager can go to
Mars, or dive in the ocean
So what if your hackathon was
written in JS that runs on both
serv...
Can you reuse a
significant portion of the
code you wrote?
Cross platform is useless
if your code can't be
reused.
Reuse of prior work across
multiple platforms is the biggest
reason why you want cross
platform support
“cross platform” is mostly
solved in the physical
world
cable
usb powerbank
usb camera
usb phone
usb ereader
• How does this work?
• Which things can I use this
with?
• What can this do?
• How does this work?
• Which things can I use this
with?
• What can this do?
Encapsulation
Polymorphism
(DESCRIPTOR)
• open()
• close()
• read()
• write()
• seek()
You’re not a beautiful or unique snowflake.
-Tyler Durden, Fight Club
–Linus Torvalds
“Use common tools to
operate on different things.”
principle: common tools operating
on different things
technique: polymorphism
Surface Area of the
API is small
principle: information hiding
technique: encapsulation
Oooh. But I already
know OOP.
OOP is about
programming with objects
OOP is about
programming with
objects
OOP is about the
organization of your
program
• Procedural
• Object Oriented
• Functional
• Prototype based
• Rails-way based
• Hybrid / Combination
How are
things
conn...
Rails is omakase.
I [am] … the head chef of the
omakase experience that is Rails
-DHH
To Rails or not to Rails
–Kent Beck
In a connected system, elements are highly
available to each other (via global state, for
example). Adding the ...
–Kent Beck
A modular design has connections deliberately
kept to a minimum. The cost for the first feature
is likely to be...
Stay on the connected curve until the climb
phase, then switch to the modular curve.
Kent Beck
App
Rails
request-response
App
Telnet
Web sockets
streaming
App
RubyMotion
mobile
App
Opal
browser
App
mRuby
hardware
Programming is the act
of managing complexity.
Programming is the act
of managing complexity.
Programming is the act
of managing complexity.
Write flexible,
maintainable,
reusable code
@parasquid
Chief Problem Solver
at Mindvalley
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
Upcoming SlideShare
Loading in …5
×

Life Beyond Rails: Creating Cross Platform Ruby Apps

214 views

Published on

The secret to creating cross platform apps is something you already know, but probably not doing.

Published in: Technology
  • Be the first to like this

Life Beyond Rails: Creating Cross Platform Ruby Apps

  1. 1. Life Beyond Rails Building Cross Platform Applications
  2. 2. DEMO
  3. 3. @parasquid Chief Problem Solver at Mindvalley
  4. 4. Why not Ruby on the browser and on mobile?
  5. 5. Dead end product
  6. 6. So what if voyager can go to Mars, or dive in the ocean So what if your hackathon was written in JS that runs on both server and client So what if your legacy code was written in Ruby (cross platform!)
  7. 7. Can you reuse a significant portion of the code you wrote?
  8. 8. Cross platform is useless if your code can't be reused.
  9. 9. Reuse of prior work across multiple platforms is the biggest reason why you want cross platform support
  10. 10. “cross platform” is mostly solved in the physical world
  11. 11. cable usb powerbank usb camera usb phone usb ereader
  12. 12. • How does this work? • Which things can I use this with? • What can this do?
  13. 13. • How does this work? • Which things can I use this with? • What can this do? Encapsulation Polymorphism
  14. 14. (DESCRIPTOR)
  15. 15. • open() • close() • read() • write() • seek()
  16. 16. You’re not a beautiful or unique snowflake. -Tyler Durden, Fight Club
  17. 17. –Linus Torvalds “Use common tools to operate on different things.”
  18. 18. principle: common tools operating on different things technique: polymorphism
  19. 19. Surface Area of the API is small
  20. 20. principle: information hiding technique: encapsulation
  21. 21. Oooh. But I already know OOP.
  22. 22. OOP is about programming with objects
  23. 23. OOP is about programming with objects
  24. 24. OOP is about the organization of your program
  25. 25. • Procedural • Object Oriented • Functional • Prototype based • Rails-way based • Hybrid / Combination How are things connected?
  26. 26. Rails is omakase. I [am] … the head chef of the omakase experience that is Rails -DHH
  27. 27. To Rails or not to Rails
  28. 28. –Kent Beck In a connected system, elements are highly available to each other (via global state, for example). Adding the first feature to a connected system is cheap. All the resources you need are available. However, the cost of all those connections is that subsequent features are very likely to interact with previous features, driving up the cost of development over time.
  29. 29. –Kent Beck A modular design has connections deliberately kept to a minimum. The cost for the first feature is likely to be higher than in the connected system, because you need to find the necessary resources and bring them together, possibly re- modularizing in the process. Features are much less likely to interact in a modular system, though, leading to a steady stream of features at relatively constant cost.
  30. 30. Stay on the connected curve until the climb phase, then switch to the modular curve. Kent Beck
  31. 31. App Rails request-response
  32. 32. App Telnet Web sockets streaming
  33. 33. App RubyMotion mobile
  34. 34. App Opal browser
  35. 35. App mRuby hardware
  36. 36. Programming is the act of managing complexity.
  37. 37. Programming is the act of managing complexity.
  38. 38. Programming is the act of managing complexity.
  39. 39. Write flexible, maintainable, reusable code
  40. 40. @parasquid Chief Problem Solver at Mindvalley

×