logoRubyMotion

RubyMotion

Von am 24.06.2018

RubyMotion

 

RubyMotion ist eine Toolchain, welche es ermöglicht native iOS, OS X und Android Apps in der Programmiersprache Ruby zu entwickeln. RubyMotion gilt daher als Cross-Platform Produkt, umgesetzt von Laurent Sansonetti für das Unternehmen HipByte, welches aber ausschließlich die Entwicklung auf MAC zulässt.

RubyMotion ist eine Kombination aus 2 Hauptkomponenten:

  • Laufzeiten: Die RubyMotion runtimes implementieren die Ruby-Sprachfunktionalität, die während der Ausführung einer Anwendung benötigt wird. Das Objektmodell, built-in Klassen sowie das Speichermanagement sind Teil der Laufzeitumgebung. RubyMotion kommt mit zwei Laufzeiten (jeweils eine für iOS/OS X und Android):
    • iOS/OS X: basiert auf der Objective-C Laufzeit und core Cocoa Klassen
    • Android: basiert auf der Android Laufzeit (Dalvik or ART) und core Java Klassen
  • Projektmanagement: Eine Befehlszeilenschnittstelle zum Erstellen, Verwalten und interaktiven Entwicklen von RubyMotion-Projekten. Es enthält außerdem einen statischen Computer, der Ruby in optimierten Maschinencode kompiliert, und eine interaktive Konsole, welche Ausdrücke laufenden Betreib auswertet und die Funktionsweise der App in Echtzeit ändert.

RubyMotion folgt den Sprachspezifikationen von Ruby 1.9.

 

Lizenz

RubyMotion ist ein kommerzielles Produkt, wobei Teile Open-Source sind. Eine starter Lizenz, welche nur iOS, Android und OS X development unterstütz, steht für Hobbyzwecke frei zur Verfügung. Will man aber auch für watchOS oder tvOS entwickeln, muss man sich eine Lizenz kaufen. Die „Indie“-Lizenz für Einzel- und Kleinunternehmen kostet ca. $200 im Jahr und die „Professional“-Lizenz für größer Organisationen ca. $500 jährlich.

 

Entwicklungsumgebung

Ziel ist eine konsistente Umgebung für Android und iOS Development zu schaffen. Es obliegt dabei dem Entwickler, für welchen Editor er oder sie sich entscheidet. Es wird weder Xcode noch Android Studio benötigt. Erforderlich ist ein beliebiger Editor und das Terminal.

 

Vorteile und Features

  • Ruby ist im Vergleich zu Objective-C, Swift und Java einfach zu erlernen.
  • RubyMotion wird ausschließlich über die Terminal-Befehlszeile ausgeführt und benötigt keine spezielle IDE. Entwickler können ihren bevorzugten Editor verwenden. Teile der Toolchain sind Open Source und können einfach erweitert werden.
  • RubyMotion Apps laufen auf den gleichen Laufzeittechnologien wie Objektive-C, Swift oder Java-App und werden genauso in Maschinencode kompiliert. Es kann auf jede iOS und Android API zugegriffen werden.
  • RubyMotion kommt mit einem behavior-driven testing framework, was bedeutet, die Projekte eignen sich von Anfang an für eine testgetriebene Entwicklung. Es können funktionale als auch Integrationstest in der selben Sprache geschrieben werden können, in der die Anwendung programmiert wird.
  • Debugging wird sowohl im Simulator als auch auf dem Device unterstützt.
  • Auf iOS und OS X wird CocoaPods nativ unterstützt.

 

Voraussetzungen

64-bit Mac mit OS X 10.9 oder höher.

  • für iOS:
    • iOS und OS X SDK muss auf dem Mac installiert sein. (Diese SDKs kommen mit Xcode)
      Editor nach Wahl muss vorhanden sein
    • Man muss dem iOS Entwicklerprogramm beitreten um ein Zertifikat zum signieren der Anwendung zu erhalten.
      Ein iOS Gerät zum testen, wenn man dies möchte
  • für Android:
    • Für Android development muss man dem Google Play Programm beitreten.
    • Man benötigt ein für die Entwicklung konfiguriertes Android Gerät.

 

Getting Started

  1. RubyMotion downloaden und installieren ( http://www.rubymotion.com/ )
    RubyMotion installiert sich dabei selbst in „/Library/RubyMotion“
  2. Falls notwendig RubyMotion updaten. Die Version lässt sich mit dem folgenden Befehl kontrollieren: $ motion –version
    Ein Update kann man mit dem folgendem Befehl durchführen: $ sudo motion update
  3. Mit folgendem Befehl kann ein neues RubyMotion Projekt erstellt werden: $ motion create Projektname.
  4. Im app-Directory befindet sich nun der Application Code. Das resource-Directory beinhaltet die resource Files, wie zum Beispiel Bilder, Icons oder Soundfiles. Das spec-Directory beinhaltet specification/test Files.
  5. Rake ist das Ruby build Programm. Mit dem Befehl $ rake erfolgt ein build und das Programm wird im Simulator gestartet. Hier müsste jetzt nur ein leeres, schwarzes Fenster zu sehen sein, da noch kein Code geschrieben wurde.
  6. Will man die App nun auf dem eigenen Gerät testen, sollte dieses über USB verbunden werden und der Befehl $ rake device über das Terminal eingegeben werden.
  7. Im app-Directory befindet sich standardmäßig ein File namens „app_delegate.rb“, welches die Klasse AppDelegate implementiert. Diese ist bei der Entwicklung einer iOS App verantwortlich für die Steuerung der Applikation. Hier können ab jetzt die ersten Codezeilen geschrieben werden.

 

Beispiele für RubyMotion Apps

37signals’s Basecamp for iPhone
the Bandcamp iPhone app
A Dark Room for iOS

The comments are closed.