<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: RubyMotion: Ruby for iOS development</title>
	<atom:link href="http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/</link>
	<description>public business secrets</description>
	<lastBuildDate>Tue, 14 May 2013 22:01:04 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Christian</title>
		<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/#comment-6931</link>
		<dc:creator><![CDATA[Christian]]></dc:creator>
		<pubDate>Tue, 09 Oct 2012 16:28:54 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=3632#comment-6931</guid>
		<description><![CDATA[Xcode never had an official plugin API. Since Xcode is distributed via the Mac App Store Xcode should not be able to load code (loading a (native) plugin means loading code). Maybe Apple made an exception for Xcode - I don&#039;t know. But I don&#039;t think Apple will ever introduce a plugin API for Xcode. Yes - Instruments is using DTrace and you can feed it your own probes. I am not sure how practical this is since you don&#039;t have a direct mapping between your Ruby code and the generated Objective-C code or am I wrong? In theory it should not be possible to have a direct mapping between MotionRuby code and the Objective-C code which is needed for debugging/profiling… Of course I could be totally wrong about this.]]></description>
		<content:encoded><![CDATA[<p>Xcode never had an official plugin API. Since Xcode is distributed via the Mac App Store Xcode should not be able to load code (loading a (native) plugin means loading code). Maybe Apple made an exception for Xcode &#8211; I don&#8217;t know. But I don&#8217;t think Apple will ever introduce a plugin API for Xcode. Yes &#8211; Instruments is using DTrace and you can feed it your own probes. I am not sure how practical this is since you don&#8217;t have a direct mapping between your Ruby code and the generated Objective-C code or am I wrong? In theory it should not be possible to have a direct mapping between MotionRuby code and the Objective-C code which is needed for debugging/profiling… Of course I could be totally wrong about this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jenslukowski</title>
		<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/#comment-6928</link>
		<dc:creator><![CDATA[jenslukowski]]></dc:creator>
		<pubDate>Tue, 09 Oct 2012 14:43:57 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=3632#comment-6928</guid>
		<description><![CDATA[First: thank you for taking so much time to comment I appreciate it.
About the tools: maybe there is another way, can&#039;t Xcode and other tools be used with plugins? This could be a way to get RubyMotion support.
Instruments uses DTrace under the hood which can be used with any process (&lt;a href=&quot;https://twitter.com/sebedwards/statuses/222418048387252225&quot; rel=&quot;nofollow&quot;&gt;some&lt;/a&gt; seem to got it &lt;a href=&quot;https://plus.google.com/114311896476820866022/posts/8nFj8qBAAWB&quot; rel=&quot;nofollow&quot;&gt;working&lt;/a&gt;). So maybe this works out of the box. I have to try it out.

We do not use RubyMotion in commercial projects right now and yes it is an additional dependency which could be a blocker (depends on the client and the project).

The NSError problems: you could write a helper which wraps this.]]></description>
		<content:encoded><![CDATA[<p>First: thank you for taking so much time to comment I appreciate it.<br />
About the tools: maybe there is another way, can&#8217;t Xcode and other tools be used with plugins? This could be a way to get RubyMotion support.<br />
Instruments uses DTrace under the hood which can be used with any process (<a href="https://twitter.com/sebedwards/statuses/222418048387252225" rel="nofollow">some</a> seem to got it <a href="https://plus.google.com/114311896476820866022/posts/8nFj8qBAAWB" rel="nofollow">working</a>). So maybe this works out of the box. I have to try it out.</p>
<p>We do not use RubyMotion in commercial projects right now and yes it is an additional dependency which could be a blocker (depends on the client and the project).</p>
<p>The NSError problems: you could write a helper which wraps this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian</title>
		<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/#comment-6926</link>
		<dc:creator><![CDATA[Christian]]></dc:creator>
		<pubDate>Tue, 09 Oct 2012 14:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=3632#comment-6926</guid>
		<description><![CDATA[1. No. On OS X (using Cocoa Bindings) you would do it with bindings and the help of Xcode (although you could do everything also by hand). UIKit (and AppKit, since 10.7) has a way to let you register classes/nibs/xibs on a per reuse identifier basis by using registerNib:forCellReuseIdentifier: (UITableView) or registerClass:forCellReuseIdentifier: (UITableView). When using one of those methods the dequeue method of UITableView is guaranteed to return a non-nil value. The former method is available since iOS 5 and the latter since iOS 6. Storyboarding could also help in this situation if you have static tables but then you would need the help of Xcode (which is not bad at all).

2. Agreed.

3./4./5. Sure. Its nice to see companies improving these things. I am wondering: Are you using RubyMotion for commercial stuff? If so how do you profile your app right now? Isn&#039;t it a bit risky to use such a new technology for commercial projects if (IMHO better) alternatives are available at no cost? At one day RubyMotion will have a decent profiler but Instruments can do so much more than just profiling… I wonder if they ever manage to develop something nearly as powerful as Instruments.

6. Everything UI related is not really reusable but the remaining things are: The model layer, the whole business logic, the network layer etc. Its very easy to see if the code you write right now is or should be platform independent: If you are only using frameworks which are available on both platforms then the code you are writing should be platform independent as well. Example: Your method is modifying an image (CIImage, using Core Image) and is storing it using Core Data. Your method is using Core Image and Core Data; both frameworks are available on both platforms. My implementation of this method would be platform independent and yours not (assuming you don&#039;t want to use the code generated by RubyMotion as is). I am sure that sooner or later we will see RubyMotion for OS X (it is a no-brainer) but then again: Why this dependency in commercial projects?

By the way: It seems that Ruby is incompatible with the whole error (NSError) management of Foundation. You usually pass a reference to an NSError * (a NSError * *) to a method, check some return value and then access the pointer value. In RubyMotion you always have to manually create a new Pointer instance by calling Pointer.new… This is a tradeoff you have to make everywhere, every time. 
 
Sure. Fresh minds are always welcome. :) Let&#039;s see how RubyMotion looks like in 2-5 years from now…]]></description>
		<content:encoded><![CDATA[<p>1. No. On OS X (using Cocoa Bindings) you would do it with bindings and the help of Xcode (although you could do everything also by hand). UIKit (and AppKit, since 10.7) has a way to let you register classes/nibs/xibs on a per reuse identifier basis by using registerNib:forCellReuseIdentifier: (UITableView) or registerClass:forCellReuseIdentifier: (UITableView). When using one of those methods the dequeue method of UITableView is guaranteed to return a non-nil value. The former method is available since iOS 5 and the latter since iOS 6. Storyboarding could also help in this situation if you have static tables but then you would need the help of Xcode (which is not bad at all).</p>
<p>2. Agreed.</p>
<p>3./4./5. Sure. Its nice to see companies improving these things. I am wondering: Are you using RubyMotion for commercial stuff? If so how do you profile your app right now? Isn&#8217;t it a bit risky to use such a new technology for commercial projects if (IMHO better) alternatives are available at no cost? At one day RubyMotion will have a decent profiler but Instruments can do so much more than just profiling… I wonder if they ever manage to develop something nearly as powerful as Instruments.</p>
<p>6. Everything UI related is not really reusable but the remaining things are: The model layer, the whole business logic, the network layer etc. Its very easy to see if the code you write right now is or should be platform independent: If you are only using frameworks which are available on both platforms then the code you are writing should be platform independent as well. Example: Your method is modifying an image (CIImage, using Core Image) and is storing it using Core Data. Your method is using Core Image and Core Data; both frameworks are available on both platforms. My implementation of this method would be platform independent and yours not (assuming you don&#8217;t want to use the code generated by RubyMotion as is). I am sure that sooner or later we will see RubyMotion for OS X (it is a no-brainer) but then again: Why this dependency in commercial projects?</p>
<p>By the way: It seems that Ruby is incompatible with the whole error (NSError) management of Foundation. You usually pass a reference to an NSError * (a NSError * *) to a method, check some return value and then access the pointer value. In RubyMotion you always have to manually create a new Pointer instance by calling Pointer.new… This is a tradeoff you have to make everywhere, every time. </p>
<p>Sure. Fresh minds are always welcome. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Let&#8217;s see how RubyMotion looks like in 2-5 years from now…</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jenslukowski</title>
		<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/#comment-6910</link>
		<dc:creator><![CDATA[jenslukowski]]></dc:creator>
		<pubDate>Sun, 07 Oct 2012 20:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=3632#comment-6910</guid>
		<description><![CDATA[You are right. Learning a language like Objective-C is easy. Cocoa and all the other frameworks and the runtime are the hard part. And yes I am a beginner in Objective-C land.

1. Maybe this wasn&#039;t a good example, but for modern UIKit techniques you would need the help of Xcode and bindings or am I mistaken?

2. Yes, you could. But IMHO the fast circuit or operator is more true for what happens here. (but that&#039;s just personal taste)

3./4./5. Yes, you lack in tool/IDE support right now, given that RubyMotion is less than a year old this does not suprise but it looks like e.g. JetBrains are building RubyMotion plugins for their IntelliJ Idea.

6. I don&#039;t know how much of the code can be used with MacRuby, from which RubyMotion is derived. In your experience how often do you need this? And when you need this, you could even write your code you want to reuse in Objective-C.

On the other hand what I find most interesting and exciting is the fresh wind which is coming from the community where many abstractions and new ways of building iOS apps are tested out. All in all I think it&#039;s a different way and mentality.
Objective-C is a proven way and Xcode is a huge help. But for me and maybe many others it seems so heavyweight.
I think languages and developing metaphors are a way of thinking. When you found one environment which fits like a glove and in which you are sound as a bell you are much more productive. RubyMotion is this environment for me.]]></description>
		<content:encoded><![CDATA[<p>You are right. Learning a language like Objective-C is easy. Cocoa and all the other frameworks and the runtime are the hard part. And yes I am a beginner in Objective-C land.</p>
<p>1. Maybe this wasn&#8217;t a good example, but for modern UIKit techniques you would need the help of Xcode and bindings or am I mistaken?</p>
<p>2. Yes, you could. But IMHO the fast circuit or operator is more true for what happens here. (but that&#8217;s just personal taste)</p>
<p>3./4./5. Yes, you lack in tool/IDE support right now, given that RubyMotion is less than a year old this does not suprise but it looks like e.g. JetBrains are building RubyMotion plugins for their IntelliJ Idea.</p>
<p>6. I don&#8217;t know how much of the code can be used with MacRuby, from which RubyMotion is derived. In your experience how often do you need this? And when you need this, you could even write your code you want to reuse in Objective-C.</p>
<p>On the other hand what I find most interesting and exciting is the fresh wind which is coming from the community where many abstractions and new ways of building iOS apps are tested out. All in all I think it&#8217;s a different way and mentality.<br />
Objective-C is a proven way and Xcode is a huge help. But for me and maybe many others it seems so heavyweight.<br />
I think languages and developing metaphors are a way of thinking. When you found one environment which fits like a glove and in which you are sound as a bell you are much more productive. RubyMotion is this environment for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian</title>
		<link>http://schneide.wordpress.com/2012/09/18/rubymotion-ruby-for-ios-development/#comment-6859</link>
		<dc:creator><![CDATA[Christian]]></dc:creator>
		<pubDate>Sun, 30 Sep 2012 15:09:25 +0000</pubDate>
		<guid isPermaLink="false">http://schneide.wordpress.com/?p=3632#comment-6859</guid>
		<description><![CDATA[I agree that it is a great alternative but you always have to remember:

Learning Objective-C is easy. Learning the frameworks is hard. RubyMotion does not free you from learning the frameworks.

And to put things into perspective you should mention that you are obviously a beginner when it comes to Objective-C - right?

1. Your nil-check and the creation of your cell-instance should not be needed when using modern UIKit techniques.

2. You could do more or less the same by using the ternary conditional operator (?).

3. If you are not writing your code in Objective-C you can&#039;t use Xcode&#039;s static code analyzer directly. You would have to apply the analyzer on the output of RubyMotions static compiler.

4. You can&#039;t use Xcode&#039;s refactoring tools.

5. You cannot use LLDB - only GDB for debugging.

6. RubyMotion is not available for OS X. You are writing tons of code that has nothing to do with iOS but you can&#039;t easily use this code in an OS X app…]]></description>
		<content:encoded><![CDATA[<p>I agree that it is a great alternative but you always have to remember:</p>
<p>Learning Objective-C is easy. Learning the frameworks is hard. RubyMotion does not free you from learning the frameworks.</p>
<p>And to put things into perspective you should mention that you are obviously a beginner when it comes to Objective-C &#8211; right?</p>
<p>1. Your nil-check and the creation of your cell-instance should not be needed when using modern UIKit techniques.</p>
<p>2. You could do more or less the same by using the ternary conditional operator (?).</p>
<p>3. If you are not writing your code in Objective-C you can&#8217;t use Xcode&#8217;s static code analyzer directly. You would have to apply the analyzer on the output of RubyMotions static compiler.</p>
<p>4. You can&#8217;t use Xcode&#8217;s refactoring tools.</p>
<p>5. You cannot use LLDB &#8211; only GDB for debugging.</p>
<p>6. RubyMotion is not available for OS X. You are writing tons of code that has nothing to do with iOS but you can&#8217;t easily use this code in an OS X app…</p>
]]></content:encoded>
	</item>
</channel>
</rss>
