792 research outputs found
Overcoming Language Dichotomies: Toward Effective Program Comprehension for Mobile App Development
Mobile devices and platforms have become an established target for modern
software developers due to performant hardware and a large and growing user
base numbering in the billions. Despite their popularity, the software
development process for mobile apps comes with a set of unique, domain-specific
challenges rooted in program comprehension. Many of these challenges stem from
developer difficulties in reasoning about different representations of a
program, a phenomenon we define as a "language dichotomy". In this paper, we
reflect upon the various language dichotomies that contribute to open problems
in program comprehension and development for mobile apps. Furthermore, to help
guide the research community towards effective solutions for these problems, we
provide a roadmap of directions for future work.Comment: Invited Keynote Paper for the 26th IEEE/ACM International Conference
on Program Comprehension (ICPC'18
Study and Development of Cross-Platform Cloogy Mobile Application for VPS – Virtual Power Solutions.
A energia renovável e a conservação de energia tornaram-se tópicos importantes nos últimos anos. As empresas têm realizado esforços para reduzir o consumo de energia através da otimização de dispositivos e da conscientização dos consumidores sobre o seu uso.
Para contribuir com este esforço, a Virtual Power Solutions (VPS) fornece uma solução onde os proprietários / utilizadores de edifícios obtêm visibilidade e controle em tempo real dos seus aparelhos elétricos instalados na sua residência. A VPS alcançou com sucesso a gestão de procura, e a tecnologia de automação de edifícios numa única aplicação móvel designada por Cloogy. Esta aplicação fornece aos consumidores de energia e aos seus parceiros a capacidade de verificar e controlar o consumo de energia em tempo real, permitindo reduzir o nível de consumo ao mínimo sem comprometer as operações do dia a dia.
Atualmente, a Cloogy tem suas aplicações móveis disponíveis para Android, iOS e Windows Phone com funcionalidades semelhantes. Deste modo, porem cada aplicação requer diferentes linguagens de programação para cada plataforma, o que envolve um custo para manter essas diferentes plataformas. Por esta razão, para a presente tese, a VPS appresentou o objetivo de desenvolver uma aplicação móvel híbrida, que se baseará numa base de código único e terá acesso a todas as APIs da plataforma.
Diferentes tipos de ferramentas de desenvolvimento estão disponíveis para construir uma aplicação híbrida. Depois de definir os requisitos funcionais e não-funcionais, um protótipo de aplicação híbrida foi construído usando o Ionic Framework, que consiste numa das Frameworks de código aberto os disponíveis para construir aplicações móveis híbridas. Com a ajuda desta framework, uma aplicação móvel pode ser criada usando um conjunto de tecnologias da web, como JavaScript, HTML e CSS, e implementada o aplicativo em todas as principais plataformas, como Android e iOS.
O protótipo construído nos permite-nos aceder a dados de consumo através do nosso smartphone ou tablet a partir de uma localização remota com a ajuda da iEnergy3 API da VPS. As principais características oferecidas pelo protótipo são a monitorização do consumo de energia através de registros e dados em tempo real, e a verificação dos indicadores de consumo como desempenho, média diária, previsões, etc. O protótipo também fornece pegadas ecológicas, conjuntamente com indicadores de consumo, e é capaz de controlar e agendar períodos de consumo de electricidade a partir de um local remoto.N/
Energy Efficiency Analysis And Optimization For Mobile Platforms
The introduction of mobile devices changed the landscape of computing. Gradually, these devices are replacing traditional personal computer (PCs) to become the devices of choice for entertainment, connectivity, and productivity. There are currently at least 45.5 million people in the United States who own a mobile device, and that number is expected to increase to 1.5 billion by 2015.
Users of mobile devices expect and mandate that their mobile devices have maximized performance while consuming minimal possible power. However, due to the battery size constraints, the amount of energy stored in these devices is limited and is only growing by 5% annually. As a result, we focused in this dissertation on energy efficiency analysis and optimization for mobile platforms. We specifically developed SoftPowerMon, a tool that can power profile Android platforms in order to expose the power consumption behavior of the CPU. We also performed an extensive set of case studies in order to determine energy inefficiencies of mobile applications. Through our case studies, we were able to propose optimization techniques in order to increase the energy efficiency of mobile devices and proposed guidelines for energy-efficient application development. In addition, we developed BatteryExtender, an adaptive user-guided tool for power management of mobile devices. The tool enables users to extend battery life on demand for a specific duration until a particular task is completed. Moreover, we examined the power consumption of System-on-Chips (SoCs) and observed the impact on the energy efficiency in the event of offloading tasks from the CPU to the specialized custom engines. Based on our case studies, we were able to demonstrate that current software-based power profiling techniques for SoCs can have an error rate close to 12%, which needs to be addressed in order to be able to optimize the energy consumption of the SoC. Finally, we summarize our contributions and outline possible direction for future research in this field
From native to cross-platform hybrid development : CodeGT, design and development of a mobile app for ERP
The current trend towards mobility of individuals, together with the exponential
growth of the number of mobile devices led the market to a boom in the demand for the
development of mobile applications. Moreover, with the expansion and heterogeneity of
the mobile devices and platforms, software companies need to search for faster and
cheaper ways to develop applications that can span as many devices as possible to capture
the market. Currently, the Android and iOS Operating Systems roughly share and
dominate the mobile market, with timid expressions of other competitors. Each of these
mobile operating systems were developed using their own languages, strategy and SDKs
for development of applications using their libraries – known as Native apps. On the other
hand, the evolution of HTML5, CSS and JavaScript created generic alternatives to create
mobile apps that run on devices on all operating systems, although lacking the capability
to access the device’s full potential. Alongside came the new Hybrid cross-platform
development frameworks, which try to take the best of both worlds.
This dissertation describes the evolution of the different mobile app development
approaches and the state-of-the-art in their development techniques, and compares them
with the Hybrid app approach, then highlighting the trends in mobile app development
using Hybrid platforms and their advantages. This research includes the development of
a mobile Hybrid application, CodeGT, which interacts with an Enterprise Resource
Planning (ERP) to access the Transport Documents registered in this ERP and access to
the code transmitted by the Portuguese Tax Authority (AT), therefore not requiring the
printing of documents and meeting a need of the business market. This application does
already have customer industry companies interested in it.As tendências atuais em direção à grande mobilidade dos indivíduos, juntamente com
o crescimento exponencial do número de dispositivos móveis, levaram ao enorme
crescimento na procura do desenvolvimento de aplicações móveis. Além disso, com a
expansão e heterogeneidade dos dispositivos e das plataformas móveis, as empresas de
desenvolvimento de software necessitam de encontrar formas mais rápidas e baratas de
desenvolver aplicações capazes de abranger o maior número de dispositivos para ir ao
encontro da elevada procura do mercado. Atualmente, os sistemas operativos Android e
iOS dividem e dominam o mercado de dispositivos móveis com expressões tímidas de
outros concorrentes. Cada um desses sistemas operativos móveis foi desenvolvido
especificamente para linguagens de programação e estratégias próprias e oferecem um
conjunto de ferramentas de desenvolvimento com as suas bibliotecas, para a criação de
aplicações nativas. Por outro lado, a evolução do HTML5, CSS e do JavaScript criaram
oportunidades para o surgimento de alternativas genéricas para criação de aplicações
multiplataforma que correm em todos os dispositivos e em todos os sistemas operativos,
mas sem a capacidade de aceder todo o potencial nativo do dispositivo. Paralelamente
surgiram as novas plataformas de desenvolvimento híbridas, que tentam tirar o melhor
partido dos dois mundos.
Esta dissertação descreve a evolução das diferentes abordagens no desenvolvimento
de aplicações móveis mais concretamente na utilização de ferramentas multiplataformas
para a criação de aplicações móveis híbridas e as suas vantagens. A pesquisa incluiu ainda
o desenvolvimento de uma aplicação móvel, CodeGT, desenvolvido numa plataforma
híbrida para interagir com um software ERP, acedendo aos Documentos de Transporte
registados nesse ERP, assim como ao código transmitido pela Autoridade Tributária
(AT), que assim dispensa a impressão de documentos e indo ao encontro de uma
necessidade do mercado. Esta aplicação já tem empresas clientes interessadas nela
Towards Benchmarking GUI Compatibility Testing on Mobile Applications
GUI is a bridge connecting user and application. Existing GUI testing tasks
can be categorized into two groups: functionality testing and compatibility
testing. While the functionality testing focuses on detecting application
runtime bugs, the compatibility testing aims at detecting bugs resulting from
device or platform difference. To automate testing procedures and improve
testing efficiency, previous works have proposed dozens of tools. To evaluate
these tools, in functionality testing, researchers have published testing
benchmarks. Comparatively, in compatibility testing, the question of ``Do
existing methods indeed effectively assist test cases replay?'' is not well
answered. To answer this question and advance the related research in GUI
compatibility testing, we propose a benchmark of GUI compatibility testing. In
our experiments, we compare the replay success rate of existing tools. Based on
the experimental results, we summarize causes which may lead to ineffectiveness
in test case replay and propose opportunities for improving the
state-of-the-art
Analysis Of Multi-Platform Mobile Application Development
The variety of mobile devices and their operating platforms has rapidly increased. With this increase come separate standards, programming languages, and distribution markets. Typically developers want to deliver their products to a variety of users encompassing various platforms; however choosing to develop using a native program for a platform can delay the development and release on another platform. Multi-platform development applications were created in order to deploy applications to various platforms in a more timely and cost efficient manner by using a single code base.
The purpose of this study was to investigate the multi-platform development applications MoSync, Appcelerator, and PhoneGap, create a test application using each multi-platform development application to run on the Android emulator and iOS simulator to determine performance, and also determine which multi-platform application was best suited for allowing a developer to create a mobile application that could be utilized on a variety of platforms
Automating Software Development for Mobile Computing Platforms
Mobile devices such as smartphones and tablets have become ubiquitous in today\u27s computing landscape. These devices have ushered in entirely new populations of users, and mobile operating systems are now outpacing more traditional desktop systems in terms of market share. The applications that run on these mobile devices (often referred to as apps ) have become a primary means of computing for millions of users and, as such, have garnered immense developer interest. These apps allow for unique, personal software experiences through touch-based UIs and a complex assortment of sensors. However, designing and implementing high quality mobile apps can be a difficult process. This is primarily due to challenges unique to mobile development including change-prone APIs and platform fragmentation, just to name a few. in this dissertation we develop techniques that aid developers in overcoming these challenges by automating and improving current software design and testing practices for mobile apps. More specifically, we first introduce a technique, called Gvt, that improves the quality of graphical user interfaces (GUIs) for mobile apps by automatically detecting instances where a GUI was not implemented to its intended specifications. Gvt does this by constructing hierarchal models of mobile GUIs from metadata associated with both graphical mock-ups (i.e., created by designers using photo-editing software) and running instances of the GUI from the corresponding implementation. Second, we develop an approach that completely automates prototyping of GUIs for mobile apps. This approach, called ReDraw, is able to transform an image of a mobile app GUI into runnable code by detecting discrete GUI-components using computer vision techniques, classifying these components into proper functional categories (e.g., button, dropdown menu) using a Convolutional Neural Network (CNN), and assembling these components into realistic code. Finally, we design a novel approach for automated testing of mobile apps, called CrashScope, that explores a given android app using systematic input generation with the intrinsic goal of triggering crashes. The GUI-based input generation engine is driven by a combination of static and dynamic analyses that create a model of an app\u27s GUI and targets common, empirically derived root causes of crashes in android apps. We illustrate that the techniques presented in this dissertation represent significant advancements in mobile development processes through a series of empirical investigations, user studies, and industrial case studies that demonstrate the effectiveness of these approaches and the benefit they provide developers
Native versus hybrid mobile application development for professional membership services
Mobile development is a necessity for every modern business. Nowadays, many solutions to implement mobile applications are available in the market. The largest amount of applications are purely native, meaning that native development is still the preferred development solution. However, the advent of cross-platform mobile development and hybrid mobile development technologies is starting to change the software development process in companies. In fact, several major mobile applications including Facebook, Instagram, Skype, Bloomberg, Uber, Tesla, and Soundcloud are not native; these mobile applications are implemented using frameworks that combine native code with platform-independent code. These frameworks are part of the Hybrid mobile development solutions.
In many cases, businesses are trying to offer their services through mobile applications, but most of the times these applications are not complicated and do not require very innovative development. For this reason, software companies are keen to explore new mobile application development solutions that are cost-efficient.
This thesis presents the complete renovation process of a mobile application for professional membership services currently available in the Apple app store and Google play store. It starts showing the requirements engineering process that helped to define the software requirements. After that, this thesis details the implementation process of two native mobile applications and one in React Native. The three applications follow the same design constraints required by the customer. Finally, this thesis presents a performance comparison between the purely Native mobile applications and the React Native mobile application
Cross-Platform Video Management Solutions
With a multitude of platform and operating system combinations available to- day, ranging from laptops and workstations to tablets and smartphones, users want to use their favorite applications regardless of device. Cross-platform development has thus become more important in recent years. When devel- oping a new application the developers must decide what platforms to support and what strategy to use to reach out to them. By developing both native and cross-platform prototypes we try to find advantages and disadvantages of using a cross-platform strategy for video management applications. We show that it indeed is possible to develop cross-platform video management applications for both Windows and OS X and find both advantages and disadvantages of this strategy. The result of this thesis state that the choice of cross-platform or not depends much on the situation and the preferences of the developers
- …