12. A What ??
Fork of MacRuby Compiles into optimized machine code
13. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
14. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
15. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
16. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
17. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
Ruby-runtime tightly integrated with Obj-C runtime
18. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
Ruby-runtime tightly integrated with Obj-C runtime
Same ancestor as Obj-C
20. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
Ruby-runtime tightly integrated with Obj-C runtime
Same ancestor as Obj-C
21. A What ??
Fork of MacRuby Compiles into optimized machine code
Automatic object memory allocation and reclaim
Compiles the interfaces built in IB of XCode
Ruby-runtime tightly integrated with Obj-C runtime
Same ancestor as Obj-C Object can be shared with no performance cost
32. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
33. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
34. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
35. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
36. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
Cons:
37. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
Cons:
- Its a bridge that makes native api calls
38. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
Cons:
- Its a bridge that makes native api calls
- Runs in single thread of UIWebView which is painfully slow
39. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
Cons:
- Its a bridge that makes native api calls
- Runs in single thread of UIWebView which is painfully slow
- Limited support of direct access to native APIs
40. Myths
Can I code using RubyMotion without the pain to learn Cocoa Framework ?
PhoneGap like tools are much easier to learn what advantage do I get with RubyMotion ?
Pros:
- Very easy to get started; as we all know HTML/JS/CSS
Cons:
- Its a bridge that makes native api calls
- Runs in single thread of UIWebView which is painfully slow
- Limited support of direct access to native APIs
- Debugging becomes extremely difficult when you make native api calls
69. The Soul
Console REPL - Read Evaluate Print Loop
You feel in-control
An excellent in-browser demo of REPL: https://www.pieceable.com/rubymotion-console
76. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
77. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
78. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
79. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
80. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
- Assertions
81. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
- Assertions
- Matchers
82. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
- Assertions
- Matchers
- before/after blocks
83. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
- Assertions
- Matchers
- before/after blocks
View testing:
84. Testing your code
Like Rails, RubyMotion comes bundled with ‘RSpec’ like framework ‘MacBacon’
<motion_root>/spec/main_spec.rb
$ rake spec
‘MacBacon’ has almost all ‘syntactic sugar’ that you are accustomed in RSpec:
- Assertions
- Matchers
- before/after blocks
View testing:
- Loading the nib/xib/storyboard file
85. Continuos Integration
Jenkins setup on mac-mini App Store
WebHook Push
Setup for local deployment and testing
103. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
104. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
C Complex Data Structures
105. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
No corresponding Ruby Data
C Complex Data Structures
Types
106. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
No corresponding Ruby Data
Types
C Complex Data Structures
107. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
No corresponding Ruby Data
Types
C Complex Data Structures
BridgeSupport
108. Using native C code
Basic Types in C Ruby data types
(bool, char, int, long, float, double) (true/false, Fixnum, Bignum, Float)
No corresponding Ruby Data
Types
C Complex Data Structures RubyMotion
BridgeSupport
112. CocoaPods
is a dependency manager for Obj-C projects
sudo gem install cocoapods
pod setup # this may not be required for everyone, it never worked for me
113. CocoaPods
is a dependency manager for Obj-C projects
sudo gem install cocoapods
pod setup # this may not be required for everyone, it never worked for me
https://github.com/CocoaPods/Specs - lists all the pods
114. CocoaPods
is a dependency manager for Obj-C projects
sudo gem install cocoapods
pod setup # this may not be required for everyone, it never worked for me
https://github.com/CocoaPods/Specs - lists all the pods
It has been integrated with RubyMotion which comes as a gem
115. CocoaPods
is a dependency manager for Obj-C projects
sudo gem install cocoapods
pod setup # this may not be required for everyone, it never worked for me
https://github.com/CocoaPods/Specs - lists all the pods
It has been integrated with RubyMotion which comes as a gem
sudo gem install motion-cocoapods
116. CocoaPods
is a dependency manager for Obj-C projects
sudo gem install cocoapods
pod setup # this may not be required for everyone, it never worked for me
https://github.com/CocoaPods/Specs - lists all the pods
It has been integrated with RubyMotion which comes as a gem
sudo gem install motion-cocoapods
Include it in your Rakefile:
require ‘moion-cocoapods’
Motion::Project::App.setup do |app|
# ...
app.pods do
dependency 'JSONKit'
dependency 'iActiveRecord'
end
end
119. Long way to go !
RM is only ~4 months old
Something it lacks:
- Debugger (but REPL kind of makes it easy)
- Some dynamic code doesn’t work (but hey !!!)