Verständnisfrage
#1
Apost 
Hallo!

Ich habe einige Fragen zum allg. Verständnis:
Ich kann also in C++ meine Applikation schreiben, am PC testen und danach für die verschiedenen Plattformen "einfach" kompilieren?
Wie sieht es aber aus, wenn ich native Informationen der Geräte im Code benötige?:
a) Batteriestatus
b) GPS
c) Bildschirmausrichtung
d) ...
Manche der Geräte haben diese, andere wiederum nicht.
Auch soll eventuell Bluetooth angebunden werden oder RFID.

Bezüglich der Lizenzierung ist mir auch nicht ganz klar:
Umsatzgrenze 10.000 Euro: 100 Euro
Wenn ich die App aber gratis anbiete ... dann sind die 100 Euro fällig, da ich keine Werbung beim start möchte.

In wie fern unterscheidet es sich zu hybriden HTML5 Apps?
Speziell Speed bei Seitenwechsel.

EDIT: Für Android muss ich auf Windows, für Apple auf MAC arbeiten ... kann ich aber einen Code von Windows unter MAC nutzen? Oder ist das ein neues eigenständiges Projekt mit unterschiedlichen Quellcodes?

Vielen Dank!
Reply
#2
Apost 
Hallo Fohnbit!

Quote:Ich kann also in C++ meine Applikation schreiben, am PC testen und danach für die verschiedenen Plattformen "einfach" kompilieren?

Ja das ist die Idee dahinter.

Quote:Wie sieht es aber aus, wenn ich native Informationen der Geräte im Code benötige?:
a) Batteriestatus
b) GPS
c) Bildschirmausrichtung
d) ...
Manche der Geräte haben diese, andere wiederum nicht.
Auch soll eventuell Bluetooth angebunden werden oder RFID.

Du kannst über das Framework abfragen ob das device/feature existiert und entsprechend reagieren.
   Input::AccelerationVector vector;
   if (deviceHandler->IsAccelerationAvailable())
   {
       vector = deviceHandler->GetAcceleration();
   }
   else
   {
       // e.g. use key or mouse for simulating accelerator 
       vector.Set(1, 2, 3 , 0);
   }


Solltest du ein Feature/Device benötigen, welches vom Framework nicht unterstützt wird, so kannst du dieses Feature mit einem "Custom Control" selbst einbauen.

Bildschirmauflösungen, Seitenverhältnisse und Ausrichtungen sind ein eigenes Thema für sich. Je nach Anwendung und Vorliebe wird ein anderer Ansatz nötig sein. Die Murl Engine bietet dir jedenfalls alle Möglichkeiten um auf die akutellen Gegebenheiten entsprechend reagieren zu können. Du kannst die Szene immer füllend in das Display skalieren lassen (mit oder ohne Trauerränder), verschiedene Ressourcenpakete für verschiedene Auflösungen laden, auf das Orientationdevice reagieren und das Layout ändern etc.

Quote:Bezüglich der Lizenzierung ist mir auch nicht ganz klar:
Umsatzgrenze 10.000 Euro: 100 Euro
Wenn ich die App aber gratis anbiete ... dann sind die 100 Euro fällig, da ich keine Werbung beim start möchte.

Richtig. Du kannst immer die Gratis-Version mit Einblendung verwenden. Ansonsten sind zumindest 100 Euro für die kleinste Lizenz fällig. Wenn du mit der App bzw. dem Projekt mehr als 10.000,- Netto verdienst ist eine entsprechend höhere Lizenz notwendig. Ansonsten bleibt es bei den einmaligen € 100,-.

Quote:In wie fern unterscheidet es sich zu hybriden HTML5 Apps?
Speziell Speed bei Seitenwechsel.

Das kommt natürlich immer auf die Komplexität und die Implementierung an. Für sehr einfache Apps mag eine HTML App ausreichend sein. Für komplexere Apps empfehlen wir jedenfalls einen nativen Ansatz um die Leistungsfähigkeit der Geräte nützen zu können und eine bessere Integration zu erreichen.

Quote:EDIT: Für Android muss ich auf Windows, für Apple auf MAC arbeiten ... kann ich aber einen Code von Windows unter MAC nutzen? Oder ist das ein neues eigenständiges Projekt mit unterschiedlichen Quellcodes?

Die Murl-Engine Projekte sind so aufgebaut, dass ein gemeinsamer Source-Code für alle Plattformen verwendet wird. Die einzelnen Source-Dateien liegen im Subverzeichnis source. Im Subverzeichnis project liegen die Projektdateien für die unterschiedlichen Plattformen (Visual Studio, XCode, Android ...). Das Dashboard kann verwendet werden um die Projekte zu synchronisieren. Wenn z.B. unter Windows neue Source Dateien dazu gekommen sind, fügt das Dashboard die neuen Dateien allen anderen Projekten auch hinzu.

Enwickelt werden kann also unter Windows oder unter Apple OSX werden.
Für das Deployment auf die Zielplattform gilt:
Android - wahlweise Windows oder OSX
iOS - OSX
OSX - OSX
Windows - Windows

Liebe Grüße.
Reply
#3
Apost 
Hallo!

Vielen Dank für die ausführliche Erklärung!

Letzte Frage: Ich müsste die Oberfläche relativ dynamisch halten.
Besteht die Möglichkeit das ich einige Teile als Import/Plugin nutze?

Die Oberfläche sollte dynamisch aufgebaut werden und funktionieren.
Ich möchte nicht bei einem kleinen Update die ganze APP aktualisieren lassen.

Beispiel:
Ich stelle ein Auto dar, das sich bedienen lässt.

In 3 Wochen füge ich noch einen LKW hinzu, der anders aussieht und anders zu bedienen ist.

Könnte ich diese 2 Objekte als Plugin oder Import nutzen? Dann müsste ich die App nicht so oft über den Store updaten lassen.

Danke!
Reply
#4
Apost 
(09 Jan 2015, 12:12)Fohnbit Wrote: Letzte Frage: Ich müsste die Oberfläche relativ dynamisch halten.
Besteht die Möglichkeit das ich einige Teile als Import/Plugin nutze?

Die Oberfläche sollte dynamisch aufgebaut werden und funktionieren.
Ich möchte nicht bei einem kleinen Update die ganze APP aktualisieren lassen.

Beispiel:
Ich stelle ein Auto dar, das sich bedienen lässt.

In 3 Wochen füge ich noch einen LKW hinzu, der anders aussieht und anders zu bedienen ist.

Könnte ich diese 2 Objekte als Plugin oder Import nutzen? Dann müsste ich die App nicht so oft über den Store updaten lassen.

Du kannst Ressourcenpakete, die dann den LKW beinhalten, später von einem Server nachladen.
Der C++ Code für die Bedienung des LKW müsste aber schon in der App verhanden sein, da du sonst erst recht die App updaten musst.

Alternativ könntest du das Lua Addon verwenden und die Bedienung über Lua-Scripten realisieren. Der
Lua Code ist dann Teil des Ressourcenpakets und kann nachgeladen werden.

Um das Ganze einfach zu halten würde ich aber vorerst einfach immer die App updaten und erst bei einem entsprechenden Erfolg bzw. bei echter Notwendigkeit Ressourcenpakete nachladen.

LG
Reply
#5
Apost 
Alles klar!

Danke für die Auskünft!
Reply


Forum Jump:


Copyright © 2011-2017 Spraylight GmbH.