Swift is not Ruby, Ruby is not Swift
There has been a lot of hubbub surrounding the introduction of the Swift programming language by Apple.
I find it interesting that many people feel that Swift is the death of RubyMotion, Xamarin, etc. It’s a strange reaction and a bit perplexing to me. Perhaps it’s something about the Apple developer community because they’ve been, basically, mono-language for so long, they assume that it’s normal.
Windows is written in C++, but you can write native Windows apps in many different programming languages. Unix is written in C, but I can happily program in C++, Fortran, Pascal, Lisp, etc.
In OS X, for native apps, you can now choose from Objective-C, Swift, RubyMotion, Xamarin/c#, c++, etc. This seems good, normal, and healthy.
I like Swift, but it’s less like Ruby and more like Scala. I personally prefer dynamic languages over statically-typed languages (I think static typing is premature optimization). I work in Vim, and prefer the command-line dev environment. So Swift isn’t for me, and Ruby isn’t for someone else. Mono-cultures tend to die. RubyMotion isn’t going to die, iOS isn’t going to die. That’s a good thing.
If you missed the last issue, you can find it here: issue #30.
Happy coding, Todd Werth (@twerth)
Articles, News, New Gems, and Blog Posts
June 12th, 2014 | meetup | by okcruby
“Oklahoma City – June 2014 Meeting”
June 9th, 2014 | screencast | by Jack Watson-Hamblin
“Episode 28 – Setup Wizards and Custom Container Controllers”
June 9th, 2014 | example app | by Gant Laborde
“RMQ Animations – Example of using RMQ’s canned animations”
June 7th, 2014 | gem | by Shizuo Fujita (Watson)
“motion-parallel – provides parallel iterations for RubyMotion”
June 6th, 2014 | slides | by Mark Villacampa
“Inspect 2014 talk – Connecting RubyMotion with Hardware – Rubymotion”
June 5th, 2014 | gem | by Gavin Morrice
“motion-persistable – Persistable attributes for Rubymotion classes”
June 4th, 2014 | example app | by Torben Toepper
“An implementation of Flappy Bird in RubyMotion for iOS.”
- Added support for Xcode 6 Beta 1 and iOS 8.0 / OS X Yosemite (10.10).
- Fixed a bug where objects removed by Array#delete would not released.
- Fixed a bug where a `not precompiled’ error would happen when calling an alias to an Objective-C method with a C-level block argument.
sudo motion update
RubyMotion Tip of the Week
From the archive:
zPosition and z index
This is very confusing, especially if you come from the web world. There are two ways to change the z dimension:
zPosition: The zPosition only affects the UIView visually, it does not affect its actual order. Its z-order depends on its place in its parent’s subview array. In other words, the order you create the subviews is the z-order. To change the zPosition:
my_view.layer.zPosition = 10 In a rmq stylesheet or style block: st.z_position = 10
z index: The order that the subview was added to its superview (addSubview, insertSubview, etc. Or in rmq: rmq.append, rmq.prepend, rmq.unshift, etc). You can change the z index by moving the view arround in the array, here are some methods for that:
Feel free to chime in: Qoura – “Will the introduction of Swift inhibit RubyMotion’s entrance into the iOS development world?”
If you have any tips, blog posts, or want to sponsor this newsletter, please send emails to email@example.com