Towards end-user development of REST client applications on smartphones

Towards end-user development of REST client applications on smartphones

Computer Standards & Interfaces 44 (2016) 205–219 Contents lists available at ScienceDirect Computer Standards & Interfaces journal homepage: www.el...

3MB Sizes 0 Downloads 40 Views

Computer Standards & Interfaces 44 (2016) 205–219

Contents lists available at ScienceDirect

Computer Standards & Interfaces journal homepage: www.elsevier.com/locate/csi

Towards end-user development of REST client applications on smartphones Gebremariam Mesfin a, Tor-Morten Grønli b, Dida Midekso a, Gheorghita Ghinea b,c,⁎ a b c

Addis Ababa University, Addis Ababa, Ethiopia Westerdals Oslo ACT, Faculty of Technology, Oslo, Norway Brunel University, London, UK

a r t i c l e

i n f o

Article history: Received 12 December 2014 Received in revised form 18 May 2015 Accepted 5 August 2015 Available online 4 September 2015 Keywords: REST service Usability Service composition Smartphone Cross-platform

a b s t r a c t HTML5 can be used to develop client applications by composing REST web services within the context of Web 2.0. However, the possibility of implementing cross-platform smartphone applications with REST services needs to be studied. Accordingly, we developed a REST-based cross-platform application with PhoneGap. The application was deployed on the Android, Windows Phone, and iOS platforms; subsequently we evaluated its usability. We observed that REST-based cross-platform smartphone applications can be implemented with HTML5 and PhoneGap, which can be scaled-up into a REST service composition tool. Moreover, the application’s usability remains unaffected on the native platforms and adaptation required only minimal effort. © 2015 Elsevier B.V. All rights reserved.

1. Introduction Smartphones play a very important role in life, being used in education, healthcare, and business, to name but a few application areas. Smartphones may be described as mobile phones with increased capabilities, such as touch screen, intelligence and alertness. For the purpose of this study, we consider smartphones to boast features as described in [5]; hence we define smartphones as mobile phones that are capable of accessing the Internet and of running a variety of mobile operating systems such as Google's Android, Microsoft's Windows Phone, and Apple's iOS. On top of the operating system, smartphones are equipped with software development kits (SDKs) that enhance the characteristics of smartphone application software and configurations such as reusability, and interoperability. Smartphone applications themselves can broadly be categorized into native and cross-platform based on the software development environments they are produced from. Native applications belong to one category of smartphone applications that are written and developed for a specific operating system. They have unhindered access to device hardware and support all user interface and interactions available in the respective mobile operating environment [29].

⁎ Corresponding author at: Dept. of Computer Science, Brunel University, Kingston Lane, UB8 3PH, UK. E-mail addresses: mesfi[email protected] (G. Mesfin), [email protected] (T.-M. Grønli), [email protected] (D. Midekso), [email protected] (G. Ghinea).

http://dx.doi.org/10.1016/j.csi.2015.08.004 0920-5489/© 2015 Elsevier B.V. All rights reserved.

Cross-platform applications, on the other hand, can be dedicated mobile web applications, generic mobile web applications (also called mobile websites), and hybrid applications [29]. In this study, by cross-platform we understand those dedicated mobile web applications which are designed to mimic the native applications of the host operating system but actually execute on a web browser. Such applications are implemented based on a web browser, using fundamental web technologies — HTML5, JavaScript, and Cascading Style Sheets (CSS). Cross-platform smartphone applications can also be REST-based applications implemented by composing (mashing-up) REST web services. The REST web service belongs to the family of service-oriented architecture (SOA) implementation technologies. It is a client–server architecture designed to make HTTP-based stateless communication between the components of a composite application using URIs [37]. In terms of productivity and time to market, cross-platform smartphone applications are preferred to native ones. However, cross-platform smartphone applications are challenged by limitations in the user experience when deployed on native platforms [29]. Usability is defined in [21] as the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use. Evaluating the usability of REST-based cross-platform smartphone applications is also of paramount importance. Accordingly, in this paper we evaluate the usability of REST-based cross-platform smartphone applications on their respective deployment operating platforms, which is an extension of our previous work [15].

206

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

