Overview of the paper "Cloud Twin: Native Execution of Android Applications on the Windows Phone" by Holder et al. presented at Oregon State University for "Software Evolution for Mobility" class on Nov 18th 2013. Presentation time: 5 min
Continuous integration (CI) is a software engineering practice where developers frequently integrate their work, leading to multiple integrations per day. This approach reduces integration problems and allows teams to develop cohesive software more rapidly. The presentation discusses what CI is, why teams need it, prerequisites like version control and automated testing, typical workflows, tools, and benefits like reduced risks and improved code quality. It also examines problems teams face in implementing CI effectively and potential areas of future research like making CI tools more adaptive and addressing scalability issues.
Overview of the paper "Visual Software Evolution Reconstruction" by Marco D'Ambros and Michele Lanza presented at Oregon State University for "Information Visualization" class on May 12th 2014. Presentation time: 15 min
SWE-401 - 2. Software Development life cycle (SDLC)ghayour abbas
The document describes the Software Development Life Cycle (SDLC) which is a structured process for developing software through stages including communication, requirement gathering, feasibility study, system analysis, software design, coding, testing, integration, implementation, and operation and maintenance. It also discusses several software development paradigms that guide the development process, such as waterfall, iterative, spiral, V-model, and big bang models.
Devops training and placement in hyderabadVamsiNihal
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
With this course, master various aspects of software development, operations, continuous integration, continuous delivery, automated configuration management, test, and deployment using DevOps tools like Git, Docker, Jenkins, Ansible, Kubernetes, Puppet & Nagios..
CS 584 - Aligning development tools with the way programmers think about code...Sergii Shmarkatiuk
This presentation reviews a proposed visual tool for generating source code transformations based on the edit-by-example principle. The tool aims to address limitations of existing approaches like regular expressions, IDE search/replace, and AST-based tools by allowing programmers to intuitively create custom transformations through direct manipulation of code representations. An initial prototype was implemented and evaluated via a user study, which provided insights for future iterations. The tool combines textual and graphical elements to naturally fit programmers' mental models of code structure.
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...Rauno De Pasquale
The third appointment of the DevOps Meetup in Turin. We made a survey to collect data to discuss about the usage of the term "DevOps Engineer" to define a specific role. Is it really a role? And how this role compare with the ones of SysAdmin, Cloud Engineer, SRE or Developer? Which are the different organisation model used for each of these roles? Which are the skills and area of competences?
This presentation provides useful and beneficial information related to software development companies. It defines Software development methodology and elaborates various methodologies adopted by software application development companies, web application development companies, custom software development services in India.
Courtesy: Shreyans Agrawal (ifour.shreyans.agrawal@gmail.com)
http://www.ifour-consultancy.com
http://www.ifourtechnolab.com
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
This document summarizes a study on developers' motivation to document code. Through interviews and surveys, researchers identified hindering and motivating factors for code documentation. Hindering factors included documentation being tedious, difficult, time-consuming, and interrupting coding work. Motivating factors included documentation improving code comprehensibility, order, and quality. The researchers propose designing a solution to encourage documentation by emphasizing motivating factors and mitigating hindering ones. They plan to further validate findings through a quantitative questionnaire. The goal is to increase developers' internal motivation to document code.
Continuous integration (CI) is a software engineering practice where developers frequently integrate their work, leading to multiple integrations per day. This approach reduces integration problems and allows teams to develop cohesive software more rapidly. The presentation discusses what CI is, why teams need it, prerequisites like version control and automated testing, typical workflows, tools, and benefits like reduced risks and improved code quality. It also examines problems teams face in implementing CI effectively and potential areas of future research like making CI tools more adaptive and addressing scalability issues.
Overview of the paper "Visual Software Evolution Reconstruction" by Marco D'Ambros and Michele Lanza presented at Oregon State University for "Information Visualization" class on May 12th 2014. Presentation time: 15 min
SWE-401 - 2. Software Development life cycle (SDLC)ghayour abbas
The document describes the Software Development Life Cycle (SDLC) which is a structured process for developing software through stages including communication, requirement gathering, feasibility study, system analysis, software design, coding, testing, integration, implementation, and operation and maintenance. It also discusses several software development paradigms that guide the development process, such as waterfall, iterative, spiral, V-model, and big bang models.
Devops training and placement in hyderabadVamsiNihal
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
With this course, master various aspects of software development, operations, continuous integration, continuous delivery, automated configuration management, test, and deployment using DevOps tools like Git, Docker, Jenkins, Ansible, Kubernetes, Puppet & Nagios..
CS 584 - Aligning development tools with the way programmers think about code...Sergii Shmarkatiuk
This presentation reviews a proposed visual tool for generating source code transformations based on the edit-by-example principle. The tool aims to address limitations of existing approaches like regular expressions, IDE search/replace, and AST-based tools by allowing programmers to intuitively create custom transformations through direct manipulation of code representations. An initial prototype was implemented and evaluated via a user study, which provided insights for future iterations. The tool combines textual and graphical elements to naturally fit programmers' mental models of code structure.
DevOps Torino Meetup - DevOps Engineer, a role that does not exist but is muc...Rauno De Pasquale
The third appointment of the DevOps Meetup in Turin. We made a survey to collect data to discuss about the usage of the term "DevOps Engineer" to define a specific role. Is it really a role? And how this role compare with the ones of SysAdmin, Cloud Engineer, SRE or Developer? Which are the different organisation model used for each of these roles? Which are the skills and area of competences?
This presentation provides useful and beneficial information related to software development companies. It defines Software development methodology and elaborates various methodologies adopted by software application development companies, web application development companies, custom software development services in India.
Courtesy: Shreyans Agrawal (ifour.shreyans.agrawal@gmail.com)
http://www.ifour-consultancy.com
http://www.ifourtechnolab.com
To document or not to document? An exploratory study on developers' motivatio...Hayim Makabee
This document summarizes a study on developers' motivation to document code. Through interviews and surveys, researchers identified hindering and motivating factors for code documentation. Hindering factors included documentation being tedious, difficult, time-consuming, and interrupting coding work. Motivating factors included documentation improving code comprehensibility, order, and quality. The researchers propose designing a solution to encourage documentation by emphasizing motivating factors and mitigating hindering ones. They plan to further validate findings through a quantitative questionnaire. The goal is to increase developers' internal motivation to document code.
This document contains Susan Gerhart's resume. It summarizes her professional experience as a software engineer at Intel Corporation from January 2013 to present, where she has worked on several projects involving wireless display technology. It also lists her education and provides her contact information.
This document discusses and compares various software development methodologies. It describes the Waterfall model, Prototyping model, Incremental model, Iterative model, Spiral model, RUP, XP, Agile, Scrum, Lean, DSDM, RAD and FDD methodologies. It explains that a methodology provides a formalized or systematic process for creating software. Methodologies can be sequential like Waterfall or iterative like Agile approaches. The document also gives overviews of specific methodologies like Scrum, Lean, XP and DSDM.
This document provides an introduction to software development, including:
- An overview of the software development life cycle, from requirements discovery through testing.
- Descriptions of different programming languages from low-level machine languages to high-level languages.
- Factors to consider when choosing a programming language such as the problem domain and available communities.
- The importance of software testing throughout the development process.
- Recommendations for learning software development through practicing with real problems and using online courses and tutorials.
This session is about migration from a huge monolith to microservices. I will tell you about our experience, not theory. The session depicts prerequisites to start a monolith separation, problems I bumped and obstacles that were overcome. In my presentation I will shortly depict problems with the monolith, show appearance of business and framework modules separation, describe necessity of internal and external API, depict certification of libraries and microservices and touch other questions like branching/release strategies.
Software development is a process that involves planning, designing, coding, testing, and maintaining software. It includes identifying requirements, analyzing requirements, designing the software architecture and components, programming, testing, and maintaining the software. There are various software development models that guide the process, such as waterfall, rapid application development, and agile development. Choosing the right development model and tools, clearly defining requirements, managing changes, and testing thoroughly are important best practices for successful software projects.
Making software development processes to work for youAmbientia
Mikko Paukkila discusses optimizing software development processes to balance bureaucracy and flexibility. He advocates for continuous integration to find errors early and speed up feedback loops. Tools like Git, Jenkins, Gerrit enable CI by automating builds, testing and code reviews. Process optimizations include reducing time from change to product, automating more tests, and ensuring developers have easy environments and fast feedback. The goal is enabling smooth development flows from needs to requirements to changes to high quality products.
This document provides an overview of software engineering and its models. It discusses the evolution of software engineering from the 1960s to present day. It describes key software engineering concepts like the software development life cycle, capability maturity models, and various software development models including waterfall, iterative enhancement, prototyping, spiral, and RAD approaches. The document emphasizes that software engineering applies systematic and disciplined processes to software development in order to address challenges like increasing complexity, high costs, and quality issues.
The Role of the Software Architect (short version)Hayim Makabee
Talk at the First Israeli Conference on Software Architecture
http://www.iltam.org/sw-arch2014/
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including the architect's contribution at the diverse stages of the software development life cycle, and the cooperation with the diverse stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Bio: Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a Research Engineer at Yahoo! Labs Haifa. He is also a co-founder of the International Association of Software Architects in Israel.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
In this lecture I will present a unified Agile process and techniques that allow for a seamless transition from the system engineering level to the SW engineering level in an iterative and evolutionary way. I will also show the benefits the unifying the processes of the two levels and of the resulting component based architecture. I will also talk on the architect’s role and this role evolves over time and will conclude with presenting a small but real life project example.
This document discusses and compares several software development methodologies and their life cycle stages. It describes the waterfall, iterative, RAD, agile, spiral, and incremental models. The waterfall model involves sequential phases without overlap or iterations, while agile is iterative with rapid cycles. RAD divides a project into parallel mini-projects. The spiral model is a combination of prototyping and waterfall, evaluating risk at each phase. Each methodology has advantages and disadvantages depending on the project's needs, risks, and requirements stability. The document provides details on the stages and processes involved in different methodologies.
This 2-day DevOps hands-on workshop teaches techniques for improving software delivery using automation, configuration management, provisioning, continuous monitoring, integration and deployment tools. Participants will learn how to execute continuous deployment pipelines, create real-time feedback using integration and automation tools, and optimize operations using virtualization, containers and cloud technologies. The course covers tools like Docker, Kubernetes, Jenkins, Ansible, Chef and teaches best practices for achieving a DevOps culture.
Technical debt is a metaphor for the gap between the current state of
a software system and its hypothesized ‘ideal’ state. One of the significant and
under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation,
such as code comments. Studies have shown that outdated or lacking
documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by
software developers, resulting in a notably slower growth rate of comments
compared to the growth rate of code in software projects. This research aims to
explore and better understand developers’ reluctance to document code, and
accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software
practitioners and project managers to control and reduce documentation debt.
This document discusses mapping agile methods to ERP development and identifies directions and limitations. It motivates using agile due to long delays and misfits with waterfall ERP development. Several agile principles like iterative development, ubiquitous language, test-driven development, and continuous integration are described. However, limitations include cultural barriers like predictive planning mindsets and technical barriers like legacy technologies. The conclusion calls for overcoming barriers and further research on agile technique adoption levels and behavior-driven development for ERP.
Certified professional - DevOps Foundation (CP-DOF) course informationDevOps++ Alliance
The document describes the Certified Professional - DevOps Foundation (CP-DOF) certification course. The CP-DOF certification is prepared by the Agile Testing Alliance and covers DevOps fundamentals, concepts, principles, lifecycles, tools and culture. The course is suitable for all IT professionals and teaches topics like continuous integration, delivery, monitoring, infrastructure automation and management in a practical, hands-on manner over 3 or 6 half-days. Passing the online exam awards the CP-DOF certification as the first step in the DevOps certification roadmap.
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
With this course, master various aspects of software development, operations, continuous integration, continuous delivery, automated configuration management, test, and deployment using DevOps tools like Git, Docker, Jenkins, Ansible, Kubernetes, Puppet & Nagios..
Packed with hands-on exercise for every module, this course is suitable for software developers, technical project managers, architects, operations support, deployment engineers, IT managers, and development managers.
During this talk we're going to talk about DevOps from cultural perspective and why is it very important from company perspective to focus more on cultural development rather than on thinking about DevOps as one another reason to deploy the cutting-edge technologies stack.
The document discusses the challenges of exponential software demand and how code reuse can help by leveraging reusable components. It describes Entando as a component-based platform that facilitates software reuse through its architecture of pre-coded components, infrastructure and device agnosticity, and marketplace of reusable components. This allows developers to build applications faster by reusing existing code and provides benefits like shorter development time, cost efficiency, and seamless user experience.
1) The document reviews cross-platform mobile application development and IDEs. It discusses tools like PhoneGap and Titanium that allow developing applications using a single codebase that can be deployed to multiple platforms like Android and iOS.
2) It proposes developing an IDE that allows coding an app once in a language like Java or Objective-C, then deploying it to other platforms through automated code translation. A mathematical model is presented to conceptualize the system.
3) The review finds that tools like PhoneGap based on technologies like HTML5, CSS, and jQuery offer a way to build cross-platform web apps, but generator-based tools producing native apps from a common codebase are not yet mature.
A Review Paper on Cross Platform Mobile Application Development IDEIOSR Journals
This document provides a review of cross-platform mobile application development. It discusses several approaches including PhoneGap and Titanium. These approaches allow developing applications using common code that can be deployed across platforms like Android and iOS. The document also proposes a mathematical model for a cross-platform development environment. The model represents the system as having inputs, functions for code conversion, a translator, and outputs in the form of executable apps for different platforms. This would allow developing an app using a single codebase that can generate both Android and iOS versions.
Where Do Cross-Platform App Frameworks Stand in 2020?Marianne Harness
Cross-platform app frameworks allow developers to write code once and deploy apps to both Android and iOS, reducing costs and time to market. The top frameworks are Xamarin, React Native, Flutter, PhoneGap, and Ionic. Xamarin uses C# but can be expensive for enterprises. React Native is popular but lacks platform consistency. Flutter creates native-like apps quickly but lacks TV support. PhoneGap uses web technologies but has performance issues. Ionic is similar to AngularJS and allows progressive web apps. The best framework depends on the specific app needs and goals.
This document contains Susan Gerhart's resume. It summarizes her professional experience as a software engineer at Intel Corporation from January 2013 to present, where she has worked on several projects involving wireless display technology. It also lists her education and provides her contact information.
This document discusses and compares various software development methodologies. It describes the Waterfall model, Prototyping model, Incremental model, Iterative model, Spiral model, RUP, XP, Agile, Scrum, Lean, DSDM, RAD and FDD methodologies. It explains that a methodology provides a formalized or systematic process for creating software. Methodologies can be sequential like Waterfall or iterative like Agile approaches. The document also gives overviews of specific methodologies like Scrum, Lean, XP and DSDM.
This document provides an introduction to software development, including:
- An overview of the software development life cycle, from requirements discovery through testing.
- Descriptions of different programming languages from low-level machine languages to high-level languages.
- Factors to consider when choosing a programming language such as the problem domain and available communities.
- The importance of software testing throughout the development process.
- Recommendations for learning software development through practicing with real problems and using online courses and tutorials.
This session is about migration from a huge monolith to microservices. I will tell you about our experience, not theory. The session depicts prerequisites to start a monolith separation, problems I bumped and obstacles that were overcome. In my presentation I will shortly depict problems with the monolith, show appearance of business and framework modules separation, describe necessity of internal and external API, depict certification of libraries and microservices and touch other questions like branching/release strategies.
Software development is a process that involves planning, designing, coding, testing, and maintaining software. It includes identifying requirements, analyzing requirements, designing the software architecture and components, programming, testing, and maintaining the software. There are various software development models that guide the process, such as waterfall, rapid application development, and agile development. Choosing the right development model and tools, clearly defining requirements, managing changes, and testing thoroughly are important best practices for successful software projects.
Making software development processes to work for youAmbientia
Mikko Paukkila discusses optimizing software development processes to balance bureaucracy and flexibility. He advocates for continuous integration to find errors early and speed up feedback loops. Tools like Git, Jenkins, Gerrit enable CI by automating builds, testing and code reviews. Process optimizations include reducing time from change to product, automating more tests, and ensuring developers have easy environments and fast feedback. The goal is enabling smooth development flows from needs to requirements to changes to high quality products.
This document provides an overview of software engineering and its models. It discusses the evolution of software engineering from the 1960s to present day. It describes key software engineering concepts like the software development life cycle, capability maturity models, and various software development models including waterfall, iterative enhancement, prototyping, spiral, and RAD approaches. The document emphasizes that software engineering applies systematic and disciplined processes to software development in order to address challenges like increasing complexity, high costs, and quality issues.
The Role of the Software Architect (short version)Hayim Makabee
Talk at the First Israeli Conference on Software Architecture
http://www.iltam.org/sw-arch2014/
Abstract:
In this talk Hayim will present the practical aspects of the role of the Software Architect, including the architect's contribution at the diverse stages of the software development life cycle, and the cooperation with the diverse stakeholders: Developers, Team Leaders, Project Managers, QA and Technical Writers.
Bio: Hayim Makabee was born in Rio de Janeiro. He immigrated to Israel in 1992 and completed his M.Sc. studies on Computer Sciences at the Technion. Since then he worked for several hi-tech companies, including also some start-ups. Currently he is a Research Engineer at Yahoo! Labs Haifa. He is also a co-founder of the International Association of Software Architects in Israel.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
In this lecture I will present a unified Agile process and techniques that allow for a seamless transition from the system engineering level to the SW engineering level in an iterative and evolutionary way. I will also show the benefits the unifying the processes of the two levels and of the resulting component based architecture. I will also talk on the architect’s role and this role evolves over time and will conclude with presenting a small but real life project example.
This document discusses and compares several software development methodologies and their life cycle stages. It describes the waterfall, iterative, RAD, agile, spiral, and incremental models. The waterfall model involves sequential phases without overlap or iterations, while agile is iterative with rapid cycles. RAD divides a project into parallel mini-projects. The spiral model is a combination of prototyping and waterfall, evaluating risk at each phase. Each methodology has advantages and disadvantages depending on the project's needs, risks, and requirements stability. The document provides details on the stages and processes involved in different methodologies.
This 2-day DevOps hands-on workshop teaches techniques for improving software delivery using automation, configuration management, provisioning, continuous monitoring, integration and deployment tools. Participants will learn how to execute continuous deployment pipelines, create real-time feedback using integration and automation tools, and optimize operations using virtualization, containers and cloud technologies. The course covers tools like Docker, Kubernetes, Jenkins, Ansible, Chef and teaches best practices for achieving a DevOps culture.
Technical debt is a metaphor for the gap between the current state of
a software system and its hypothesized ‘ideal’ state. One of the significant and
under-investigated elements of technical debt is documentation debt, which
may occur when code is created without supporting internal documentation,
such as code comments. Studies have shown that outdated or lacking
documentation is a considerable contributor to increased costs of software
systems maintenance. The importance of comments is often overlooked by
software developers, resulting in a notably slower growth rate of comments
compared to the growth rate of code in software projects. This research aims to
explore and better understand developers’ reluctance to document code, and
accordingly to propose efficient ways of using persuasive technology to
encourage programmers to document their code. The results may assist software
practitioners and project managers to control and reduce documentation debt.
This document discusses mapping agile methods to ERP development and identifies directions and limitations. It motivates using agile due to long delays and misfits with waterfall ERP development. Several agile principles like iterative development, ubiquitous language, test-driven development, and continuous integration are described. However, limitations include cultural barriers like predictive planning mindsets and technical barriers like legacy technologies. The conclusion calls for overcoming barriers and further research on agile technique adoption levels and behavior-driven development for ERP.
Certified professional - DevOps Foundation (CP-DOF) course informationDevOps++ Alliance
The document describes the Certified Professional - DevOps Foundation (CP-DOF) certification course. The CP-DOF certification is prepared by the Agile Testing Alliance and covers DevOps fundamentals, concepts, principles, lifecycles, tools and culture. The course is suitable for all IT professionals and teaches topics like continuous integration, delivery, monitoring, infrastructure automation and management in a practical, hands-on manner over 3 or 6 half-days. Passing the online exam awards the CP-DOF certification as the first step in the DevOps certification roadmap.
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
EduXFactor presents to you a comprehensive up-to-date DevOps certification program. This course will empower you with job-relevant skills and power you ahead in your career.
With this course, master various aspects of software development, operations, continuous integration, continuous delivery, automated configuration management, test, and deployment using DevOps tools like Git, Docker, Jenkins, Ansible, Kubernetes, Puppet & Nagios..
Packed with hands-on exercise for every module, this course is suitable for software developers, technical project managers, architects, operations support, deployment engineers, IT managers, and development managers.
During this talk we're going to talk about DevOps from cultural perspective and why is it very important from company perspective to focus more on cultural development rather than on thinking about DevOps as one another reason to deploy the cutting-edge technologies stack.
The document discusses the challenges of exponential software demand and how code reuse can help by leveraging reusable components. It describes Entando as a component-based platform that facilitates software reuse through its architecture of pre-coded components, infrastructure and device agnosticity, and marketplace of reusable components. This allows developers to build applications faster by reusing existing code and provides benefits like shorter development time, cost efficiency, and seamless user experience.
1) The document reviews cross-platform mobile application development and IDEs. It discusses tools like PhoneGap and Titanium that allow developing applications using a single codebase that can be deployed to multiple platforms like Android and iOS.
2) It proposes developing an IDE that allows coding an app once in a language like Java or Objective-C, then deploying it to other platforms through automated code translation. A mathematical model is presented to conceptualize the system.
3) The review finds that tools like PhoneGap based on technologies like HTML5, CSS, and jQuery offer a way to build cross-platform web apps, but generator-based tools producing native apps from a common codebase are not yet mature.
A Review Paper on Cross Platform Mobile Application Development IDEIOSR Journals
This document provides a review of cross-platform mobile application development. It discusses several approaches including PhoneGap and Titanium. These approaches allow developing applications using common code that can be deployed across platforms like Android and iOS. The document also proposes a mathematical model for a cross-platform development environment. The model represents the system as having inputs, functions for code conversion, a translator, and outputs in the form of executable apps for different platforms. This would allow developing an app using a single codebase that can generate both Android and iOS versions.
Where Do Cross-Platform App Frameworks Stand in 2020?Marianne Harness
Cross-platform app frameworks allow developers to write code once and deploy apps to both Android and iOS, reducing costs and time to market. The top frameworks are Xamarin, React Native, Flutter, PhoneGap, and Ionic. Xamarin uses C# but can be expensive for enterprises. React Native is popular but lacks platform consistency. Flutter creates native-like apps quickly but lacks TV support. PhoneGap uses web technologies but has performance issues. Ionic is similar to AngularJS and allows progressive web apps. The best framework depends on the specific app needs and goals.
1) The document compares the development of native mobile apps to hybrid mobile apps built with frameworks like PhoneGap and Intel App Framework.
2) It describes a case study where a water company in Brazil developed both a native and hybrid mobile app to allow customers to report issues.
3) User testing found that 76.67% of users did not notice a difference between the native and hybrid apps, showing that hybrid development can be a viable lower-cost alternative to native development.
The document provides an introduction and overview of developing Android applications. It discusses what Android is, the major Android application components of Activities, Services, Intents, and Content Providers. It outlines the Android development environment, including installing the SDK and creating a sample "Hello World" application. It also covers the key parts of an Android project like the AndroidManifest file, resources, and source code directories. The document aims to guide users through the essentials of Android application development without assuming prior Java knowledge.
This document provides a guide to cross-platform mobile app development. It discusses how cross-platform apps can save money by requiring less development costs and reaching a wider audience. Native apps require separate development for each platform, while cross-platform uses one codebase. Popular cross-platform tools include React Native, Xamarin, Ionic, and Flutter. Factors like costs, time savings, and audience reach make cross-platform development beneficial for many businesses.
MobiCloud: Towards Cloud Mobile Hybrid Application Generation using Semantica...Amit Sheth
Ajith Ranabahu, Amit Sheth, Ashwin Manjunatha, and Krishnaprasad Thirunarayan, 'Towards Cloud Mobile Hybrid Application Generation using Semantically Enriched Domain Specific Languages', International Workshop on Mobile Computing and Clouds (MobiCloud 2010), Santa Clara, CA,October 28, 2010.
Paper: http://knoesis.org/library/resource.php?id=865
Project: http://knoesis.wright.edu/research/srl/projects/mobi-cloud/
3701ICT Mobile Application Development.docxsdfghj21
Cross-platform mobile app development allows creating apps that can run on multiple operating systems using a single codebase, making development more efficient. Some popular cross-platform frameworks include Xamarin, React Native, Flutter, and Ionic. The document describes a quiz app developed using Flutter, which has three screens: a welcome screen, question screen that displays one question at a time, and a score screen at the end. While cross-platform apps allow code reuse, challenges include limited support for platform-specific APIs since each operating system implements features differently.
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET Journal
1. The document discusses cross-platform mobile application development which allows apps to run on multiple operating systems like Android and iOS.
2. It explains different types of cross-platform apps like web, hybrid, and interpreted apps. Cross-platform tools allow developers to write code once and deploy it to different platforms.
3. The document analyzes advantages of cross-platform apps like reusable code, reduced development time and costs since code only needs to be written and tested once rather than for each platform.
Introduction to the course
Hybrid mobile development frameworks
Mobile thinking
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
What is The Best Platform for Mobile App Development.pdfSjainVentures2
What is The Best Platform for Mobile App Development. Investigate the top options and elements to consider while deciding on the right platforms for your project.
Best Practices for Cross-Platform Native ApplicationsKevin Whinnery
This document outlines best practices for building cross-platform mobile apps. It discusses two main approaches: platform identity and brand identity. Platform identity focuses on optimizing the experience for each platform by following its interface guidelines. Brand identity aims to create a consistent experience across platforms with most of the UI reused. The document also recommends building apps with a component-oriented architecture and using modular JavaScript techniques like the classic module pattern and CommonJS. It provides examples of how to structure code for cross-platform reuse and discusses advantages like improved understandability, reusability and adaptability.
This document summarizes a presentation on developing mobile applications with Adobe Integrated Runtime (AIR). It discusses:
- Native mobile development issues like high costs and separate codebases per platform.
- AIR as a cross-platform alternative that allows building apps with one codebase for multiple devices using ActionScript.
- Tools for AIR development like Flash Builder and ways to access device capabilities through extensions.
- Frameworks like Starling and FeathersUI that use GPU rendering to improve app performance and deliver buttery-smooth UX comparable to native apps.
- Recommendations for when to use different development approaches based on needs like hardware access or user experience requirements.
Prosciutto Palermo Valley Mobile Sessions - EnglishMario Zorz
The Prosciutto Project is an open source mobile application engine written in Java ME. It aims to address problems with device fragmentation by allowing developers to write code once and deploy it across multiple devices. The engine separates business logic from code implementation using an intuitive XML markup language. This allows non-programmers to build mobile applications without extensive technical skills. By addressing common issues like testing and deployment costs, the Prosciutto Project hopes to lower the costs of developing mobile applications.
The document discusses an upcoming Android training workshop in the Philippines. It notes that the market for Android mobile applications is huge and growing rapidly. The workshop aims to teach Android development skills to attendees in an efficient manner through a combination of prepared materials, coding exercises, and reinforcement of key concepts. The workshop will cover introductory and advanced Android topics over multiple days and provide downloadable code samples. The goal is for attendees to learn Android development skills as quickly as possible through this hands-on, structured training approach.
Mobile application development involves creating apps for smartphones and tablets. Key points about mobile app development include:
1. The mobile app market is large and growing, with over 1.5 billion mobile devices sold in 2011 and the app market reaching $15 billion by 2013.
2. Smartphones have become "smarter" with powerful processors and operating systems like Android that allow developers to create powerful apps. Over 600,000 apps are available across platforms.
3. Mobile apps have different requirements than desktop apps due to limitations of mobile devices like smaller screens, memory constraints, and intermittent network connectivity.
4. The Android platform provides tools and APIs for developers to create apps that will run on Android devices. It
The document compares native and cross-platform mobile application development. Native apps are developed specifically for a single platform using that platform's native tools and programming languages, allowing them to offer the best user experience, performance, and access to device-specific features. However, native development has higher costs for deploying to multiple platforms due to separate development efforts required. Cross-platform apps allow writing code once that runs on multiple platforms but have limitations in user experience, performance, features, and timely access to OS innovations compared to native.
5 Reasons To Select Ionic Apps Development For Your Next ProjectClaritus Consulting
Ionic is an open source mobile app development framework that allows developers to build high-quality apps for multiple platforms using shared code. It offers benefits like easy access to third party code and plugins, additional platform support, and fast development. Ionic uses AngularJS which provides reusable code that can be used across platforms. It also uses Cordova to host plugins for features like notifications, camera access, and more. Ionic provides a cost-effective solution for cross-platform mobile app development.
The mobile app job market and Android app development are growing enormously. Over 500,000 Android apps have been created since 2008, and Android is overtaking iOS in momentum. This creates high demand for Android programmers. The document recommends attending workshops to efficiently learn Android development skills, as materials are designed for methodical, time-efficient learning. Key areas like activities, intents, and UI creation will be covered, along with debugging and other critical skills.
Similar to CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone (20)
CS589 paper presentation - What is in unison? A formal specification and refe...Sergii Shmarkatiuk
Overview of the paper "What's in Unison? A Formal Specication and Reference Implementation of a File Synchronizer" by Benjamin C. Pierce Jerome Vouillon presented at Oregon State University for "Domain Specific Languages" class on May 20th 2014. Presentation time: 20 min
The document proposes a formalized approach to software version numbering to address current problems. It analyzes why automatic document section numbering cannot be directly applied to software history. The proposed solution extends the section numbering approach formally, allowing version numbers to include arbitrary sets in addition to natural numbers. This addresses issues like inconsistent practices and ambiguous versioning that undermine automation and software quality.
Overview of the paper "Cloud Types for Eventual Consistency" by Burckhardt et al. presented at Oregon State University for "Software Evolution for Mobility" class on Oct 10th 2013. Presentation time: 20 min
This document provides an overview and training plan for merge management. It describes problems that can emerge during merge operations in version control systems and how to mitigate risks and avoid problems related to merging. The training plan includes introductions to concepts like merging, branches, conflicts and how to manage merging. It provides details on common tools and operations involved in merging like diff, patch, branch and how three-way merging works. It also gives examples and demonstrations of merging in practice.
This document provides an overview of continuous integration training goals and plans. The goals are to demonstrate that modern projects cannot succeed without continuous integration and to establish a connection between continuous integration practices and CMMI product integration processes. The training plan covers topics such as what continuous integration is, why it is needed, prerequisites, workflows, tools, and relationships to CMMI processes. It also discusses continuous integration tools and classifications.
The document discusses build and deployment management. It covers why builds and deployments need to be managed, different build types, build phases, and popular build tools like Ant, Maven, Make, and MSBuild. Managing builds is important for large, complex applications to ensure the build process is complete, repeatable, informative, schedulable, and portable. The key difference between a build and deployment is that a build creates installation artifacts while deployment installs the application.
This document provides an introduction to version control. It discusses what version control is, the history and evolution of version control systems, different types of version control systems classified by their repository model and concurrency model, and practical considerations for starting to use version control. Key topics covered include centralized and distributed version control, lock-modify-unlock and merge models, and domain vocabulary for common version control tasks and workflows.
1.2 introduction to scm - what does version number tell usSergii Shmarkatiuk
This document discusses configuration management and version numbers. It explains that a build takes source code and converts it into artifacts that can run on end-user workstations. Builds are needed to add functionality, improve performance, or implement other requirements. Managing builds is important as applications grow more complex with multiple variants incorporating different property values like version, build type, OS, localization, platform, and maturity. Variants represent the output of a build with a specific set of property values. The version number can incorporate all variant properties to uniquely identify each variant.
1.1 introduction to scm - xp and cm are chicken-and-eggSergii Shmarkatiuk
This document discusses the relationship between eXtreme Programming (XP) practices and Software Configuration Management (SCM) tools. It argues that XP practices and SCM tools have a chicken-and-egg type relationship, where neither can truly exist without the other due to their interdependent nature. SCM tools provide version control, build management, and other functions that are essential for evolution of the software product, while XP practices like pair programming, refactoring, and continuous integration describe common development methods. Together, XP practices and SCM tools form the core software engineering practices for effective development.
This document outlines a series of software configuration management trainings covering topics such as introduction to SCM, version control, build and deployment management, continuous integration, agile SCM, and merge management. The trainings will utilize formats like seminars, webinars, workshops, and conferences. Attendees include software engineers, testers, and project managers. The content is organized into 6 modules with examples and demos. Attendance and active participation are required to receive a score. The trainings will be presented in English by lecturer Sergii Shmarkatiuk.
The document discusses agile software configuration management and the connection between agile methodologies and configuration management practices. It presents streamlined diagrams showing how version control, branching, and releases are handled in agile software development. Branching strategies become more complex as the scope expands and parallel development of multiple versions is needed, requiring different branch types including long-running release branches.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
SAP S/4 HANA sourcing and procurement to Public cloud
CS519 - Cloud Twin: Native Execution of Android Applications on the Windows Phone
1. CLOUD TWIN: NATIVE
EXECUTION OF ANDROID
APPLICATIONS ON THE
WINDOWS PHONE
Presentation type: paper review
Class: CS 519 – Software Evolution for Mobility
Presenter: Sergii Shmarkatiuk
Date: 11/18/2013
2. PRESENTATION FORMAT
5-8 min for presentation
Motivation
Proposed solution
Results
Main technical challenge addressed in the paper
17-20 min for discussion
Every student provides an answer/comment to presented
discussion question ( <45 sec)
We will put original ideas on the whiteboard
Every student picks most appealing/interesting research idea
and explains why it is interesting ( <45 sec)
We will define the most popular idea for future research
2
based on students’ opinion.
3. MOTIVATION
One of the challenges of mobile
development is necessity of supporting
mobile application for different platforms
3
5. MOTIVATION
Real challenges (Joorabchi et al.):
Fragmentation across platforms
Fragmentation within the same platform
Behavioral consistency across platforms
Lack of support for automated migration across
platforms
“re-coding against wildly different API sets” increases the cost
and time-to-market within phases of
design, development, testing, and maintenance, which is
definitely a large issue for start-up and smaller companies.
5
6. PROPOSED SOLUTION
Replicating UI from one platform (Android) to another
platform (Windows Phone) using aspect-oriented
programming and Reflection API.
Running source application (Android) in the cloud using
platform emulator.
Capturing UI events generated by target application
(Windows Phone) and sending them to the cloud.
Receiving UI updates generated by source application
(Android) at target application (Windows Phone) side.
6
7. RESULTS
Latency of a complete UI update
time between pressing a button and updating text label in response
Min (ms)
281
Avg (ms)
314
Max (ms)
846
7
8. MAIN TECHNICAL CHALLENGE
1. Analysis of interface's in-memory
representation
2. Extraction of platform-independent
model that can then be used to
generate equivalent interface for
another platform
8
9. EXAMPLE FROM RELATED WORK
(CONVERTING SWING GUI TO ANDROID UI)
Run the GUI application
Intercept the application using aspect oriented
programming.
Extract the components using Reflection API
Reuse the logic of the application
Translate the components to platform independent
domain specific language (XML-based)
Create method stubs for the listeners
9
10. QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Sergii: Do you think it is a good idea to use XMLbased intermediate representation for the UI of
source application?
Sergii: What do you consider to be an overhead of
maintaining cloud-based emulators?
Caius: How does their approach scale? A whole
Android emulator is quite heavy weight? While this
is not a problem when you have only 1 user, how
about when you have thousands? Could two or
more sessions run in the same emulator?
10
11. QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Sergii: How could we get to the point, when we
could "Write once, Run on any Mobile Platform“?
Michael: This paper is another attempt to solve the
"write once, run anywhere" universal code that has
been the "holy grail" of programming that
developers have been chasing for decades now.
Java is just one of many examples of this. This
approach seems to be significantly different in
substance, but it still suffers from the common
achilles heel of universal solutions, specifically poor
performance.
11
12. QUESTIONS TO DISCUSS
(~45 SEC FOR AN ANSWER)
Arpit: What kind of information do static and
dynamic analysis of apps may yield to help with
portability?
Austin: What other platform pairs can this be
extended to (e.g., Android accessing iOS apps)? Is
there any reason that Windows Phone and Android
are easier, and would is needed to make this
happen for other platforms?
Mihai: …
12
13. IDEAS FOR BETTER EVALUATION
Sergii: Use 3g/4g instead of wi-fi
Sergii: Calculate overall number and ratio of UI
elements that cannot be converted to different
platform
Sergii: Use real applications instead of tutorials
Arpit: Provide details of how many applications
were able to run successfully on windows phone
using android emulator as source
Caius: Provide list of tested applications
Caius, Austin: Test solution in different networks
Mihai: …
13
14. FOLLOW-UP RESEARCH IDEAS
Ideas from the paper:
Increase UI component coverage
Support additional platforms (iOS) and languages (Objective C)
Automate API evolution
Create collaborative mobile applications
Ideas related to general limitations of mobile platforms:
Security considerations
Usage of platform-specific hardware (NFC)
Handling native Open GL code
Fragmentation across platforms and within the same platform
Other ideas:
Sergii: improve presented approach to make it useful for addressing
needs of real applications.
Sergii: reduce number of layers in the solution, make it more robust
and reusable.
Sergii: separating application into two parts – platform-independent
(that could run in the cloud) and platform-specific part (that could run
on device)
14
15. FOLLOW-UP RESEARCH IDEAS
Other ideas:
Austin: compiling certain parts of the codebase into C++ libraries
so that less data has to be sent to the emulator
Michael: OnLive gaming platform
Michael: make it work for gestures
Caius: running more sessions in the same emulator
Arpit: tool that looks at Android activity and creates a
corresponding XAML form automatically and vice versa
Mihai: …
15
16. WHAT RESEARCH IDEA DO YOU FIND THE
MOST INTERESTING TO WORK ON AND
WHY?
Separating
application into
platformindependent and
platform-specific part
Compiling certain
parts of the
codebase into C++
libraries
OnLive gaming
platform
Gestures support
Running more
sessions in the same
emulator
Automatic
conversion to and
from XAML UI
representation
16