ARM64 support (64-bit), build your App Extensions now

Until version 2.36, RubyMotion did not support 64-bit. Because of this, you could not write App Extensions that worked on a device. 2.36 fixes this issue. Go forth and extend.

See below in the release notes for more info.


If you missed the last issue, you can find it here: issue #46.

Happy coding, Todd Werth (@twerth)

Articles, News, New Gems, and Blog Posts


October 13th, 2014 | screencast | by Jack Watson-Hamblin
MotionInMotion – RubyMotion for Rails Developers: Hello RubyMotion

October 10th, 2014 | blog post | by Christoffer Lernö
The Other Alternatives – While Swift is working towards 1.1, I thought it could be interesting to compile an inventory of languages that position themselves on top of the ObjC runtime.

October 9th, 2014 | blog post | by Jack Watson-Hamblin
Big changes coming to MotionInMotion and RailsInMotion

October 7th, 2014 | new gem | by Eric Henderson
motion-paddle – A RubyMotion gem for the Paddle framework

October 6th, 2014 | podcast | by Access Ninja
Access Ninja episode 004: Austin Seraphin part 1 (Austin is always fun)

October 6th, 2014 | screencast | by Jack Watson-Hamblin
MotionInMotion – Episode 46 – From Interface Builder to NSLayoutConstraints

October 5th, 2014 | new gem | by digitalfx
RubyMotion-Leap-Motion – A starting point for using the Leap Motion in RubyMotion

October 3rd, 2014 | blog post | by Tony Hillerson
RubyMotion Releases Android Public Beta

October 2nd, 2014 | video | by RubyKaigi
Laurent Sansonetti – Inside RubyMotion for Android – RubyKaigi 2014

RubyMotion News


RubyMotion 2.36 released

  • Added ARM64 support (64-bit) for iOS. It is not yet enabled by default for
    applications that do not embed Frameworks or App Extensions. In order to
    enable it on other builds add the following line to your project’s Rakefile:
    app.archs['iPhoneOS'] |= ['arm64']
  • iOS 4.3 and OS X 10.7 are no longer supported, due to internal changes
    that require us to use a newer C++ standard library.
  • [iOS] Fixed a bug where the app.provisioning_profile setting would not be
    configurable in the Rakefile of App Extensions projects.
  • Fixed a bug when copying an ImmediateRef, which isn’t needed anyways,
    because a tagged pointer can not be duplicated either.
  • Fixed a bug where Xcode 6 would cache precompiled headers in a
    hidden location and subsequent vendored builds could fail after cleaning.
  • Fixed a bug where a failed vendored build could cause subsequent builds to
    never actually start.
  • Fixed the build system to remove Xcode 6 noise from vendored build output.
  • Fixed a bug where the #supportedInterfaceOrientations method would be not
    properly included.
  • Fixed a race condition bug in the runtime where a crash would occur if
    the same Objective-C constant was being resolved at the same time from
    different threads.
  • Fixed the motion changelog command to honor the --pre flag, which will
    open the pre-release NEWS file instead.
  • Fixed the motion update --pre command to print a reference to the
    motion changelog --pre command.
  • Improved IO#.read performance to read from files. ~4 times faster.

sudo motion update

Hidden Gem by Gant Laborde


“My custom font is not being positioned right!”

This info might save you a ton of time one day. It’s not specific to anything RM, but that’s what makes it so tricky!

Custom fonts are a great thing to add to any iOS app, but sometimes they pack a hidden cost. The font creator may not have tested their font on iOS/OSX. That’s why generally do my best to stick to Native iOS Fonts. If your font is being clipped in the containing label in any direction, you’re not going to be able to set an inset to fix this. You’re going to need to modify the actual font with a font editor like Mensis or Apple Font Tool Suite. Today I’m showing the latter.

Using the command ftxdumperfuser, which is one of the many commands in the suite, we can force an XML generation of the font attributes. The command used on a font named MetaOT-Norm.otf would be: $ ftxdumperfuser -t hhea -A d MetaOT-Norm.otf and will generate a file called MetaOT-Norm.hhea.xml

In the above command -A is for auto-fuse of the XML in and out (-A d/-A f). “-t hhea” is specifying we’re going to modify the horizontal-header table, where we can pad the font properties correctly.

Modify the properties of this XML file. For me the Descending property needed to be toned down from “-347” to “-247”.

You can then merge your changes back into the file with the command:

$ ftxdumperfuser -t hhea -A f MetaOT-Norm.otf

VOILA! The custom font works like a charm now!

RMQ Tips of the Week


I haven’t done an RMQ tip in a while, so I have a few tips for you this week:

rmq by itself

rmq by itself is the same as rmq(rmq.root_view), it’s just a shortcut. So when you do something like this:

rmq.log :tree

You are really logging the root view’s tree. Same thing for rmq.append(UIButton), that is appending a button to the root view.

The one odd thing is when you’re using a utility, which really doesn’t apply to the root view, such as:

rmq.image.resource('foo')

Technically it still has selected the root_view, but you aren’t using it.

Simple animations

Did you know you can animate simply with rmq? Like so:

rmq.animate do
  rmq(UIButton).nudge r: 40
end

A better way to do that is select something first. In this case q is an RMQ instance selecting all UIButtons:

rmq(UIButton).animate do |q|
  q.nudge r: 40
end

You can read more about it here.

From the Archives

(because it’s easier to copy & paste than to write)


iOS Marketing Tip of the Week by Mark Rickert

Did you know that you can contest bad reviews your apps get in the App Store? I’ve done this a few times when a user gave me a 1-star review for the app lacking a feature that existed since version 1.0.0. Apple actually reads these and the reviews were removed from iTunes within a few days.

Here’s a step-by-step guide on how to get the inaccurate review removed:

  1. Log into iTunes Connect.
  2. In the lower right corner, click the Contact Us link.
  3. From the dropdowns, select: App Store Questions, then Customer Reviews, then Specific Removal Request.
  4. A text block will appear with another contact us link. Click that, fill in the requested information, and submit!

Apple sure makes this hard for us developers to find, but at least there’s a way to contest the inaccurate or inappropriate reviews.

Sponsor


My company InfiniteRed sponsors this newsletter by allowing me the time to work on it every week and hosting everything.

Contact us if you ever need help working on a project, mentoring, or other development services . We specialize in RubyMotion and have an awesome team.

image


If you have any tips, blog posts, or comments, please send emails to todd@infinitered.com