The paper is structured as follows. Cross-platform smartphone application development, REST-based application development, and issues related to usability oriented implementations with HTML5 are discussed in Sections 2, 3 and 4 respectively. A concrete comparison of usability of a REST-based cross-platform application on different platforms is presented in Section 5. In Section 6 we discuss our findings; finally, we draw our conclusions in Section 7. 2. Cross-platform smartphone applications Smartphone operating systems are rich in libraries and built-in features. However, they still have to match and create a consistently high user experience, irrespective of the fact that their basic architecture and support of programming languages varies. Studies such as that of Henning et al. [18] make the point that the proliferation of a fragmented smartphone market with multiple operating platforms makes the development of native mobile applications a challenging and costly endeavor. To improve this, the literature and industry envision crossplatform development approaches. The essence of cross-platform environments is a subset of the software development environments aiming at building platform independent applications. Cross-platform application development environments work based on the general principle of “write once, and run everywhere”. In the smartphone application development, Dalmasso et al. [42] described the general architecture available to cross-platform mobile application development tools. However, as pointed out by Henning et al. [18], the diverse hardware and software platforms inevitably make portability a hassle for mobile application developers. Portability primarily depends on runtime support and the feasibility of achieving identical look-and-feel and functionality across platforms. There are several attempts of implementations of cross-platform smartphone application development environments. For example, Java ME supports cross-platform development through configurations and profiles. Damianos and Economou [14] describe a configuration as the minimum Java VM features and library set for devices with similar processing and memory limitations, user interface requirements, and connection capabilities, while a profile comprises libraries specialized in the unique characteristics of a particular device class. In related work, Grønli et al. [40] investigated the strengths and weaknesses of the mobile application development ecosystem and pointed out that developer support has improved the performance of developer tools which provide a higher level abstraction of performancecritical third party libraries. However, cross-platform development environments are being challenged by the different implementations, immature platform support, as well as by the variety of devices and browsers; in contrast, platform-specific ones like Windows Phone, iOS, and Android benefit from being tightly integrated with their respective operating system. Moreover, the work of Grønli et al. [40] showed that there is better integration between the development environment and deployment devices on the platform-specific ones than that of the cross-platform environment. This indicates that the cross-platform application development is in its early stages. Studies [6,14,18] showed that cross-platform development tools are flourishing; they aim at addressing user experience, stability of framework, ease of updating, cost of development for multiple platforms, and the time to market of an application. When realized, the interests of many developers would be satisfied in terms of releasing applications for major mobile platforms and provide a consistent user experience across the platforms with minimal or no change to the original code. PhoneGap, Rhomobile, JQuery Mobile, and Xamarin are some of the cross-platform mobile application development tools available. In the work described in this paper, we employ PhoneGap because of its popularity [6,35]. PhoneGap is an open source cross-platform smartphone application development tool developed by Adobe Systems Inc. under the Apache license. It provides a toolbox for building native mobile applications using only HTML5, JavaScript and CSS [6,

35]. PhoneGap is quite popular among users mainly because of its flexibility, straightforward architecture and ease of use. Its architecture is mainly composed of the Web application, PhoneGap, and the operating system, along with native Application Programming Interfaces (APIs — Fig. 1). PhoneGap is a “wrapper” that allows developers to enclose applications written in known programming languages into native applications [35]. That is, applications developed using PhoneGap are neither purely web-based nor purely native and thus some layout rendering is done via web-view instead of the native language of the operating system; consequently there is a lack of support of HTML in some functions. PhoneGap does not provide its own IDE (integrated development environment) to develop applications, but developers have to write the source code with an IDE and port their code into other IDEs such as the Eclipse for Android and Xcode for iOS. Thus far, PhoneGap permits the creation of applications for Windows Phone, Android, iOS, Bada, Symbian, and the WebOS operating systems. In general, PhoneGap and other cross-platform development tools leverage device capabilities with the help of JavaScript APIs and generate the HTML code for presentation. However, the resulting code needs to be ported into specific operating systems like the Windows Phone, Android, and iOS so that they behave like native applications. In the following section, we provide an overview of these operating systems and their corresponding integrated development environments.

2.1. Windows Phone Windows Phone is the smartphone operating systems advocated by Microsoft. In the latest versions of Windows Phone, smartphone applications are written in managed code by frameworks that support multiple languages such as C# from the Microsoft.NET environment. Windows Phone is primarily built with the Windows Phone SDK together with Silverlight and XNA add-ons on Visual Studio. XNA is employed for 2D and 3D games development while Silverlight is used to develop powerful and engaging interfaces. Programs created for Windows Phone are encapsulated into XAP files, which are packaged Silverlight applications [40].

2.2. Android Android is based on the Linux kernel and developed as an open source system platform. In addition to the operating system, Android provides a development environment to write managed code with Google's Java libraries, and the Dalvik Virtual Machine for the smartphone applications to run on [9]. The development environment enables rich multimedia, the use of 2D and 3D graphic libraries, a customized SQL engine for persistent storage, and 3G, 4G and WLAN network capabilities [40]. Eclipse and IntelliJ IDEA are two main vendors of software development tools for Android.

Fig. 1. Interfacing layers of the PhoneGap architecture.

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

2.3. Apple iOS iOS is an operating system for many of Apple's devices including the iPhone. Its applications are written in an object-oriented programming language called Objective-C, which is an extension of the C language; they use a library called Cocoa Touch. Development for iOS requires a computer or a VMware running Mac OS. Xcode [1] is the most commonly used integrated development environment to write iOS applications. It includes an editor, analysis tool, iOS simulator, and the SDK [40]. Recently the release of a new programming language from Apple, Swift, may lead to changes in the platform, but for the time being both Objective-C and Swift are equally supported. To summarize, the cross-platform application development approach makes a significant contribution to the productivity of mobile application developers. However, achieving an identical look-and-feel as well as an identical functionality of applications (including RESTbased ones) across target native platforms still needs to be clarified through further work — which we address in this paper. 3. REST-based cross-platform smartphone applications A REST web service, introduced by Fielding [37], is a client–server architecture designed to make stateless communication with HTTP and includes the following set of principles: − Conceptual entities and functionalities are modeled as resources identified by universal resource identifiers (URIs). − Resources are accessed and manipulated via standardized HTTP operations (GET, POST, PUT and DELETE). − System components communicate with these standard interface operations and exchange the representations of these resources. In REST, a single resource may have multiple representations; and the communication is made through different states of resource representations by following the inter-links between resources. 3.1. Characteristics of REST services The REST web service views applications' data and functionality from a resource perspective. They are declarative in that they focus on the description of the resources themselves, rather than describing how the operations are performed [4,34]. REST web services are easily accessible because the URIs representing the resources can be shared and reused by any application, and are self-descriptive. Accordingly, REST web services are widely used to build Web 2.0 applications and mashups [4,34]. Like web pages, they support caching in proxies, and gateways. Since, JSON is a lightweight, directly supported inside JavaScript, and human readable data exchange language, we employ JSON for the client–server communication of the REST web services [7,33]. In general, the abovementioned set of principles encourages REST applications to be simple, and lightweight. Hence, the REST approach is considered to be a good alternative to build flexible, scalable and loosely-coupled service-oriented architecture systems, and is what we employ in the study underpinning this paper. 3.2. REST services composition In the REST web service model, the system is seen from the perspective of resources. Thus, service composition focuses on web resources associated to Web 2.0 mashups and state transfer between candidate web services [13]. Zhao and Doshi [19] describe a mash-up as a web application that combines data from multiple sources into a single integrated application, where the data could come from local databases or other sources from the Internet via different protocols such as HTTP, RSS, ATOM, and REST web services. Web mashups are limited

