This is a great book for getting started with RubyMotion. Although the RubyMotion web site has a great video tutorial, the video does not provide a deep explanation of how RubyMotion is used to develop full-featured iOS apps. This book provides that, from the basics all the way up to the more sophisticated topics, and more. It starts with a pretty clear description of what RubyMotion is, how it fits into the iOS development paradigm, and how to get started with the environment. Like any good programming text, it breaks into a HelloWorld app right away, and shows the value of the interactive console commands in designing and testing your app. This is where you start to see the power of RubyMotion, and how it can actually speed up iOS development. The screenshots and app images are clear and helpful, and lead to a solid understanding of how the code translates into the visual UI aspects in iOS.
This book is not for a beginner, however. It does require that you have some basic Ruby skills and knowledge. For example, you should understand how Ruby handles objects, have an understanding of the basic Ruby library, and how to use of common Ruby tools like rake and gems. Likewise, it also assumes that you have some basic understanding of iOS or Cocoa development. Although it does go into some basics about MVC, UI components and controllers and such, it doesn't explain everything about iOS in enough detail that a complete novice to iOS development could be expected to produce complex apps. However, to be fair to the description of the book, it does say that you'll need those basics, and the target of the book is more about adapting to a new style of iOS development (one of using Ruby, not Objective-C). So in this regard, it lives up to the letter of the description. Mid-way through the book, you're working with different controls, trying them out in RubyMotion to get a feel for how the calls translate and so on. It's a great way to get productive with simple-to-moderate iOS apps. In other chapters, it covers devices like the camera, GPS, gestures and so on. It also brings up the basics of storing data on iOS devices, memory management, contacts and more.
Where this book shines is in explaining the integration with the other iOS development tools. It's quite one thing to build applications line by line in code, and another to use modern IDE's to speed up development. A newbie to RubyMotion might not have any clue how to start using tools like the Interface Builder in conjunction with Ruby because it's simply not obvious; there's always the fear that you'll have to resort to Objective-C code at some point. The book goes into detail to show that this isn't true, and that the IDE tools are powerful additions to the entire RubyMotion development cycle. This chapter is well worth the cost of the book for any RubyMotion developer alone. The next few chapters address testing and graceful failures, which are important parts of the development process. A full-feature game is the next example, and brings together much of what has been discussed to this point in the book.
Then there is the always-onerous process of actually submitting an app to the Apple store. This process has been known to bring grown men to tears, what with certificates and provisioning profiles and submissions and such. The book gives it a good solid treatment, showing how to take something like the game and make it a true AppStore app. There are a few remaining chapters on extending RubyMotion with other libraries (notably, Cocoa), but I haven't yet needed that knowledge, so I can't speak to them. All in all, the book is well organized, and gives the both RubyMotion and iOS developers a solid and dependable resource for utilizing this unique environment. It is certainly enough that a reasonable educated developer could build an iOS app from start to finish, and have it available for sale in the AppStore. Probably the biggest opportunities for improvement are in providing the sample code with the book (although it is available on the publisher's web site), and a greater depth in illustrating Rubyisms of the iOS development library. Both of these are available in other locations, and shouldn't be a reason to avoid this book. There are so few worthwhile texts on RubyMotion, and this one is easily worth every cent. I highly recommend it!