<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Model-Driven Cross-Platform Apps: Towards Business Practicability</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tim A. Majchrzak</string-name>
          <email>tima@ercis.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Ernsting</string-name>
          <email>jan.ernsting@ercis.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Herbert Kuchen</string-name>
          <email>kuchen@ercis.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ERCIS, University of Agder</institution>
          ,
          <addr-line>Kristiansand</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ERCIS, University of Munster</institution>
          ,
          <addr-line>Munster</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Due to the incompatibility of mobile device platforms such as Android and iOS, apps have to be developed separately for each target platform. Cross-platform development approaches based on Web technology have signi cantly improved over the last years. However, since they do not provide native apps, these frameworks are not feasible for all kinds of business apps. Moreover, the way apps are developed is cumbersome. Advanced cross-platform approaches such as MD2, which is based on model-driven development (MDSD) techniques, are a much more powerful yet less mature choice. We introduce MD2 as one solution to ful ll typical requirements of business apps. Moreover, we highlight a businessoriented enhancement that further increases its business practicability.</p>
      </abstract>
      <kwd-group>
        <kwd>Cross-platform</kwd>
        <kwd>MDSD</kwd>
        <kwd>app</kwd>
        <kwd>business app</kwd>
        <kwd>mobile</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Businesses increasingly embrace mobile computing. Applications for mobile