207

to fetching data from remote sources while the REST web service composition involves updating or manipulating data sources. 3.3. REST services composition on smartphones Modern smartphones are sensor-rich, boasting a high processing power, with larger storage capacity, and improved screen size, as well as having enhanced connectivity and a variety of APIs; all these premises bode well for future smartphone application development. Moreover, many of today's smartphone applications are personalized [31]. However, they can do a useful job only if they communicate with one or more servers and access data. The best way to achieve this communication is through the composition (mash-up) of web services. To this end, the REST web service may be used to communicate and build other composite web services, mashups or applications for smartphones [17,39]. The abovementioned smartphone features in combination with the capability of REST services enable smartphones to capture and process large amounts of information. For example, they can leverage the user community and software practitioners to expand the capabilities of smartphones so that they can host a number of state-of-the-art applications, such as peer-to-peer social networking, location-based services, collaborative environment, and data exchange [17]. However, the user experience of such applications is dependent on the screen size of the smartphone [8]. Given the enhanced functionality of smartphones, it is thus not unreasonable to anticipate that the smartphone screen real-estate will be used for the composition of REST web services [17]. That is, the possibility of developing applications with REST services on smartphones would turn the smartphone into a small development computer to ubiquitously browse and touch code. Nonetheless, consuming REST web services on the small screen real-estate requires an enhanced usability of the services; however, to the best of our knowledge, a real smartphone device has not been used as a software development, or REST-based service composition, environment. Thus, in this paper, we illustrate the possibility of building a RESTbased cross-platform smartphone application which would scale into an end-user cross-platform REST service composition (mash-up) tool for smartphones. 4. HTML5 and usability of REST services Previous work such as [10] indicates that HTML5 is used for a better user experience in the composition of REST services. Thus, in this section we describe fundamental issues related to usability, HTML5 technologies, and the factors influencing the usability of REST web services. 4.1. Usability Usability is one of the six quality characteristics of the ISO 9126 software quality model [21]. It is defined as a set of attributes of software which bear on the effort needed for use and on the individual assessment of such use by a stated or implied set of users. Sommerville [20] describes usability (user interaction) as the process of issuing commands and associated data to the computer system. User interaction has evolved from the command-line into a number of interaction styles which are easier to use, namely, direct manipulation with pointing devices, menu selection, form fill-in, command language, and natural language commands [20]. Pressman [36] also remarks that if a program is not user-friendly, it is often doomed to failure, even if the functions that it performs are valuable. Usability is thus an attempt to quantify user-friendliness and can be measured in terms of four characteristics: − The physical and or intellectual skill required to learn the system. − The time required to become moderately efficient in the use of the system.

208

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

− The net increase in productivity (over the approach that the system replaces) measured when the system is used by someone who is moderately efficient. − A subjective assessment (sometimes obtained through a questionnaire) of user attitudes towards the system. The usability engineering discipline, in general, is concerned with the design, evaluation, and implementation of interactive computing systems for human use and the study of the major areas surrounding them [12]. API designs, on the other hand, are over-constrained by many requirements that initially make satisfying all developers difficult; a few years of real-world use then flushes these mistakes out, leading to API evolution. Thus, an informed design of web service interfaces is important to ensure the effectiveness of developers [22,24,28] in terms of the levels of efficiency and rates of adoption. To this end, Beaton et al. [22,24] emphasize the difficulty of meeting such API usability goals without having objective and empirical data to justify design decisions. 4.2. HTML5 State-of-the-art web tools, namely, HTML5, JavaScript, and CSS3 have got considerable real world applications due to a number of new features such as application cache, local storage, web SQL and indexed database, online/offline event management, and drag-and-drop. With a goal of enhancing usability, Marino et al. [10] propose HTML5 as a visual programming environment for the composition of services based on a dataflow paradigm. The authors were oriented towards web technologies to offer developers an integrated set of high-level tools to design and test new services via functional composition of available ones. Accordingly, Marino et al. [10] proposed a tool called Visual Programming Service-Link (VisProSL), inspired by the user experience in HTML5, which is a mixture of: − Graphical actions and choices, for example the drag and drop of graphical widgets and the connection of input–output links, and of − Interface coding, via the textual specification of the translation logic of data object types flowing through the input/output interfaces of the composed services.

has taken through the application that uses the resource [13]. That is, each data item is handled as a resource, and each resource is an atomic data unit. Roberto et al. [16] also mention that the resource description framework (RDF) metadata can be used to describe and structure these web resources using domain ontologies. That is, their work is inspired by the possibility of enhancing usability through Web 2.0 concepts, but based on a semantic web data model. However, there is a need for further investigation into how the lack of proper description of the web resources together with their representations and limitations impact upon the usability of the REST web services when implemented in a smartphone environment. 4.3.2. Uniform resource identifier (URI) The URI is used to identify web resources, and to invoke HTTP commands [13,16]. Almost all service descriptions (including the REST type) use URIs and HTTP methods for invocation and authentication [32]. However, the diversity of services and actions observed in the SOAP web services must be mapped to resource representations in the REST web service counterpart with similar functionalities but offering more flexibility and extensibility. This situation often results in REST applications using complex URI addressing schemes, thereby introducing usability challenges [30]. Thus, the impact of the URIs addressing scheme on the usability of REST web services during resource identification and invocation in the smartphone environment needs to be explored. This would include issues such as the need to design URIs with consistent naming schemes; aligning with the respective ontology of the target implementation domain, and setting an optimum balance between the breadth and depth of the URI's name space. 4.3.3. Uniform interfaces The use of standard HTTP methods for REST services has certain usability challenges [32]. Thus, developers prefer to define their own operations. This results in a larger portion of REST services being defined as

