Evaluation of Android Programming Enviroments

Size: px
Start display at page:

Download "Evaluation of Android Programming Enviroments"

Transcription

1 Evaluation of Android Programming Enviroments Florian Schinkel, Andreas Schlag, Günther Sachs, Stephan Haas and Patrik Schäfer Abstract The Android operating system is continously spreading on mobile devices. Therefore an ever growing number of software developers wants to start to develop software for the Android OS. However, there are a lot of different ways to accomplish this ranging from low-level and hardware-oriented programming techniques to platform-independent programming techniques. Even tile-based visual programming environments and toolkits are available for some mobile platforms. Thus, we analyze five typical representatives and discuss their characteristics, advantages and shortcomings in order to provide soon-to-be developers with a profound recommendation catalog how to realize their planned project. Furthermore we provide some recommendations for several possible scenaria, that a developer might be faced with. Index Terms Anroid applicaton development, comparison of programming paradigms. 1 INTRODUCTION Mobile computing has become omnipresent in our daily lives. Almost everyone uses smart phones, netbooks or tablet computers. Thus it has become more and more attractive to develop software for mobile devices, due to the large number of users. When deciding to start developing software for mobile devices one should be aware of the variety of possible devices it might be running on. Studying the sales volume of smartphones one cannot ignore the growing importance of the Android operating system. Android had a worldwide smartphone market share of 75% during the third quarter of 2012, with 750 million devices activated in total and 1.5 million activations per day [11]. This huge market share leads to a growing number of developers who want to program for Android devices. In the meantime Android has caught up with ios when it comes to the number of third party applications for the respective platform [17]. This paper addresses potential Android developers and aims to be a guideline in the decision-making, regarding the developing approach of choice. Before starting to develop Android applications (apps), one should be aware of the multiplicity in concepts, tools and developing environments to ensure that the project is implemented in a proper way and to avoid mistakes. In this paper we cover five possible developing approaches, which are possibly the most popular, i.e. the Android SDK, the Android NDK, PhoneGap, WebApp and the App Inventor. To be able to compare these developing methods we thought of a possible scenario a developer could face. Imagine one would want to program a tool that allows him or her to find the nearest restaurant, bar, club whatsoever. These kind of barfinders are very popular on the app stores. When thinking about the implementation of an application like this, one will find that it will probably have to have an user interface, access to a database, the possibility to utilize geolocation and an external navigation service. Now given this scenario, we implemented a barfinder for Stuttgart with each of the earlier mentioned developing approaches. The gathered experience and information is presented and will Florian Schinkel florian.schinkel@studi.informatik.uni-stuttgart.de Andreas Schlag andreas.schlag@studi.informatik.uni-stuttgart.de Günther Sachs guenther.sachs@studi.informatik.uni-stuttgart.de Stephan Haas stephan.haas@studi.informatik.uni-stuttgart.de Patrik Schäfer patrik.schaefer@studi.informatik.uni-stuttgart.de hopefully help in the decision-making and during the first steps of the developing process. The reminder of the paper is structured as follows: In Section 2 the five examined development techniques will be introduced separately with focus on the prerequisites before one can start coding, advantages and disadvantages of the approach and a recommendation when it might be a good choice to develop in the respective way. In Section 3 we offer an overview chart to get a lot of information at one look and some typical use cases. Section 4 contains the example of a barfinder application. Section 5 is the related work and finally Section 6 is the conclusion of this paper 2 PROGRAMMING ENVIRONMENTS There are many environments to program an Android app and every single environment has its advantages and disadvantages. All environments can be separated into four different categories: Enviroments, that create native code, environments for web-enabled HTML-apps, hybrid (neither truly native nor purely web-based) or cross-platform (possibility to run the app on different operating systems) environments and alternative platforms. In this section we re going to introduce five different programming environments, which cover all of the mentioned sections of program-styles. At first two environments, which produce native apps will be introduced: The Android SDK. which addresses the application framework layer of the Android Stack (see Figure 1) and the NDK. which addresses the lower libraries and kernel layers. The web-based environment of our choice is the WebApplication and as a hybrid solution we present PhoneGap. The last environment is an alternative solution to program Android apps, App Inventor. One should keep in mind, that this five environments are just five examples of programming environments for Android, there are many more available. This five approaches were chosen, because of their broad distribution and popularity or because they re good examples for their dedicated category. 2.1 The Android SDK The most common and obvious approach of programming Android- Apps is the Android SDK (Software Development Kit) by Google. This Java-based development kit provides all the functionality to develop any kind of Android-App and therefore is very potent. The suggested ( [6] and various others) way of programing with the SDK is to use the Eclipse IDE with the ADT (Android Developer Tools) plug-in, although it is generally possible to program by using just the SDK and a text editor. Eclipse, as well as the SDK itself and the ADT are freeware and easy to install, allowing the developer to start coding quickly and without encountering serious obstacles during the installation. Additionally, since Apps programmed with the Android SDK consist to a major part of Java code, it is mandatory for the developer to 1

2 Figure 1: The Android Stack [16] have at least basic Java skills and knowledge. However, expert Java knowledge is not required because the documentation of the SDK itself on the one hand and the numerous websites such as forums, blogs and tutorials on the other hand offer more than sufficient information and advice as long as the developer knows precisely what he is looking for. In addition basic XML knowledge is helpful because the design of the app s user interface can be done with XML. The suggested development environment setup comes with an Android Virtual Device Manager, an emulator that enables you to choose between several Android devices to run your program on. This emulator is unpayable when programming larger Applications or learning programming with the SDK itself and can even be supplied with arbitrary longitude and latitude to test location-based functions. It also includes a graphical user interface builder if one doesn t want to code the UI with XML. The ADT provides a lot of helpful tools for the simulation, such as the mksdcard that helps you create a disk image that you can use with the emulator, to simulate the presence of an external storage card [6] or Systrace, which lets you analyze the execution of your application in the context of system processes, to help diagnose display and performance issues [6]. Once your project is completed you can get an.apk file as output, which you can directly execute on your Android device or sell on the Google Play Store or elsewhere. The creatorship of Google is a huge advantage of this approach of Android programming, since you develop with a Google tool for a Google operating system, that will potentially even run on a Google device, guaranteeing that all capabilities the OS and the device offer can be addressed and utilized in a presumably easy and direct way. In addition, every new Android release is followed by an update of the Android SDK so that the developer can capitalize on changes and new features immediately after the release by simply updating the present software. Many other Google services such as Google Maps, Google Navigate and so on are easily integrated in an SDK-App. The fact, that the development with the SDK is recommended by a lot of popular online sources and is therefore wide spread, leads to overwhelming recall at online searches. For every problem you face, there are with high possibility already solutions or suggestions available on the internet, which drastically reduces try and error periods and therefore accelerates the development process and reduces the frustration. As mentioned at the beginning of this section there are hardly any limits to the potency of this programming approach. Nearly all possible demands to functionality can be met. If your app needs to access a database you can either create your own SQLite database or integrate an existing one. Geolocation is featured as well as intents to other Android-Apps, audio and video contents and XML-parsing. Furthermore, when it comes to programming itself, the developer commands over the full power of object oriented programming, assumed that his Java skills are sufficient. When deciding to program with the Android SDK one should be aware of the fact that, like the name tells, all Apps written this way are inherently platform dependent, meaning that they can be exclusively executed on devices with the Android OS. Despite this limitation the focus on just one single operating system simplifies the access to the hardware of the device, the program is running on, such as 2

