VERFAHREN ZUM ERZEUGEN EINER AUF EINEM EINEN BERÜHRUNGSEMPFINDLICHEN BILDSCHIRM AUFWEISENDEN DIGITALEN ENDGERÄT LAUFFÄHIGEN ANWENDUNG UND VORRICHTUNG METHOD FOR PRODUCING A DIGITAL END DEVICE EMITTING ON A TOUCH-SENSITIVE SCREEN LIVE-EFFICIENT APPLICATION AND DEVICE
Beschreibung description
Stand der Technik State of the art
[0001] Die vorliegende Erfindung betrifft ein Verfahren zum Erzeugen einer auf einem einen berührungsempfindlichen Bildschirm aufweisenden digitalen Endgerät lauffähigen Anwendung. Darüber hinaus betrifft die vorliegende Erfindung eine Vorrichtung zum The present invention relates to a method for generating a running on a touch-sensitive screen digital terminal running application. Moreover, the present invention relates to a device for
Erzeugen einer auf einem einen berührungsempfindlichen Bildschirm aufweisenden digitalen Endgerät lauffähigen Anwendung sowie den Code einer solchen Anwendung. Generating a running on a touch screen digital terminal running application and the code of such an application.
[0002] Aufgrund der wachsenden Verbreitung von Drahtlosnetzen sind heutzutage eine immer größer werdende Anzahl von Drahtlosgeräten in Benutzung. Zu diesen digitalen Geräten oder digitalen Endgeräten zählen Mobiltelefone, PDAs (Personal Digital Assistants) mit Fähigkeit zur Drahtloskommunikation, Zweiwege-Pager und dergleichen. Parallel zur wachsenden Verfügbarkeit von Drahtlosgeräten hat sich die Nützlichkeit von Software- Anwendungen erhöht, die auf solchen digitalen Geräten oder digitalen Endgeräten ausgeführt werden. Beispielsweise kann das Drahtlosgerät eine Anwendung enthalten, die einen Wetterbericht für eine Liste von bevorzugten Städten abruft, oder eine Anwendung, die es einem Benutzer ermöglicht, Lebensmittel einzukaufen. Diese Software-Anwendungen nutzen die Fähigkeit des Drahtlosnetzes zur Datenübertragung, um den Benutzern zeitnahe und nützliche Dienste verfügbar zu machen, oft zusätzlich zur Sprachkommunikation. Due to the growing prevalence of wireless networks nowadays an ever-increasing number of wireless devices are in use. These digital devices or digital terminals include mobile phones, Personal Digital Assistants (PDAs) capable of wireless communication, two-way pagers, and the like. As the availability of wireless devices has increased, the usefulness of software applications running on such digital devices or digital terminals has increased. For example, the wireless device may include an application that retrieves a weather report for a list of preferred cities, or an application that allows a user to purchase groceries. These software applications leverage the ability of the wireless data transmission network to provide users with timely and useful services, often in addition to voice communications.
Allerdings bleibt die Entwicklung von Software-Anwendungen angesichts einer Überfülle von unterschiedlichen Gerätetypen, angesichts der beschränkten Ressourcen von einigen digitalen Endgeräten und angesichts der Komplexität der Zustellung großer Datenmengen zu den digitalen Endgeräten eine schwierige und zeitaufwändige Aufgabe. However, the development of software applications remains a difficult and time consuming task given the plethora of different types of devices, the limited resources of some digital terminals and the complexity of delivering large amounts of data to the digital terminals.
[0003] , Gegenwärtig sind die digitalen Endgeräte so konfiguriert, dass sie über Internetbasierte Browser und/oder native Anwendungen mit Webdiensten kommunizieren. Die Browser haben den Vorteil, dass sie für den Betrieb auf einer plattformübergreifenden Basis für eine Vielzahl von unterschiedlichen digitalen Endgeräten eingerichtet werden können. Anwendungen für Browser sind effiziente Werkzeuge zum Gestalten plattformunabhängiger Anwendungen. Dementsprechend führen unterschiedliche Laufzeitumgebungen - unabhängig von der jeweiligen Plattform - dieselbe Anwendung aus.
[0004] Auf der anderen Seite werden native Anwendungen für eine spezielle Plattform von Drahtlosgeräten entwickelt, wodurch für eine Laufzeitumgebung, die auf dieser Plattform ausgeführt wird, ein relativ optimiertes Anwendungsprogramm ermöglicht wird. Eine plattformabhängige Anwendung führt jedoch zu mehreren Hindernissen, wozu gehört, dass mehrere Versionen derselben Anwendung entwickelt werden müssen. Außerdem benötigen Anwendungsentwickler Erfahrungen auf dem Gebiet von Programmiersprachen wie Java und C++, um derartige native Anwendungen erstellen zu können. [0003] Currently, the digital terminals are configured to communicate with web services via Internet-based browsers and / or native applications. The advantage of the browsers is that they can be set up to operate on a cross-platform basis for a variety of different digital terminals. Browser applications are efficient tools for designing platform-independent applications. Accordingly, different runtime environments - regardless of the platform - run the same application. On the other hand, native applications are being developed for a particular platform of wireless devices, allowing a relatively optimized application program for a runtime environment running on that platform. However, a platform-dependent application introduces several obstacles, including the need to develop multiple versions of the same application. In addition, application developers need programming languages such as Java and C ++ to build such native applications.
Offenbarung der Erfindung Disclosure of the invention
[0005] Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Vorrichtung zum Erzeugen einer auf einem einen berührungsempfindlichen Bildschirm aufweisenden digitalen Endgerät lauffähigen Anwendung zu schaffen bei dem zumindest einige der oben angeführten Nachteile gemildert sind oder beseitigt sind. The invention has for its object to provide a method and apparatus for generating a on a touch-sensitive screen having digital terminal running application in which at least some of the above-mentioned disadvantages are mitigated or eliminated.
[0006] Diese Aufgabe wird gelöst durch ein Verfahren zum Erzeugen einer auf einem einen berührungsempfindlichen Bildschirm aufweisenden digitalen Endgerät lauffähigen Anwendung, wobei ein Code der Anwendung zumindest teilweise von einem Servergerät auf das digitale Endgerät übertragen wird, wobei die Übertragung des Codes der Anwendung zumindest teilweise durch Benutzerinteraktion ausgelöst wird, wobei das Verfahren die Schritte umfasst: This object is achieved by a method for generating a running on a touch-sensitive screen digital terminal running application, wherein a code of the application is at least partially transmitted from a server device to the digital terminal, wherein the transmission of the code of the application at least partially triggered by user interaction, the method comprising the steps of:
- Erstellen eines für eine Mehrzahl von Typen des digitalen Endgeräts verwendbaren Modellcodes der Anwendung und Creating a model code of the application usable for a plurality of types of the digital terminal and
- Erzeugen des Codes der Anwendung basierend auf dem Modellcode. Generate the code of the application based on the model code.
[0007] Die erfindungsgemäße Vorrichtung hat den Vorteil, dass für eine Mehrzahl von verschiedenen Typen von digitalen Endgeräten (oder auch von verschiedenen Plattformen von digitalen Endgeräten; so zum Beispiel Endgeräte, die mittels eines Android- Betriebssystem betrieben werden oder die mittels eines Windows-Betriebssystem betrieben werden oder dergleichen) der Programmieraufwand zur Herstellung einer Anwendung jedenfalls erheblich dadurch reduziert werden kann, dass nicht für jeden Typ von digitalem Endgerät (bzw. für jede Plattform etwa von unterschiedlichen Betriebssystemen) eine komplett neue bzw. eigens erstelle Programmierung erforderlich ist, sondern dass zumindest Teile des erstellten Programcodes der Anwendung für mehrere Typen von digitalen The device according to the invention has the advantage that it can be used for a plurality of different types of digital terminals (or also from different platforms of digital terminals, for example terminals which are operated by means of an Android operating system or by means of a Windows operating system be operated or the like), the programming effort for the production of an application can be significantly reduced in any case that not for each type of digital device (or for each platform about different operating systems) a completely new or specially created programming is required, but that at least parts of the generated program code of the application for multiple types of digital
Endgeräten (bzw. für mehrere Plattformen) verwendbar sind. Hierbei wird gemäß der vorliegenden Erfindung ein "Modellcode" hergestellt, der jedenfalls dahingehend universell ist, dass jedenfalls ohne weitere menschliche Interaktion zur Codemanipulation eine
Anwendung bei mehreren Typen von digitalen Endgeräten möglich ist. Der für einen konkreten Typ von digitalem Endgerät (bzw. für ein konkretes digitales Endgerät) tatsächlich verwendete Programmcode der Anwendung wird im Rahmen der vorliegenden Erfindung als "Code der Anwendung" bezeichnet. Es ist gemäß der vorliegenden Erfindung nach einer ersten alternativen Ausführungsform möglich, dass dieser Code der Anwendung identisch oder quasiidentisch ist zum Modellcode. In diesem Fall weist der Code der Anwendung ggf. auch Codeteile auf, die bei dem konkreten digitalen Endgerät nicht verarbeitet wird oder werden kann. In diesem (ersten) Fall ist unter "Erzeugen des Codes der Anwendung basierend auf dem Modellcode" zu verstehen, dass im Wesentlichen eine Kopie des Terminals (or for multiple platforms) can be used. In this case, according to the present invention, a "model code" is produced, which in any case is universal in that, in any case, without further human interaction for code manipulation Application is possible with several types of digital terminals. The program code of the application actually used for a specific type of digital terminal (or for a specific digital terminal) is referred to in the context of the present invention as the "code of the application". It is possible according to the present invention according to a first alternative embodiment that this code of the application is identical or quasi-identical to the model code. In this case, the code of the application, if necessary, also code parts that is not processed in the specific digital device or can be. In this (first) case, "generating the code of the application based on the model code" means that essentially one copy of the
Modellcodes generiert oder erzeugt wird. Gemäß einer zweiten alternativen Model codes are generated or generated. According to a second alternative
Ausführungsform der vorliegenden Erfindung ist es jedoch auch möglich, dass der Code der Anwendung nicht identisch (und auch nicht quasiidentisch) ist zum Modellcode, sondern im Wesentlichen von jeden Code-Teilen befreit ist, die sich auf solche Typen von digitalen Endgeräte (bzw. Plattformen für solche digitale Endgeräte) beziehen, die nicht dem konkreten digitalen Endgerät entsprechen, für welches der "Code der Anwendung" basierend auf dem Modellcode erzeugt werden soll. In diesem Fall weist der Code der Anwendung entweder keine Codeteile auf, die bei dem konkreten digitalen Endgerät nicht verarbeitet werden oder werden können oder aber es weist der Code der Anwendung jedenfalls weniger Codeteile auf, die bei dem konkreten digitalen Endgerät nicht verarbeitet werden oder verarbeitet werden können. In diesem (zweiten) Fall ist unter "Erzeugen des Codes der Anwendung basierend auf dem Modellcode" zu verstehen, dass zumindest Teile des However, according to an embodiment of the present invention, it is also possible that the code of the application is not identical (and also not quasi-identical) to the model code, but is essentially freed from any code parts pertaining to such types of digital terminals (or platforms) for such digital terminals) that do not correspond to the particular digital terminal for which the "code of the application" is to be generated based on the model code. In this case, the code of the application either does not have any code parts which can not or will not be processed in the specific digital terminal, or at least the code of the application has fewer code parts which are not processed or processed in the particular digital terminal can. In this (second) case, "generating the code of the application based on the model code" means that at least parts of the
Programmcodes, die sich auf Typen von Endgeräten beziehen, die nicht dem konkreten Endgerät entsprechen, entfernt werden. Gemäß der vorliegenden Erfindung ist es Program codes that relate to types of terminals that do not correspond to the specific terminal to be removed. It is according to the present invention
beispielsweise vorgesehen, dass im Modellcode solche multiplattformfähigen Codeteile etwa in Form von bedingten Anweisungen (sog. IF-Anweisungen (bzw. "Falls-Anweisungen") oder sog. CASE-Anweisungen (bzw. sog. Fallunterscheidungen)) vorhanden sind. For example, it is provided that such multiplatform-capable code parts are present in the model code, for example in the form of conditional statements (so-called IF statements (or "case statements") or so-called CASE statements (or so-called case distinctions)).
[0008] Erfindungsgemäß ist es bevorzugt, dass der Modellcode für die Mehrzahl von Typen des digitalen Endgeräts plattformunabhängig ist. According to the invention it is preferred that the model code for the plurality of types of digital terminal is platform independent.
[0009] Erfindungsgemäß ist es ferner bevorzugt, dass der Code der Anwendung ein Hypertext Markup Language (HTML) Code ist. According to the invention it is further preferred that the code of the application is a hypertext markup language (HTML) code.
[0010] Besonders bevorzugt ist es ferner, wenn die Erstellung des für die Mehrzahl von Typen des digitalen Endgeräts verwendbaren Modellcodes der Anwendung ein It is further particularly preferred if the creation of the model code usable for the plurality of types of the digital terminal of the application
Entwicklungsgerät verwendet wird, welches keinen berührungsempfindlichen Bildschirm aufweist.
[0011] Erfindungsgemäß ist ferner auch bevorzugt, dass die Anwendung wenigstens eine erste mögliche Ansicht und eine zweite mögliche Ansicht aufweist, wobei die erste und zweite Ansicht unterschiedlichen Ansichtsmodi der Anwendung entsprechen, wobei die erste mögliche Ansicht mittels eines ersten einheitlichen Quellen-Anzeigers (URL, Uniform Developer is used, which has no touch-sensitive screen. According to the invention, it is further preferred that the application has at least a first possible view and a second possible view, wherein the first and second views correspond to different view modes of the application, wherein the first possible view by means of a first uniform source indicator (URL , Uniform
Ressource Locator) und wobei die zweite mögliche Ansicht mittels eines zweiten Resource Locator) and wherein the second possible view by means of a second
einheitlichen Quellen-Anzeigers (URL, Uniform Ressource Locator) referenziert wird. uniform source locator (URL, Uniform Resource Locator).
[0012] Hierdurch ist es erfindungsgemäß vorteilhaft möglich, dass in einfacher und in wiederholbarer Weise verschiedene Teile bzw. Ansichten (bzw. von Zuständen oder Betriebszuständen) der Anwendung wieder realisiert werden können. As a result, it is advantageously possible according to the invention that different parts or views (or of states or operating states) of the application can be realized again in a simple and repeatable manner.
[0013] Erfindungsgemäß ist es ferner ebenfalls bevorzugt vorgesehen, dass nach dem Start der Anwendung in Abhängigkeit der beim letztmaligen Verlassen der Anwendung dargestellten Ansicht direkt die erste oder zweite mögliche Ansicht dargestellt wird. According to the invention, it is also preferably provided that after the start of the application in dependence of the last time you exit the application displayed directly the first or second possible view is shown.
[0014] Die Erfindung bezieht sich daher auch auf eine Möglichkeit die komplexe The invention therefore also relates to a possibility complex
Navigation innerhalb einer mobilen Anwendung zu speichern um diese beim erneuten Start der Anwendung wiederherstellen zu können. Store navigation within a mobile application to be able to restore it when restarting the application.
[0015] Web-Anwendungen basieren heutzutage häufig aus einer einzigen Hypertext Markup Language (HTML)-Seite, welche interaktiv auf die Aktionen des Benutzers reagiert. Bekannt ist, dass man grundsätzlich die Navigation auch innerhalb dieser einzelnen Seite über die Location (Adressfeld) des Browsers bzw. der Browser-Komponente realisieren kann. Dies funktioniert über einen sogenannten Anker der am Ende, mittels eines„#"- Symbols, angefügt wird. Allerdings gibt es bis dato kein Konzept, den durchaus komplexen Zustand einer Anwendung dort abzulegen. Web applications today are often based on a single hypertext markup language (HTML) page that interactively responds to user actions. It is known that one can basically realize the navigation within this single page on the location (address field) of the browser or the browser component. This works via a so-called anchor, which is added at the end by means of a "#" symbol, although to date there is no concept of storing the quite complex state of an application there.
[0016] Das durch die vorliegende Erfindung vorgeschlagene Modell ist ein The model proposed by the present invention is a
Zusammenspiel von Navigation und Interface-Logik: Die sogennanten Ansichten oder "Views" (also den einzelnen Bereichen einer Anwendung) besitzen jeweils einen eindeutigen Namen. Jeder View kann eine Subview unterstützen (also z. B. ein Reiter-System innerhalb der„Seite"). Außerdem kann jede Ansicht einen Parameter erhalten also z. B. die eindeutige Kennung eines Benutzers, einer E-Mail, etc. Die Reduktion auf diese drei Informationen hat es möglich gemacht, ein einheitliches System zu realisieren, welches für nahezu alle aktuellen Smartphone-Applikationen genug Möglichkeiten bereitstellt, den aktuellen Zustand darzustellen. Interplay of navigation and interface logic: The so-called views or "views" (ie the individual areas of an application) each have a unique name. Each view can support a subview (for example, a tab system within the "page"), and each view can have a parameter, such as a user's unique ID, e-mail, etc. The reduction This information has made it possible to implement a uniform system that provides enough options for almost all current smartphone applications to represent the current state.
[0017] Im Folgenden wird beispielhaft aufgezeigt, wie diese drei Informationen zu einer eindeutigen Kennung zusammenzufügt werden können: The following is an example of how these three information can be combined to form a unique identifier:
Die Kennung sieht beispielsweise wie folgt aus:„viewld.subViewld:parameter".
Sowohl„subViewId" als als„parameter" sind optional. Diese Kennung selbst wird dann als Segment innerhalb einer Struktur benutzt. Innerhalb einer Anwendung wäre es z.B. denkbar, dass der Nutzer gerade aus seinem Postfach„Privat", die dritte E-Mail anschaut. In dem Fall könnte ein kompletter Navigationspfad wie folgt aussehen:„inbox:private/mail:3". Die For example, the identifier looks like this: "viewld.subViewld: parameter". Both "subViewId" and "parameter" are optional. This identifier itself is then used as a segment within a structure. Within an application, for example, it would be conceivable that the user is currently viewing the third e-mail from his personal mailbox, in which case a complete navigation path might look like this: "inbox: private / mail: 3". The
Trennung der einzelnen Kennungen geschieht über einen Schrägstrich. Hier werden die IDs der Views („inbox" und„mail") jeweils mit Parametern benutzt („private" und„3"). Separation of the individual identifiers occurs via a slash. Here, the IDs of the views ("inbox" and "mail") are each used with parameters ("private" and "3").
[0018] Diese Kennungs-Information zur genauen Bezeichnung einer gewählten Ansicht (und insbesondere derjenigen Ansicht, die die Anwendung hatte, bevor das digitale Endgerät ausgeschaltet wurde) wird an die eigentliche URL mittels eines sogenannten Ankers This identification information for the exact designation of a selected view (and in particular the view that the application had before the digital terminal was turned off) is sent to the actual URL by means of a so-called anchor
(beispielsweise mittels "#") angefügt. Also z.B. folgendermaßen: (for example, by "#") added. So, for example as follows:
"http://www.webmail.eom/#inbox:private/mail:3". "Http: //www.webmail.eom/#inbox: private / mail: 3".
Im Fall eines normalen Browsers kann der Benutzer z.B. einen Bookmark für die aktuelle Position in der Anwendung erstellen bzw. einen Link verschicken, welcher genau die richtige Position beim Empfänger wieder anzeigt. Er hat auch die Möglichkeit die URL entsprechend zu modifizieren und damit eine Navigation in der Anwendung zu erwirken. Die Ablage in der URL ist anderen Modellen vorzuziehen, da nur so vernünftig mit unterschiedlichen Browser- Reitern/-Fenstern umgegangen werden kann. Der Benutzer könnte also die Anwendung in zwei Browser-Fenstern unabhängig voneinander benutzen. In the case of a normal browser, the user may e.g. Create a bookmark for the current position in the application or send a link, which shows exactly the right position at the receiver again. He also has the opportunity to modify the URL accordingly and thus to obtain a navigation in the application. The filing in the URL is preferable to other models, since only so reasonable with different browser tabs / windows can be handled. The user could thus use the application independently in two browser windows.
[0019] Auch im Falle einer Web-Anwendung, die keine sichtbare Navigationsleiste für den Benutzer besitzt, kann man trotzdem mit diesem Verfahren arbeiten. Hier ist es besonders interessant den Zustand der Anwendung beim Start wieder exakt herzustellen. Hierzu wird der Pfad innerhalb der Anwendung im festen Speicher der Anwendung abgelegt und beim erneuten Start der Anwendung wieder ausgelesen. Even in the case of a web application that has no visible navigation bar for the user, you can still work with this method. Here it is particularly interesting to exactly restore the state of the application at the start. For this purpose, the path is stored within the application in the fixed memory of the application and read out again when the application is restarted.
[0020] Gemäß einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung ist es vorgesehen, dass während der Erstellung des für die Mehrzahl von Typen des digitalen Endgeräts verwendbaren Modellcodes der Anwendung eine Proxy-Einheit verwendet wird, wobei die Proxy-Einheit eine Zugangskontroll-Information (HTTP ACCESS CONTROL Header) in eine von einem externen Server empfangene Nachricht integriert. According to another preferred embodiment of the present invention, it is provided that a proxy unit is used during the creation of the model code of the application which can be used for the majority of types of the digital terminal, the proxy unit providing access control information (HTTP ACCESS CONTROL header) into a message received from an external server.
[0021] Hierdurch ist es vorteilhafterweise möglich, auch für die Situation von Cross- Domain Restriktionen eine Möglichkeit auf einem Desktop-System zu schaffen, um mobile Anwendungen direkt im Browser (des Desktop-Systems des Entwicklers) zu testen. As a result, it is advantageously possible, even for the situation of cross-domain restrictions, to create a possibility on a desktop system in order to test mobile applications directly in the browser (of the developer's desktop system).
[0022] Bei der Entwicklung von Web-Anwendungen (für digitale Endgeräte wie beispielsweise Smartphones) auf dem Desktop kann normalerweise nicht auf entfernt liegende Resourcen zugegriffen werden. Hier greift die so genannte Cross-Domain Policy,
die für typische Desktop-Entwicklungssysteme gängig sind. Dies geschieht hauptsächlich zum Schutz des klassischen Browsers vor der Ausführung von third-Party Code. Dieses sinnvolle Feature kann dem Entwickler allerdings im Weg stehen, wenn man mit einem Service interagiert, dem man vertraut. Innerhalb einer nativen Anwendung, die z.B. auf Basis von PhoneGap auf Smartphones verteilt wird, greifen die typischen Browser-Limitierungen nicht. Das Problem besteht hier vorrangig während der Entwicklung. Denn während die generierte Anwendung vollen Zugriff auf das Internet hat, gilt dies während der Entwicklung - soweit man den Browser des Desktop-Systems zum Testen nutzt - nicht. In the development of web applications (for digital terminals such as smartphones) on the desktop can not normally be accessed on remote resources. Here, the so-called cross-domain policy, which are common for typical desktop development systems. This is mainly done to protect the classic browser from running third-party code. However, this useful feature may be in the way of the developer when interacting with a service that you trust. Within a native application, which is distributed eg on the basis of PhoneGap on smartphones, the typical browser limitations do not apply. The problem here is primarily during development. Because while the generated application has full access to the Internet, this is not true during development - as far as the browser of the desktop system is used for testing.
[0023] Um die zum Testen notwendige Bereitstellung einer Kommunikationsmöglichkeit mit externen Diensten zu schaffen, ohne zusätzliche zu installierende Software auf dem Rechner des Anwendungsentwicklers zu installieren (da dies den initialen Aufwand wieder erhöhen würde; beispielsweise wäre es möglich, lokal (auf dem Entwicklungsgerät) einen HTTP-Server einzurichten und die Anwendung wie auch die Kommunikation über diesen HTTP-Server umzuleiten), macht sich das Verfahren gemäß der vorliegenden Erfindung eine Funktionalität in aktuellen Browsern zu Nutze, bei dem mit Hilfe von bestimmten HTTP- Headern ein Service-Provider seine Dienste für die Cross-Domain-Kommunikation freischalten kann. Da diese Freischaltungen häufig (und bei relevanten Servern) nicht vorgenommen werden (und auch in der Regel bei third-Party-Diensten nicht manipulierbar sind), wird gemäß der vorliegenden Erfindung beispielsweise ein generischer Proxy (als Proxy-Einheit) aufgesetzt (und beispielsweise für eine Mehrzahl von Entwicklungsplätzen zentral gehostet). Der generische Proxy (bzw. die Proxy-Einheit) tritt als Schnittstelle zur Kommunikation mit einem Dienst auf. Die Kommunikation wird immer automatisch über den Proxy (bzw. die Proxy-Einheit) geführt, sobald festgestellt wird, dass diese auf eine andere Domain zugreift. In der erstellten Anwendung wird also immer direkt kommuniziert und keine Last auf dem Proxy generiert. Der Proxy (bzw. die Proxy-Einheit) leitet alle Anfragen unverändert weiter, fügt aber in die jeweiligen Antworten die„HTTP access control"-Header ein, um dem Browser die Erlaubnis zu signalisieren, dass er diese Antwort entsprechend weiterverarbeiten kann. Hierdurch ist es vorteilhaft möglich, dass dieser zentrale Proxy (bzw. die Proxy-Einheit) allen Anwendungsentwicklers parallel zu Verfügung steht und nur einmal gewartet werden muss. Durch die Verankerung innerhalb des Framework-Codes ist die Umschaltung zwischen Proxy benutzen und direkt kommunizieren völlig transparent für den Anwendungsentwickler. Dieser muss außerdem auf dem eigenen Entwicklungs-Rechner keinen HTTP-Server einrichten und administrieren. Die Entwicklung einer mobilen To provide the testing capability necessary to provide communication with external services without having to install additional software to be installed on the application developer's computer (as this would increase the initial effort again, for example, it would be possible to locally (on the development device) setting up an HTTP server and redirecting the application as well as the communication via this HTTP server), the method according to the present invention utilizes functionality in current browsers, in which a service provider uses its own specific HTTP headers Unlock services for cross-domain communication. Since these releases often (and in relevant servers) are not made (and are usually not manipulated in third-party services), according to the present invention, for example, a generic proxy (as a proxy unit) set up (and for example a plurality of development sites are hosted centrally). The generic proxy (or proxy unit) acts as an interface to communicate with a service. Communication is always routed automatically through the proxy (or proxy unit) as soon as it is determined that it is accessing another domain. In the created application is thus always communicated directly and no load on the proxy generated. The proxy (or proxy unit) redirects all requests as it is, but inserts the "HTTP access control" header in each response to signal the browser permission to process that response accordingly It is advantageously possible that this central proxy (or the proxy unit) is available to all application developers in parallel and only needs to be serviced once.Through anchoring within the framework code, the switch between proxy use and direct communication is completely transparent to the user Application developer who also does not need to set up and administer an HTTP server on his own development computer
Anwendung auf Basis von Webtechnologien kann hiermit direkt im Desktop-Browser, der auf das lokale Dateisystem zugreift, passieren.
[0024] Erfindungsgemäß ist es insbesondere bevorzugt vorgesehen, dass während der Erstellung des für die Mehrzahl von Typen des digitalen Endgeräts verwendbaren Application based on web technologies can now be done directly in the desktop browser accessing the local file system. According to the invention, it is particularly preferably provided that during the creation of the usable for the plurality of types of the digital terminal
Modellcodes der Anwendung synthetische Bedienereignisse generiert werden, wobei solche synthetische Bedienereignisse einer Benutzung des berührungsempfindlichen Bildschirms entsprechen. Model codes of the application synthetic operating events are generated, wherein such synthetic operating events correspond to a use of the touch-sensitive screen.
[0025] In der Regel haben digitale Endgeräte als Smartphones einen In general, digital devices have as smartphones
berührungsempfindlichen Bildschirm, einen sog. Touch-Screen. In Analogie zur Verwendung von sog. Mouse-Events (bzw. Maus-Ereignissen) für die Programmierung von solchen Internetseiten oder Anwendungen, die vorrangig zur Bedienung mit mit einer Computer- Maus ausgestatteten Geräten vorgesehen sind, werden daher im Bereich von touch-sensitive screen, a so-called touch screen. By analogy with the use of so-called. Mouse events (or mouse events) for the programming of such Internet sites or applications, which are primarily intended for operation with equipped with a computer mouse devices are therefore in the range of
berührungsempfindlichen Bildschirmen sog. Touch-Events als Bedienereignisse verwendet. Klassische Desktop-Computer verfügen jedoch in der Regel nicht über eine solche touch-sensitive screens so-called touch events used as operating events. However, classic desktop computers usually do not have one
Eingabemöglichkeit. Gängiger Lösungsansatz ist es auf Anwendungsseite sowohl Mouse- Events als auch Touch-Events zu bearbeiten. Die Problematik, die hier existiert ist, dass die meisten Touch-Geräte auch Mouse-Events feuern und es hier zu Konflikten kommen kann, da evtl. beide Events feuern bzw. das Resultat dieser evtl. andere Events beeinflusst (Stichwort: preventDefault). Gemäß der vorliegenden Erfindung ist es vorgesehen, sog. synthetische Events bzw. synthetische Bedienereignisse zu benutzen, d.h. es werden synthetische Events gefeuert, um auf (Entwicklungs-)Geräten ohne Support für Touch- Events entsprechend über Mouse-Events solche Touch-Events zu simulieren. Input option. A common approach is to edit both mouse events and touch events on the application side. The problem that exists here is that most touch devices also fire mouse events and conflicts can occur here, as both events may fire or affect the outcome of these possibly other events (keyword: preventDefault). According to the present invention, it is contemplated to use so-called synthetic events, that is, synthetic events. Synthetic events are fired in order to simulate such touch events on (development) devices without support for touch events via mouse events.
Beispielsweise werden die nativ verfügbaren Touch-Events„touchstart",„touchmove" und „touchend" mit den Mouse-Events„mousedown",„mousemove" und„mouseup" emuliert. In diesem Bespiel darf etwa der„mousemove" nur beachtet werden, während der Mouse- Button gedrückt ist. Durch die Realisierung als Teil eines Frameworks, steht diese Emulation allen auf der Technologie basierenden Anwendungen zur Verfügung. Die Anwendungen können weiterhin normal mit Events arbeiten und müssen nicht über eine spezielle API gehen. Die Lösung ist damit für den Anwendungsentwickler transparent. Es wird eine Anwendung, die auf Touch-Geräten laufen soll, ausschließlich mit Touch-Events und kann diese bereits auf dem Desktop in einem normalen Browser testen. Dieses Vorgehen verbessert massiv die Produktivität, da die Anwendung nicht zwangsweise auf dem Endgerät bzw. im Simulator getestet werden muss. Das Testen im Desktop-Browser erlaubt einen Save-Reload Workflow und ist daher immer effizienter als der für Simulatoren/Emulatoren in der Regel benötigte Schritt der Compilation und des Deployments. For example, the natively-available touch events touchstart, touchmove, and touchend are emulated with the mouse events mousedown, mousemove, and mouseup. In this example, the "mousemove" can only be ignored while the mouse button is pressed in. Implemented as part of a framework, this emulation is available to all technology-based applications that can continue to work normally with events You do not have to go through a special API, so the solution is transparent to the application developer: An application that is supposed to run on touch devices will only be able to test with touch events and can already test it on the desktop in a normal browser dramatically improves productivity by eliminating the need to test the application on the end device or simulator Testing in the desktop browser allows a save reload workflow and is therefore always more efficient than the step typically required for simulators / emulators Compilation and deployment.
[0026] Die im mobilen Webbrowser zur Verfügung stehenden Touch-Events sind recht limitiert. Je nach digitalem Endgerät werden nur einfache Touchevents (touchstart, touchmove, touchend) unterstützt bzw. es werden auch Gesten (Pinch/Zoom) unterstützt
(beispielsweise bei iPhone). Alle anderen Touch-Events müssen mühevoll manuell in der Anwendung ausprogrammiert werden. The mobile web browser available touch events are quite limited. Depending on the digital device, only simple touch events (touchstart, touchmove, touchend) are supported or gestures (pinch / zoom) are supported (for example, on iPhone). All other touch events must be laboriously manually programmed in the application.
[0027] Durch die Nutzung von synthetischen Events ist ein Durchbruch in der Through the use of synthetic events is a breakthrough in the
Anwendungsentwicklung gelungen. Mithilfe der neuen Events„tap", zum Erkennen eines schnellen Tippens,„touchhold",„touchrelease" zur Kontrolle eines verweilenden Fingers und „swipe" zur Erkennung von Swipe-Bewegungen, stehen dem Anwendungsentwickler einfache Möglichkeiten zur Verfügung um gängige Finger-Aktionen in der Anwendungslogik zu nutzen. Application development succeeded. The new tap events, which include quick typing, touchhold, touch-release to control a lingering finger and swipe to detect swipe movements, give the application developer easy access to common finger actions to use the application logic.
[0028] Diese synthetisch gefeuerten Events sind von dem Anwendungsentwickler genauso so handhaben wie die nativen Events und stellen keinen Unterschied in der Verwendung dar. Dies macht also die Verwendung besonders einfach. These synthetic fired events are handled by the application developer as well as the native events and do not represent a difference in use. This makes the use particularly easy.
[0029] Erfindungsgemäß ist femer auch bevorzugt, dass die synthetischen According to the invention, it is also preferred that the synthetic
Bedienereignisse mittels einer Computermaus und mit einem Entwicklungsgerät generiert werden, welches keinen berührungsempfindlichen Bildschirm aufweist. Operating events are generated by means of a computer mouse and with a developing device, which has no touch-sensitive screen.
[0030] Besonders bevorzugt ist es ferner, wenn die synthetischen Bedienereignisse einem oder mehreren der folgenden einer Benutzung des berührungsempfindlichen It is further particularly preferred if the synthetic operating events one or more of the following use of the touch-sensitive
Bildschirms entsprechenden Bedienereignisse entsprechen: Screen corresponding operating events correspond to:
- Beginn der Berührung (touchstart), - start of touch (touchstart),
- Bewegung bei Berührung (touchmove), - touch movement (touchmove),
- Ende der Berührung (touchend), - end of touch (touchend),
- Annähern zweier Finger (pinch), - approaching two fingers (pinch),
- Spreizen zweier Finger (zoom), - spreading two fingers (zoom),
- schnelles Tippen (tap), - fast tap,
- verweilende Berührung (touchhold), - touchhold,
- Ende der verweilenden Berührung (touchrelease), - end of the lingering touch (touchrelease),
-- Wischbewegung (swipe). - swipe.
[0031] Ein weiterer Gegenstand der vorliegenden Erfindung bezieht sich auf eine Vorrichtung zum Erzeugen einer auf einem einen berührungsempfindlichen Bildschirm aufweisenden digitalen Endgerät lauffähigen Anwendung, wobei ein Code der Anwendung zumindest teilweise von einem Servergerät auf das digitale Endgerät übertragbar ist, wobei die Übertragung des Codes der Anwendung zumindest teilweise durch Benutzerinteraktion auslösbar ist, wobei die Vorrichtung derart konfiguriert ist, dass: Another object of the present invention relates to an apparatus for generating a running on a touch-sensitive screen digital terminal running application, wherein a code of the application is at least partially transferable from a server device to the digital terminal, wherein the transmission of the code the application is at least partially triggerable by user interaction, the device being configured such that:
- ein für eine Mehrzahl von Typen des digitalen Endgeräts verwendbarer Modellcode der
Anwendung erstellbar ist, und a model code usable for a plurality of types of the digital terminal Application is buildable, and
- der Code der Anwendung basierend auf dem Modellcode erzeugbar ist. - The code of the application based on the model code is generated.
[0032] Ein weiterer Gegenstand der vorliegenden Erfindung betrifft einen Code einer Anwendung, welcher gemäß einem erfindungsgemäßen Verfahren oder in einer Another object of the present invention relates to a code of an application, which according to a method of the invention or in a
erfindungsgemäßen Vorrichtung erzeugt ist. inventive device is generated.
[0033] Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und in der nachfolgenden Beschreibung näher erläutert. Die Figuren schränken den allgemeinen Erfindungsgedanken nicht ein. Embodiments of the invention are illustrated in the drawings and explained in more detail in the following description. The figures do not limit the general idea of the invention.
Kurze Beschreibung der Zeichnung Short description of the drawing
[0034] Figur 1 zeigt schematisch ein digitales Endgerät, welches einen FIG. 1 schematically shows a digital terminal which has a
berührungsempfindlichen Bildschirm aufweist, wobei eine Anwendung von einem touch-sensitive screen, wherein an application of a
Servergerät an das digitale Endgerät übertragen wird. Server device is transmitted to the digital terminal.
[0035] Figur 2 zeigt schematisch die Generierung eines Codes bzw. einer Mehrzahl von verschiedenen Codes für verschiedene Typen von digitalen Endgeräten, wobei die verschiedenen Codes auf einem Modellcode beruhen bzw. von diesem abgeleitet sind. Figure 2 shows schematically the generation of a code or a plurality of different codes for different types of digital terminals, wherein the different codes are based on a model code or derived therefrom.
Ausführungsform(en) der Erfindung Embodiment (s) of the invention
[0036] In Figur 1 ist schematisch ein digitales Endgerät 15 dargestellt, welches einen berührungsempfindlichen Bildschirm 15' aufweist, wobei eine Anwendung 20 von einem Servergerät 10 an das digitale Endgerät 15 übertragen wird. Nach der Übertragung der Anwendung 20 steht deren Funktionalität am bzw. auf dem digitalen Endgerät 15 zur Verfügung. Die Übertragung wird bevorzugt mittels einer Funkschnittstelle durchgeführt, d.h. das digitale Endgerät 15 weist eine Funkschnittstelle auf und das Servergerät 10 weist ebenfalls eine Funkschnittstelle auf bzw. ist (zumindest indirekt) mit einer Funkschnittstelle verbunden, beispielsweise über eine Basisstationseinheit eines Mobilfunknetzes oder auch über eine drahtlose Netzwerkanbindung (WLAN-Verbindung). Bei dem Servergerät 10 kann es sich erfindungsgemäß entweder um einen zentralen Server handeln (beispielsweise ein zentraler Server eines Herstellers des digitalen EndgerätesDies wird beispielsweise dadurch einem Benutzer sichtbar gemacht, dass eine die Anwendung versinnbildlichende Darstellung
(ein sog. "Icon") auf dem berührungsempfindlichen Bildschirm 15' dargestellt wird bzw. dargestellt werden kann. In Figure 1, a digital terminal 15 is shown schematically, which has a touch-sensitive screen 15 ', wherein an application 20 is transmitted from a server device 10 to the digital terminal 15. After the transfer of the application 20, its functionality is available on or on the digital terminal 15. The transmission is preferably carried out by means of a radio interface, ie the digital terminal 15 has a radio interface and the server device 10 also has a radio interface or is (at least indirectly) connected to a radio interface, for example via a base station unit of a mobile network or via a wireless Network connection (WLAN connection). According to the invention, the server device 10 can either be a central server (for example a central server of a manufacturer of the digital terminal. This is made visible to a user, for example, by a representation representing the application (a so-called "icon") is displayed on the touch-sensitive screen 15 'or can be displayed.
[0037] In Figur 2 ist schematisch die Generierung eines Codes 31 bzw. einer Mehrzahl von verschiedenen Codes 31 , 32, 33 für verschiedene Typen von digitalen Endgeräten 15 dargestellt, wobei die verschiedenen Codes 31 , 32, 33 auf einem Modellcode 30 beruhen bzw. von diesem abgeleitet sind. FIG. 2 schematically shows the generation of a code 31 or a plurality of different codes 31, 32, 33 for different types of digital terminals 15, wherein the various codes 31, 32, 33 are based on a model code 30 or derived from this.
[0038] Gemäß der vorliegenden Erfindung wird die Erstellung von Anwendungen (sog. "Apps", d.h. von Anwendungen bzw. "applications") für mobile digitale Endgeräte erheblich erleichtert und vereinfacht, so dass die Bereitstellung solcher Anwendungen schneller erfolgen kann. Dies wird erfindungsgemäß dadurch realisiert, dass der Modellcode 30 bevorzugt in einer Sprache geschrieben wird, die alle Typen von solchen mobilen digitalen Endgeräten verarbeiten können. Wegen der verschiedenen, zum Teil sehr unterschiedlichen Betriebssystemen, mit denen solche digitalen Endgeräte betrieben werden (wie According to the present invention, the creation of applications (so-called "apps") of mobile digital terminals is greatly facilitated and simplified so that the provision of such applications can be made faster. This is inventively realized in that the model code 30 is preferably written in a language that can handle all types of such mobile digital terminals. Because of the different, sometimes very different operating systems, with which such digital terminals are operated (such
beispielsweise Android, eine mobile Variante von Windows, das Betriebssystem des iPhone bzw. des iPad, etc.), kommt als gemeinsame Sprache im wesentlichen Hypertext Markup Language (HTML) und/oder JAVA Script in Frage.
For example, Android, a mobile version of Windows, the operating system of the iPhone or the iPad, etc.) comes as a common language essentially Hypertext Markup Language (HTML) and / or JAVA Script in question.