Furthermore, the VisProSL environment capitalizes on a standardized JSON syntax of exchanged data objects and is oriented to REST web services [10]. 4.3. Usability of REST Services on smartphones Despite the demand for REST-based smartphone applications [39], consumers have many usability challenges in understanding the technical details of REST web services, connecting and setting the execution order during mash-up, and managing the manual operations [32,37]. In addition, usability challenges of REST web services due to the unique features of smartphones are also worth studying. Thus, an informed design decision of REST web services is important to ensure the effectiveness of developers [2,22,24]. Previous studies [22,24,36,41] show that usability engineering and associated principles can leverage usable system design, and many of the design techniques, and processes can be adapted to improve the usability of REST web services. However, although REST web services are characterized by their relative simplicity and natural suitability for the Web [32], their use requires extensive manual effort, as will be described below. 4.3.1. Description of web resources A web resource can be any physical object or an abstract concept that is important to be digitally represented, stored, referenced and exposed. It may have multiple different representations in a computer system due to the state of the resource itself and the path the client

Fig. 2. URI design using the Jersey and Jackson RESTful Service Frameworks.

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

209

Fig. 3. Architectural description of the application.

conventional interfaces, disregarding REST principles. This requires further study on the impact of limitations to incorporate domain ontologies in operation names on usability. Similarly, parameters of the operations of REST services would significantly impact usability due to the fact that operations have varying configuration of their parameters. For example, many input parameters of web services, including the REST type, may be defined as optional values, default values, alternative values, and/or coded values. However, this variability of the parameters together with the absence of data-types makes the transformation of inputs of one REST web service and outputs of the next in the invocation of mash-ups difficult for developers to predict [32]. Moreover, limiting the number of input parameters in an operation is of paramount importance in reducing complexity thereby enhancing usability [22,24]. Accordingly, addressing the limitations of current studies in failing to adopt a holistic view of usability of REST web services in general

Fig. 5. Query results of the application on Android emulator.

and particularly their suitability to be composed on the go with smartphones need to be explored. This is the focus of the study at the heart of the research described in this paper, and which shall now be described in detail. 5. Comparison of usability of a cross-platform smartphone application In this study, the usability technique described in Section 4 is used to evaluate a REST-based smartphone application, with emphasis on the definition of usability in [21]. Thus, our evaluation was focused on the extent to which the cross-platform application can be adapted and used by our sample end-users to achieve the specified goals with effectiveness, efficiency and satisfaction in the context of the target smartphone platforms. The REST-based cross-platform smartphone application was developed with a design goal as described below and to meet expectations of common users [3]. Accordingly, we applied convenience sampling to select our target group of users and evaluated the application's usability. 5.1. A description of the application

Fig. 4. User interface of the REST-based cross-platform application.

As mentioned above, a REST-based application is developed using sample RESTful services on the server-side and a REST-based application on the client-side. RESTful services are developed in Java based on the Jersey and Jackson RESTful web service frameworks [25,27]. These frameworks provide the “Path” annotation which enables to define the URI path of a resource. The Java construct in Fig. 2 shows the use of the “Path” annotation at the class and method level which aggregates to define the URI of each service API. In addition, an Eclipse dynamic web project “WebContent/WEB-INF” folder contains the “web.xml” configuration file which provides a “burl-patternN” XML element that allows defining the URL pattern of a REST web service. The complete URL of the REST service is therefore a

210

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

Table 1 Characteristics of the Android, Windows Phone, and iOS application development platforms. Feature

Android

Windows Phone

iOS

Development language Packaging Learning curve Developer community base IDE availability Emulator availability

Java (Android SDK) Android package (APK) files Average Large and fast-growing Eclipse, NetBeans, IntelliJ Bundled emulator and GenyMotion

C#, Visual Basic. NET XAP installation files Moderate Relatively large Visual Studio.NET Bundled with IDE

Objective-C or Swift iOS App Package (IPA) files Steep Relatively large Xcode for OS X, AppCode Bundled iOS Simulator

concatenation of the host's domain name, the URL pattern, and the URI of the specific resource. The client-side application, on the other hand, was initially developed to be tested on a desktop browser with JQuery and drag/drop plug-ins in HTML5 (see code listing on Appendix B). The application fetches a list of items from bid announcements floated by different organizations (see Appendix B.1) which is available as REST interfaces in JSON format on their respective websites. Each item is described by name, description, quantity, unit price, and a link to the source of data. Appendices B.2, B.3, B.4, and B.5 describe Java RESTful interfaces returning JSON data. A full scale model of the application is intended to support CRUD operations as shown in Fig. 3. However, given the time and resources available to us, and because it is sufficient for the purpose of this study, the current implementation is partial. Hence, the application is designed to provide a data mash-up facility. In addition, it enables searching by taking item category and URIs as input; and presents query results (Fig. 4 and Fig. 5). The basic features of the application used in the evaluation are the ease to learn, ease to use, and ease to remember of URIs in the composition (as discussed in Sections 3 and 4 above); search result navigation; platform configuration; and the SDK used. However, given that the scope of the implemented application is on data mash-up, the effect of other HTTP verbs and URI parameters with respect to usability is not included in the study. 5.2. Deployment of the application on the target platforms Initially, we developed the REST-based application for a desktop browser. It was tested against the required test cases and subsequently