3 cameras, GPS receivers and much more. Another downside of the SDK is that it demands a lot of previous knowledge of the developer such as Java and XML skills, which makes the access for someone who has never been programming before extremely challenging. The Android SDK is an approach, that is suited for Java programmers, who want to develop applications exclusively for Android devices, and for every programmer with knowledge of object oriented programming or the time and motivation to learn this paradigm and the programming language Java. The reward for learning is the ability to create an application with nearly arbitrary functionality and the ability to freely use all the various existing tools that ease the development. If you are not familiar with Java or at least other programming languages, or only interested in developing small applications, you might better choose a different method. 2.2 NDK The Google Android Native Development Kit, or NDK for short, is a solution for programming native apps for the Android platform. It was released in 2009 by Google, to enable programmers to write native apps with the C/C++ language. The main benefit of native C/C++ code, provided by the NDK, is that the Dalvik Virtual Machine, which is the special JAVA just-in-time compiler of the Android platform, can be bypassed and the programmer can access the device s hardware directly. This direct access to the hardware provides a couple of virtues, in contrast to the also native Java apps, provided by the SDK. Just like every other Java-VM the Dalvik Virtual Machine creates overhead, which slows the application down. By making this virtual machine obsolete, NDK apps can run faster than other Apps. This is especially noticeable, if the App is really performance heavy, meaning it contains a lot of CPU-heavy calculations, 3D-rendering or memory accesses [14]. The more of these heavy actions an app contains, the bigger is the performance-boost your app will gain, if you use native C/C++ code instead of Java or HTML. Also the programmer can reuse existing C/C++ libraries and even legacy code, he has already written, with ease. This enables espacially experienced programmers, to insert existing lines of code, even written for other hardware architectures, simple and fast into their Android apps. Often used, well-known and well documented libraries like OpenGL ES ( SQLite ( and Cmath ( can be used with all their functions and features as well. But also libraries one has written for themselves can be integrated easy. Even functions, which are not even included in the (already very mighty) SDK can be implemented, or existing solutions can be customized. This makes NDK the most powerful programming environment for Android apps altogether. While programming with the NDK, the programmer has direct control over what the App should do on a hardware-level. With Java code, mostly the Dalvik VM controls the devices hardware and the programmer can t directly control or correct the VM. But using the NDK also has six major disadvantages: Other Enviroments, espacially the SDK comes with many preimplemented methods and functions, a programmer can use, to quickly realize simple tasks. With a pure NDK approach you can t use any of those features and have to implement them yourself. Simple tasks, like turning on the camera of your device or showing a button on it s screen, are very circuitous to implement with just NDK. With the NDK only Android apps are possible, other platforms like ios, Blackberry or Windows-Phone are not supported. Also your application will only run on devices with Android version 1.5 or higher. C/C++ must be compiled for your destination architecture. So if there is no compiler for the architecture of your target-device (yet), you can t use C/C++ code and it s advantages. Even if there is a compiler for your device, there is always the possibility, that your compiled App runs smoothly and as intended on one device, but causes errors or simply fails to run on similar devices, even if they are based on a very similar or even the same architectures. That s because even the smallest differences in the compiler (a newer version of the same compiler or a different compiler) or the hardware (other RAM-size or CPU-clock) can cause serious problems, with pre-compiled C/C++ code. So a developer has to test and debug his code on as many devices as possible, before releasing it. This cannot be realized by small development teams. The creation of a GUI with NDK is only possible with help of additional libraries, such as OpenGL ES. But compared to the other environments presented in this paper, creating a simple GUI, adequate for most apps, is really cumbersome and tedious to realize. However the possibilities for the programmer, while developing his GUI are larger, then with other solutions, but more complicated to implement. Before you can start programming on your machine, NDK only requires the NDK itself and the necessary tools to build, compile and debug C/C++ code. But for most programmers and projects additional tools are mandatory: The Java Development Kit (JDK), the SDK and a programming environment(ide), such as Eclipse (with additional Plug Ins [23]). And a certain level of computer-expertise is required to understand, set-up and use all those tools, especially the C/C++ compiler, builder and debugger. So a lot of time, resources and knowledge is necessary to correctly install and configure everything you need. This high level of entrance makes the NDK very unattractive and unfeasible for many programmers [23]. As previously discussed, the NDK is the most powerful solution for programming an Android app, but many programming tasks are complicated and unnecessary hard to realize. There is, however, the possibility of intervening C/C++ and Java code, with help of the Java Native Interface (JNI). With JNI you can call C/C++ functions directly from Java code and so use the advantages of both platforms. You can use Java to handle all intents and GUI tasks, while at the same time fully control and max out your devices hardware with the power of the NDK. This makes the combination Java, JNI and C/C++ the most potent of all available approaches. The big disadvantage, that simple features are hard to realize with a pure NDK implementations, can be eliminated with this method. But all this comes at a price: Using the JNI adds an additional overhead to your app, so if you use it too casual or in the wrong way, you could actually slow down your app, completely destroying the advantage of using C/C++ altogether. Also the complexity of your code increases, if you choose to use JNI, so it becomes more error-prone, more difficult to code and harder to understand for other programmers. You also definitely have to be pretty skilled in C/C++ and additionally in Java to use JNI properly. So if your not familiar with Java, you first might have to learn a new programming language. In conclusion it can be summarized: If you are a veteran C- programmer with access to existing C/C++ libraries or programs and you want to program an Android-only application on a widely distributed architecture, which would benefit from the speed advantages, coming with direct access to your devices hardware, NDK (usually in combination with the JNI) is for you. If you are a beginner in (C-)programming and / or you want an easy and fast way to build simple applications, or multi-platform applications, you d be better advised to use another method of programming. 3

4 Figure 2: Task Compatiblity of different Browsers [5] 2.3 Web Apllication A WebApplication (WebApp) is an application which runs within a browser. The application itself and it s data are usually stored and mainly executed on a webserver. So the user don t have to install an application directly on his device. In this case he requires an internet or intranet access for execution. The user starts the WebApp by sending a HTTP-request via a browser to the webserver where the application is stored. The webserver then generates or subsequently loads the HTML source code of the website and sends it back to the browser. Then the user is able to interact with the graphical user interface (GUI) of the WebApp [29]. Also the same WebApplication can run on several smartphone or desktop operating systems (OS) such as Android, Apple ios, Windows Mobile, Windows or Linux. So a WebApp is represented by a website which runs in a browser. It is developed with common tools for web development and specifically designed for devices with small displays, if it is used on mobile devices. WebApps not only run on mobile devices but also on every other devices which have access to the internet (if the app is stored on a server) and a browser. WebApps are largely platform independent, because they can be displayed on any device, which has a browser installed (it doesnt matter which OS runs on the device). Thus, the developer doesn t need to develop a new application for every OS, but can cover a wide range of OS by using one WebApp written with one sort of web-based languages. So what does a developer need for developing a WebApp? Well, additional to a simple editor for coding, a browser which displays the GUI of the WebApp and a webserver or a provider which hosts the application data, a WebApp developer also needs basic knowledge in web-based or related object-oriented programming languages. Web-based scripting and markup languages such as JavaScript and HTML5 are usually used for the development of such applications. Therefore the greatest effort lies in learning the object-oriented scripting language JavaScript which serves mainly as an extremely powerful, dynamically, typed and classless scripting language [8] for implementing all the functions of the WebApp. However there is plenty of documentation and tutorials available, which support the user in learning this language. In addition, a WebApp implementation with JavaScript allows the storage of data both on the mobile device (e.g. local storage, WebSQL database storage) and on the server (e.g. cloud storage). HTML5 is used to structure the contents of the WebApp, while CSS3 serves as a style sheet for structured elements. Moreover HTML and CSS is supported by the World Wide Web Consortium (W3C) [30], thus further development and maintenance is given. The developing surface of a WebApp consists of two things. A browser in which the GUI of a functional WebApp can be displayed and an editor for writing the source code of the WebApp. There are several browsers available such as Firefox, Google Chrome, Opera, Safari, etc. Thus in the developing process, the developer is able to see the outcome of the execution of his code live in the browser. This is not only helpful by designing the GUI but also by checking the functionality of the WebApp. However not every browser supports all elements, attributes and functions of JavaScript (e.g. Firefox and Internet Explorer cant implement a WebSQL database [3]). By this means it is possible that the GUI of a WebApp is displayed differently or not properly in different browsers (for more information about the browser compatibility of HTML5, CSS3, and JavaScript please visit: or see Figure 2). Additionally there are several useful browser extensions for webdevelopers such as Firebug (Firefox) or Web Developer (Goolge Chrome), which ease the developing process of a WebApp. Also when choosing a suitable development environment 4

5 for code development, the developer can choose between several proven HTML editors such as Microsoft Visual Studio, Microsoft WebMatrix2, Phase 5, Bluefish or the standard text editor which comes with every Windows OS. Moreover, the editors differ in both the features and the handling (e.g. some of the editors doesnt support debugging others provide only inadequate debugging). Also some are free available, while for others the developer must purchase a license. Eventually, the choice of the browser and editor depends on both the OS of the developing system and the preferences and expectations of the developer. The installation effort of the development environment basically depends on the installation of the editor and the compiler and claims a different amount of time depending on the function and features of the tools. WebApps have some crucial advantages over other applications, e.g. its platform-independence. Not only is the data generally stored on the webserver but also nowadays all modern smartphones are equipped with a pre-installed browser, so the WebApp can be executed no matter which OS the device is running on (provided there is an internet connection or the App is stored on the device). Additionally if the data of the WebApp is stored on the server and the user executes the App on more than one device then the user can always access the actual data no matter which device he is using (provided he has an internet connection). Therefore synchronization of the devices is redundant. Also, in case of loss or failure of the device the data of the application is secured on the hard drives of the webserver so that there will be no data loss. Moreover the WebApp is protected from malicious attacks by the server security policies. Another advantage is the ease of use of web cloud services or navigation services such as google maps. These allow not only a virtually unlimited data storage and external access to the data of the WebApp without using a smartphone, but also an easy access of web content. Also the WebApp hardly consumes system resources because it is mostly executed on the server side, causing highly complex applications to run fast [24]. Thus, almost any application can be realized no matter how much processor or memory resources it requires. Another advantage are low maintenance costs, because the source code is stored at one place and so changes must be made just once on the device or server-side [12]. However, a server-side implementation has also its drawbacks. For example to run an WebApp an internet connection is needed mostly, which is a problem, because internet access via the mobile internet is expensive and the data volume is limited. But it is also possible to create a WebApp which runs mainly on the device of the user. In this case the user doesnt need an internet connection. Another disadvantage is the different interpretation of the HTML and JavaScript code by some browsers, despite standardization efforts of the W3C. This requires browser sniffing (a technique used to determine the web browser a user is using [10]) sometimes even for different browser versions. A WebApp should be developed especially when the application is supposed to work on a variety of different platforms and if needed a steady internet access is ensured. Also the developer should be sure that the user or other applications doesnt need information from the application in offline mode. Otherwise these applications doesnt run properly any more. In addition, the development of a WebApp is especially recommended for developers who both have prior knowledge and experience, developing with web-based languages. Finally, a WebApp is not only recommended for applications which require a large number of web services but also for systems with little memory resources and / or little system performance. Moreover, it is suitable for developers who want to start developing without installing required programs or libraries or register to web services (e.g. for the App Inventor, a Google account is required). Figure 3: PhoneGap - Closing the Gap [32] 2.4 PhoneGap The PhoneGap ( framework permits WebApplications access to native APIs of mobile devices such as Android or iphone. So that makes it possible to develop installable applications with HTML5, CSS and JavaScript (see Figure 3). The examined version of PhoneGap is v2.2.0 and it is under the free open source Apache License (Version 2.0) [22]. There are also similar frameworks like PhoneGap, e.g. Rhodes ( [25]. The application rendering uses HTML5 and CSS, the logic is realized with JavaScript. Android phones and other smart phones uses WebKit ( as a default browser [25]. WebKit is a web browser engine to display HTML-/CSS-code and its used when running a PhoneGap application. An application that runs inside PhoneGap can access certain devices capabilities from JavaScript. This PhoneGap API gives developers access to device capabilities like accelerometer which is impossible with WebApplications. In addition to this it has several JavaScript APIs to host WebApplications with a native application. If there is an existing WebApplication PhoneGap is a useful tool to transform it in a native application. PhoneGap contains APIs that diverge from the standard, that means it bridges the gap between the standard and what is required to build a real application [25]. So one may say, that PhoneGap is a hybrid because it is neither truly native (the rendering is done with HTML) nor purely web-based (access to native device APIs) such as WebApplications (see Section 2.4) PhoneGap supports a cross-platform development. It can be used for Android, ios, BlackBerry, WindowsPhone, Windows 8, WebOS, Bada, Symbian and Tizen. So you can develop applications for every important mobile operating system (OS). To develop an application with PhoneGap there has to be a installed Software Development Kit (SDK) that fits the end device because PhoneGap can t run stand-alone. It is only a software framework that was made to give a developer the possibility to write native mobile applications with HTML, CSS and JavaScript as well as it grants access to native device APIs. That is why you need a SDK as a main software. On Android systems there has to be installed the Android SDK and the Java Development Kit (see also Section 2.1) [22]. Then the PhoneGap framework has to be copied in the Eclipse (included in the Android SDK) folder and with a terminal command PhoneGap will be included 5

6 in Eclipse [22]. Every end device needs it s special SDK. For Example, Xcode ( is needed for Apple s iphone or WebWorks SDK ( is needed for BlackBerry phones. Because every end device needs its own SDK, then maybe a special hardware (Windows PC, Apple Mac, etc.) is needed. Most SDKs are running on Microsoft Windows, Linux is also supported well but when writing an application for iphone there has to be used an Apple Mac with OS X as operating system. Detailed guides about how to install the recommend SDK together with PhoneGap and what hardware is required can be found on the official PhoneGap website [22]. To learn the development with PhoneGap you need knowledge in HTML5, CSS and JavaScript (see also Section 2.4). Knowledge about the development of WebApplications can be very useful, too. Because PhoneGap needs a SDK there should be experience with those tools. Besides the functions of a WebApplication PhoneGap has access to devices capabilities, e.g. accelerometer, camera, and vibration. It allows access to audio, image, and video capture capabilities of the device and it supports the access to an API to read, write and navigate file system hierarchies. The storage API is based on the W3C Web SQL Database Specification and W3C Web Storage API Specification which grants access to the devices storage options. Furthermore there are APIs to get access to the devices contacts database, device information (e.g. used hardware and installed software) and device connection information (e.g. wifi status). Visual, audible, and tactile device notifications (e.g. vibration, alert, beep) are another function of PhoneGap. Last but not least there is an InAppBrowser that runs inside the application [22]. There are many tools to enhance PhoneGap. The Pilot tool includes support for other APIs such as Google Maps and Google WebFontLoader, jquery Mobile is a HTML5-based user interface system to make better UIs and EmbedJS is a JavaScript framework specialized for embedded devices (mobile phones, TVs, etc.) [22]. Of course there are many more tools which can be found on the PhoneGap website. With PhoneGap it is possible to create many different applications like Exfm (a social music discovery platform), Orbium (action/puzzle game), NFB Films (watch movies, documentaries, animations and trailers) or harmonius (a sketchpad). The free open source project PhoneGap is available for everyone. From beginners to professional programmers can everyone use PhoneGap to create mobile device applications (commercial as well as non-commercial). A benefit is that applications created with PhoneGap are cross-platform compatible, it supports up to 9 different mobile operating systems [22]. In contrast to WebApplications, both were programed with HTML, CSS, and JavaScrip, PhoneGap compiles a binary file that runs native on a device (a WebApplications runs on a web server). Because of the binary file (on Android systems a.apk file) it is easy to distribute the application, e.g. on Google Play, Apple s App Store, or others. Since PhoneGap creates a binary file it is also a good way to transform WebApps into native apps to distribute them. Although PhoneGap supports 9 different mobile operating systems not all functions are available on every OS. For example, the function to record and play back audio files isn t supported on BlackBerry, Bada, WebOS, and Symbian. Also the function to get access to the file systems isn t available on every device. Detailed information about the function support is on the PhoneGap website [22]. A further disadvantage affects the cross-platform development. Each end device needs its own SDK. That means for a cross-platform development are several SDKs needed and if the application is also for iphone the use of a Apple Mac computer is essential because the recommend Xcode SDK doesn t run on Windows. Cross-platform frameworks, such as PhoneGap, which use a browser for the user interface have difficulties with intense math calculations or 3-D animations. Furthermore they are suboptimal to write data-driven applications (e.g. enterprise applications which have to work offline Figure 4: Procedure in the Blocks Editor using synced local data) [25]. However, Baltes [2] has shown, that on average applications developed with PhoneGap are not inferior to native application on Android devices. PhoneGap is a good choice for WebApplication developers who want independence from a web server and/or want to distribute their application via app stores (e.g. Google Play). Another audience are developers who want to create an application for as many devices as possible. Because of the disadvantages in math calculation and 3-D animation PhoneGap isn t the best solution for natural science application (which may contain many math calculations) as well as for complex 3-D games and/or calculations. 2.5 App Inventor The App Inventor is an online application, which was developed by Google in the context of Google Labs and after the termination of Google Labs it became open source on December 31, The MIT Center for Mobile Learning continued the project under the name MIT App Inventor and it is since March 4, 2012 open for public use ( The specific characteristic of the App Inventor is the graphical programming like in scratch [18] meaning that the programmer doesn t write lines of code as usual, but instead, the programmer arranges blocks, which provide specific semantics like loops, if-else-statements or variables, in an interactive way via drag&drop. The pieces fit in each other like in a jigsaw puzzle. For running the MIT App Inventor an internet connection is required as well as Java, App Inventor Software (ca. 92 MB) and a Gmail account. The App Inventor is split in two parts: The Design Editor and the Blocks Editor. In the Design Editor you manage the layout of your screens. A screen is the App Inventor s equivalent to the SDK activity. There is an understandable GUI editor which you can use to build a GUI easily and quickly. If you want to build a fast prototype of your app for testing the look&feel of the app, the App Inventor will be a good choice. The App Inventor provides databases, geolocation, intents to other apps, audio- and videocontents and other features which you can add to your screen in the Design Editor. In the Blocks Editor you build the logic of your program with its procedures, which can be built with the mentioned graphical block programming (see Figure 4). With the pre-configured emulator or an with you pc connected android phone you can easily test your app while building it without manual compiling. Unfortunately this doesn t support switches between screens. You have to manual 6

7 compile the project for testing the switchover between 2 screens. The system is easy to understand, even for beginners, so that the initial hurdle is low and one gets started very fast. Helping people learn how to program is one of the main purposes of the App Inventor. Beginners in programming can learn this way how to structure programs and the way a program will be executed [20]. There is a section Teach on the App Inventor s page that helps teachers educate with the App Inventor [19]. When programming with the App inventor you are very limited at the structures, functions and features you can use. There are only the features, that are provided by the Design Editor, and the blocks, that are provided by the Blocks Editor. For example you can t use arrays. You can place the procedures and variable definitions freely on the workspace of the Blocks Editor. In larger projects with a lot of procedures and variables it s hard to maintain an overview of your procedures and variables, because there are no hierarchies or other possibilities to structure your procedures, except the option to minimize the procedures. Furthermore there is no opportunity to define a local variable (Exception: foreach and for range -loops have a variable for the item that s selected in each iteration of the loop). For example you have to create global variables for counters or boolean variables in while-do -loops. You have to pay attention that you don t accidently use this variable in another procedure. In addition you can neither access procedures from another screen nor can you copy the blocks in the workspace of the other screen. If you want to have a procedure in several screens, you have to build it several times. The interface between two screens is a variable. It s not possible to start developing with the App Inventor and go on with for example JDK, because the App Inventor uses a Scheme language. If one wants to use databases the App Inventor provides a TinyDataBase, a TinyWebDataBase and a not ready for prime time -support for Google FusionTables. The TinyDB is a key-value-store. In the App Inventor you can use the TinyWebDB like the TinyDB. The TinyWebDB is built in Python and you can run it on the GoogleAppEngine servers for free. With Google FusionTable you can create tables, which you can modify with SQL-queries [7]. Unfortunately while processing a query with the system automatically displays a message with Google Fusion Tables what some programmers maybe see critically, because the database is not completely hided and the user sees what a database the app uses. There are some problems to care about especially on larger projects: The maximum size of a project with media files is 5MB. Larger projects won t be compiled. But one can avoid this by putting in dummies for media files and change them after compiling with the real files with AppToMarket [1]. The app is compiled on the MIT servers, making the compilation of projects highly dependent to the performance of these servers and for larger projects compiling can last more than 15 minutes. It s very important to make checkpoints or download the sources during developing the app, because it might happen that the Blocks Editor can t open a certain screen anymore and then you need to work on at an earlier version. There are opportunities for running the App Inventor offline on a local server, but they are not appropriate for beginners. The App Inventor is good choice for beginners or for fast prototyping. You get started fast, it s easy to understand and you have a running app in a short period of time. Additionally you can use the App Inventor for educational purposes for students, who want to learn how to program. For large professional projects it is not suitable, because the graphical programming limits the opportunities and a experienced programmer will be faster with typing than with the drag&drop of blocks. 3 COMPARISON TABLE AND TYPICAL USE CASES Now, after we introduced five different methods to program an app for Android, we would like to compare them directly. For that comparison we use eight different criteria: - Installation of the environment Under this point we consider, how easy it is and how long it takes to set-up your environment, before you can start developing. Also what requirements your workstation has to fulfill, to be able to handle the development. An environment should be easy to install on many different (possibly not very powerful) workstations. - Support Here we take into account how easy it is to find good documentation for every environment and what possibilities the programmer has to get direct support or help for its platform, and who he gets this help from. Big companies, preferably Google, which frequently update their documentation and environment, can offer better support than smaller entites. - Learnability For people, which never programmed an app before, there has to be a low level of entrance, so that they don t get frustrated or the projects take longer than they have to or even fail. An environment has to support those groups and enable them to learn the use of the environment or programming apps in general. On the other hand if you skilled programmer should be able to use the environment, without first having to acquire additional skills. - Platform Independency Especially big development studios should be able to program apps for different kinds of software- and hardware- platforms, to reach a big market with their apps. If you already implemented an app, it should be easy to convert your work to other platforms. - GUI creation Nearly all apps need a GUI. The different environments a very different in the way they enable programmers to realize those GUIs. They differ in the possibilities and ease of use, they offer to implement GUIs. Easy to use, fast and simple tools, which are very powerful at the same time are desirable. - Potency There should be a rich feature-set be usable for the programmer to realize his project. - App-performance Especially for computation-heavy applications, it s important, that the final app runs smoothly and fast on the target devices. - Debugging A good environment should offer good tools, to debug code easy and fast. We rate every single environment after all eight criteria. Although our ratings range from - - (very bad), - (bad) over 0 (neutral) to + (good) and ++ (very good). The ratings represent, how good the given environment fulfills the discussed criteria in comparison to the other environments. So all environments obviously have their strengths and weaknesses (see Table 1). There is no perfect environment for every project. The choice of your environment should be dependent on what you want to accomplish with you application. In the following, we want to demonstrate some common example use cases and give you the recommended programming environment, which would fit your projects goals best. This seven use cases each represent a very widely distributed category of apps, which can be found manifold in the common app stores: 7

8 Option SDK NDK PGap WebApp AppInv Installation Support Learnability Platform Ind GUI creation Potency Performance Debugging Table 1: Comparison Table - 3D Game If you want to program a mobile 3D-Game with beautiful and complex animations and graphics, you have to use the NDK in combination with OpenGL ES. This project is very hardware consuming, so the app will benefit greatly from the performance boost, which the NDK offers. Also programming 3D Games with the easy to use and well documented OpenGL ES API, is very easy with NDK and you can achieve great results with relative little effort. The other environments simply don t offer the possibility to program 3D-Games, with good performance, so your choice has to be the NDK solution. - Math app If you want to program an easy to use math app, with a nice User-Interface, the best solution for you would be the NDK in combination with the JNI (and therefor with the SDK). Performance heavy calculations benefit hugely from the performance boost of the NDK and you can use the manifold pre-implemented functions of the Cmath library. But because your app should be easy to use and have a good looking GUI, you have to combine the NDK with SDK via the JNI. Realizing a GUI with Java is simply quicker and easier than realizing it with C/C++. - Cross-Platform application If you want to develop an application that runs on as many devices as possible PhoneGap or WebApp are good solutions. Up to now PhoneGap and WebApps support nine different devices (e.g. Android, iphone and BlackBerry) and you may reach a larger audience for your application, than just by developing it just for Android. - An Android app based on an existing Web-application If you are in the situation to have a finished WebApplication and you want to distribute it on a store like Google Play or Apple s App Store. Because a WebApplication doesn t have a binary file it is impossible to distribute it over an app store. With PhoneGap its easy to transform a pure WebApp into an application with a binary file that runs native on a device and not on a web server. So it becomes possible to distribute your app through common app stores. - App with access to a cloud If you are using the application on more than one device and you always want to have the latest data on your devices (e.g. if you store information on one device and you want to use this information on an other device), than you should implement a WebApp. Because with a WebApp, which uses a cloud service for data storage, you can always access the latest version of your data on every device (independent of it s platform) via the internet. - GUI-Prototype Maybe you want to create an app, but before you can start you need funding from an investor or buyer. The easiest, fastest and cheapest way to create a demonstrable prototype is the App Inventor. - Teaching students how to program If you are a teacher or professor and you want an easy way to teach your students how to program apps or want to show them how creating an app works in theory, the App Inventor is the perfect solution for your purposes. This seven use cases all treat commonly used, but very special kinds of apps. But it has to be said, that for the most programmers and the most projects the SDK is the best way to realize the app. It offers a quick and easy way to program a simple app and if your app wouldn t benefit from the specialized feature-sets of other environments, your best approach would always be using the SDK. The SDK offers a lot of functionality, good performance, is heavy supported by Google, without having any big shortcomings. It s not the best way to program your (Android) app in some cases, but it in most cases it is. 4 APP-EXAMPLE STUTTGART BARFINDER For the evaluation we thought about a typical app a programmer is possibly faced with. In the Google Play Store there are a lot of apps which give you informations about restaurants, bars, clubs and which can you navigate towards them. For Stuttgart there only exist barfinders, which claim a fee, so we decided to make a barfinder for Stuttgart ourselves. The app is said to work in the following way: When the user clicks the Suchen! -Button the app shows the bars sorted by distance in an ascending order (see Figure 5(a) and Figure 5(b)). The user can click on a bar in the list for further informations like the URL of the bar s hompage (see Figure 5(c)). In Addition the user has the opportunity to click a button for a direct starting navigation towards the bar. What do we need for this app? - an user interface - a database for storing the bars - geolocation for the determination of the device s position - the possibility to use of intents for starting Google Navigation (if installed) - a (simple) mathematical calculation for the determination of the distance towards the bars - sorting There is no sense in using NDK for this app, not even for parts. It s a huge effort to program this app in NDK and there are no benefits of doing it. Even though SQL is better to access with the NDK, the speedup wont have any noticeable impact, because the amount of data is too small. It will not further be mentioned in the context of this app. Building the GUI is easy with the App Inventor and SDK. For buidling the GUI with the WebApp and PhoneGap you need some HTML knowledge. If you have this knowledge, it will be build quickly, too. The bars and clubs are stored in a database. The WebApplication has to use a web database, the others can run databases on the phone aswell. The App Inventor provides only a TinyDatabase on the phone. The investigation of the device s position is with all environments possible and easy to do. Except the WebApp, all environments can use intents for example starting Google Navigation for navigating to the bar. The WebApp has to use GoogleMaps online for the navigation. The distance between the postion of the device and the bars is computed with equirectangular approximation and all environments can calculate this with standard operations. 8

9 (a) Start Screen (b) List Screen (c) Detail Screen Figure 5: GUI of the Stuttgart Barfinder 5 RELATED WORK The possibilities to develop mobile applications for Android are manifold. The first question is, Want I use native code or web code for my application?. For example, a difference is how the user interface is programed. In the future there maybe hybrid solution but in the meantime a developer have to think about his/her requirement to an application whether he/she use native, web or hybrid solutions [4]. A research about map and location functions in Android shows that its easy to add functions like fully zoom or a drag enable map with just modifying a few lines of code in an Android-Default- Application written with the Android SDK. Also it has a well performance for actions like drawing the driving trace [26]. There is a course design for teaching Android development with the Android SDK. It follows three principles (1. basic ideas, 2. more practice than theory, 3. needs from industries) and shows the positive experience [9]. The greatest benefit of the Android NDK, the performance, is shown in many publications. There is an experiment which shows the differences between using C/C++ or Java for the same application. There were calculations tested like communication delay, integer calculation, floating-point calculation, or memory access algorithm [15] [14]. Because Android NDK is suboptimal to develop an application using C/C++ only it s the most effective way to use it to speed up other Android applications [27]. One asset of PhoneGap is the cross-platform support. Besides educational books which taught, with the help of examples, the cross-platform [25] and HTML, CSS and JavaScript [28] based development, PhoneGap is also used in research projects. For example, there is a research project that investigate the way to school for students (with geolocation functions) and they used PhoneGap for a prototype because it has access to native functions of the smart phone, the easy way to distribute the application and of course the cross-platform support [21]. Similar to PhoneGap, also a WebApp (see section 2.4) is developed with HTML, CSS and JavaScript with the difference that a WebApp runs on a server. There are some special HTML interfaces like iwebkit, JQTouch or Sencha Touch which can increase the workflow [25]. A study tries to help to increase the standards in school by using an application developed with HTML [13]. Android has another look/style than, for example, ios because of that it is a good idea to make an app which looks like a typical Android application, contains animations and has the possibility to use this app offline [28]. A study at the Trinity College (Hartford, CT, USA) used App Inventor to explore if it can bring computational thinking to students. Over a period of 10 weeks they let students and teachers develop different applications with App Inventor and the results were positive about the issue [20]. Already in an alpha version, App Inventor was used by several universities to teach noncomputer science majors [20]. Generally the development of a application for a mobile device has special topics. Besides traditional issues like security or performance there are issues like the battery life of a smart phone, the question if the application should be native or web-based, or the portability. Because of the different use of a mobile device the user experience is important, too [31]. 6 CONCLUSION Due to the growing importance and populartity of apps for the Android OS and the multiplicity of development and implementation methods we decided to write this paper in order to support the developer by his or her choice of the most suited method. Thereby five possible development methods for Android Applications are introduced. Thereby on the one hand the development methods are described where on the other hand the advantages and disadvantages of the individual methods are discussed. Developers, who develop with the widespread Andoid SDK or NDK library, have the advantage that they not only have Google support but also have a good performance (e.g. practically every function can be implemented with these libraries). Also there are many internet forums and documentations for the SDK, NDK, PhoneGap and WebApp, which support the programmers in their development. The NDK library additionally supports the use of native C-libraries such as OpenGL and SQLite. Moreover this method has a good 9

10 performance because it directly addresses the hardware of the device. Therefore even 3D rendering is possible, because less system resources are needed, which results in a better performance of the app. The PhoneGap and WebApp development methods have the advantage that it is possible to develop apps which are platform independent. The PhoneGap method provides additionally an emulator, that supports the developer when developing his App. The apps developed with PhoneGap or as an WebApp are both using the programming languages HTML, CSS and Java Script. The markup language HTML and CSS are easy to learn, which is an advantage. JavaScript however requires a greater learning effort. Moreover the PhoneGap method offers a simple and direct device and interface support. In addition, in difference to a WebApp, which is mainly stored on a webserver, there is no internet connection required for the execution of an app.therefore an app developed with PhoneGap is mostly not as performant as an WebApp, because a WebApp can use the resources of a webserver. A WebApp can be executed not only on mobile devices but also on other devices. Also maintenance of a WebApp is easy and webservices can be used easily. Also mentioned in this paper is the App Inventor. The advantages of using the App Inventor are primarily a very easy introduction, because no programming knowledge is needed as well as quickly and easily demonstrable results. There are also serious drawbacks by some of the development methods. For example a downside of the SDK library, the WebApp and the PhoneGap method, is that Java or JavaScript is required and therefore object-oriented language skills are needed. If the developer has no programming skills, the App Inventor is the more suitable method for him, because it is independent from all programming languages. Developing with the NDK library requires simultaneously the use of the SDK library, which again generates overhead. Another drawback of the NDK is, as opposed to the other developing methods, the complicated and time assuming installation. In addition, the implementation and coding with the NDK (e.g. designing a GUI) is a lot harder than in the other methods. There is also described in which use cases a developer should choose which developing method. An app example is introduced which was developed with the five different development methods. Thereby the structure, the functions and the development effort is described. In addition, the GUI is displayed in screenshots, so that the app example can be better understood. The future of app developing shows an increase of developers who implement their apps with building block developing environments such as the App Inventor. This can be explained by the fact that these environments are getting more and more user friendly and that many developers avoid the time assuming process of learning a programming language. Therefore these developing environments are getting more and more popular. However the web-based implementing methods are gaining also popularity, because of their easy use and many advantages such as platform independence. Nevertheless more experienced developers use still the established development methods such as the SDK or NDK. Finally, when developing an app, a developer should consider his skills, resources, development environment, and the requirements of the app. REFERENCES [1] M. H. Amerkashi. Apptomarket. p/apptomarket/, Apr [2] S. Baltes. Run anywhere. web & mobile DEVELOPER, 06:94 100, May [3] CanIuse. Websql database. sql-storage, May [4] A. Charland and B. LeRoux. Mobile application development: Web vs. native. Queue, 9(4):20:2020:28, Apr [5] M. Firtman. Mobile html5 - compatibility on iphone, android, windows phone, blackberry, symbian and other mobile and tablet devices. http: //mobilehtml5.org/, May [6] Google. Android developers page. android.com/, Mar [7] Google. Google drive. apps.html#fusiontables, Apr [8] D. M. Holger. Javascript. de/lexikon/javascript.html, Jan [9] W. Hu, T. Chen, Q. Shi, and X. Lou. Smartphone software development course design based on android. In Computer and Information Technology, International Conference on, volume 0, pages , Los Alamitos, CA, USA, IEEE Computer Society. [10] P. G. i Quiles. Javascript browser sniffer. sourceforge.net/, May [11] IDC. Android marks fourth anniversary since launch with 75.0in third quarter. containerid=prus , Nov [12] IstantAppWizard. Native vs. mobile web apps. http: // hesk/knowledgebase.php?article=8, Jan [13] T. Kim, B. Kim, and J. Kim. Development of a lever learning webapp for an HTML5-Based cross-platform. In J. J. J. H. Park, J. K.-Y. Ng, H. Y. Jeong, and B. Waluyo, editors, Multimedia and Ubiquitous Engineering, number 240 in Lecture Notes in Electrical Engineering, pages Springer Netherlands, Jan [14] J. K. Lee. Android programming techniques for improving performance. In Proceedings of rd International Conference on Awareness Science and Technology (icast), pages , [15] S. Lee and J. W. Jeon. Evaluating performance of android platform using native c for embedded systems. In 2010 International Conference on Control Automation and Systems (ICCAS), pages , [16] M. G. Mahale. Android software stack. http: //mahalelabs.wordpress.com/2013/03/18/ android-software-stack/, June [17] H. McCracken. Whos winning, ios or android? all the numbers, all in one place. TIME, Apr [18] MIT. Scratch - imagine, program, share. edu/, May [19] MIT. Teaching with app inventor. edu/explore/teach.html, Apr [20] R. Morelli, T. de Lanerolle, P. Lake, N. Limardo, E. Tamotsu, and C. Uche. Can android app inventor bring computational thinking to k-12? Computer Science Department, Trinity College, Hartford, CT, USA, HFOSS, [21] P. Pasternack. Demographischer Wandel als Querschnittsaufgabe: Fallstudien der Expertenplattform Demographischer Wandel beim Wissenschaftszentrum Sachsen-Anhalt. Universittsverlag Halle-Wittenberg, 1 edition, July [22] PhoneGap. Phonegap api documentation. Mar [23] S. Ratabouil. Android NDK Beginner s Guide. Packt Publishing, [24] D. Rubio. [25] A. Sarah, V. Graupera, and L. Lundrigan. Pro Smartphone Cross- Platform Development: iphone, Blackberry, Windows Mobile and Android Development and Distribution. Apress, [26] X. Shu, Z. Du, and R. Chen. Research on mobile location service design based on android. In 5th International Conference on Wireless Communications, Networking and Mobile Computing, WiCom 09, pages 1 4, [27] K.-C. Son and J.-Y. Lee. The method of android application speed up by using NDK. In rd International Conference on Awareness Science and Technology (icast), pages , [28] J. Stark. Android Apps mit HTML, CSS und JavaScript. O Reilly, 1 edition, Dec [29] C. Ullenboom. Java ist auch eine Insel - programmieren mit der Java Platform, Standard Edition 6. Galileo Press, Bonn, 7. aufl. edition, [30] W3C. Html & css. webdesign/htmlcss, Feb [31] A. I. Wasserman. Software engineering issues for mobile application development. In Proceedings of the FSE/SDP workshop on Future of software engineering research, FoSER 10, page , New York, NY, USA, ACM. [32] wowi. Going native with phonegap xaab - anything as a blog. going-native-with-phonegap/, June

Introduction to Android

Introduction to Android Introduction to Android Poll How many have an Android phone? How many have downloaded & installed the Android SDK? How many have developed an Android application? How many have deployed an Android application

More information

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013 Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone

More information

SYST35300 Hybrid Mobile Application Development

SYST35300 Hybrid Mobile Application Development SYST35300 Hybrid Mobile Application Development Native, Web and Hybrid applications Hybrid Applications: Frameworks Native, Web and Hybrid Applications Mobile application development is the process by

More information

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER WEB, HYBRID, NATIVE EXPLAINED June 2013 CRAIG ISAKSON MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER 701.235.5525 888.sundog fax: 701.235.8941 2000 44th St. S Floor 6 Fargo, ND 58103 www.sundoginteractive.com

More information

Bridging the Gap: from a Web App to a Mobile Device App

Bridging the Gap: from a Web App to a Mobile Device App Bridging the Gap: from a Web App to a Mobile Device App or, so how does this PhoneGap* stuff work? *Other names and brands may be claimed as the property of others. 1 Users Want Mobile Apps, Not Mobile

More information

Lecture 4 Cross-Platform Development. <lecturer, date>

Lecture 4 Cross-Platform Development. <lecturer, date> Lecture 4 Cross-Platform Development Outline Cross-Platform Development PhoneGap Appcelerator Titanium Xamarin References Native Development Represents the baseline for comparisons You

More information

Enterprise Mobile Application Development: Native or Hybrid?

Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? Enterprise Mobile Application Development: Native or Hybrid? SevenTablets 855-285-2322 Contact@SevenTablets.com http://www.seventablets.com

More information

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE

How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE How to Choose Right Mobile Development Platform BROWSER, HYBRID, OR NATIVE Solutions Introduction: Enterprises around the globe are mobilizing mission-critical services. Businesses get streamlined due

More information

Developing Applications for ios

Developing Applications for ios Developing Applications for ios Lecture 1: Mobile Applications Development Radu Ionescu raducu.ionescu@gmail.com Faculty of Mathematics and Computer Science University of Bucharest Content Key concepts

More information

Workshop on Android and Applications Development

Workshop on Android and Applications Development Workshop on Android and Applications Development Duration: 2 Days (8 hrs/day) Introduction: With over one billion devices activated, Android is an exciting space to make apps to help you communicate, organize,

More information

research: technical implemenation

research: technical implemenation research: technical implemenation topic: digital publication of the annually c/kompass information brochure on iphone/ipod touch with the target to have an advantage over the printed version possible solutions:

More information

Cross Platform Applications with IBM Worklight

Cross Platform Applications with IBM Worklight IJCSNS International Journal of Computer Science and Network Security, VOL.15 No.11, November 2015 101 Cross Platform Applications with IBM Worklight P.S.S.Vara Prasad and Mrs.S.Durga Devi Dept. of IT

More information

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application DATABASES AND INFORMATION SYSTEMS H.-M. Haav, A. Kalja and T. Robal (Eds.) Proc. of the 11th International Baltic Conference, Baltic DB&IS 2014 TUT Press, 2014 215 Issues of Hybrid Mobile Application Development

More information

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7 Jeff Linwood 1st Chapter, Early Release Introduction... 3 Prerequisites... 3 Introduction to Mobile Apps...

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

Smartphone Application Development using HTML5-based Cross- Platform Framework

Smartphone Application Development using HTML5-based Cross- Platform Framework Smartphone Application Development using HTML5-based Cross- Platform Framework Si-Ho Cha 1 and Yeomun Yun 2,* 1 Dept. of Multimedia Science, Chungwoon University 113, Sukgol-ro, Nam-gu, Incheon, South

More information

Take full advantage of IBM s IDEs for end- to- end mobile development

Take full advantage of IBM s IDEs for end- to- end mobile development Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise

More information

Cross-Platform Development

Cross-Platform Development 2 Cross-Platform Development Cross-Platform Development The world of mobile applications has exploded over the past five years. Since 2007 the growth has been staggering with over 1 million apps available

More information

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Development Frameworks Overview Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Solution Frameworks One of the biggest technological decisions

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup Emmanuel Agu What is Android? Android is world s leading mobile operating system Google: Owns Android, maintains it, extends

More information

Article. One for All Apps in HTML5

Article. One for All Apps in HTML5 One for All Apps The boom of smartphones and tablets in the consumer sector creates new problems for developers of industrial Apps: They have to build Apps quickly that run on any type of smartphone and

More information

Developing and deploying mobile apps

Developing and deploying mobile apps Developing and deploying mobile apps 1 Overview HTML5: write once, run anywhere for developing mobile applications 2 Native app alternative Android -- Java ios -- Objective-C Windows Mobile -- MS tools

More information

max firtman @firt firt.mobi martes 26 de julio de 11

max firtman @firt firt.mobi martes 26 de julio de 11 max firtman @firt firt.mobi who am I? mobile+web developer mobilexweb.com blog @firt where? where? buenos aires ~ argentina where? buenos aires ~ argentina patagonia soccer tango where? buenos aires ~

More information

A Modular Approach to Teaching Mobile APPS Development

A Modular Approach to Teaching Mobile APPS Development 2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development

More information

A Study on Android development kits and the Phone Gap Framework

A Study on Android development kits and the Phone Gap Framework International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 10, Issue 3 (March 2014), PP.18-22 A Study on Android development kits and the Phone

More information

01. Introduction of Android

01. Introduction of Android 01. Introduction of Android Goal Understand the concepts and features of the Android Install the complete Android development environment Find out the one-click install Android development environment

More information

Native, web or hybrid mobile-app development

Native, web or hybrid mobile-app development IBM Software Thought Leadership White Paper WebSphere Native, web or hybrid mobile-app development 2 Native, web or hybrid mobile-app development Contents 2 Introduction 2 Introducing the approaches 2

More information

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Mobile App Infrastructure for Cross-Platform Deployment (N11-38) Mobile App Infrastructure for Cross-Platform Deployment (N11-38) Contents Introduction... 2 Background... 2 Goals and objectives... 3 Technical approaches and frameworks... 4 Key outcomes... 5 Project

More information

Challenges in Android Application Development: A Case Study

Challenges in Android Application Development: A Case Study Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 4, Issue. 5, May 2015, pg.294

More information

Development of mobile applications for multiple platforms

Development of mobile applications for multiple platforms Harwell Innovation Centre Building 173 Curie Avenue Harwell Oxford Didcot Oxfordshire, OX11 0QG +44 1235 838 531 www.redskiessoftware.com Development of mobile applications for multiple platforms By Darren

More information

Cross-Platform Phone Apps & Sites with jquery Mobile

Cross-Platform Phone Apps & Sites with jquery Mobile Cross-Platform Phone Apps & Sites with jquery Mobile Nick Landry, MVP Senior Product Manager Infragistics Nokia Developer Champion activenick@infragistics.com @ActiveNick www.activenick.net Who is ActiveNick?

More information

Mobile web apps: The best option for business? A whitepaper from mrc

Mobile web apps: The best option for business? A whitepaper from mrc Mobile web apps: The best option for business? A whitepaper from mrc Introduction Mobile apps have finally reached the point where businesses can no longer afford to ignore them. Recent surveys and studies

More information

Overview of CS 282 & Android

Overview of CS 282 & Android Overview of CS 282 & Android Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282

More information

ios SDK possibilities & limitations

ios SDK possibilities & limitations ios SDK possibilities & limitations Licensing Licensing Registered as an Apple Developer (free) Access to XCode3 and ios SDK ios, Mac and Safari Dev Center Resources No possibility of distribution of developed

More information

White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS

White Paper INTRODUCTION. In mobile development, there are three different types of applications: PRE-SMARTPHONE MOBILITY NATIVE MOBILE APPLICATIONS INTRODUCTION The mobile development arena is growing very quickly, especially in the business-to-consumer (B2C) space. We are also seeing significant growth in business-to-business (B2B) enterprise applications

More information

Generate Android App

Generate Android App Generate Android App This paper describes how someone with no programming experience can generate an Android application in minutes without writing any code. The application, also called an APK file can

More information

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT Oxagile 2010 www.oxagile.com TABLE OF CONTENTS 1 ATTRIBUTION... 3 2 ABOUT OXAGILE... 4 3 QUESTIONNAIRE... 5 3.1 DO YOU THINK AIR AND SILVERLIGHT ARE COMPARABLE

More information

Designing for the Mobile Web Lesson 3: HTML5 Web Apps

Designing for the Mobile Web Lesson 3: HTML5 Web Apps Designing for the Mobile Web Lesson 3: HTML5 Web Apps Michael Slater, CEO Andrew DesChenes, Dir. Services course-support@webvanta.com 888.670.6793 www.webvanta.com Welcome! Four sessions 1: The Mobile

More information

Mobile Game and App Development the Easy Way

Mobile Game and App Development the Easy Way Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected

More information

Building native mobile apps for Digital Factory

Building native mobile apps for Digital Factory DIGITAL FACTORY 7.0 Building native mobile apps for Digital Factory Rooted in Open Source CMS, Jahia s Digital Industrialization paradigm is about streamlining Enterprise digital projects across channels

More information

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER TABLE OF CONTENTS Market Demand for Enterprise Mobile Mobile App Development Approaches Native Apps Mobile Web Apps Hybrid Apps Mendix Vision for Mobile App

More information

Navigating the Mobile App Development Landscape

Navigating the Mobile App Development Landscape Navigating the Mobile App Development Landscape You keep hearing about user trends towards mobile devices; your 10- year old knows your ipad better than you, and so you figure that your business should

More information

Mobile App Testing Guide. Basics of Mobile App Testing

Mobile App Testing Guide. Basics of Mobile App Testing 2015 Mobile App Testing Guide Basics of Mobile App Testing Introduction Technology is on peek, where each and every day we set a new benchmark. Those days are gone when computers were just a machine and

More information

The Suitability of Native Application for University E-Learning Compared to Web-Based Application

The Suitability of Native Application for University E-Learning Compared to Web-Based Application The Suitability of Native Application for University E-Learning Compared to Web-Based Application Maya Novia Sari 1, Noor Azian Bt. Mohamad Ali 2 Department of Information Systems, Kulliyyah of Information

More information

Developing Cross-platform Mobile and Web Apps

Developing Cross-platform Mobile and Web Apps 1 Developing Cross-platform Mobile and Web Apps Xiang Mao 1 and Jiannong Xin * 2 1 Department of Electrical and Computer Engineering, University of Florida 2 Institute of Food and Agricultural Sciences

More information

Mobile App Proposal 0-000-000-000. - Magazine company- email@address.com. January 12, y. Direct Contact. Email

Mobile App Proposal 0-000-000-000. - Magazine company- email@address.com. January 12, y. Direct Contact. Email Mobile App Proposal - Magazine company- January 12, y Direct Contact 0-000-000-000 Email email@address.com TABLE OF CONTENTS 1. Introduction 2. Project Overview & Objectives 3. About Newsboard 4. Analytics

More information

Cross-Platform Mobile Apps Solution

Cross-Platform Mobile Apps Solution Cross-Platform Mobile Apps Solution Prepared by Kevin Mullins CEO and Chief Developer Appracatappra, LLC. 709 Gale Street #8 Seabrook, TX 77586 kmullins@appracatappra.com http://appracatappra.com Table

More information

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

Best practices building multi-platform apps. John Hasthorpe & Josh Venman Best practices building multi-platform apps John Hasthorpe & Josh Venman It s good to have options Android 4.3 10 Tablet Windows 7 14 Laptop Windows 7 15 Laptop Mac OSX 15 Laptop ios 6 4.6 Phone Android

More information

ADF Mobile Overview and Frequently Asked Questions

ADF Mobile Overview and Frequently Asked Questions ADF Mobile Overview and Frequently Asked Questions Oracle ADF Mobile Overview Oracle ADF Mobile is a Java and HTML5-based mobile application development framework that enables developers to build and extend

More information

Introduction to Android

Introduction to Android Introduction to Android Ref: Wei-Meng Lee, BEGINNING ANDROID 4 APPLICATION DEVELOPMENT, Ch1, John Wiley & Sons, 2012 1. What is Android Android is a mobile operating system that is based on a modified

More information

HTML5 the new. standard for Interactive Web

HTML5 the new. standard for Interactive Web WHITE PAPER HTML the new standard for Interactive Web by Gokul Seenivasan, Aspire Systems HTML is everywhere these days. Whether desktop or mobile, windows or Mac, or just about any other modern form factor

More information

Cross Platform Applications with IBM Worklight

Cross Platform Applications with IBM Worklight Cross Platform Applications with IBM Worklight P.S.S.Vara Prasad M.TECH(CNIS),Dept. of IT Sreenidhi Institute of Science & Technology Hyderabad, Telangana, India Varam1919@gmail.com Mrs. S.Durga Devi Asst.

More information

How To Use Titanium Studio

How To Use Titanium Studio Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 alessandro.grazioli81@gmail.com 2015 Parma Outline Introduction Installation and Configuration

More information

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application BACKBONE.JS Sencha Touch CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application A RapidValue Solutions Whitepaper Author: Pooja Prasad, Technical Lead, RapidValue Solutions Contents Executive

More information

Mobile Application Development

Mobile Application Development Web Engineering Mobile Application Development Copyright 2015 Slides from Federico M. Facca (2010), Nelia Lasierra (updates) 1 2 Where we are? # Date Title 1 5 th March Web Engineering Introduction and

More information

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS RAJESH KUMAR Technical Lead, Aricent PUNEET INDER KAUR Senior Software Engineer, Aricent HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI

More information

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone - 2012 Android Development Lecture 1 Android SDK & Development Environment Università Degli Studi di Parma Lecture Summary - 2 The Android Platform Android Environment Setup SDK Eclipse & ADT SDK Manager Android

More information

Interview with Cocomore, agency for marketing and IT services

Interview with Cocomore, agency for marketing and IT services Interview with Cocomore, agency for marketing and IT services Posted on September 30, 2015 by Dominique Hazael-Massieux Leave a comment The HTML5Apps continues its series of interviews of European SMEs.

More information

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date> Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) Outline Smartphones Developing Mobile Applications Android ios BlackBerry Windows Mobile References Cell phones

More information

Running a Program on an AVD

Running a Program on an AVD Running a Program on an AVD Now that you have a project that builds an application, and an AVD with a system image compatible with the application s build target and API level requirements, you can run

More information

Development. SriSeshaa Technologies. Table of Contents

Development. SriSeshaa Technologies. Table of Contents SriSeshaa Technologies Development Table of Contents SriSeshaa Android Development... 2 Introduction to Android... 3 SriSeshaa Capabilities... 3 SriSeshaa Android Case Studies... 5 Privacy Guard... 5 Backup

More information

Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality,

Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality, Mobile Testing Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality, usability and consistency. A mobile application

More information

Technology Services...Ahead of Times. Enterprise Application on ipad

Technology Services...Ahead of Times. Enterprise Application on ipad Technology Services...Ahead of Times Enterprise Application on ipad Diaspark, 60/2 Babu Labhchand Chhajlani Marg, Indore M.P. (India) 452009 Overview This white paper talks about the capabilities of ipad

More information

... Introduction... 17. ... Acknowledgments... 19

... Introduction... 17. ... Acknowledgments... 19 ... Introduction... 17... Acknowledgments... 19 PART I... Getting Started... 21 1... Introduction to Mobile App Development... 23 1.1... The Mobile Market and SAP... 23 1.1.1... Growth of Smart Devices...

More information

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules www.mobilelabsinc.com

Mastering Mobile Web with 8 Key Rules. Mastering Mobile Web with 8 Key Rules www.mobilelabsinc.com Mastering Mobile Web with 8 Key Rules 1 2 Introduction When it comes to mobile web design and testing, mobility plays by a far different set of rules than the desktops of years past. Today we are challenged

More information

ORACLE ADF MOBILE DATA SHEET

ORACLE ADF MOBILE DATA SHEET ORACLE ADF MOBILE DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Java technology enables cross-platform business logic Mobile optimized

More information

place/business fetch details, 184 185 removefromfavorite () function, 189 search button handler bind, 190 191 B BlackBerry build environment

place/business fetch details, 184 185 removefromfavorite () function, 189 search button handler bind, 190 191 B BlackBerry build environment Index A addtofavorite() method, 175 177, 188 189 Android ADT Plugin for Eclipse installation, 22 24 application, GWT Build Path, 244 device info, 247 directory structure, 244, 245 Eclipse classpath, 244

More information

Android Mobile App Building Tutorial

Android Mobile App Building Tutorial Android Mobile App Building Tutorial Seidenberg-CSIS, Pace University This mobile app building tutorial is for high school and college students to participate in Mobile App Development Contest Workshop.

More information

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved.

A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved. A Beginners Guide To Responsive, Mobile & Native Websites 2013 Enhance.ie.All Rights Reserved. 1 The Mobile Web refers to access to the world wide web, i.e. the use of browser-based Internet services,

More information

Cross-Platform Mobile Application Development

Cross-Platform Mobile Application Development Cross-Platform Mobile Application Development Anirudh Nagesh, MS Student School of Information Studies, Syracuse University anagesh@syr.edu Carlos E. Caicedo, Assistant Professor School of Information

More information

Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications

Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications Evaluating Cross-Platform Development Approaches (WORA Tools ) for Mobile Applications Prof. Vijaya Jadhav Asst. Professor, ASM s IBMR, E-mail : vijayajadhav@asmedu.org Prof. Haridini Bhagwat Asst. Professor,

More information

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET PRODUCTIVE ENTERPRISE MOBILE APPLICATIONS DEVELOPMENT KEY FEATURES Visual and declarative development Mobile optimized user experience Simplified access to

More information

Android Programming: Installation, Setup, and Getting Started

Android Programming: Installation, Setup, and Getting Started 2012 Marty Hall Android Programming: Installation, Setup, and Getting Started Originals of Slides and Source Code for Examples: http://www.coreservlets.com/android-tutorial/ Customized Java EE Training:

More information

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper

MOBILIZING ORACLE APPLICATIONS ERP. An Approach for Building Scalable Mobility Solutions. A RapidValue Solutions Whitepaper MOBILIZING ORACLE APPLICATIONS ERP An Approach for Building Scalable Mobility Solutions A RapidValue Solutions Whitepaper TABLE OF CONTENTS Executive Overview Typical Architecture for Mobilizing Oracle

More information

A Tool for Evaluation and Optimization of Web Application Performance

A Tool for Evaluation and Optimization of Web Application Performance A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 cernyto3@fel.cvut.cz Michael J. Donahoo 2 jeff_donahoo@baylor.edu Abstract: One of the main goals of web application

More information

Mobile Phones Operating Systems

Mobile Phones Operating Systems Mobile Phones Operating Systems José Costa Software for Embedded Systems Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2015-05-28 José Costa (DEI/IST) Mobile Phones Operating

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

separate the content technology display or delivery technology

separate the content technology display or delivery technology Good Morning. In the mobile development space, discussions are often focused on whose winning the mobile technology wars how Android has the greater share of the mobile market or how Apple is has the greatest

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

HTML5 as the Core Technology of the Mobile Enterprise

HTML5 as the Core Technology of the Mobile Enterprise Worklight - Extend Your Business White Paper HTML5 as the Core Technology of the Mobile Enterprise Contents Intro... 4 Strategic Considerations... 4 Commitment from Mobile Vendors... 4 Active Standardization

More information

Intel Integrated Native Developer Experience (INDE): IDE Integration for Android*

Intel Integrated Native Developer Experience (INDE): IDE Integration for Android* Intel Integrated Native Developer Experience (INDE): IDE Integration for Android* 1.5.8 Overview IDE Integration for Android provides productivity-oriented design, coding, and debugging tools for applications

More information

Module Title: Software Development A: Mobile Application Development

Module Title: Software Development A: Mobile Application Development Module Title: Software Development A: Mobile Application Development Module Code: SDA SDA prerequisites: CT1, HS1, MS001, CA Award of BSc. In Information Technology The Bachelor of Science in Information

More information

Middleware- Driven Mobile Applications

Middleware- Driven Mobile Applications Middleware- Driven Mobile Applications A motwin White Paper When Launching New Mobile Services, Middleware Offers the Fastest, Most Flexible Development Path for Sophisticated Apps 1 Executive Summary

More information

All About Android WHAT IS ANDROID?

All About Android WHAT IS ANDROID? All About Android WHAT IS ANDROID? Android specifically refers to a mobile operating system (based on Linux) that is developed by Google. It is open-source software, meaning that anyone can download the

More information

HTML5: Separating Fact and Fiction. www.wipconnector.com @caaarlo #wipjam

HTML5: Separating Fact and Fiction. www.wipconnector.com @caaarlo #wipjam HTML5: Separating Fact and Fiction www.wipconnector.com @caaarlo #wipjam Announcements What is HTML5? Agenda What can HTML5 do? What can t it do? Pure HTML5/Native vs. Hybrid approaches Guest Developer

More information

Here s how to choose the right mobile app for you.

Here s how to choose the right mobile app for you. Here s how to choose the right mobile app for you. There is no arguing with statistics. The future of the web is mobile. Tablet shipments are increasing exponentially and within two years consumer broadband

More information

Responsive Web Design. vs. Mobile Web App: What s Best for Your Enterprise? A WhitePaper by RapidValue Solutions

Responsive Web Design. vs. Mobile Web App: What s Best for Your Enterprise? A WhitePaper by RapidValue Solutions Responsive Web Design vs. Mobile Web App: What s Best for Your Enterprise? A WhitePaper by RapidValue Solutions The New Design Trend: Build a Website; Enable Self-optimization Across All Mobile De vices

More information

Statement of Direction

Statement of Direction Mobile First: Taking Mobile CRM to the Next Level 1 January 2013 Mobile First: Taking Mobile CRM to the Next Level Whitepaper Mobile First: Taking Mobile CRM to the Next Level 2 Table of Contents Notes...

More information

Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston

Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston Dave Haseman, Ross Hightower Mobile Development for SAP* -a ^>. Galileo Press # Bonn Boston Introduction 17 Acknowledgments 19 PART I Getting Started 1.1 The Mobile Market and SAP 23 1.1.1 Growth of Smart

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development Mobile Development Trends Need an App... 3 4 Popular Devices in Latvia

More information

START TEACHER'S GUIDE

START TEACHER'S GUIDE START TEACHER'S GUIDE Introduction A complete summary of the GAME:IT Junior curriculum. Welcome to STEM Fuse's GAME:IT Junior Course Whether GAME:IT Junior is being taught as an introductory technology

More information

How To Develop An Html5 Based Mobile App

How To Develop An Html5 Based Mobile App July 2012 HTML5 in MobiLe DeveLopMenT introduction HTML5 is soon to be the no. 3 mobile platform after Apple s ios and Google s Android. Not being a popular technology within enterprise world at first,

More information

Sandcrater Software White Paper. Native vs. HTML5 Mobile Applications

Sandcrater Software White Paper. Native vs. HTML5 Mobile Applications Sandcrater Software White Paper Native vs. HTML5 Mobile Applications Ron DiNapoli Sandcrater Software July 1, 2013 This page intentionally left blank Native vs. HTML5 Mobile Applications 2 Introduction

More information

Android Architecture. Alexandra Harrison & Jake Saxton

Android Architecture. Alexandra Harrison & Jake Saxton Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003

More information

Native, Hybrid or Mobile Web Application Development

Native, Hybrid or Mobile Web Application Development Native, Hybrid or Mobile Web Application Development Learn more about the three approaches to mobile application development and the pros and cons of each method. White Paper Develop a Mobile Application

More information

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz (@jkoder) Java Developer

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz (@jkoder) Java Developer Developing multidevice-apps using Apache Cordova and HTML5 Guadalajara Java User Group Guillermo Muñoz (@jkoder) Java Developer WTF is Apache Cordova? Set of device APIs that allow to access native device

More information

START TEACHER'S GUIDE

START TEACHER'S GUIDE START TEACHER'S GUIDE Introduction A complete summary of the GAME:IT Intermediate curriculum. Welcome to STEM Fuse's GAME:IT Intermediate Whether GAME:IT Intermediate is being taught as a technology course,

More information

Mobile Enterprise Application Development - a Cross-Platform Framework

Mobile Enterprise Application Development - a Cross-Platform Framework Mobile Enterprise Application Development - a Cross-Platform Framework FLORIAN WOLF, KARSTEN HUFFSTADT Applied Research Center for Mobile Solutions University of Applied Sciences Wuerzburg-Schweinfurt

More information

Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality

Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality www.ijcsi.org 455 Smart Phones Application development using HTML5 and related technologies: A tradeoff between cost and quality 1 Yousuf Hasan, 2 Mustafa Zaidi, 3 Najmi Haider, 4 W.U.Hasan and 5 I.Amin

More information