<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>Du hast nach xmlvm gesucht - Macnotes.de</title>
	<atom:link href="https://macnotes.de/search/xmlvm/feed/rss2/" rel="self" type="application/rss+xml" />
	<link>https://macnotes.de/</link>
	<description>iPhone, iPod, iPad, Mac - das unabhängige Magazin rund um Apple</description>
	<lastBuildDate>Sun, 07 Mar 2021 00:10:10 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://macnotes.de/images/2021/02/image-150x150.jpg</url>
	<title>Du hast nach xmlvm gesucht - Macnotes.de</title>
	<link>https://macnotes.de/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>XMLVM: Cross-Compilation-Projekt mit ungewisser Zukunft</title>
		<link>https://macnotes.de/2010/05/27/xmlvm-cross-compile-iphone-android-zukunft-ungewiss/</link>
		
		<dc:creator><![CDATA[cs]]></dc:creator>
		<pubDate>Thu, 27 May 2010 13:22:35 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://www.macnotes.de/?p=39853</guid>

					<description><![CDATA[<p>Anfang Dezember 2009 haben wir &#252;ber das Projekt XMLVM berichtet. Bei XMLVM handelt es sich um ein Projekt zur Cross-Compilation von Android-Applikationen zum iPhone. Auf der Droidcon konnte ich nochmals mit Arno Puder, Initiator des Projektes, kurz &#252;ber Kapitel 3.3.1 der Lizenzvereinbarungen des iPhone-SDKs und die Auswirkung auf das Projekt unterhalten. XMLVM ist unmittelbar vom [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2010/05/27/xmlvm-cross-compile-iphone-android-zukunft-ungewiss/">XMLVM: Cross-Compilation-Projekt mit ungewisser Zukunft</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'>Anfang Dezember 2009 haben wir &uuml;ber das <a href="https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/">Projekt XMLVM berichtet</a>. Bei XMLVM handelt es sich um ein Projekt zur Cross-Compilation von Android-Applikationen zum <a href="https://macnotes.de/produkt/iphone/">iPhone</a>. Auf der <em>Droidcon</em> konnte ich nochmals mit Arno Puder, Initiator des Projektes, kurz &uuml;ber Kapitel 3.3.1 der Lizenzvereinbarungen des iPhone-SDKs und die Auswirkung auf das Projekt unterhalten.</p>
<p>XMLVM ist unmittelbar vom Kapitel 3.3.1 betroffen, da hierbei f&uuml;r eine plattform-&uuml;bergreifende Kompilierung Java-Code zu Objective-C-Code transformiert wird.</p>
<p>F&uuml;r das Projekt ist die derzeitige Lage ungewiss, jedoch wird die Entwicklung weitergef&uuml;hrt. Apps, die nach Bekanntwerden der neuen Lizenzbedingungen in den <a href="https://macnotes.de/produkt/app-store/">App Store</a> eingereicht wurden, sind ohne Probleme zugelassen worden. F&uuml;r Arno Puder ist es nicht klar, wie <a href="https://macnotes.de/firma/apple/">Apple</a> &uuml;berpr&uuml;fen m&ouml;chte, wie die Anwendungen kompiliert wurden. In den App Store werden Binaries &uuml;bermittelt, die auch bei Verwendung von XMLVM aus Objective-C-Code erstellt wurden. F&uuml;r XMLVM lautet derzeit die Devise: Weitermachen und Abwarten. &Uuml;ber einen fr&uuml;hzeitigen R&uuml;ckzug, wie ihn beispielsweise <a href="https://macnotes.de/2010/04/21/packager-fur-iphone-adobe-stellt-entwicklung-des-flash-konverters-ein/">Adobe mit dem Packager f&uuml;r iPhone vollzogen</a> hat, wird bei XMLVM nicht nachgedacht. Jedoch bleibt das Risiko, dass Apps jederzeit von <a href="https://macnotes.de/firma/apple/">Apple</a> nicht zugelassen oder aus dem App Store entfernt werden k&ouml;nnen. Ob dieses Risiko eingegangen wird, muss individuell entschieden werden.</p>
<p>Aufgrund der Architektur von XMLVM ist im Ausblick noch eine Cross-Compiliation zu anderen Zielplattformen, bspw. Bada oder WebOs, in Aussicht gestellt worden.</p>
<p>Der Beitrag <a href="https://macnotes.de/2010/05/27/xmlvm-cross-compile-iphone-android-zukunft-ungewiss/">XMLVM: Cross-Compilation-Projekt mit ungewisser Zukunft</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
		
		
		
	</item>
		<item>
		<title>Techtalk: Crosscompile Android Apps to iPhone</title>
		<link>https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/</link>
					<comments>https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/#comments</comments>
		
		<dc:creator><![CDATA[cs]]></dc:creator>
		<pubDate>Mon, 07 Dec 2009 12:57:13 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">http://www.macnotes.de/?p=26331</guid>

					<description><![CDATA[<p>Am 03.12.2009 fand ein Techtalk im Developergarden der Deutschen Telekom in Darmstadt statt. Thema war &#8222;Cross-Compilation Android Applications to the iPhone&#8222;. Arno Puder, Professor an der San Francisco State University, erl&#228;uterte das Vorgehen des XMLVM getauften Projektes. Die Idee dahinter ist, dass man f&#252;r iPhone und Android-Phones Apps gleichzeitig entwickeln kann. Grundlage der App-Entwicklung mit [&#8230;]</p>
<p>Der Beitrag <a href="https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/">Techtalk: Crosscompile Android Apps to iPhone</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class='lead'>Am 03.12.2009 fand ein Techtalk im <a href="https://web.archive.org/web/20110521094003/http://www.developergarden.com:80/">Developergarden</a> der Deutschen Telekom in Darmstadt statt. Thema war &#8222;Cross-Compilation Android Applications to the <a href="https://macnotes.de/produkt/iphone/">iPhone</a>&#8222;. Arno Puder, Professor an der San Francisco State University, erl&auml;uterte das Vorgehen des <a href="http://www.xmlvm.org/overview/">XMLVM</a> getauften Projektes. Die Idee dahinter ist, dass man f&uuml;r <a href="https://macnotes.de/produkt/iphone/">iPhone</a> und Android-Phones Apps gleichzeitig entwickeln kann.</p>
<p>Grundlage der App-Entwicklung mit XMLVM ist Java. Das wurde so gew&auml;hlt, weil es nach Ansicht von Arno Puder mehr Java-Entwickler als Objective-C-Entwickler gibt. Man erreicht eine ungleich gr&ouml;&szlig;ere Benutzerbasis. Um eine iPhone-App mit Java entwickeln zu k&ouml;nnen, setzt das XMLVM-Team auf eine selbst entwickelte Java-API f&uuml;r Cocoa Touch. Diese ist lose an der Objective-C-API angelehnt.</p>
<p>Die ber&uuml;hmte &#8222;Hello World&#8220;-Applikation f&uuml;r das iPhone sieht in Java folgenderma&szlig;en aus:</p>
<pre>import org.xmlvm.iphone.*;

public class HelloWorld extends UIApplication {

  public void applicationDidFinishLaunching(UIApplication app) {
    UIScreen screen = UIScreen.mainScreen();
    CGRect rect = screen.applicationFrame();
    UIWindow window = new UIWindow(rect);

    rect.origin.x = rect.origin.y = 0;
    UIView mainView = new UIView(rect);
    window.addSubview(mainView);

    UILabel title = new UILabel(rect);
    title.setText("Hello World!");
    title.setTextAlignment(UITextAlignment.UITextAlignmentCenter);
    mainView.addSubview(title);

    window.makeKeyAndVisible();
  }

  public static void main(String[] args) {
    UIApplication.main(args, HelloWorld.class);
  }
}
</pre>
<p>Um die Applikationen besser testen zu k&ouml;nnen hat das Team um Arno Puder einen auf Java basierenden iPhone-Simulator geschrieben. Ebenfalls wurden die UI-Komponenten im Aussehen an die iPhone nativen Komponenten angelehnt. Das Ergebnis ist der Look and Feel wie auf einem &#8222;echten&#8220; iPhone. Somit kann die Anwendung kann bereits ohne Cross-Kompilierung getestet werden.</p>
<p>Was nun folgt, ist eine kurze Erl&auml;uterung der Cross-Kompilierung f&uuml;r das iPhone. Hierbei setzt XMLVM nicht auf den Sourcecode (Java), sondern auf den erzeugten Java-Bytecode (.class-Dateien). Der Bytecode wird in XML &uuml;bersetzt. Das XML wird im Anschluss mittels XSLT-Stylesheets in die gew&uuml;nschte Zielsprache transformiert. In diesem Fall Objective-C. Weitere Zielplattform ist derzeit der Palm Pre, also Javascript.</p>
<p>Um das Ganze anschaulicher zu machen, hier ein Beispiel, wie ein einfaches in Java implementiertes &#8222;Hello World&#8220; in XML repr&auml;sentiert wird:</p>
<pre>public class HelloWorld
{
  static public void main(String[] args)
  {
    System.out.println("Hello World");
  }
}</pre>
<p>wird zu</p>
<pre>&lt;vm:xmlvm xmlns:vm="http://xmlvm.org" xmlns:jvm="http://xmlvm.org/jvm"&gt;
  &lt;vm:class name="HelloWorld" extends="java.lang.Object"&gt;
    &lt;vm:method name="main" isPublic="true" isStatic="true" stack="2" locals="1"&gt;
      &lt;vm:signature&gt;
        &lt;vm:return type="void" /&gt;
        &lt;vm:parameter type="java.lang.String[]" /&gt;
      &lt;/vm:signature&gt;
      &lt;vm:code&gt;
        &lt;jvm:var name="args" id="0" type="java.lang.String[]" /&gt;
        &lt;jvm:getstatic class-type="java.lang.System" type="java.io.PrintStream" field="out" /&gt;
        &lt;jvm:ldc type="java.lang.String" value="Hello World" /&gt;
        &lt;jvm:invokevirtual class-type="java.io.PrintStream" method="println"&gt;
          &lt;vm:signature&gt;
            &lt;vm:return type="void" /&gt;
            &lt;vm:parameter type="java.lang.String" /&gt;
          &lt;/vm:signature&gt;
        &lt;/jvm:invokevirtual&gt;
        &lt;jvm:return /&gt;
      &lt;/vm:code&gt;
    &lt;/vm:method&gt;
  &lt;/vm:class&gt;
&lt;/vm:xmlvm&gt;
</pre>
<p>Das erzeugte XML kann jetzt transformiert werden. Das XSLT-Template f&uuml;r die Addition zweier Integerwerte sieht zum Beispiel folgenderma&szlig;en aus:</p>
<pre>&lt;xsl:template match="jvm:irem"&gt;
  &lt;xsl:text&gt;
    _op2.i = _stack[--_sp].i; // Pop operand 1
    _op1.i = _stack[--_sp].i; // Pop operand 2
    _stack[_sp++].i = _op1.i % _op2.i; // Push remainder
  &lt;/xsl:text&gt;
&lt;/xsl:template&gt;
</pre>
<p>Da Java stackbasiert ist, Objective-C hingegen nicht, wird ein Stack von XMLVM in Objective-C simuliert. Der gesamte durch Transformation erzeugte Objective-C-Code der &#8222;Hello World&#8220;-Anwendung sieht folgenderma&szlig;en aus:</p>
<pre>@interface org_xmlvm_test_HelloWorld : java_lang_Object
+ (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1;
@end

@implementation org_xmlvm_test_HelloWorld;
+ (void) main___java_lang_String_ARRAYTYPE :(NSMutableArray*)n1
{
    XMLVMElem _stack[2];
    XMLVMElem _locals[1];
    int _sp = 0;
    XMLVMElem _op1, _op2, _op3;
    int _i;
    for (_i = 0; _i</pre>
<p>Zus&auml;tzlich erzeugt der Cross-Compiler noch eine XCode-Projekt-Datei. Jetzt kann die iPhone-Anwendung mittels XCode kompiliert und gestartet werden. Laut Arno Puder ist es m&ouml;glich die iPhone-App unter Windows oder Linux zu kompilieren. Es m&uuml;ssen jedoch per Hand einige Header-Dateien des iPhone-SDK kopiert und bereitgestellt werden. Als Compiler dient der frei verf&uuml;gbare GNU Objective-C-Compiler. Ein Test auf dem Endger&auml;t ist nat&uuml;rlich weiterhin nur mit einem Mac m&ouml;glich, da nur auf diesem eine Signierung der App vollzogen werden kann.</p>
<p>Bis hier wurde nur gezeigt, wie eine in Java geschriebene iPhone-App cross-kompiliert werden kann. Titel der Veranstaltung war <strong>Cross Compile Android Applications for iPhone</strong>. Um die Cross-Kompilierung einer Android-App zu erm&ouml;glichen, setzt das XMLVM-Team die Benutzung ihrer Android Compatibility Library voraus. Diese Bibliothek bietet im Prinzip die gleiche API wie die Android-API, benutzt jedoch zus&auml;tzlich die erw&auml;hnte Java-basierte API f&uuml;r Cocoa Touch. Das XMLVM-Team hat diese ebenfalls entwickelt und bereitgestellt. Sie ist lose an der Objective-C-API angelehnt. Hierzu ein Auszug aus der Library:</p>
<pre>package android.widget;

public class Button extends View {
   protected UIButton button;

   // ...

   public void setOnClickListener(OnClickListener listener) {
        final OnClickListener theListener = listener;
        button.addTarget(new UIControlDelegate() {

            @Override
            public void raiseEvent() {
                theListener.onClick(Button.this);
            }

        }, UIControl.UIControlEventTouchUpInside);
   }
}</pre>
<p>Wird diese Library f&uuml;r die Android-Applikation verwendet, so steht dem Kompilieren f&uuml;r das iPhone nicht mehr viel im Wege.</p>
<p>Doch wo viel Licht ist, ist auch Schatten. So auch bei XMLVM. Zwar ist es bereits m&ouml;glich einfache Spiele zu Entwickeln und f&uuml;r verschiedene Plattformen zu kompilieren, jedoch st&ouml;&szlig;t man sehr schnell an die Grenzen, wenn es um die Unterst&uuml;tzung der nativen UI-Elemente des iPhone geht. Das ist darin begr&uuml;ndet, dass noch nicht alle UI-Elemente ihre Repr&auml;sentation in der Java-API von XMLVM haben. Bisher sind einfache tabellenbasierte Anwendungen bereits m&ouml;glich, komplexere Unserinterfaces jedoch noch nicht. Daran arbeitet das Team um Arno Puder derzeit. Da dieses Projekt jedoch Open Source ist, kann jeder interessierte Entwickler seinen Teil dazu beitragen.</p>
<p>Ein weiterer noch nicht gekl&auml;rter Punkt ist die Akzeptanz seitens <a href="https://macnotes.de/firma/apple/">Apple</a> im Reviewprozess f&uuml;r den <a href="https://macnotes.de/produkt/app-store/">App Store</a>. Rein formal spricht derzeit nichts f&uuml;r eine Ablehnung einer mittels XMLVM erstellten App, jedoch ist der Reviewprozess nicht transparent genug um sicher zu gehen.</p>
<p>Nicht zu vergessen ist das Debugging. Dies kann derzeit nur auf Java-Seite erfolgen, denn der erzeugte Objective-C-Code ist alles andere als wartbar. Wird ein Fehler gefunden, der nur im Objective-C-Code auftritt, so muss davon ausgegangen werden, dass XMLVM einen Fehler macht. Die Behebung ist damit nicht trivial m&ouml;glich und man ist abh&auml;ngig von einem Bugfixing seitens XMLVM.</p>
<p>Das Projekt ist jedenfalls einen Blick wert und sollte beobachtet werden. Hier steckt viel Potential. Gerade f&uuml;r Firmen, die Anwendungen plattform&uuml;bergreifend entwickeln m&ouml;chten, ist XMLVM sehr interessant, denn es muss nicht zwischen den beiden Plattformen aufwendig portiert werden. Einige weitere Beispiele sind auf der Webseite von XMLVM zu finden. XMLVM muss noch einiges mehr an UI-Elementen unterst&uuml;tzen, um damit sinnvolle Anwendungen zu schreiben. doch der Weg ist bereits der Richtige.</p>
<p>Der Beitrag <a href="https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/">Techtalk: Crosscompile Android Apps to iPhone</a> erschien zuerst auf <a href="https://macnotes.de">Macnotes.de</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://macnotes.de/2009/12/07/techtalk-crosscompile-android-apps-to-iphone/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		
	</item>
	</channel>
</rss>