customized and adapted to the Android, Windows Phone, and iOS platforms. We explored these target platforms with the aim of finding common characteristics [14] as shown on Table 1. Accordingly, we found out that the platforms vary considerably between them, making it impossible to write a version of the application that ran on all of them — unless we applied the cross-platform approach described in Section 2. However, the process of getting a cross-platform version of the REST-based application was not straightforward. We used PhoneGap (Cordova) plug-ins and JavaScript APIs. The application was then adapted and deployed onto the Android, Windows Phone, and iOS platforms as follows: − As mentioned above, the REST-based application was initially developed as a general web client application and tested with a desktop web browser (the Mozilla Firefox). − To deploy on the Android platform, we setup the Android SDK on the Eclipse IDE. In addition the PhoneGap plug-ins — cordova.js, cordova.jar, and the config.xml files were incorporated; and the Android manifest was adapted. − Subsequently, the Windows Phone development environment was setup on Visual Studio 2010 Express for Windows Phone. We used PhoneGap plug-ins from Cordova for Windows Phone (namely, PhoneGap Custom and PhoneGap Starter); Google's JavaScript plug-in; and other custom plug-ins. − Finally, a development environment for Apple iOS was setup with Xcode running on VMware, PhoneGap-iOS and JavaScript plug-ins. Accordingly, the usability evaluation of the application on the three deployment platforms is conducted as presented in the next subsection.

Table 2 Developer adaptation effort of cross-platform application. Feature

The ease to learn, and ease to remember of URIs

Ease to use URIs (e.g. entering into the composition)

Search result navigation

Platform configuration

SDK used

Desktop browser

Fonts of the URI links are readable but they cannot be easily learned and remembered in business view. HTML5 drag/drop feature simplifies URIs dragging from a list and entry into textbox during composition. But, URI entry into a list is made manually. Search results are viewable by scrolling across all sides on the screen. No! But setting the desktop browser. Mozilla Firefox was used during the testing. JQuery is also added into the app to use the getJSON function. Notepad++, Mozilla Firefox

Cross-platform application Android

Windows Phone

iOS

Bigger font size as compared to the desktop version.

Smaller font size as compared to the Android version.

Same as the Windows version.

HTML5 drag/drop works but dropping does not copy the URIs into the textbox. Thus, adaptation is made to avoid typing of URIs into the composition. Search results are viewed by swiping across all sides on the screen.

Swiping into the target textbox drags and drops the URIs. No adaptation effort needed.

Adaptation is made to avoid the manual entry (typing) of URIs into the composition tool.

Search results are viewable by swiping with better performance as compared to the Android version. PhoneGap-custom and PhoneGap-starter are used. Google's JavaScript plug-in, and other custom plug-ins.

Search results are viewable by swiping across all sides.

cordova.js, cordova.jar and config.xml files plugged in; the android manifest tweaked, and more. Eclipse IDE

Visual Studio 2010 Express for Win. Phone

PhoneGap for iOS and other JavaScript plug-ins are incorporated.

Xcode installed on Mac OS X

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

211

Fig. 6. Drag/drop of URIs on Mozilla Firefox. Fig. 8. The application on Apple iOS emulator.

5.3. Usability evaluation In this study, usability evaluation is conducted from the viewpoint of both the developer who does the REST service composition and adaptation to the native platforms, as well as the end users who actually use the application.

The developer viewpoint is framed under the developer-tool usability theme [11], that is, the ease to use the tool to develop applications for multiple platforms. Specifically, we concentrate on the efforts exerted by the developer to adapt the application into Android, Windows Phone, and iOS platforms and a description of the results is shown in Table 2. The end user viewpoint, on the other hand, is part of the classical usability evaluation, essential attributes of which are learnability, efficiency, memorability, errors and satisfaction [26]. However, evaluating usability using these attributes is highly biased; this can be adjusted by employing the ten point system usability scale (SUS) shown in Appendix A [23,38]. This is often referred to as an industry standard, is well tested and has been used for our previous work in Gebremariam et al. [15]. Thus, we employed this same tool in this study, where 24 smartphone users (16 male, 8 female) between the ages of 22 and 45 years old and self-reported basic IT skills were randomly allocated among three equal-sized groups to evaluate the usability of the application on each of the three platforms. Each user was introduced to the application; asked to use it by entering URIs of the component REST services; entering a search key; swiping over results of the query; finally, the user filled in the SUS questionnaire. The mean overall SUS scores of each user group corresponding to the individual platforms are found to be 75.9, 71.6, and 69.7 for Android, Windows Phone, and iOS respectively. The summary of raw user responses to each question and each scale of the respective group of users is also shown in Appendix A. 6. Discussion

Fig. 7. Application on Windows Phone emulator.

As described earlier in the previous section, our usability evaluation of the REST-based application and the corresponding discussion of results are based on both the developer's adaptation effort as well as the end-user's viewpoint

212

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

Fig. 9. Percentile ranks, SUS scores and letter grades [38].

6.1. Developer adaptation effort With the developer viewpoint, we took into account the effort required by a developer [11] to adapt the REST-based application to the Android, Windows Phone, and iOS platforms with respect to the ease to learn, ease to use (e.g. entering), and ease to remember of the URIs; search result navigation, platform configuration, and the SDK used. Initially the application was developed with HTML5, CSS3, and JavaScript but targeting the desktop browser. The REST service APIs are invoked by a getJSON Ajax function in JQuery which was integrated into the application and then tested using Mozilla Firefox. As a result, HTML5's drag and drop feature has simplified a URI's entry from a list into textbox during composition, as shown in Fig. 6. However, since a URI's entry into a list is either through web searching or typing-in, it needs to be well-designed so that users can learn and remember the URIs easily, thereby enhancing usability of the application. The source code has been deployed onto the Android platform as a cross-platform application. It has been debugged on the Android SDK, by applying a fairly large number of JavaScript lines of code, adapting the Android manifest and configuration files for HTTP access and by including Cordova PhoneGap plug-ins, similar to the approach employed in Gebremariam et al. [15]. The abovementioned adaptation effort converted the application into a version for the Android platform and the drag and drop feature was tested. Initially, the drag and drop was unable to copy the URIs

