Skip to main content

Using MacRuby for developing iPhone apps



I'm looking to build an iPhone app, but I don't have enough time to learn Objective-C. I already know Ruby and discovered MacRuby. Is it possible to build an iPhone app using MacRuby alone, without any knowledge of Objective-C?




Comments

  1. This is a dupe of Can you use MacRuby to develop applications for the Mac App Store? (more or less).


    Is it possible to build an iPhone app
    using MacRuby alone, without any
    knowledge of Objective-C?


    In short, no.

    All of the APIs (system frameworks), documentation, dev tools, examples, and the majority of the development community use Objective-C. You are going to have to know Objective-C through and through to be able to write an app against the iOS or Mac OS X system APIs anyway.

    As well, the MacRuby runtime uses the Objective-C garbage collector that ships with Mac OS X. While porting that collector to iOS/ARM is likely not that hard (the source is available), the system frameworks don't support it; it won't work.

    ReplyDelete
  2. MacRuby is not yet ported to iOS.

    An Apple engineer revealed on Twitter last September that work is being done to port MacRuby to iOS.

    Until such a release sees the light of day, however, you will not be able to use MacRuby to write iOS apps.

    Apple recently let it become known that MacRuby is to be included with the next release of OS X. It certainly looks like MacRuby may be on its way to becoming an Apple-blessed means of developing apps for OS X and iOS. One can only hope at this point, but these early indications are promising.

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...