Delphi Prism/Pascal kompiliert auf dem Mac für iPhone
Posted by Olaf Monien in Miscellaneous, tags: .net, Delphi, EmbarcaderoEnglish: This article provides some preview information about Delpi/Prism/Pascal on the Mac compiling for the iPhone. English content is available at Daniels Blog.
Native iPhone Anwendungsentwicklung bedeutet normalerweise das Auseinandersetzen mit Objective C, der Haus- und Hof-Sprache von Apple. Man bekommt, nachdem man sich als Entwickler bei Apple registriert hat, die komplette X-Code IDE inklusiver aller Werkzeuge praktisch kostenlos zur Verfügung gestellt.
Man kann also, ohne viel Geld in die Hand nehmen zu müssen, mit der Softwareentwicklung für Mac und iPhone/iPod Touch quasi ad-hoc loslegen. Zumindest wenn man einen schnellen Internetzugang hat – der komplette SDK Download ist über 2 GB groß.
Dass dies auch in der Praxis funktioniert, sieht man sicherlich auch daran, dass es mittlerweile zehntausende Anwendungen in Apples AppStore gibt. Wieso gibt es aber nun Interesse an Pascal auf dem Mac/iPhone? Nun, wer Pascal kennt und dann mit Objective-C (OC) konfrontiert wird, erleidet doch einen gewissen Kultur-Schock. Mit “normalem” C mag man sich noch abfinden (Volker, nichts für Ungut
aber wenn man dann die Syntax von OC sieht, fragt man sich doch ob der Erfinder Klammer-Fetischist war…
Nicht dass wir uns missverstehen: Die Mac und iPhone Frameworks – rund um Cocoa – sind superinteressant und haben klasse Features. Auch die kostenlose IDE X-Code ist hervorragend – aber für mich als alter Pascal Haudegen “geht” diese OC Sprache einfach nicht. Bisher habe ich öfter mal gesagt: “die Sprache ist wurscht, man lernt halt einfach die Syntax” – aber das war vor Objective C …
Nun haben Daniel Magin, Holger Flick und ich von RemObjects eine frühe Beta von Prism (aka Oxygene) für den Mac bekommen. Prism ist bisher als Plugin für Visual Studio bekannt geworden. Im Prinzip also Pascal für .NET. Da .NET in seiner Mono Inkarnation auch auf dem Mac (und Linux) existiert, kam also Marc Hoffman von RemObjects vor einiger Zeit auf die Idee das Prism Plugin mit .mono zu übersetzen.
Herausgekommen ist mittlerweile ein Beta-Plugin für MonoDevelop (die Mono IDE), welches Pascal unter Mono implementiert. Dadurch, dass Mono und MonoDevelop auch unter OSX lauffähig sind, können wir nun endlich OSX Anwendungen entwickeln, deren Sourcecode richtig gut verständlich und wartbar ist. Und das sogar mit Zugriff auf Cocoa, der Apple UI API.
Wer sich schon mal mit der iPhone Entwicklung befasst hat, wird sich nun fragen, wie man managed Mono-Anwendungen auf das iPhone bekommen soll, da da iPhone ja bekanntermaßen keinen managed Code erlaubt. Hier kommt das kommerzielle MonoTouch Add-In für MonoDevelop von Novell zum Tragen. MonoTouch tut im wesentlichen 2 Dinge:
- .NET/Mono Schnittstelle zum iPhone SDK, d.h. APIs wie z.B. das MapKit sind aus Mono ansprechbar
- managed to native Code Compiler für iPhone. Der sog. mtouch Compiler übersetzt managed Mono Anwendungen in nativen iPhone CPU Code
Innerhab der MonoDevelop IDE kann man dann mithilfe von MonoTouch auf das physische IPhone deployen. Hierzu ist KEIN Jailbreak erfordelich. Auch das Ausliefern in den AppStore wird natürlich unterstützt.
Wenn man bedenkt, dass Delphi Prism/Oxygene noch eine frühe Beta ist, funktioniert das ganze schon hervorragend. Gestern konnte ich mit Daniel eine in Pascal geschriebene Anwendung auf Daniels iPhone installieren, die auf den GPS Sensor zugreift und die Koordinaten in einem Google Maps View darstellt.
Hier noch ein kurzer Blick auf die MonoDevelop Umgebung mit installiertem Oxygene:





Entries (RSS)