into the textbox, leaving the end-user with a cumbersome task of typing-in of the URIs. However, this bug was fixed by applying a small modification on the HTML5, and JavaScript codes related to the mentioned feature. The same source code that ran correctly on the Android platform has been deployed onto the Windows Phone and iOS platforms (Figs. 7 and 8) with the respective PhoneGap plug-ins. All the features of the REST-based application worked correctly without significant adaptation effort to maintain those features, with the possible exception of the fact that some SDK configurations had been made. Accordingly, the drag and drop feature worked correctly and URIs can be dragged from a list and dropped into a target textbox. Our findings highlighted that REST-based cross-platform smartphone applications can be ported to other platforms with only limited SDK configuration efforts on the part of the developer. When considering the platform configuration effort as a feature, we observed the following: − The Android platform required the adaptation of the configuration elements such as the cordova.js, cordova.jar, config.xml, and the Android manifest. In addition, Google's JavaScript plugin, together with other custom plug-ins, are added to the source code. − The PhoneGap Custom and Starter, Google's JavaScript plug-in, and other custom plug-ins are used to adapt the application to the Windows Phone platform; and

Table 3 User group's SUS score means and standard deviations. No

1 2 3 4 5 6 7 8 9 10

SUS Question

I think that I would like to use this system frequently. I found the system unnecessarily complex. I thought the system was easy to use. I think that I would need the support of a technical person to be able to use this system. I found the various functions in this system were well integrated. I thought there was too much inconsistency in this system. I would imagine that most people would learn to use this system very quickly. I found the system very cumbersome to use. I felt very confident using the system. I needed to learn a lot of things before I could get going with this system.

Android

Windows Phone

iOS

Mean

Standard deviation

Mean

Standard deviation

Mean

Standard deviation

2.8750 2.6250 3.2500 3.5000 3.1250 2.8750 3.1250 3.2500 3.2500 2.5000

1.1260 1.0607 1.1650 0.7559 0.6409 0.6409 0.8345 0.7071 0.7071 1.6903

3.0000 2.5000 3.2500 2.6250 3.2500 2.7500 2.7500 2.5000 3.1250 2.8750

0.7559 0.9258 0.8864 1.0607 0.8864 0.7071 0.4629 0.7559 0.8345 0.8345

2.7500 2.7500 2.7500 3.1250 2.3750 2.8750 3.0000 3.2500 2.3750 2.6250

1.1650 1.0351 0.8864 1.1260 1.1877 1.1260 0.9258 0.7071 1.1877 1.0607

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

Fig. 10. Perspectives for usability evaluation of web service composition on smartphones.

− The application was adapted to the iOS platform by integrating PhoneGap-iOS, editing the configuration file, and adding JavaScript plug-ins.

Thus, we found out that adaptation of the cross-platform application into the target platforms is not so cumbersome, and that configuring SDKs of the target platforms took the largest share of the total effort exerted. In addition, we observed that the occurrence of REST services as part of the application did not require the same levels of adaptation effort as the non-REST application used in Gebremariam et al. [15], the only exception being that a JQuery library is included in each project to use the getJSON Ajax function and security settings of the respective platforms are configured for HTTP communications. We also found out that Windows Phone is easier to configure because the minimal configuration effort (see Table 2) required in running the RESTbased application is less than that corresponding to the Android and iOS platforms. 6.2. Analysis of SUS scores The evaluation of usability from the end-user viewpoint has also been analyzed using different approaches and the results of each are discussed next. We began our analysis by focusing on the raw results in Appendix A. Here we can see high value user responses for odd numbered questions and low values for the even ones. This same response pattern is also observed under each column corresponding to the platforms, indicating that the REST-based application has an acceptable level of usability across the three platforms. Subsequently, we continued our analysis based on the SUS scores. A study by Jeff [38] pointed out that an SUS score of 68 and above is considered to portray above average levels of perceived usability. In addition, Jeff underscored that an SUS score which is normalized into a percentile rank (Fig. 9) provides a better interpretation of results. Thus, the SUS score and percentile rank of the REST-based cross-platform smartphone application on the three platforms is above 68 and grade “C” respectively, implying that the perceived usability of the application is generally above average. The variance of total SUS score means of each user groups was also tested for its statistical significance using analysis of variance (ANOVA), with the operating system as the independent variable, and the SUS items as dependent variables. The ANOVA single factor analysis result of the groups shows that, at the 5% significance level, there are no statistically significant differences in mean SUS scores between the three groups. Similarly, an ANOVA single factor analysis test was conducted for the variances of each SUS questions'

213

score means (Table 3) across the three groups. Again, no statistically significant differences in scores between the three platforms were found. Our observation of the results in Table 3 also shows that the mean response of users of all groups to each question is above 2 on the converted1 4 SUS scale. This reconfirms that the cross-platform application has an acceptable level of usability across the platforms, as far as each SUS question is concerned. In general, our discussion of results indicated that usability of the REST-based cross-platform smartphone application remains unaffected across the individual platforms when ignoring the impact of the form factor of the real devices. This implies that a crossplatform REST client application can be developed with consistent user experience irrespective of the target platforms; moreover, this bodes well for future development of an end-user REST service composition (mash-up) tool for smartphones that works across many different platforms. However, the study has certain limitations that require further work. The primary limitation is that it fails to evaluate usability from the perspectives of the types of Web services, messaging and data serialization formats, service composition approaches, and mobile client application development platforms (Fig. 10). Moreover, our study is conducted on only three (albeit popular) mobile platforms — further generalization of findings is required by extending the study on more platforms. 7. Conclusion Cross-platform mobile application development frameworks provide support to developers to build applications for multiple platforms. However, there are unanswered questions as to the behavior of the resulting cross-platform applications (in terms of usability from the viewpoint of the developer as well as the end user) on the native platforms. Indeed, the deployment of REST-based cross-platform business applications on the respective platforms may even worsen usability problems. In this study, usability was viewed from two perspectives: that of the developer, and that of the user of the developed REST-based application. The developer viewpoint is seen in terms of the configuration and coding effort (see Table 2) required to adapt the application to the respective native platforms. For the end user, on the other hand, we employed the widely-used SUS questionnaire [38]. Our findings showed that the usability of REST-based crossplatform smartphone application remains unaffected when deployed on the respective native platforms. In addition, we observed that the cross-platform development tools such as PhoneGap require only minimal configuration effort to adapt the cross-platform application to the specific platforms. JavaScript, HTML5, and the REST service web technologies together with the cross-platform tools would offer considerable opportunities to enhance the usability of developer tools, thereby fostering end-user development (REST service composition) of applications for smartphones. However, the understandability (i.e. the ease to learn, and ease to remember) of URIs and the entry mechanisms into the composition area (ease to use) require further work. Thus, in addition to future work identified in the previous section, in our future endeavors we will also consider design constraints, principles, and best practices for REST services with a goal of enhancing their usability in the composition (mashing-up) of cross-platform smartphone applications. In addition, the prospect of HTML5 and related technologies will be explored to build an