devices (apps) such as smartphones and tablets are not only developed for sale or
to directly earn money with them (e.g. by placing advertisements in them). Rather,
enterprises have identi ed usage scenarios in internal utilization by employees,
eld service, sales, and customer relationship management (CRM) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Besides
some other topics such as security [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and testing [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], cross-platform development
is a major concern [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        The need for cross-platform development approaches arises from the
incompatibility of today's platforms for mobile devices. With Apple's iOS, Google's
Android, Microsoft's Windows Phone, and RIM's Blackberry (cf. e.g. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) there
are at least four major platforms that need to be supported in order to reach most
potential users of an app. Each platform has an ecosystem of its own and di ers
with regard to programming language, libraries, and usage of device-speci c
hardware { to name just a few factors. Developing separately for each platform
currently is the choice; it is an error-prone and extremely ine cient procedure
which becomes particularly frustrating when updating existing apps.
      </p>
      <p>
        Based on the proliferation of adequate frameworks [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], mobile Webapps have
become very popular. Cross-platform approaches based on Web technology such
as Apache Cordova [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] (a.k.a. PhoneGap [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]) are suitable for many app projects.
They are rather easy to learn, o er good community support and rich literature,
and { most notably { can be deployed as real apps. This also allows o ering
them in app stores and to virtually use them in any way native apps could be
used. However, apps based on Web technology are not feasible in all cases [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        When working with Web apps, their origin in Web technology cannot be fully
neglected. This has been called an uncanny valley [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]: a typical Webapps' look
&amp; feel is almost real but the app is slightly less responsive. Moreover, even with
HTML5 [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] not all device-speci c features are supported. Connecting to
serverbackends, as required for most business apps [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], is cumbersome and typically
ine cient. Finally, apps are developed with a very low level of abstraction.
Domain-speci c knowledge has to be communicated to developers instead of
being built directly into an app; existing models e.g. of business processes or
information systems cannot be used even if they would be applicable to the
scenario that an app is intended for.
      </p>
      <p>
        To close the above sketched gap, we have compiled requirements for typical
apps used by businesses for purposes di erent to sales of these apps. To enable
e ective cross-platform development of business apps, our group has developed a
prototype for model-driven development (MDSD [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] of apps).
      </p>
      <p>This paper is structured as follows. Section 2 discusses di erent approaches
that can be used for cross-platform development. MD2, our approach to develop
cross-platform apps, is introduced in Section 3. Section 4 characterizes the
particularities of a business-oriented enhancement for MD2. In Section 5, we
draw a conclusion and sketch the path for MD2.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Existing Approaches</title>
      <p>
        Cross-platform app development approaches have been discussed as early as 2009.
Miravet et al. present their framework DIMAG, which is based on State Chart
eXtensible Markup Language (SCXML) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Even what is considered a
crossplatform approach might vary { practitioners sometimes employ loser de nitions
(cf. the comparison by [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]). Apache Cordova [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] utilizes Web technology but also
supports accessing native device features. Yet, its Web foundations negatively
impact aspects such as app responsiveness. Other approaches build upon a
selfcontained runtime operating on custom scripting languages such as Titanium [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Cabana [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], AXIOM [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], and applause [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] are generative approaches. Cabana
focuses on app development in the context of higher education. It utilizes a GUI
to manipulate graphic models of app representations and allows to implement
customized code. However, interactions with backends are neglected and using
other platforms for achieving this is advised (cf. [8, p. 533f.]). Cabana apparently
has been discontinued [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. AXIOM takes a technical stance as it features aspects
of UML and uses the programming language Groovy [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Moreover, it does
not fully automate intermediate steps of code generation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. applause is most
similar to MD2: it provides a DSL, too. Yet, it is mostly restricted to displaying
information and does not provide a DSL tailored to describing business apps.
      </p>
      <p>Cross-Platform Development with MD2
3.1 Introductory Example
A corporation has a customer relationship management (CRM) system that
it wants to provide access to its sales representatives so that they can record
prospective customers as part of their acquisition process through their mobile
devices. However, the CRM does not support mobile devices but o ers an
application programming interface (API) for third party applications. In addition,
the corporation has no prior knowledge of mobile app development and wants
to use MD2 to integrate its CRM and the mobile apps that are to be created.
The scope of the example is limited to keep it brief: it will exclusively focus on
recording prospective customers through mobile apps.</p>
      <p>We now successively introduce MD2's architecture, features, and domain
speci c language.
3.2</p>
      <p>Architecture and Features of MD2
Using the textual MD2-DSL the corporation de nes a model. From that MD2
model the artifacts in the shaded area of Figure 1 are generated. In fact, these
generated artifacts represent executable code for the mobile apps as well as the
backend and expose the following properties:
{ Mobile apps are automatically linked to the backend.
{ Generated MD2 backend already constitutes a fully Java Enterprise Edition
(JEE) compliant application container including an entity model that can be
persisted through Java's Persistence API (JPA).
{ Developers only implement the \glue code" in the generated MD2 backend
to link it to the corporation's CRM API (corresponds to the link from MD2
to the CRM in Figure 1). This typically is a straightforward task.</p>
      <sec id="sec-2-1">
        <title>MD2 model</title>
        <p>Android app</p>
        <p>
          iOS app
A MD2-DSL model is structured according to the well-known
model-viewcontroller pattern [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Thus, it consists of three parts specifying the model,
view, and controller component of an app. In our example, the model (see
Listing 1.1) de nes just a single entity type Contact (with rst name, surname, etc.)
and an enumeration type AcquisitionState.
        </p>
        <p>As depicted in Listing 1.2, the corresponding view rst xes a layout. Here,
FlowLayout has been chosen, which displays the di erent widgets from top to
bottom and from left to right on the screen. The view component addContactView
displays a contact and a button Add. Here, the layout of a contact is automatically
inferred from the structure of the results provided by a content provider, namely
contactContentProvider. This content provider is de ned in the controller part
of the model (see Listing 1.3 { package de nitions in this and all following listings
have been stripped for brevity). As can be guessed from its name, this content
provider will provide a contact. Thus, text elds for rst name, surname, and so
on as well as corresponding labels will be displayed. The semantics of the button
Add will be determined in the controller component explained below. In Figure 2,
the view that is generated from the view de nition is shown.</p>
        <p>1 FlowLayoutPane addContactView ( v er ti ca l ) f
32 AuctoonGteennetrPartoorvidaeurto GcoenntearcattCoronftentProvider
4
5 Bgutton addButton ( "Add" )
6 g</p>
      </sec>
      <sec id="sec-2-2">
        <title>Listing 1.2. MD2 view de nition</title>
        <p>Fig. 2. Generated Android view</p>
        <p>The corresponding controller component (see Listing 1.3) rst speci es some
meta-information (such as appVersion and modelVersion). Moreover, it
determines the initial view component of the app (here: addContactView) and the
action, which should be executed when the app is started (here: startUpAction).
Then, it de nes content providers and actions, which are executed when certain
events are observed. A content provider can be e.g. located on a server. In our
example, the content provider contactContentProvider is located on the server
with URI http://md2.crm.corp.com/. Moreover, the initial startUpAction
binds addAction to the onTouch event of the button addButton occurring in the
addContactView described above. Thus, if this button on the screen is touched,
the addAction will be executed. As shown in Listing 1.3, the addAction will
cause the content of the text elds corresponding to the displayed contact to be
stored by the content provider contactContentProvider. Thus, the inputs will
be synchronized with the contents of the corresponding contact entity.
MD2 is an academic prototype despite the cooperation with practitioners and
its application in rst practical projects. Thus, it poses some limitations. Some
of these are inherent to the approach of using MDSD. Most, however, can be
considered as work-in-progress boundaries that can be overcome in the future.</p>
        <p>A detailed evaluation of MD2 has not yet been done. Our approach has been
re ned and internally evaluated several times but no eld study, detailed analysis,
or competitive analysis has been conducted.</p>
        <p>MD2 is no \one-size- ts-all" approach. MDSD for apps most likely will never
be suitable in some scenarios (e.g. apps that render their graphics on-the- y).
Nevertheless, you could consider MD2 as \one-DSL- ts-most-cases".</p>
        <p>
          While it might be undesirable to add custom code on the frontend (i.e. the app
{ the MDSD approach would become blurred), it would be helpful to have improved
support for backend customizations. Possibly suitable approaches discussed in
the literature are the generation gap pattern [11, pp. 571 .], protected regions
[25, p. 29], and dependency injection [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ].
        </p>
        <p>
          Testing (and checking) MD2 should be signi cantly easier and at the same
time very powerful since a model can be used as the basis of testing (cf. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]).
Nevertheless, we have not yet addressed testing explicitly.
        </p>
        <p>As a nal remark, there are no speci c security features built into MD2. Due
to the DSL, it is hardly possible to use MD2 maliciously anyway and business
logic typically resides on the backend. With an extended evaluation by businesses,
scenarios might arise that require additional security features that we did not
yet consider. However, extending MD2 in such cases should be hassle-free.
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Business-oriented Enhancement</title>
      <p>While the core of MD2 has been described above, our framework o ers additional
features. In the following, support of multi-valued elements is described with
special focus on their business-orientation.</p>
      <p>When considering relationships between entities, two maximum cardinalities
come to mind: single and multiple. Relationships with at most a single entity
on the referenced side can already be de ned through MD2 models (e.g. one
customer ! one address). This did, so far, not hold true for relationships with
multiple entities on the referenced side (e.g. one customer ! many addresses). At
rst, multi-valued elements in MD2 were implemented only to a certain degree.
In fact, they were supported by the content providers but not on the view or
controller level. Our recent work on MD2 tackled this shortcoming and re ned it
to provide support for multi-valued elements.</p>
      <p>Regarding our previous example, sales representatives need to get access
to customer records as well as previous interactions. For that, the entity type
Contact in Listing 1.4 is augmented with a list of interactions as denoted by
the array-like syntax. In addition, the model is extended with a new entity type
Interaction (with interaction date, occasion, etc.).</p>
      <p>To display customer details and interactions, view and controller de nitions
require changes, too. Within the contactDetailView a List element is used to
de ne a list view of customer interactions (see Listing 1.5). As de ned by the
itemtext value, the list view displays the occasion for each associated customer
interaction. The controller de nition is omitted here but is augmented to bind
actions and data accordingly.</p>
      <p>1 entity Contact f
2 . . .
3 i n t e r a c t i o n s : Interaction [ ]
4 g
5
6 entity
7 i n t e r aI ncttieornadcattioen : fdate
8 o c c a s i o n : string
9 . . .
10 g</p>
      <p>Listing 1.4. Augmented MD2 model</p>
      <p>Summing up, multi-valued elements might be omitted at rst but are needed
to address functional requirements typically found in business apps. We have
made a suggestion how to cope with multi-valued elements in domain-speci c
languages for app development such as the one of MD2.</p>
      <p>As an interesting remark, the implementation of multi-valued elements in the
generators for Android and iOS showed signi cant di erences. While details are
not within the scope of this paper, it is a good example for di erences between
the platforms that approaches, which provide native code, must overcome. At the
same time, developers are relieved from understanding how (and why) similar
concepts are treated di erent on distinct platforms.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>MD2-DSL was developed using a prototype based approach (from reference
prototypes to a DSL). Beginning with a proof of concept, some design decisions
regarding the language were not carried out in a consistent fashion. For example,
we observed varying levels of abstraction regarding UI widgets. Considering the
development of a DSL not as a serial but as a continuous process, these variations
are to be aligned to o er more consistent DSL semantics. Thus, the DSL is a
main concern of future work.</p>
      <p>Due to the complex nature of MDSD, testing of MD2's components
(preprocessors, generators, etc.) was neglected so far. On a more user-centric level,
testing of MD2 apps could also be relevant for companies but also for a broader
non-MD2 related audience as well. Improving testability for MD2 also allows
providing stable artifacts (i.e. development tools, plugins, etc.) and thus improving
accessibility of the framework for novices. Given a test suite, reproducible builds
of the artifacts would further improve accessibility to MD2. As a consequence,
testing is the second we will address.</p>
      <p>Even though native code for the two most common platforms is generated,
industry partners expressed interest in generating code for other platforms, be it
their own or another one (also cf. with the preceding section). To support custom
generators, MD2 needs to be modi ed in certain aspects. These modi cations
and the provision of additional generators are the third topic of future work.</p>
      <p>Despite the merits of MDSD in app development, it is impossible to forecast
whether it will become a dominating technology and the base of future app
development. There is plenty of future work. Mobile computing and app development
in particular will remain a challenging yet very exiting eld of research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Apache</given-names>
            <surname>Cordova</surname>
          </string-name>
          (
          <year>2014</year>
          ), http://cordova.apache.org/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Appcelerator</surname>
          </string-name>
          (
          <year>2014</year>
          ), http://www.appcelerator.com/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>applause</surname>
          </string-name>
          (
          <year>2014</year>
          ), https://github.com/applause/
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Baier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katoen</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          : Principles of Model Checking. The MIT Press (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Buschmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meunier</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rohnert</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sommerlad</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stal</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Pattern-oriented Software Architecture: A System of Patterns</article-title>
          . Wiley, New York, NY, USA (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Charland</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leroux</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Mobile application development: web vs</article-title>
          .
          <source>native. Commun. ACM</source>
          <volume>54</volume>
          ,
          <issue>49</issue>
          {
          <fpage>53</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cowart</surname>
          </string-name>
          , J.:
          <article-title>\Pros and cons of the top 5 cross-platform tools"</article-title>
          , http://www.developereconomics.
          <article-title>com/pros-cons-top-5-cross-platform-tools/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dickson</surname>
            ,
            <given-names>P.E.</given-names>
          </string-name>
          :
          <article-title>Cabana: a cross-platform mobile development system</article-title>
          .
          <source>In: Proc. 43rd SIGCSE</source>
          . pp.
          <volume>529</volume>
          {
          <fpage>534</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Dye</surname>
            ,
            <given-names>S.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scarfone</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>A standard for developing secure mobile applications</article-title>
          .
          <source>Comput. Stand. Interfaces</source>
          <volume>36</volume>
          (
          <issue>3</issue>
          ),
          <volume>524</volume>
          {530 (Mar
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>CrossPlatformMobile</surname>
          </string-name>
          (
          <year>2011</year>
          ), http:// martinfowler.com/bliki/CrossPlatformMobile.html
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Domain-Speci c Languages</surname>
          </string-name>
          .
          <string-name>
            <surname>Addison-Wesley Pearson Education</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Gartner Press Release (
          <year>2012</year>
          ), http://www.gartner.com/it/page.jsp?id=
          <fpage>1924314</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Groovy</surname>
          </string-name>
          (
          <year>2014</year>
          ), http://groovy.codehaus.org/
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Heitkotter, H.,
          <string-name>
            <surname>Hanschke</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          :
          <article-title>Evaluating cross-platform development approaches for mobile applications</article-title>
          .
          <source>In: LNBIP</source>
          , vol.
          <volume>140</volume>
          , pp.
          <volume>120</volume>
          {
          <fpage>138</fpage>
          . Springer (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Heitkotter, H.,
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuchen</surname>
          </string-name>
          , H.:
          <article-title>Cross-platform model-driven development of mobile applications with MD2</article-title>
          .
          <source>In: Proc. SAC '13</source>
          . pp.
          <volume>526</volume>
          {
          <fpage>533</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. Heitkotter, H.,
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          , Wol gang, U.,
          <string-name>
            <surname>Kuchen</surname>
          </string-name>
          , H.:
          <article-title>Business Apps: Grundlagen und Status quo</article-title>
          . No. 4 in
          <string-name>
            <given-names>Working</given-names>
            <surname>Papers</surname>
          </string-name>
          ,
          <string-name>
            <surname>F</surname>
          </string-name>
          <article-title>orderkreis der Angewandten Informatik an der WWU Munster</article-title>
          <string-name>
            <surname>e.V.</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Heitkotter, H.,
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruland</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Evaluating frameworks for creating mobile Web apps</article-title>
          .
          <source>In: Proc. 9th WEBIST 2013</source>
          . pp.
          <volume>209</volume>
          {
          <fpage>221</fpage>
          .
          <string-name>
            <surname>SciTePress</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>HTML5</surname>
          </string-name>
          (
          <year>2014</year>
          ), http://www.w3.org/TR/html5/
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>AXIOM: A model-driven approach to cross-platform application development</article-title>
          .
          <source>In: Proc. 7th ICSOFT</source>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          , Heitkotter, H.:
          <article-title>Development of mobile applications in regional companies: Status quo and best practices</article-title>
          .
          <source>In: Proc. 9th WEBIST</source>
          . pp.
          <volume>335</volume>
          {
          <fpage>346</fpage>
          .
          <string-name>
            <surname>SciTePress</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Miravet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mar n</surname>
          </string-name>
          , I.,
          <string-name>
            <surname>Ort n</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>Rionda</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>DIMAG: A framework for automatic generation of mobile applications for multiple platforms</article-title>
          .
          <source>In: Proc. Mobility '09</source>
          . pp.
          <volume>23</volume>
          :
          <issue>1</issue>
          {
          <issue>23</issue>
          :
          <article-title>8</article-title>
          . ACM, New York, NY, USA (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>PhoneGap</surname>
          </string-name>
          (
          <year>2014</year>
          ), http://phonegap.com/
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Prasanna</surname>
            ,
            <given-names>D.: Dependency</given-names>
          </string-name>
          <string-name>
            <surname>Injection. Manning Pub</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Schulte</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majchrzak</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          :
          <article-title>Context-dependent testing of apps</article-title>
          .
          <source>Testing</source>
          Experience pp.
          <volume>66</volume>
          {
          <issue>70</issue>
          (
          <year>September 2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Stahl</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Volter, M.:
          <article-title>Model-driven software development</article-title>
          .
          <source>Wiley</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26. \
          <article-title>Twitter acquires team behind visual app creation tool cabana"</article-title>
          , http://tnw.to/e67X
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>