Vineet Kumar proposes developing a cross-platform emulator for Phonegap applications. The emulator would allow testing Phonegap apps directly in a web browser by simulating mobile hardware using JavaScript, jQuery, Flash and other technologies. It would modify Phonegap's APIs to pass values from the simulated components to the app for testing, rather than accessing true native mobile APIs. This would simplify the development and testing process for cross-platform mobile apps without requiring heavy native mobile SDKs.
AIR & Printing is a talk made during SOTR 2010 in London.
During this event I talked on how to work offline with AIR to create PDF in runtime directly with Actionscript 3 without using any other technology
AIR & Printing is a talk made during SOTR 2010 in London.
During this event I talked on how to work offline with AIR to create PDF in runtime directly with Actionscript 3 without using any other technology
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...Aimore Technologies
Microsoft’s ASP.NET technology for internet development? Let’s perceive the explanations behind selecting ASP.NET web application development services.Developers will build all types of apps from the only ones to the foremost complicated ones victimization this programming platform.
Xamarin aims to be the framework that can cover all major mobile platforms- iOS, Android and Windows without compromising on quality and performance as expected from native apps development. Well known mature .NET framework libraries are available on Android and iOS platforms as well. The rich features of these libraries give an added advantage to Xamarin considering the developer view point.
Greane Tree Technology CTO Joseph Payette gave our latest “Lunch & Learn” presentation. With the number of tools and frameworks for cross platform mobile application development increasing every year, it can be a challenge to determine the best fit technology for a mobile project. All of these tools and frameworks have their advantages and disadvantages, as they leverage different mechanisms for abstracting differences across mobile devices in an effort to provide a single platform for rapid application development. To bring order to the various options at hand, Joe reviewed mobile application architectures (native, hybrid, and HTML5), and explored and compared a few hybrid tools and frameworks, namely PhoneGap (www.phonegap.com), Appcelerator (www.appcelerator.com), and MoSync (www.mosync.com). Joe’s mobile application development presentation includes sample code for these three tools and frameworks.
The Lunch and Learn series is a regular event where we discuss topics of interest to our projects and clients. Last month, Chad Calhoun explored Git Interactive Techniques.
How DotNet, SharePoint, and Azure helps to build a Custom Web Application wi...Aimore Technologies
Microsoft’s ASP.NET technology for internet development? Let’s perceive the explanations behind selecting ASP.NET web application development services.Developers will build all types of apps from the only ones to the foremost complicated ones victimization this programming platform.
Xamarin aims to be the framework that can cover all major mobile platforms- iOS, Android and Windows without compromising on quality and performance as expected from native apps development. Well known mature .NET framework libraries are available on Android and iOS platforms as well. The rich features of these libraries give an added advantage to Xamarin considering the developer view point.
Greane Tree Technology CTO Joseph Payette gave our latest “Lunch & Learn” presentation. With the number of tools and frameworks for cross platform mobile application development increasing every year, it can be a challenge to determine the best fit technology for a mobile project. All of these tools and frameworks have their advantages and disadvantages, as they leverage different mechanisms for abstracting differences across mobile devices in an effort to provide a single platform for rapid application development. To bring order to the various options at hand, Joe reviewed mobile application architectures (native, hybrid, and HTML5), and explored and compared a few hybrid tools and frameworks, namely PhoneGap (www.phonegap.com), Appcelerator (www.appcelerator.com), and MoSync (www.mosync.com). Joe’s mobile application development presentation includes sample code for these three tools and frameworks.
The Lunch and Learn series is a regular event where we discuss topics of interest to our projects and clients. Last month, Chad Calhoun explored Git Interactive Techniques.
Trend Analysis of Fear Mongering & Increased Need for Security
It's an academic project for Boston University College of Communication. This project examines the underlying reasons of people's increasing concerns about security and safety and explores three aspects of security, including car security, home security, and personal security. Three existing product examples are given to illustrate how companies and brands are using this trend to target customers and sell their products. We also find two opportunities for companies and brands to consider within this trend.
Kas ir ātrie kredīti, to īpašības, atmaksas termiņi, aizdevuma apmēri, priekšnosacījumi kredīta saņemšanai un cita noderīga informācija par ātrajiem kredītiem internetā. Vairāk informācijas http://compeuro.lv/atrie-krediti/
CONARH 2015: Como lidar com as diferentes gerações (Tradicionalistas, Baby Bo...Mauro de Oliveira
Conhecer o perfil de uma equipe, ajuda a melhorar a comunicação e interação. Os diferentes grupos podem ser divididos por vários fatores, entre eles, por Gerações, ou seja, de acordo com o ano de nascimento. Temos cinco grande grupos atualmente. Entender quais são os fatores importantes e formadores de cada um deles, ajuda a compreender melhor suas atitudes, comportamentos e, também, como lidar com os mesmos no ambiente profissional.
A PowerPoint presentation of basic concepts in Marketing as a preparation for the more advanced dimensions of the discipline when students proceed to higher years.
Join Cloudera’s founder and Chief Scientist, Jeff Hammerbacher, as he describes ten common problems that are being solved with Apache Hadoop.
A replay of the webinar can be viewed here:
https://www1.gotomeeting.com/register/719074008
Cross platform mobile app development tools reviewUday Kothari
Presentation to discuss various Cross Platform Mobile Apps development tools. Rhodes, PhoneGap, Appcelerator, Sencha Touch, Xamarin, MoSync SDK and MoSync Reload.
Cross Compilation, VM, Mobile Web. Join our Meetup group for meeting great app developers, entrepreneurs, startups, students in Pune (Pune Mobile Apps Developers Meetup)
Get details about what is a tech stack and how to select the best technology stack for your project. This guide by Albiorix Technology will help to build scalable and cost-effective web applications.
For More Information: https://www.albiorixtech.com/blog/what-is-a-technology-stack/
#TechnologyStack #WebAppDevelopment #MobileAppDevelopment #SoftwareDevelopment
PhoneGap is a mobile application development framework based on Apache Cordova open source project.
Using Phonegap, developers can develop native mobile apps for any mobile device using CSS, JavaScript, and HTML without losing the functionality of a native app. PhoneGap Build offers a cloud-based service that is built on the PhoneGap framework.
For more information please refer: www.appzure.com
Flutter seeks to offer a consistent experience across all modern devices and platforms. Read the blog to find out all the web-specific features Flutter brings to the forefront. https://webguruinfosystems.blogspot.com/2021/07/flutter-for-web-comprehensive-outline.html
Multi-platform Compatibility of HTML5 by developing simple HTML5 based game(M...Himanshu Sharan
Exploited the multi-platform compatibility of HTML5 by developing a simple HTML5 based game using Phaser game development framework and Intel XDK multi-platform HTML5 application development IDE.
Multi-platform Compatibility of HTML5 by developing simple HTML5 based game(M...Himanshu Sharan
Exploited the multi-platform compatibility of HTML5 by developing a simple HTML5 based game using Phaser game development framework and Intel XDK multi-platform HTML5 application development IDE.
Mobile Developer's Guide To The Galaxy No. 9Marco Tabor
This non-commercial brochure by the German company Enough Software (www.enough.de) provides an overview on the different mobile technologies and platforms. Almost 20 writers contributed their know-how and outline their views on the pros and cons of different operation systems and development approaches. Together with the Wireless Industry Partnership (WIP), we started this project in 2009. The current 9th edition has been presented in October 2011 and consists of 170 pages.
Please send your feedback and input directly to developers@enough.de
Use the same address if your company would like to sponsor upcoming editions.
In case you would like to get hardcopies of the guide, we will be happy to send them over to you. You would just need to pay us the postage and packaging.
1. Cross-Platform Emulator for Phonegap
Vineet Kumar
Indian Institute of Technlogy (BHU), Varanasi
vineet.kumar.cer11@iitbhu.ac.in
Abstract
In recent years mobile phone has found more usage than comput-
ers. This can be seen by increase in number of device users based
on platforms like iOS, Android, Windows Phone. A Mobile De-
velopement Framework called PhoneGap enables app developers
to develop applications using web technologies instead of relying
on platform-specific APIs like those mentioned earlier. This pa-
per explains developing an emulator for Phonegap which can be
deployed in any web browsers. Simulation of mobile hardware is
done using Javascript and flash which are used to develop the em-
ulator. The simulator is linked to Phonegap where it makes native
calls. This simplifies the testing and development environment for
cross-platform application without installing heavy native applica-
tion tool kits in our PC.
Categories and Subject Descriptors D.2.5 [Testing Tools]: Tech-
nological
General Terms Cross-Platform, Hybrid Applications, Emulator,
Simulator
Keywords Cross-Platform, PhoneGap, Emulator, Mobile Appli-
cation, Simulator, Development Environment
1. Introduction
Nowadays, handheld devices like Apple iPhone and iPad, Google
Nexus and Microsoft Lumia and Surface have become prevalent.
The main advantage for each device is the availability of applica-
tions. Thus, application development for these devices has become
a major issue. The traditional approach involves developement in
programing languages like Objective-C for iOS devices, Java for
Android devices and C# for Windows devices. This becomes a te-
dious task for a developer, writing separate codes in all three lan-
guages [1].
But now through Cross-Platform developement tools, applica-
tions can be developed on multiple platforms using same code
base. This increasing popularity of is because of the characteris-
tic feature to compile the application source code for multiple sup-
ported Operating Syatems. These tools depend heavily on web pro-
gramming languages like HyperText Markup Language (HTML),
JavaScript and Cascading Style Sheets (CSS) with some native
wrapper code for accessing native Application Program Interfaces
Permission to make digital or hard copies of all or part of this work for personal or
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full citation
on the first page. Copyrights for components of this work owned by others than ACM
must be honored. Abstracting with credit is permitted. To copy otherwise, or republish,
to post on servers or to redistribute to lists, requires prior specific permission and/or a
fee. Request permissions from permissions@acm.org.
MobileSoft ’15, May 16–17, 2015, Florence, Italy.
Copyright c 2015 ACM [to be supplied]...$15.00.
http://dx.doi.org/10.1145/
(API) like Camera, Contacts, etc [2]. The application development
has become easier and time saving after using such tools. This pa-
per aims on developement of an Emulator for the most popular
framework for Cross-Platform application devlopment, Phonegap.
The emulation is deployed in the web browser using simulated mo-
bile hardware.
2. Background Works
2.1 Web Standards
The World Wide Web is basically built the three most common lan-
guages - HTML, CSS and JavaScript. Hypertext Markup Language
communicates its purpose by its name. HTML divides up a doc-
ument, specify its contents and structure, and define the meaning
of each part (headings, paragraphs, bulleted lists, etc.) Elements
are used to identify the different components of a page. Cascading
Style Sheets controls the elemental is style and positioning. Its easy,
using style declarations, to change all paragraphs to be double-
spaced (line-height: 2em;), or to make all second-level headings
green (color: green;). For dynamic functions in web applications
JavaScript is used. Programs written in JavaScript are executed
in the web browser, requiring no special software to be installed.
JavaScript allows addition of powerful interactivity and dynamic
features to your web site. Only a few limitations brings us to server-
side programming languages, and dynamic web pages [3].
2.2 Phonegap
PhoneGap is an application container technology that allows you
to create natively-installed applications for mobile devices using
HTML, CSS, and JavaScript. PhoneGap provides an application
programming interface (API) that enables you to access native
operating system functionality using JavaScript. We can build our
application logic using JavaScript, and the PhoneGap API handles
communication with the native operating system [4].
2.3 jQuery
jQuery is a fast and concise JavaScript Library that simplifies
HTML document traversing, event handling, animating, and Ajax
interactions for rapid web development [1]. jQuery was designed
to change the way, JavaScript was written [5]. It provides a simple
way to develop and reduce codes and time efficiency.
2.4 JSC3D
JSC3D library provides a 3d object viewer for presenting 3d mod-
els and small scenes on a web page. JSC3D is coded entirely in
Javascript and requires an HTML canvas to perform rendering and
interactions. JSC3D is built on pure Javascript software rendering
using 2d canvas technology as well as an optional WebGL back-end
that provides more efficient rendering. It is designed to be widely
compatible with most major browsers that support HTML5 Canvas
feature [6].
2. 2.5 Adobe Flash
Adobe Flash (formerly called Macromedia Flash and Shockwave
Flash) is a multimedia and software platform used for creating
vector graphics, animation, games and rich Internet applications
(RIAs) that can be viewed, played and executed in Adobe Flash
Player. Flash manipulates vector and raster graphics to provide
animation of text, drawings, and still images. It allows bidirectional
streaming of audio and video, and it can capture user input via
mouse, keyboard, microphone and camera. Flash applications and
animations can be programmed using the object-oriented language
called ActionScript [7].
2.6 ScriptCam
ScriptCam is a popular JQuery plugin to manipulate webcams. It
takes snapshots, detect movement and colors, record videoclips,
generate animated GIFs, make thumbnails and organize one-to-one
and one-to-many videochats using JavaScript on your own site [8].
ScriptCam camera access feature required to load a flash object on
the web page dynamicaly with the help of jQuery and JavaScript.
2.7 jStorage
jStorage is a cross-browser key-value store database to store data
locally in the browser. It works well with any other JavaScript
library on the same webpage. jStorage supports storing Strings,
Numbers, JavaScript objects, Arrays and even native XML nodes
which kind of makes it a JSON storage. jStorage also supports
setting TTL values for auto expiring stored keys and - best of all -
notifying other tabs/windows when a key has been changed, which
makes jStorage also a local PubSub platform for web applications
[9].
2.8 Bootstrap
Bootstrap is a free collection of tools for creating websites and web
applications. It contains HTML and CSS-based design templates
for typography, forms, buttons, navigation and other interface com-
ponents, as well as optional JavaScript extensions [10].
3. Simulating Mobile Components
Mobile components like sensors, camera etc play a very important
role of the application devlopment. Phonegap have many differ-
ent API’s for accessing motion sensors, camera, location and files.
We can use JSC3D library to create 3D objects like a globe or a
phone to simulate motion sensors viz. accelerometer and geoloca-
tion which are be triggerred by the movement of mouse the object.
Google Maps can also be used for location purpose. Camera can
be simulated by using the camera of the devlopment machine us-
ing Adobe Flash object. Similarily with the help of JavaScript and
Flash we can simulate all other API’s in Phonegap.
4. Native Calls
Phonegap applications are simple web pages including phonegap.js
or cordova.js as script. The phonegap.js file makes the native call
to mobile operating systems. The main comcern is finding the
similarity between the APIs when it tries to make a native call.
When a JavaScript function is called from a Phonegap API it
associates two callback methods - containing success and error
messages. When we try to open a phonegap application on a simple
web browser we will always get an error callback message. This
implies that phonegap has failed in making a native call. So we
have to reach the point where it is trying to make the native call
and modify such that it gets a values from the simulated mobile
component. In all of the standard API’s of Phonegap for Windows
Phone the point where it is trying to make the native call is a file
named as ”proxy”. This proxy file is supposed to recieve a JSON
from the native hardware. From this point on, the browser fails
to proceed. Here only we have to pass values from our simulated
mobile component.
Following is the proxy file for the Compass API of Phonegap
[11].
1 getHeading: function (win , lose) {
2 var deviceCompass = Windows.Devices.Sensors
.Compass.getDefault ();
3 if (! deviceCompass ) {
4 setTimeout(function () {
5 lose( CompassError .
COMPASS_NOT_SUPPORTED );
6 }, 0);
7 } else {
8 deviceCompass . reportInterval = Math.max
(16, deviceCompass .
minimumReportInterval );
9 this. onReadingChanged = function (e) {
10 var reading = e.reading ,
11 heading = new CompassHeading (
reading.headingMagneticNorth ,
12 reading.headingTrueNorth , null , reading.
timestamp.getTime ());
13 win(heading);
14 };
15 deviceCompass . addEventListener ("
readingchanged ", this.
onReadingChanged );
16 }
17 },
18 stopHeading: function (win , lose) {
19 var deviceCompass = Windows.Devices.Sensors
.Compass.getDefault ();
20 if (! deviceCompass ) {
21 setTimeout(function () {
22 lose( CompassError .
COMPASS_NOT_SUPPORTED );
23 }, 0);
24 } else {
25 deviceCompass . removeEventListener ("
readingchanged ", this.
onReadingChanged );
26 this. onReadingChanged = null;
27 deviceCompass . reportInterval = 0;
28 win ();
29 }
30 }
Listing 1. Compass API Proxy
As we can see in above code in the line no. 12 phonegap is trying
to access mobile component to make a native call. This is where
we have to call our Mobile Simulator to pass values for a success
callback. After removing unnecessary code this will be final proxy
file.
1 getHeading: function (win , lose) {
2 var reading = MobileSimulator .plugin.compass
.values (),
3 heading = new CompassHeading (reading.
headingMagneticNorth ,
4 reading.headingTrueNorth , null , reading.
timestamp);
5 win(heading);
6 },
7 stopHeading: function (win , lose) {
8 var deviceCompass = true;
9 if (! deviceCompass ) {
10 setTimeout(function () {
3. 11 lose( CompassError .
COMPASS_NOT_SUPPORTED );
12 }, 0);
13 } else {
14 win ();
15 }
16 }
Listing 2. Passing Simulator Values
5. Emulator Development
There are no well known toolkit and development environment
available for testing, specifically targeting hybrid applications. For
testing such applications one has to install the native toolkit of ei-
ther Android, Windows or iOS. Import the Phonegap code for re-
spective OS and test over it. Our aim is to build an emulator of
Phonegap as a testing environment. We will modify the standard
API’s of Phonegap as well as main script file so it could work on
a normal web browser. Hence, this emulator can run such applica-
tions on popular web browsers. Mobile component will be simu-
lated using JavaScript and Flash Objects.
Figure 1. Emulator Architecture
Emulator design and development can divide into two major
components.
5.1 Simulation Controls
JavaScript, jQuery and Flash will bring the mobile hardware sim-
ulation control on the emulators page with the help of following
libraries.
• JSC3D : This library will be use to create 3D Earth Globe and
Mobile Phone such that developers can move, rotate, zoom the
3D objets to generate values at the native calls.
• ScriptCam : This library will be use to access devlopment
computer’s camera to capture image or video.
• jStorage: This library will use to access files or contacts.
5.2 Interface Design
HTML, CSS and JavaScript will provide the basic interaction and
interface of the emulator whilw following library will use to en-
hance the interface and make emulator feels more intelligent.
• jQuery : will be use to enhance logical interactions of emula-
tors.
• Bootstrap : will be use make the emulators interface more
beautiful and structured.
6. Conclusion
This emulator and its cross-platform nature will bring a revolution
to mobile application development and future of cross-platform
mobile applications.
Acknowledgments
Author wants to acknowledge Unisys Corporation and Department
of Mathematics and Computing, Indian Institute of Technology,
BHU for their support and guidance for the project.
References
[1] Guangyuan Piao and Wooju Kim, Introduction to iPad Application
Development with PhoneGap, IACSIT, Vol. 4, No. 1, February 2013
[2] Avinash Shrivas, Anandkumar Pardeshi, Student Information System
using PhoneGap Framework, IJETEA (ISSN 2250-2459, ISO 9001:2008
Certified Journal, Volume 3, Issue 9, September 2013)
[3] How does the Internet work [Online]. Available:
https://www.w3.org/wiki/How does the Internet work
[4] PhoneGap Explained Visually [Online]. Available:
http://phonegap.com/2012/05/02/phonegap-explained-visually/
[5] jQuery Google Feed Plugin [Online]. Available: http://jquery.com/
[6] jsc3d : A web 3d object viewer using pure javascript and html canvas
[Online]. Available: http://code.google.com/p/jsc3d/
[7] Adobe Flash [Online]. Available:
http://en.wikipedia.org/wiki/Adobe Flash
[8] ScriptCam [Online]. Available: https://github.com/teleline/ScriptCam
[9] jStorage - store data locally with JavaScript [Online]. Available:
http://www.jstorage.info/
[10] Bootstrap (front-end framework) [Online]. Available:
http://en.wikipedia.org/wiki/Bootstrap (front-end framework)
[11] CompassProxy.js [Online]. Available:
https://github.com/apache/cordova-plugin-device-
orientation/blob/master/src/windows8/CompassProxy.js