1 SUS Scores coded as [response — 1] for odd questions, and [5 — response] for the even ones.

214

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

end-user cross-platform REST service composition (mash-up) tool for the smartphone, thereby realizing composition of REST services on the go. Appendix A. The System usability scale and users' responses − Values in % represent users' responses for each platform. − The “scale” column is used to signify Strongly agree (5), Agree (4), Neutral (3), Disagree (2), and Strongly disagree (1).

Scale Question (1)

Question (2)

Question (3)

Question (4)

Question (5)

Question (6)

Question (7)

Question (8)

Question (9)

Question (10)

Android

Windows Phone

I think that I would like to use this system frequently. 5 37.5% 25.0% 4 25% 50.0% 3 25% 25.0% 2 12.5% 0.0% 1 0% 0.0% I found the system unnecessarily complex. 5 0.0% 0.0% 4 12.5% 12.5% 3 37.5% 37.5% 2 25.0% 37.5% 1 25.0% 12.5% I thought the system was easy to use. 5 62.5% 50.0% 4 12.5% 25.0% 3 12.5% 25.0% 2 12.5% 0.0% 1 0.0% 0.0% I think that I would need the support of a technical person to be able to use this system. 5 0.0% 0.0% 4 0.0% 12.5% 3 12.5% 37.5% 2 25.0% 25.0% 1 62.5% 25.0% I found the various functions in this system were well integrated. 5 25.0% 50.0% 4 62.5% 25.0% 3 12.5% 25.0% 2 0.0% 0.0% 1 0.0% 0.0% I thought there was too much inconsistency in this system. 5 0.0% 0.0% 4 0.0% 0.0% 3 25.0% 37.5% 2 62.5% 50.0% 1 12.5% 12.5% I would imagine that most people would learn to use this system very quickly. 5 37.5% 0.0% 4 37.5% 75.0% 3 25.0% 25.0% 2 0.0% 0.0% 1 0.0% 0.0% I found the system very cumbersome to use. 5 0.0% 0.0% 4 0.0% 0.0% 3 12.5% 62.5% 2 50.0% 25.0% 1 37.5% 12.5% I felt very confident using the system. 5 37.5% 37.5% 4 50.0% 37.5% 3 12.5% 25.0% 2 0.0% 0.0% 1 0.0% 0.0% I needed to learn a lot of things before I could get going with this system. 5 25.0% 0.0% 4 0.0% 0.0% 3 12.5% 37.5% 2 25.0% 37.5% 1 37.5% 25.0%

iOS 37.5% 12.5% 37.5% 12.5% 0.0% 0.0% 12.5% 25.0% 37.5% 25.0% 12.5% 62.5% 12.5% 12.5% 0.0% 0.0% 12.5% 12.5% 25.0% 50.0% 25.0% 12.5% 37.5% 25.0% 0.0% 0.0% 12.5% 25.0% 25.0% 37.5% 37.5% 25.0% 37.5% 0.0% 0.0% 0.0% 0.0% 12.5% 50.0% 37.5% 25.0% 12.5% 37.5% 25.0% 0.0% 0.0% 12.5% 37.5% 25.0% 25.0%

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

Appendix B. Source code listing

215

216

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

217

218

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219

