792 research outputs found

    Overcoming Language Dichotomies: Toward Effective Program Comprehension for Mobile App Development

    Full text link
    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.

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    corecore