rubymotion-community / motion-support

Commonly useful extensions to the standard library for RubyMotion
MIT License
132 stars 28 forks source link

using MotionBlender #26

Open kayhide opened 8 years ago

kayhide commented 8 years ago

I am not sure this should go as a PR, but I think this is the handiest way to tell you things.

I made a clone of motion-support which uses MotionBlender in place of motion-require. In that way, we can use this gem by 'require'-ing like ordinary Ruby code. For the detail, please refer to MotionBlender.

And to make it available as a gem, I made motion_blender-support gem. Though, this is not a very good idea because yet another version of *-support makes other developers confused.

On the other hand, this change is quite impactive on the existing apps or gems so that it seems not easy to merge into the main master branch.

In my thought, it is a good idea to move for making this version of motion-support as a main version. Because MotionBlender is taking a comprehensive approach and is covering the needs of motion-require and MotionBundler.

Now I would like to know what you think. Thanks.

colinta commented 8 years ago

This is a little heavy handed, it replaces motion-support with motion_blender-support. At the least, I would want the name to stay the same. I would definitely like there to be only one active-support port, I never like having fragmentation.

However, since this gem is in the "public rubymotion domain", I wonder if it should drop all external dependencies. I think your work on MotionBlender is awesome for people consuming gems and writing cross-platform gems, but since this gem is a "purely RubyMotion" implementation of ActiveSupport, I'm not sure it's the right place for using a dependency manager at all.

Thoughts on that?

colinta commented 8 years ago

Ahh I think I see the benefit now - the ability to add only the parts of motion-support that your app uses, and those could be in the source files instead of in the Rakefile.

I came to RubyMotion without ever writing Ruby code, so this style (the "native" Ruby style that is) never really appealed to me - but I'm in the minority in this case!

What has the response been to your gem? Can you let me know what other gems have adopted it over motion-require?

kayhide commented 8 years ago

Yes, I completely agree with that there should not be more than one active-support port. motion_blender-support is just a temporary one. I made it because I needed it to develop another gem on it.

OK now, please let me explain my idea. I have been working on rails for many years, so I have a reasonable experience of native-Ruby. Through this experience, I believe that there must be a great advantage if the development tools for native-Ruby (or rails) are available on RubyMotion.

This gem or MotionBlender is not only for some specific applications or gems. I am thinking of importing the "native way" of development into the RubyMotion world.

For example, I am developing a gem motion_flux which is to introduce Flux-Architecture into RubyMotion apps. This gem is completely compatible with native-Ruby, so that I am developing it on native way, using guard, rspec, simple-cov, rubocop, pry and so on.

After a while, I wanted to use motion-support functionality. I looked for the way to import motion-support natively, keeping my developing style as it was, but there not seemed to be any solution. That is why I made MotionBlender and this motion_blender-support.

So far, things are going well. I made it sure that MotionBlender and motion_blender-support (and motion_flux) are working well in a RubyMotion app. Also I checked if it cooperates nicely with other well-known gems like ProMotion, RMQ, MotionKit, BubbleWrap, AFMotion...

Like this way, I am trying to develop things as native as possible. Even if it is only for RubyMotion, native-development is quite powerful. This is the main goal of MotionBlender and motion_blender-support.

I see that requiring something from a source code is nice, but that is not the main goal of the whole idea.

What do you think of this idea?

kayhide commented 8 years ago

@colinta Well, to answer your question:

What has the response been to your gem? Can you let me know what other gems have adopted it over motion-require?

My gem is good for the case when developing a "compatible" gem and wanting to develop "natively". Am I answering your question?