Search code examples
iosrubyrubymotion

What are must-have libraries for RubyMotion?


I'm relatively new to RubyMotion development, but I already have an experience with iOS in Objective-C.

When I started using RubyMotion I found quite a lot libraries for that. There are some helpful libraries for networking, data storage and so on, but what confuses me the most are these layout (UI) libraries.

There are a bunch of them and the most popular are: - SweetTea - SugarCube (not really UI) - MotionKit - TeaCup - RMQ (not only UI)

I'd like to now which of them are seriously useful and which one I should reject. I'm starting a brand new project from scratch so I am flexible what to choose and I want to start with most useful and commonly supported tools that let me easily develop especially layouts for iOS.

Can you suggest some must-have tools and libraries for RubyMotion?


Solution

  • Things most people use:

    • Bubblewrap
    • motion-cocoapods
    • afmotion (if you need networking )
    • motion-hockeyapp (or Testflight)
    • awesome_print_motion

    From there, it depends. ProMotion is very popular, but some people want to be closer to the metal. My gem RMQ is popular, some people use it for everything (like we do) or just parts of it. Many people use ProMotion and RMQ together.

    A lot of people use Sugarcube. It pollutes a lot of classes, so if you like that it's awesome with tons of sugar, if you don't it probably isn't for you.

    Teacup is basically deprecated at this point. Use MotionKit or RMQ instead for stylesheets. I use RMQ of course, but MotionKit is really nice and I'd be totally happy using it as well. RMQ has grids, MotionKit has a very nice syntax and is less verbose. RMQ's stylesheets are more integrated with RMQ. MotionKit works in OS X and Android soon (RMQ is iOS only, although it should be portable to Android).

    If you use Core Data, I recommend CDQ, there really isn't any competition to it (my company makes CDQ, full disclosure).

    Normally people use a variety of CocoaPods, here a few common ones:

    • AFNetworking (this is the standard of course, and AFMotion uses this)
    • SVProgressHUD
    • JMImageCache
    • etc

    I'd guess these are some common configurations:

    • Bubblewrap, RMQ
    • Bubblewrap, Sugarcube, MotionKit
    • Bubblewrap, ProMotion, Sugarcube, MotionKit
    • Bubblewrap, ProMotion, RMQ
    • Bubblewrap, ProMotion, Sugarcube, MotionKit, RMQ (used for events, animations, etc, not stylesheets)