References [1] Apple, Xcode, https://developer.apple.com/xcode/2013. [2] B. Bygstad, G. Ghinea, E. Brevik, Software development methods and usability: perspectives of a survey in the software industry in Norway, Elsevier Interacting With Computers, 20(3)2008 375–385. [3] B. Carol, Usability Testing Essentials: Ready, Set… Test! Elsevier, 2010. [4] C. Chang, Service-oriented mobile social network in proximity. Diss. Monash University. Faculty of Information Technology. Caulfield School of Information Technology, 2013. [5] C. Liane, What makes a smartphone smart? http://cellphones.about.com/od/smartphonebasics/a/what_is_smart.htm2013. [6] D. Isabelle, S.K. Datta, C. Bonnet, N. Nikaein, Survey, comparison and evaluation of cross platform mobile application development tools, IEEE 9th International Conference in, Wireless Communications and Mobile Computing 2013, pp. 323–328. [7] D.S. Mark, B. Adams, Y. Zou, A.E. Hassan, Exploring the development of micro-apps: a case study on the blackberry and Android platforms, IEEE 11th International Working Conference on Source Code Analysis and Manipulation (SCAM) 2011, pp. 55–64. [8] D. Zhang, B. Adipat, Challenges, methodologies, and issues in the usability testing of mobile applications, Int. J. Hum. Comput. Interact. 18 (3) (2005). [9] eLinux, Android architecture, embedded Linux wiki, http://elinux.org/Android_Architecture2014. [10] E. Marino, F. Spini, A. Paoluzzi, F. Minuti, M. Rosina, A. Bottaro, HTML5 visual composition of REST-like web services, IEEE 4th International Conference on Software Engineering and Service Science (ICSESS) 2013, pp. 49–55. [11] F. Andrew, B.A. Myers, Y. Oren, K. Rotenberg, A case study of using HCI methods to improve tools for programmers, IEEE 5th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE) 2012, pp. 37–39. [12] E. Folmer, J. van Gurp, J. Bosch, Software architecture analysis of usability, Springer, Berlin Heidelberg 2005, pp. 38–58. [13] F. Xinyang, J. Shen, Y. Fan, REST: an alternative to RPC for web services architecture, IEEE First International Conference in Future Information Networks 2009, pp. 7–10. [14] G. Damianos, D. Economou, Development platforms for mobile applications: status and trends, IEEE Softw. 28 (1) (2011) 77–86. [15] G. Mesfin, G. Ghinea, D. Midekso, T. Grønli, Evaluating usability of cross-platform smartphone applications, Springer in Mobile Web Information Systems2014 248–260. [16] G. Roberto, J.M. Gimeno, F. Perdrix, R. Gil, M. Oliva, J.M. López, A. Pascual, M. Sendín, Building a usable and accessible semantic web interaction platform, Springer in World Wide Web, 13(1-2)2010 143–167. [17] H. Chen-Che, J. Huang, C. Tsai, G. Wu, C. Chen, W.C. Lee, Energy-efficient and cost-effective web API invocations with transfer size reduction for mobile mashup applications, Springer in Wireless Networks, 20(3)2013 361–378. [18] H. Henning, S. Hanschkem, T. Majchrzak, Evaluating cross-platform development approaches for mobile applications, Springer in Web Information Systems and Technologies2013 120–138. [19] H. Zhao, P. Doshi, Towards automated restful web service composition, IEEE IEEE International Conference on ICWS 2009, pp. 189–196. [20] I. Sommerville, Software Engineering, Addison-Wesley, 2009. [21] ISO, Guidance on Usability 9241-1, International Organization for Standardization, 1998. [22] J. Beaton, S.Y. Jeong, Y. Xie, J. Stylos, B.A. Myers, Usability challenges for enterprise service oriented architecture APIs, IEEE Symposium on Visual Languages and Human-centric Computing 2008, pp. 193–196. [23] J. Brooke, System Usability Scale (SUS): A Quick-and-dirty Method of System Evaluation User Information, Digital Equipment Co Ltd. Reading, UK, 1986. [24] J. Beaton, B.A. Myers, J. Stylos, S.Y. Jeong, Y. Xie, Usability evaluation for enterprise SOA APIs, ACM Proceedings of the 2nd International Workshop on Systems Development in SOA, Environments 2008, pp. 29–34. [25] Jackson, RESTful web service frameworks, http://jackson.codehaus.org/2014. [26] J. Nielsen, Usability Engineering, Academic Press, Orlando, FL, USA, 1993. [27] Jersey, RESTful web service frameworks, http://jersey.java.net/2014. [28] J. Stylos, B.A. Myers, Mapping the space of API design decisions, IEEE Symposium in Visual Languages and Human-centric Computing 2007, pp. 50–60. [29] J. William, Native apps vs. mobile web apps, Int. J. Int. Mob. Technol. 7 (4) (2013) 27. [30] M. Guido, E. Zeeb, S. Prüter, F. Golatowski, D. Timmermann, R. Stoll, Devices profile for web services and the REST, IEEE International Conference on Industrial Informatics 2010, pp. 584–591. [31] M. Jeff, S. Gowell, PROFESSIONAL Mobile Application Development, John Wiley & Sons Inc., 2012 [32] M. Maleshkova, P. Carlos, D. John, Investigating web APIs on the world wide web, IEEE 8th European Conference on Web Services (ECOWS) 2010, pp. 107–114. [33] N. Nurzhan, M. Paulson, R. Reynolds, C. Izurieta, Comparison of JSON and XML data interchange formats: a case study, Caine 157–162 (2009).

G. Mesfin et al. / Computer Standards & Interfaces 44 (2016) 205–219 [34] P. Cesare, O. Zimmermann, F. Leymann, RESTful web services vs. big web services: making the right architectural decision, ACM Proceedings of the 17th International World Wide Web Conference 2008, pp. 805–814. [35] P. Manuel, I. Singh, A. Cicchetti, Comparison of cross-platform mobile development tools, IEEE 16th International Conference on Intelligence in Next Generation, Networks 2012, pp. 179–186. [36] R.S. Pressman, Software Engineering: A Practitioner's Approach, Fifth edition McGraw-Hill, 2001. [37] R.T. Fielding, Architectural Styles and the Design of Network-based Software Architecture, (Doctoral Thesis), 2000. [38] S. Jeff, Quantitative usability, statistics, and six sigma: measuring usability, http:// www.measuringusability.com/sus.php2014.

219

[39] S. Narayana, M. Jarke, W. Prinz, Mobile web service provisioning, IEEE in Telecommunications, International Conference on Internet and Web Applications and Services/Advanced International Conference 2006, p. 120. [40] T. Grønli, J. Hansen, G. Ghinea, M. Younas, Mobile application platform heterogeneity: Android vs Windows Phone vs iOS vs Firefox OS, IEEE 28th International Conference on Advanced Information Networking and Applications (AINA) 2013, pp. 635–664. [41] T. Mandel, The Elements of User Interface Design, Wiley, 1997. [42] I. Dalmasso, S.K. Datta, C. Bonnet, N. Nikaein, Survey, comparison and evaluation of cross platform mobile application development tools, In Wireless Communications and Mobile Computing Conference (IWCMC), 9th International, IEEE (2013, July) 2013, pp. 323–328.