Verfahren zur Erzeugung von ausführbarem Code
Stand der Technik
Die Erfindung betrifft ein Verfahren zur Erzeugung von ausführbarem Code nach Anspruch 1.
Es ist bekannt, Programme, die dazu vorgesehen sind, auf Smartphones oder Ahnlichem zu laufen, separat zu programmieren. Dazu benutzen Programmierer Codemodule und verknüpfen diese unter Anwen- dung ihrer Programmierkenntnisse zu gewünschten Funktionen.
Vorteile der Erfindung Die Erfindung betrifft ein Verfahren zur Erzeugung von ausführbarem Code, der dazu vorgesehen ist, auf einem mobilen Endgerät ausgeführt zu werden, mit zumindest einer Appbuildereinheit, die zumindest eine Speichereinheit, in der zumindest ein Grundcode hinterlegt ist, zumindest ein Eingabemodul und zumindest ein Erstellmodul aufweist, wobei in einem ersten Verfahrensabschnitt über das Eingabemodul von einem Bediener gewünschte Funktionen und/oder Daten eingegeben werden und in einem späteren Verfahrensabschnitt das Erstellmodul zumindest einen Teil der gewünschten Funktionen und/oder Daten in den Grundcode einbettet. Unter„ausführbarem Code" soll insbesondere eine in ein Paket, insbesondere eine Datei, geschriebene Folge von informatischen Anweisungen, insbesondere Assembler- und/oder Maschinencode, verstanden werden, die dazu vorgesehen sind, ein zumindest halbautomati¬ sches Programm ablaufen zu lassen. Vorzugsweise sind das Paket und oder die Anweisungen an be- stimmte Bedingungen, insbesondere an einen zu nutzenden Prozessor, der insbesondere mit dem RISC- Befehlssatz und/oder einer Weiterentwicklung dessen arbeitet und/oder dessen Architektur auf ARM- Technologie basiert, und/oder an ein Betriebssystem, in dessen Rahmen der ausführbare Code ausge-
- -
führt werden soll, angepasst, insbesondere speziell kompiliert. Unter einem„mobilen Endgerät" soll insbesondere ein Endgerät mit einem Gewicht von weniger als 2 kg, insbesondere weniger als 1 kg, vorteilhaft weniger als 500 g, vorzugsweise weniger als 200 g, verstanden werden. Vorzugsweise weist ein mobiles Endgerät zumindest eine netzunabhängige Stromversorgung, insbesondere eine Akkueinheit und/oder eine Solargeneratoreinheit auf. Vorzugsweise weist das mobile Endgerät zumindest ein berührungsempfindliches, insbesondere kapazitives, resistives und/oder induktives, Display auf, das als Bedienerschnittstelle dient. Insbesondere ist das mobile Endgerät als Mobiltelefon, insbesondere Smartphone, oder als Tablet-PC ausgebildet. Insbesondere weist das mobile Endgerät zumindest eine Kommunikationsschnittstelle, insbesondere zumindest eine GPRS-, EDGE-, UMTS- und/oder W-LAN-Schnittstelle, auf. Insbesondere weist das mobile Endgerät zumindest einen Positionssensor, insbesondere einen GPS- Empfänger, auf. Insbesondere weist das mobile Endgerät zumindest einen Beschleunigungssensor auf. Insbesondere weist das mobile Endgerät zumindest eine Video-, Foto- und/oder Audioaufzeichnungseinheit auf. Vorzugsweise weist das mobile Endgerät zumindest ein, auf mobile Zwecke, insbesondere hinsichtlich einer Anzeige auf Displays mit einer Bildschirmdiagonale von weniger als 20 cm, vorteilhaft weniger als 15 cm und/oder hinsichtlich einer Bedienung per Touchdisplay, optimiertes Betriebssystem, beispielsweise iOS, Android, Windows Phone und/oder Blackberry-OS auf. Unter einer„Appbuilderein- heit" soll insbesondere eine zumindest halbautomatische Einheit verstanden werden. Vorzugsweise weist eine Appbuildereinheit zumindest eine Recheneinheit, zumindest eine Speichereinheit und zumindest ein, in der Speichereinheit hinterlegres Betriebsprogramm auf, das dazu vorgesehen ist, von der Rechenein- heit ausgeführt zu werden. Vorzugsweise sind die Speichereinheit und die Recheneinheit in eine Datenverarbeitungsanlage, insbesondere einen PC, vorzugsweise einen Server, integriert. Alternativ ist es denkbar, dass die Speichereinheit und die Recheneinheit über eine Netzwerkverbindung miteinander verbunden sind, insbesondere in unterschiedliche Datenverarbeitungsanlagen integriert sind. Unter einer „Speichereinheit" soll insbesondere eine Einheit verstanden werden, die dazu vorgesehen ist, Daten, insbesondere digital, vorzugsweise nicht flüchtig, abzuspeichern. Vorzugsweise ist die Speichereinheit von zumindest einer Festplatte, insbesondere SSD, gebildet. Unter einem„Grundcode" soll insbesondere ein in einer, vorzugsweise objektorientierten, Programmiersprache, insbesondere einer Hochsprache, beispielsweise object c, java, C*+, Visual Basic, oder Vergleichbarem, vorliegender, unvollständiger Programmcode verstanden werden. Insbesondere weist der Grundcode zumindest ein erstes Codemodul auf, das dazu vorgesehen ist, eine Verbindung zu Ein- und/oder Ausgabefunktionen, insbesondere GPS- Funktionen, Anzeigefunktionen, Kommunikationsfunktionen, Vibrationsfunktionen, Sensorfunktionen, Bild- und/oder Tonaufzeichnungsfunktionen, des mobilen Endgeräts bereitzustellen. Insbesondere ist zumindest
das erste Codemodul dazu vorgesehen, auf von dem Betriebssystem des mobilen Endgeräts bereitgestellte Schnittstellen zurückzugreifen. Insbesondere weist der Grundcode zumindest ein zweites Codemodul auf, das dazu vorgesehen ist, eine Verbindungsmöglichkeit mit einer Datenbankeinheit bereitzustellen. Unter einem„Eingabemodul" soll insbesondere eine Schnittstelle zwischen dem Bediener und der Appbuildereinheit verstanden werden. Unter einer„Einbettung" von Funktionen und/oder Daten in den Grundcode soll insbesondere verstanden werden, dass den Funktionen, insbesondere einer Kartenanzeige, einer GPS-lnformation, einem Datenbankzugriff und/oder weitere denkbare Funktionen, zugeordnete Codemodule in den Grundcode an geeigneter Stelle integriert werden bzw. die Daten, insbe¬ sondere Grafikdaten und/oder Inhaltsdaten, in einem Speicherbereich des Grundcodes hinterlegt wer- den. Insbesondere wird der durch Integration modifizierte, vorzugsweise in einer Hochsprache vorliegende, Grundcode, im Anschluss an die Einbettung, durch das Erstellmodul in Assembler- und/oder Ma¬ schinencode umgewandelt, insbesondere kompiliert. Es kann insbesondere eine einfache Möglichkeit bereitgestellt werden, zumindest einen ausführbaren Code zu erzeugen.
Weiterhin wird vorgeschlagen, dass das Eingabemodul per Fernzugriff bedient wird. Unter einer Bedienung per„Fernzugriff" soll insbesondere eine Bedienung über eine Netzwerkschnittstelle, insbesondere über zumindest eine Telekommunikationsleitung, insbesondere DSL, ISDN oder Vergleichbarem, verstanden werden. Insbesondere weist die Appbuildereinheit zumindest eine Netzwerkschnittstelle auf. Insbesondere ist die Appbuildereinheit mit zumindest einem Netzwerk, insbesondere zumindest dem Internet, zumindest zeitweise, insbesondere zumindest 80 %, vorteilhaft zumindest 95 %, vorzugsweise zumindest 99 % eines Tages, eines Monats und/oder eines Jahres, verbunden ist. Insbesondere bietet die Appbuildereinheit ein Webinterface an, auf das der Bediener per Internet zugreifen kann. Es kann insbesondere eine einfache Bedienung erreicht werden. Insbesondere kann erreicht werden, dass die Appbuildereinheit von mehr als einem Bediener gleichzeitig bedient werden kann. Insbesondere kann ein Zugriff auf die Appbuildereinheit von beliebigen Endgeräten, insbesondere PCs, Smartphones oder Ähnlichem, bereitgestellt werden.
Ferner wird vorgeschlagen, dass der Bediener zur Ausführung des ersten bis späteren Verfahrensabschnitts keine Kenntnisse über eine geschriebene Programmiersprache aufweisen muss, insbesondere über gar keine Programmierkenntnisse verfügen muss. Darunter, dass der Bediener„Kenntnisse über eine geschriebene Programmiersprache aufweist", soll insbesondere verstanden werden, dass der Bediener zumindest eine grundlegende Syntax und/oder Semantik zumindest einer geschriebenen Hochsprache,
- -
insbesondere object c, Java, C++, VB, oder Vergleichbarem, und/oder einer Assembler Sprache und/oder von Maschinencode kennt und/oder anwenden kann. Insbesondere ist es denkbar, dass der Bediener funktionale Zusammenhänge zwischen einzelnen gewünschten Funktionen und/oder Daten durch intuitive Verknüpfung, insbesondere Drag'n'Drop und/oder Linienverknüpfung, von als Funktions- blocken abstrahierten Objekten herstellt. Insbesondere sind Funktionsblöcke vorgesehen, die eine Eingabe von mathematischen Funktionen erlauben. Insbesondere stellt die Eingabeeinheit einen einer grafischen Programmiersprache, wie beispielsweise G, zumindest ähnlichen Eingabebereich zur Verfügung. Es kann insbesondere eine einfache, effiziente und/oder intuitive Möglichkeit zur Erzeugung von ausführbarem Code bereitgestellt werden. Insbesondere können beliebige Bediener eigenen, auf ihre Be- dürfnisse zugeschnittenen, ausführbaren Code erzeugen.
Weiterhin wird vorgeschlagen, dass das Eingabemodul den Bediener in dem ersten Verfahrensabschnitt durch zumindest ein Konfigurationsmenü leitet. Insbesondere weist das Betriebsprogramm der Appbuil- dereinheit, insbesondere ein Webinterface, eine Menüstruktur auf, die es dem Bediener ermöglicht, zumindest während des ersten Verfahrensabschnitts zwischen beliebigen Konfigurationspunkten des
Konfigurationsmenüs hin- und herzuspringen, um Änderungen und/oder Korrekturen vorzunehmen. Insbesondere speichert die Appbuildereinheit zu einem neuen Projekt hinzugefügte Funktionen und/oder Da¬ ten ab, um eine Unterbrechung der Konfiguration und eine spätere Fortsetzung zu ermöglichen. Es kann insbesondere eine einfache Konfiguration ermöglicht werden.
Ferner wird vorgeschlagen, dass von dem Bediener in dem ersten Verfahrensabschnitt, insbesondere bei einem ersten Punkt im Konfigurationsmenü, zumindest Brancheninformationen eingegeben werden. Unter „Brancheninformationen" sollen insbesondere Informationen verstanden werden, die einen Anwendungsbereich des zu erzeugenden, ausführbaren Codes beschreiben. Insbesondere wird hierbei zwi- sehen einer Anwendung auf Waren und Dienstleistungen unterschieden. Weiterhin kann zwischen unterschiedlichen mit dem ausführbaren Code auszulösenden, branchenspezifischen Wirkungen, insbesondere Abwicklung eines Kaufs, Anzeige zumindest einer Information, Reservierung einer Dienstleistung und/oder weiteren denkbaren Wirkungen, unterschieden werden. Insbesondere werden in Abhängigkeit von eingegebenen Brancheninformationen dem Bediener durch die Appbuildereinheit unterschiedliche Funktionen und/oder Daten vorgeschlagen, die eingebettet werden sollten und/oder könnten. Insbesondere blendet die Appbuildereinheit für eingegebene Brancheninformationen ungeeignete Funktionen und/oder Daten, insbesondere im Konfigurationsmenü, aus. Insbesondere können ausgeblendete Funktio-
- -
nen und/oder Daren durch den Bediener manuell wieder eingeblendet werden. Es kann insbesondere eine bessere Übersichtlichkeit und/oder eine leichtere Konfiguration erreicht werden.
Weiterhin wird vorgeschlagen, dass von dem Bediener in dem ersten Verfahrensabschnitt, insbesondere in einem zweiten Punkt des Konfigurationsmenüs, zumindest Layouteigenschaften eingegeben werden. Unter„Layouteigenschaften" sollen insbesondere Eigenschaften verstanden werden, die ein optisches Erscheinungsbild, zumindest des späteren, ausführbaren Codes, auf dem mobilen Endgerät beeinflussen. Insbesondere gibt der Bediener eine Menüstruktur vor. Insbesondere gibt der Bediener eine Anzahl, eine Größe, eine Beschriftung und/oder eine Position von Schaltflächen vor. Insbesondere schlägt die Appbuildereinheit Layouteigenschaften anhand von eingegebenen Brancheninformationen vor. Insbesondere legt der Bediener grafische Informationen, insbesondere eine Farbgebung und/oder zumindest eine Hintergrundgrafik, fest. Insbesondere legt der Bediener eine Größe und/oder eine Position zumindest eines Informationsbereichs fest. Ferner wird vorgeschlagen, dass von dem Bediener in dem ersten Verfahrensabschnitt zumindest Inhaltsdaten eingegeben werden. Unter„Inhaltsdaten" sollen insbesondere Daten verstanden werden, die sich auf eine zu erzielende Wirkung des ausführbaren Codes beziehen. Insbesondere werden Waren- und/oder Dienstleistungsinformationen als Inhaltsdaten eingegeben. Insbesondere sind Inhaltsdaten zeitlich veränderliche Daten. Es kann insbesondere erreicht werden, dass bereits bei einer ersten Ausfüh- rung des erzeugten ausführbaren Codes Inhalte ausgebbar, insbesondere anzeigbar, sind.
Weiterhin wird vorgeschlagen, dass in zumindest einem ersten Zwischenschritt zumindest ein Teil der gewünschten Funktionen und/oder Daten in einer Datenbankeinheit, insbesondere öffentlich zugänglich, abgespeichert werden. Vorzugsweise liegt der erste Zwischenschritt zeitlich vor dem ersten und dem späteren Verfahrensabschnitt. Alternativ ist es denkbar, dass der erste Zwischenschritt als einer der ersten oder als erster Schritt des späteren Verfahrensabschnitts erfolgt. Insbesondere werden zumindest die Inhaltsdaten in einer Datenbankeinheit gespeichert. Insbesondere wird zumindest ein Teil der Layoutinformationen, insbesondere zumindest die grafischen Informationen, in der Datenbankeinheit abgelegt. Unter einer„Datenbankeinheit" soll insbesondere eine Einheit verstanden werden, die zumindest ein Informations- und/oder Datenspeicherobjekt aufweist. Insbesondere unterscheidet sich das Informationsund/oder Datenspeicherobjekt von einem reinen Festspeicher. Insbesondere weist die Datenbankeinheit ein Betriebsprogramm auf, das Daten des Informations- und/oder Datenspeicherobjekts kategorisiert
- -
und/oder miteinander verknüpft abspeichert. Insbesondere gibt die Datenbankeinheit in Abhängigkeit von Parametern eines Befehlspfads angeforderte Informationen zurück und/oder speichert in Parametern des Befehlspfads hinterlegte Daten ab. Insbesondere ist die Datenbankeinheit in eine Datenverarbeitungsanlage integriert, die mit zumindest einem Netzwerk, insbesondere zumindest dem Internet, zumindest zeitweise, insbesondere zumindest 80 %, vorteilhaft zumindest 95 %, vorzugsweise zumindest 99 % eines Tages, verbunden ist. Insbesondere ist der ausführbare Code nach Erzeugung dazu vorgesehen, sich, vorzugsweise automatisch, insbesondere regelmäßig, mit der Datenbankeinheit zu verbinden, um Inhaltsdaten, Layoutinformationen und/oder weitere denkbare Daten zu aktualisieren. Unter„öffentlich zugänglich" soll insbesondere verstanden werden, dass mehr als nur der Bediener, insbesondere zumindest Anwender, die später den erzeugten, ausführbaren Code ausführen, insbesondere über den zu erzeugenden, ausführbaren Code auf die Daten der Datenbankeinheit zugreifen können. Insbesondere werden bei einer Aktualisierung lediglich neue Daten übertragen, um einen Umfang eines Datentransfers und/oder insbesondere Kosten zu reduzieren. Insbesondere kann eine einfache Veränderbarkeit zumindest der Inhaltsdaten erreicht werden. Insbesondere kann auf eine Erzeugung eines neuen, ausführbaren Codes und insbesondere daraus folgende große Datentransfers, insbesondere auf Anwenderseite, verzichtet werden.
Vorteilhaft wird vorgeschlagen, dass die Appbuildereinheit zumindest ein weiteres Erstellmodul aufweist, das in zumindest einem zweiten Zwischenschritt zumindest ein Previewpaket erzeugt. Vorzugsweise erfolgt der zweite Zwischenschritt vor dem späteren Verfahrensabschnitt. Unter einem„Previewpaket" soll insbesondere ein Datenpaket verstanden werden, in dem die gewünschten Funktionen und/oder Daten hinterlegt sind. Insbesondere wird das Previewpaket im Rahmen des zweiten oder eines weiteren Zwischenschritts zu einem mobilen Endgerät, insbesondere indirekt über einen Datenspeicher, insbesondere einer Datenbankeinheit, auf die das mobile Endgerät, insbesondere über einen speziellen, ausführ- baren Code, Zugang hat, übertragen. Insbesondere weist das mobile Endgerät einen speziellen, ausführbaren Code auf, der dazu vorgesehen ist, mit Hilfe des Previewpakets eine Funktionalität und/oder ein Erscheinungsbild des zu erzeugenden ausführbaren Codes zu simulieren, wobei im Vergleich zum zu erzeugenden, ausführbaren Code eine höhere Rechenleistung benötigt wird. Insbesondere ist das Previewpaket unabhängig von einem Betriebssystem. Es kann insbesondere eine komfortable Möglichkeit bereitgestellt werden, eine Funktionalität und/oder ein Erscheinungsbild des zu erzeugenden ausführbaren Codes zu testen, wobei auf eine, insbesondere umständliche, zeitraubende und/oder kostenintensive,
- -
Veröffentlichung, insbesondere eine Erzeugung und/oder eine Einstellung in einer Verkaufsplattform, des ausführbaren Codes verzichtet werden kann.
Weiterhin wird vorgeschlagen, dass in der Speichereinheit zumindest zwei Grundcodes gespeichert sind, aus denen die Erstelleinheit in dem späteren Verfahrensabschnitt durch Einbettung zumindest eines gleichen Teils der gewünschten Funktionen und/oder Daten in den jeweiligen Grundcode zumindest zwei ausführbare Codes mit zumindest äquivalenter, vorzugsweise gleicher, Funktionalität für zumindest zwei unterschiedliche mobile Endgeräte erzeugt. Zwei mobile Endgeräte sind insbesondere dann„unterschiedlich", wenn sie zumindest unterschiedliche Betriebssysteme aufweisen. Insbesondere liegen die Grundcodes in unterschiedlichen Programmiersprachen vor. Es kann insbesondere erreicht werden, dass unterschiedliche, ausführbare Codes, die für einen Betrieb mit jeweils unterschiedlichen mobilen Endge¬ räten zum Zwecke einer gleichen Anwendung vorgesehen sind, ein gleiches und/oder äquivalentes Erscheinungsbild und eine gleiche und/oder äquivalente Funktionalität aufweisen. Insbesondere kann Zeit gespart werden, die für die separate Erezeugung unterschiedlicher Codes mit zumindest äquivalenter Funktionalität nötig wäre.
Ferner wird vorgeschlagen, dass die Appbuildereinheit in einem abschließenden Verfahrensschritt den zumindest einen erzeugten ausführbaren Code auf zumindest einer Verkaufsplattform einstellt. Unter einem„Einstellen auf einer Verkaufsplattform" soll insbesondere verstanden werden, dass automatisch Formulare, insbesondere Webformulare, der Verkaufsplattform ausgefüllt werden und/oder automatisch eine Verifizierung, insbesondere eine Signierung, des ausführbaren Codes durchgeführt wird. Insbesondere ist der ausführbare Code nach Einstellung auf der Verkaufsplattform durch beliebige Anwender beziehbar, insbesondere herunterladbar. Insbesondere ist die Appbuildereinheit dazu vorgesehen, zur Ausführung auf unterschiedlichen mobilen Endgeräten erzeugte, ausführbare Codes in unterschiedlichen Verkaufsplattformen einzustellen. Insbesondere legt der Bediener, unabhängig oder abhängig von der Verkaufsplattform, Preise für den ausführbaren Code fest und/oder stellt ihn kostenfrei zur Verfügung.
Zeichnungen
Weitere Vorteile ergeben sich aus der folgenden Zeichnungsbeschreibung. In den Zeichnungen ist e Ausführungsbeispiel der Erfindung dargestellt. Die Zeichnungen, die Beschreibung und die Ansprüch
enthalten zahlreiche Merkmale in Kombination. Der Fachmann wird die Merkmale zweckmäßigerweise auch einzeln betrachten und zu sinnvollen weiteren Kombinationen zusammenfassen.
Es zeigen:
Fig. 1 eine schematische Darstellung eines erfindungsgemäßen Verfahrens in schema- tischer Darstellung und
Fig. 2 erfindungsgemäße Systeme in schematischer Darstellung.
Beschreibung des Ausführungsbeispiels
Figur 1 zeigt einen Ablauf eines Verfahrens zur Erzeugung von ausführbarem Code 10, 10', der dazu vorgesehen ist, auf mobilen Endgeräten 1 2, 1 2' ausgeführt zu werden. Die mobilen Endgeräte 1 2, 1 2' sind als Smartphones mit i-OS bzw. Android-Betriebssystem ausgebildet. Das Verfahren wird mit einem System 1 4, das eine Appbuildereinheit 16 aufweist, ausgeführt (Figur 2). Die Appbuildereinheit 16 weist eine Speichereinheit 1 8, ein Eingabemodul 20 und ein Erstellmodul 22 auf. In der Speichereinheit 1 8 sind zwei Grundcodes 24, 24' hinterlegt. Die Appbuildereinheit 16 weist weiterhin eine Netzwerkschnittstelle 26 auf, die dazu vorgesehen ist, die Appbuildereinheit 16 an das Internet anzubinden. Das System 1 4 weist weiterhin eine Fernzugriffsschnittstelle 28 auf, die dazu vorgesehen ist, über das Internet und die Netzwerkschnittstelle 26 auf das Eingabemodul 20 der Appbuildereinheit 16 zuzugreifen. Die Fernzugriffsschnittstelle 28 ist hier als PC ausgebildet, kann jedoch auch als beliebiges IT-Endgerät ausgebildet sein. Das Eingabemodul 20 wird per Fernzugriff bedient. Das Verfahren beginnt, durch einen Bediener ausgelöst, indem dieser in einem initialen Verfahrensschritt SO ein Webinterface, das von dem Eingabemodul 20 bereitgestellt wird, aufruft. Hierbei ist es vorgesehen, dass sich der Bediener vor Fortführung des Verfahrens an einem Benutzerkonto anmeldet.
In einem ersten Verfahrensabschnitt S 1 gibt der Bediener über das Eingabemodul 20 gewünschte Funk- Honen und/oder Daten D l , D2, D3, D4 ein. Zu einer Ausführung des Verfahrens sind hierbei keinerlei Kenntnisse des Bedieners über eine geschriebene Programmiersprache nötig. Das Eingabemodul 20 leitet den Bediener in dem ersten Verfahrensabschnitt S l durch ein Konfigurationsmenü.
- -
In dem ersten Verfahrensabschnitt S .1 werden in einem ersten Konfigurationsschritt, der einem Verfahrensschritt S l 1 entspricht, von dem Bediener über das Eingabemodul 20 Brancheninformationen D l eingegeben. Auswahlmöglichkeiten könnten hierbei Gastwirtschaft, Suchdienst, Warenverkauf oder Ähnliches sein. In Abhängigkeit von den eingegebenen Brancheninformationen D l schlägt die Appbuil- dereinheit 1 6 dem Bediener in den nächsten Verfahrensschritten S 1 2, S 1 3 entsprechende Layout- und Funktionsvorschläge vor.
In einem darauf folgenden Konfigurationsschritt, der einem Verfahrensschritt S l 2 entspricht, werden von dem Bediener Layouteigenschaften D2 eingegeben. Die Appbuildereinheit 1 6 stellt dem Bediener die Möglichkeit bereit, zwischen verschiedenen, anhand der Brancheninformationen D l bestimmten, besonders geeigneten, vorgefertigten Gestaltungsvarianten auswählen. Der Bediener kann sich, wenn ihm die Vorschläge ungeeignet erscheinen, auch weitere vorgefertigte Gestaltungsvarianten zu einer Auswahl anzeigen lassen, eine vorgefertigte Gestaltungsvariante anpassen, oder eigenständig Positionen, Größen und Beschriftungen von Informationsbereichen und Schaltflächen festlegen. Weiterhin wird dem Bediener die Möglichkeit gegeben, zwischen unterschiedlichen Designs, Farbgebungen und Hintergrundbildern auszuwählen oder selber ein Design, eine Farbgebung und Hintergrundbilder zu gestalten. Weiterhin werden Menüstrukturen und deren grafische Gestaltung durch den Bediener eingegeben. In dem ersten Verfahrensabschnitt S 1 gibt der Bediener gewünschte Funktionen D3 ein. Die gewünschten Funktionen D3 werden mit gewünschten Schaltflächen verbunden. In Abhängigkeit von eingegebenen Brancheninformationen D 1 und eingegebenen Layouteigenschaften D2 werden dem Bediener geeignete Funktionen D3 vorgeschlagen. Dies erfolgt in einem Konfigurationsschritt des Konfigurations¬ menüs, der einem Verfahrensschritt S 1 3 entspricht. Der Bediener legt fest, welche Aktion, beispielsweise eine Anzeige eines Menüs, eine Eingabe von Daten in eine Datenbankeinheit 30, ein Auslesen von
Daten aus der Datenbankeinheit 30, eine Beendigung oder Ausblendung des ausführbaren Codes 10, 10', eine Kartenanzeige, eine Suchfunktion, die beispielsweise aktuelle GPS-Koordinaten als Parameter übernimmt, eine Übermittlung einer bestimmten oder aus einem Datensatz ausgewählten Koordinate oder Adresse an eine Routingfunktion des mobilen Endgeräts 1 2, 1 2', ein Routingverfahren, ein Zugriff auf ein Kommunikationssystem wie Email, Telefonie oder Instant-Messaging, Aufzeichnung und/oder
Versendung von Bild und/oder Ton und/oder weiter Denkbares, bei Betätigung der jeweiligen Schaltflächen ausgeführt wird bzw. welche Funktionen ausgeführt wurden. Weiterhin gibt der Bediener ge-
- -
wünschte Funktionen D3 ein, indem er festlegt, welche Aktion oder welche Aktionen auf ein bestimmtes Ereignis, das beispielsweise auf Sensorsignalen, wie von einem Beschleunigungssensor, einer Kamera oder eines Mikrofons beruht, folgen soll. Bei Abschluss dieses Verfahrensschritts S l 3 weist die Appbuil- dereinheit 16 den Bediener auf fehlende wichtige Funktionen, beispielsweise eine Beendigungsfunktion und auf unbelegte Schaltflächen hin. Alternativ oder zusätzlich ist es denkbar, dass die Appbuilderein- heit 16 während des ersten Verfahrensabschnitts S l Listen anzeigt, in denen unbelegte Schaltflächen bzw. noch nicht verwendete Funktionen aufgelistet sind. Die Appbuildereinheit 16 gibt dem Bediener über das Eingabemodul 20 die Möglichkeit, komplexere Funktionen, beispielsweise zur Verarbeitung von Sensorsignalen und/oder zur Kombinierung von mehreren Funktionen des mobilen Endgeräts 1 2, 1 2', über ein, mit einer grafischen Programmiersprache vergleichbares, Interface einzugeben.
In einem weiteren Verfahrensschritt S 14 des ersten Verfahrensabschnitts S l bei der Konfiguration werden durch den Bediener Inhaltsdaten D4 eingegeben. Inhaltsdaten D4 sind hierbei Daten, die einem Anwender in Abhängigkeit von Interaktionen des Anwenders mit dem fertigen, ausführbaren Code 10, 10' in Informationsbereichen des Layouts angezeigt werden sollen, beispielsweise Informationen zu einem oder mehreren Produkten, Waren oder Dienstleistungen, die ein Bediener dem Anwender über den ausführbaren Code anbieten möchte, eine Liste oder Tabelle von Daten, beispielsweise Produktdaten, Ortsdaten oder Benutzerdaten, Bilder, Texte und Vergleichbares. Der Bediener legt weiterhin fest, welche der Inhaltsdaten, beispielsweise bei großen, schnell veränderlichen Datensätzen, lediglich in der Datenbankeinheit 30 gespeichert werden sollen, um große Datenübertragungen zu vermeiden. Weiter¬ hin ist es denkbar, dass Inhaltsdaten in einer weiteren Datenbankeinheit hinterlegt sind und der Zugriff auf diese weitere Datenbankeinheit per Funktion im Verfahrensschritt S 1 3 festgelegt wurde, also Zugangsdaten für diese weitere Datenbankeinheit hinterlegt wurden. Ist eine Eingabe von Daten abgeschlossen, beendet der Bediener über eine entsprechende Funktion des Konfigurationsmenüs die Konfiguration und das Verfahren wird fortgesetzt. Der Bediener kann mit Hilfe des Konfigurationsmenüs zwischen beliebigen Verfahrensschritten S 1 1 , S 1 2, S 1 3, S 1 4 des Verfahrens¬ abschnitts S 1 wechseln. Die Datenbankeinheit 30 ist Bestandteil des Systems 14. Die Datenbankeinheit 30 ist hierbei über das Internet mit der Appbuildereinheit 16 verbunden. In einem ersten Zwischenschritt S2 werden ein Teil der gewünschten Funktionen und/oder Daten D 1 , D2, D3, D4 in der Datenbankeinheit 30 abgespeichert.
- -
Es werden sowohl die Inhaltsdaten D4, als auch die grafischen Informationen über Design, Farbgebung und Hintergrundbild in der Datenbankeinheit 30 hinterlegt, so dass ein Bediener nachträglich oder sai¬ sonal das Erscheinungsbild des ausführbaren Codes 10, 10' anpassen kann. Die Appbuildereinheit 16 weist ein weiteres Erstellmodul 32 auf. In einem zweiten Zwischenschritt S3 erzeugt das weitere Erstellmodul 32 ein Previewpaket 34. Das Previewpaket 34 umfasst sämtliche, während des ersten Verfahrensabschnitts S l eingegebene Funktionen und/oder Daten D l , D2, D3, D4. Das Previewpaket 34 wird in einer Datenbankeinheit 35 abgespeichert. Es ist ein ausführbarer Code 36, die Previewapp, vorgesehen, der auf einem mobilen Endgerät 38 ausgeführt wird und dabei eine Funktionalität des zu erstellenden ausführbaren Codes 10, 10' mit Hilfe des Previewpakets 34 simuliert. Dazu verbindet sich die Previewapp mit der Datenbankeinheit 35, identifiziert sich mit Zugangsdaten des Bedieners und gibt dem Bediener die Möglichkeit, zwischen verschiedenen in der Datenbankeinheit 35 gespeicherten Previewpaketen 34 auszuwählen. Das Previewpaket 34 wird von der Previewapp analysiert und interpretiert.
Die Appbuildereinheit 16 stellt dem Bediener die Möglichkeit bereit, den zweiten Zwischenschritt S3 zu überspringen.
Ist der Bediener mit den Ergebnissen des Previewpakets 34 zufrieden oder überspringt er den Zwi- schenschritt S3, wird mit einem späteren Verfahrensabschnitt S4 fortgesetzt. Alternativ kann der Bediener zu dem ersten Verfahrensabschnitt S l zurückkehren.
Zu Beginn des späteren Verfahrensabschnitts S4 wird in einem Verfahrensschritt S41 der Bediener aufgefordert anzugeben, für welche Betriebssysteme ein geeigneter, ausführbarer Code 10, 10' erstellt werden soll. Entsprechend bettet in dem späteren Verfahrensabschnitt S4 das Erstellmodul 22 einen gleichen Teil der gewünschten Funktionen und/oder Daten D l , D2, D3, D4 in die Grundcodes 24, 24' ein. Dabei werden beispielsweise zwei ausführbare Codes 10, 10' mit äquivalenter Funktionalität für zwei unterschiedliche, mobile Endgeräte 1 2, 1 2' erzeugt. Die gewünschten Funktionen D3 werden durch automatische Einfügung geeigneter, speziell dafür vorbereiteter Codemodule in den Grundcode 24, 24' bereitgestellt. Ein erster der Grundcodes 24 und die korrespondierenden Codemodule sind in object c geschrieben. Ein zweiter Grundcode 24' und die korrespondierenden Codemodule sind in java geschrieben. Aus dem ersten Grundcode 24 wird in einem Verfahrensschritt S42 ein erster, ausführbarer
- -
Code 10 erzeugt, der zu einer Anwendung mit dem Betriebssystem i-OS auf dem ersten mobilen End¬ gerät 1 2 geeignet ist. Aus dem zweiten Grundcode 24' wird in einem Verfahrensschritt S43 ein zweiter, ausführbarer Code 10' erzeugt, der zu einer Anwendung mit dem Betriebssystem Android auf dem zweiten mobilen Endgerät 1 2' geeignet ist. Dabei werden grafische Informationen und Inhaltsdaten D4 in einem von einer Kompilierung ausgeschlossenen Speicherbereich vorgehalten und an den ausführba¬ ren Code 10, 10' geeignet angehängt.
In Fortbildungen der Erfindung ist denkbar, dass mehr als zwei Grundcodes für unterschiedliche Be¬ triebssysteme vorgehalten werden, aus denen ausführbare Codes mit gleicher Funktionalität erstellt werden.
Im Anschluss an die Erzeugung der ausführbaren Codes 10, 10' werden in einem abschließenden Verfahrensschritt S5 die erzeugten ausführbaren Codes 10, 10' bei entsprechenden Verkaufsplattformen 40, 40' eingestellt. Die Verkaufsplattformen 40, 40' sind als Online-Stores ausgebildet, die jeweils auf ausführbare Codes für die entsprechenden Betriebssysteme spezialisiert sind. Alternativ oder zusätzlich ist eine Einstellung bei betriebssystemübergreifenden Verkaufsplattformen denkbar. Wurden von einem Bediener keine Benutzerdaten zu den Verkaufsplattformen 40, 40' angegeben, erstellt die Appbuilde- reinheit 16 automatisch Benutzerkonten auf diesen Verkaufsplattformen 40, 40'. Weiterhin führt die Appbuildereinheit 16 automatisch von einer Verkaufsplattform 40, 40' geforderte Referenzierungs- und Signierungsvorgänge für den ausführbaren Code 10, 10' aus.
Weiterhin weist die Appbuildereinheit 16 ein Wartungsmodul 42 auf. Der Bediener kann auf das Wartungsmodul per Webinterface von beliebigen Endgeräten, insbesondere auch mobilen Endgeräten oder PCs, zugreifen. Der Bediener kann über das Wartungsmodul 42 die grafischen Informationen und die Inhaltsdaten D4, die in der Datenbankeinheit 30 hinterlegt sind, verändern. Weiterhin sind durch das Wartungsmodul 42 Einstellungen eines Benutzerkontos des Bedieners für die Appbuildereinheit 16 und die Benutzerkonten für die Verkaufsplattformen 40, 40' verwaltbar.
Im Grundcode 24, 24' ist ein Modul vorgesehen, das eine regelmäßige, tägliche Aktualisierung des erzeugten ausführbaren Codes 10, 10' auf Basis von in der Datenbankeinheit 30 hinterlegten Daten veranlasst. Hierbei werden lediglich veränderte Daten übertragen, um den Datenverkehr gering zu halten.
Weiterhin zeigt Figur 2 zwei Systeme 44, 44' mit der Appbuildereinheit 16 und jeweils einem mobilen Endgerät 1 2, 1 2', das dazu vorgesehen ist, den von der Appbuildereinheit 16 erzeugten, ausführbaren Code 10, 10' auszuführen. Ferner zeigt Figur 2 zwei Systeme 46, 46' mit jeweils einem mobilen Endgerät 1 2, 1 2', jeweils einem ausführbaren Code 10, 10' und zumindest einer Datenbankeinheit 30, die dazu vorgesehen ist, einen Teil der gewünschten Funktionen und/oder Daten D l , D2, D3, D4 des ausführbaren Codes öffentlich zugänglich abzuspeichern. Weiterhin kann vorgesehen sein, dass die Datenbankeinheiten 30, 35 als einzelne Datenbankeinheif ausgebildet sind.
Bezugszeichen
10 ausführbarer Code D l Brancheninformationen
10' ausführbarer Code D2 Layouteigenschaften
1 2 mobiles Endgerät D3 Funktionen
1 2' mobiles Endgerät D4 Inhaltsdaten
14 System SO Verfahrensschritt
16 Appbuildereinheit S l Verfahrensabschnitt
1 8 Speichereinheit S i l Verfahrensschritt
20 Eingabemodul S 1 2 Verfahrensschritt
22 Erstellmodul S 1 3 Verfahrensschritt
24 Grundcode S 14 Verfahrensschritt
24' Grundcode S2 Zwischenschritt
26 Netzwerkschnittstelle S3 Zwischenschritt
28 Fernzugriffsschnittstelle S4 Verfahrensabschnitt
30 Datenbankeinheit S41 Verfahrensschritt
32 Erstellmodul S42 Verfahrensschritt
34 Previewpaket S43 Verfahrensschritt
35 Datenbankeinheit S5 Verfahrensschritt
36 ausführbarer Code
38 mobiles Endgerät
40 Verkaufsplattform
40' Verkaufsplattform
42 Wartungsmodul
44 System
44' System
46 System
46' System